Boost logo

Boost :

Subject: Re: [boost] [coroutine] failing on 1.56 RC? (was: [1.56.0] Release candidates available)
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-07-30 14:20:39


On Wednesday 30 July 2014 10:14:59 Eric Niebler wrote:
> On 7/30/2014 12:26 AM, Andrey Semashev wrote:
> > On Tue, Jul 29, 2014 at 9:06 PM, Marshall Clow <mclow.lists_at_[hidden]>
wrote:
> >> Release candidate files for 1.65.0 are available at
> >> http://boost.cowic.de/rc/
> >>
> >> As always, the release managers would appreciate it if you download
> >> the candidate of your choice and give building it a try. Please report
> >> both success and failure, and anything else that is noteworthy.
> >>
> >> This helps ensure the candidates build OK before we push them out to
> >> SourceForge.>>
> >> The files (and associated md5s) are:
> >> MD5 (boost_1_56_0_rc1.7z) =
> >> 0ac22b92b24209286d48e4c41925cd9f
> >> MD5 (boost_1_56_0_rc1.tar.bz2) =
> >> 5b5bfa99244b1ac5737323decceb19c2
> >> MD5 (boost_1_56_0_rc1.tar.gz) =
> >> 2047cdd4e09cda34e7f10fec0f821175
> >> MD5 (boost_1_56_0_rc1.zip) =
> >> 0c544f6acc85550b15cdc9221f2ac0c9
> >
> > I also see compilation failures with gcc 4.6 in C++11 mode:
> >
> > In file included from ./boost/thread/once.hpp:20:0,
> >
> > from ./boost/thread.hpp:17,
> >
> > from libs/coroutine/src/posix/stack_traits.cpp:22:
> > ./boost/thread/pthread/once_atomic.hpp: In function ‘void
> > boost::call_once(boost::once_flag&, Function&&, ArgTypes&& ...) [with
> > Function = void (&)(long unsigned int*), ArgTypes = {long unsigned
> > int*}]’:
> > libs/coroutine/src/posix/stack_traits.cpp:57:46: instantiated from here
> > ./boost/thread/pthread/once_atomic.hpp:127:9: error: call of
> > overloaded ‘invoke(boost::decay<void (&)(long unsigned int*)>::type,
> > boost::decay<long unsigned int*>::type)’ is ambiguous
> > ./boost/thread/pthread/once_atomic.hpp:127:9: note: candidates are:
> > ./boost/thread/detail/invoke.hpp:538:5: note: typename
> > boost::enable_if_c<(! boost::is_member_function_pointer<Fp>::value),
> > Ret>::type boost::detail::invoke(Fp&&, Args&& ...) [with Ret = void,
> > Fp = void (*)(long unsigned int*), Args = {long unsigned int*},
> > typename boost::enable_if_c<(!
> > boost::is_member_function_pointer<Fp>::value), Ret>::type = void]
> > ./boost/thread/detail/invoke.hpp:544:5: note: Ret
> > boost::detail::invoke(Ret (*)(Args ...), Args&& ...) [with Ret = void,
> > Args = {long unsigned int*}]
> > ./boost/thread/pthread/once_atomic.hpp: In function ‘void
> > boost::call_once(boost::once_flag&, Function&&, ArgTypes&& ...) [with
> > Function = void (&)(rlimit*), ArgTypes = {rlimit*}]’:
> > libs/coroutine/src/posix/stack_traits.cpp:65:54: instantiated from here
> > ./boost/thread/pthread/once_atomic.hpp:127:9: error: call of
> > overloaded ‘invoke(boost::decay<void (&)(rlimit*)>::type,
> > boost::decay<rlimit*>::type)’ is ambiguous
> > ./boost/thread/pthread/once_atomic.hpp:127:9: note: candidates are:
> > ./boost/thread/detail/invoke.hpp:538:5: note: typename
> > boost::enable_if_c<(! boost::is_member_function_pointer<Fp>::value),
> > Ret>::type boost::detail::invoke(Fp&&, Args&& ...) [with Ret = void,
> > Fp = void (*)(rlimit*), Args = {rlimit*}, typename
> > boost::enable_if_c<(! boost::is_member_function_pointer<Fp>::value),
> > Ret>::type = void]
> > ./boost/thread/detail/invoke.hpp:544:5: note: Ret
> > boost::detail::invoke(Ret (*)(Args ...), Args&& ...) [with Ret = void,
> > Args = {rlimit*}]
> >
> > "g++-4.6" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline
> >
> > -Wall -pthread -fPIC -std=c++0x -DBOOST_ALL_NO_LIB=1
> > -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_CONTEXT_DYN_LINK=1
> > -DBOOST_COROUTINES_DYN_LINK=1 -DBOOST_COROUTINES_SOURCE
> > -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED
> > -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_POSIX
> > -DBOOST_THREAD_USE_DLL=1 -DNDEBUG -I"." -c -o
> > "bin.v2/libs/coroutine/build/gcc-4.6/release/threading-multi/posix/stack_t
> > raits.o" "libs/coroutine/src/posix/stack_traits.cpp"
> >
> > ...failed gcc.compile.c++
> > bin.v2/libs/coroutine/build/gcc-4.6/release/threading-multi/posix/stack_tr
> > aits.o...
> Ouch. Can anybody else repro this? Oliver, thoughts?

I think the problem is in Boost.Thread, boost/thread/detail/invoke.hpp. I
emailed Vicente, no response so far.

I'll try to come up with a patch.


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