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 18:33:03


On Wednesday 30 July 2014 22:20:39 you wrote:
> 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.

https://github.com/boostorg/thread/pull/21


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