Boost logo

Boost :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2008-01-23 18:45:32


A couple of days ago (don't know exactly when), two asio library tests
based on single source -- read_until.cpp -- started to fail to compile
on HP-UX_ia64_gcc as the following:

../boost/asio/detail/socket_ops.hpp: In function 'int
boost::asio::detail::socket_ops::select(int, fd_set*, fd_set*, fd_set*,
timeval*, boost::system::error_code&)':
../boost/asio/detail/socket_ops.hpp:634: error: cannot convert 'fd_set*' to
'int*' for argument '2' to 'int select(size_t, int*,
int*, int*, const timeval*)'

While compilation error is obvious and can be eliminated by compiling
with _XOPEN_SOURCE_EXTENDED macro defined, I could not figure out by
looking at SVN log what changes have caused it.

I verified that with _XOPEN_SOURCE_EXTENDED macro defined, all asio
library tests pass on HP-UX_ia64_gcc. On another HP-UX/gcc platform
participating in Boost testing -- HP-UX_pa_risc_gcc -- they pass with
and without this macro defined. The platform details:

    HP-UX_ia64_gcc : HP-UX 11.23 ia64 with gcc 4.2.1
    HP-UX_pa_risc_gcc : HP-UX 11.11 PA-RISC with gcc 3.4.2

Is it expected that asio library tests on HP-UX/gcc should be compiled
with _XOPEN_SOURCE_EXTENDED macro defined? (for example, for SOLARIS,
asio/test/Jamfile.v2 defines _XOPEN_SOURCE=500 and __EXTENSIONS__)

And what was the change that broke HP-UX_ia64_gcc ?

Thanks,
  Boris


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk