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