Boost logo

Boost Users :

Subject: Re: [Boost-users] issues compiling Boost 1.54 thread on AIX5.2
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2013-07-12 12:32:27


Le 12/07/13 16:53, Gert a écrit :
> Any clues here?
>
> Regards, Gert
>
> vacpp.compile.c++
> bin.v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o
>
> xlC_r -c -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1
> -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_DONT_USE_CHRONO
> -DBOOST_THREAD_POSIX -qcpluscmt -qNOOPTimize -qnoinline -q64 -g -qfullpath
> -qfuncsect -qeh -qrtti -I"." -o "bin
> .v2/libs/thread/build/vacpp/debug/address-model-64/link-static/runtime-link-static/threading-multi/pthread/thread.o"
> "libs/thread/src/pthread/thread.cpp"
>
> "./boost/smart_ptr/shared_ptr.hpp", line 82.43: 1540-0403 (S) "template
> <class T, std::size_t N> struct boost::detail::sp_element<T [N]>" is already
> defined.
> "./boost/smart_ptr/shared_ptr.hpp", line 75.28: 1540-0425 (I) "sp_element<T
> []>" is defined on line 75 of "./boost/smart_ptr/shared_ptr.hpp".
> "./boost/smart_ptr/shared_ptr.hpp", line 131.43: 1540-0403 (S) "template
> <class T, std::size_t N> struct boost::detail::sp_dereference<T [N]>" is
> already defined.
> "./boost/smart_ptr/shared_ptr.hpp", line 124.28: 1540-0425 (I)
> "sp_dereference<T []>" is defined on line 124 of
> "./boost/smart_ptr/shared_ptr.hpp".
> "./boost/smart_ptr/shared_ptr.hpp", line 156.43: 1540-0403 (S) "template
> <class T, std::size_t N> struct boost::detail::sp_member_access<T [N]>" is
> already defined.
> "./boost/smart_ptr/shared_ptr.hpp", line 149.28: 1540-0425 (I)
> "sp_member_access<T []>" is defined on line 149 of
> "./boost/smart_ptr/shared_ptr.hpp".
> "./boost/smart_ptr/shared_ptr.hpp", line 181.43: 1540-0403 (S) "template
> <class T, std::size_t N> struct boost::detail::sp_array_access<T [N]>" is
> already defined.
> "./boost/smart_ptr/shared_ptr.hpp", line 174.28: 1540-0425 (I)
> "sp_array_access<T []>" is defined on line 174 of
> "./boost/smart_ptr/shared_ptr.hpp".
> "./boost/thread/detail/async_func.hpp", line 94.58: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 166.54: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 231.50: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 291.46: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 346.42: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 396.38: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 441.34: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 481.30: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 516.26: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/detail/async_func.hpp", line 546.22: 1540-0711 (S) Too few
> template arguments have been specified.
> "./boost/thread/cv_status.hpp", line 23.3: 1540-0219 (S) The call to
> "operator==" has no best match.
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 1
> is an rvalue of type "boost::cv_status::enum_type".
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1229 (I) Argument number 2
> is an rvalue of type "boost::cv_status::enum_type".
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is
> better than "builtin operator==(int, int)".
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from
> argument number 1 to "int" uses "an integral promotion".
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from
> argument number 2 to "int" uses "an integral promotion".
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1202 (I) No candidate is
> better than "boost::operator==(self_type, enum_type)".
> "./boost/thread/cv_status.hpp", line 23.3: 1540-1231 (I) The conversion from
> argument number 1 to "boost::cv_status" uses the user-defined conversion
> "boost::cv_status::cv_status(enum_type)" followed by "an lvalue-to-rvalue
> transformatio
> n".
> ...
> ...
>
Hi,

the concerned code

template< class T > struct sp_element< T[] >
{
     typedef T type;
};

#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )

*template< class T, std::size_t N > struct sp_element< T[N] >**
**{**
** typedef T type;**
**};*

#endif

is conditionally included. Could you try to avoid the inclusion of

template< class T, std::size_t N > struct sp_element< T[N] >
{
     typedef T type;
};

for the VACPP compiler.

BTW, is this a regression of 1.54?

Best,
Vicente



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net