Boost logo

Boost :

Subject: Re: [boost] [release] Boost 1.64.0 Beta 1
From: Deniz Bahadir (dbahadir_at_[hidden])
Date: 2017-03-27 09:11:08


Am 27.03.2017 um 11:03 schrieb Deniz Bahadir via Boost:
> Am 23.03.2017 um 15:11 schrieb Rene Rivera via Boost:
>> Boost release 1.64.0 beta 1 is now available at:
>>
>> [...]
>>
>> Please download the beta, give it a try, and report any problems you
>> encounter.
>
> I tried compiling it on an Ubuntu 16.04 (x86_64) machine with the
> following compilers:
>
> * GCC 4.8 with C++11 (and libstdc++)
> * GCC 6 with C++14 (and libstdc++)
> * Clang 3.8 with C++14 and libc++
>
> GCC 6 and Clang 3.8 succeeded, GCC 4.8 failed. The error can be seen at
> the end of this email.
>
> Additionally, I realized two other problems:
>
> 1.
> Using Boost.Build option "--build-type=complete" does not work (only
> "-build-type=minimal" works). Before compilation even started it fails
> like this:
>
> error: Name clash for
> '<p/home/jenkins/workspace/TEST_Boost_Build/gcc48/installed/opt/BENOCS/gcc48/lib/x86_64-linux-gnu>libboost_atomic-gcc48-mt-d-1_64.a'
>
> error:
> error: Tried to build the target twice, with property sets having
> error: these incompatible properties:
> error:
> error: - <dll-path>/opt/BENOCS/gcc48/bin
> error: - none
> error:
> error: Please make sure to have consistent requirements for these
> error: properties everywhere in your project, especially for install
> error: targets.
>
>
> 2.
> The other problem is not specific to this Boost beta but instead existed
> from the beginning. When using Boost-Build option "--layout=versioned"
> the generated libraries' names should contain the compiler-tag and its
> version. However, this stopped working for GCC since the release of GCC
> 5. It now misses the compiler's version.
> I assume it has something to do with GCC changing its version-scheme
> where the major-version is increased for each new compiler release.
>
>
> Hope that helps,
> Deniz Bahadir
>
>
> PS: The following is the error output when compiling with GCC 4.8:
>
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi
>
> common.mkdir
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/algo
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/algo/algorithm.o
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/algo/round_robin.o
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/algo/shared_work.o
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/algo/work_stealing.o
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/barrier.o
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/condition_variable.o
>
> gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/context.o
>
> libs/fiber/src/context.cpp: In constructor
> ‘boost::fibers::context::context(boost::fibers::dispatcher_context_t,
> const boost::context::preallocated&, const default_stack&,
> boost::fibers::scheduler*)’:
> libs/fiber/src/context.cpp:230:14: error: call of overloaded
> ‘callcc(const std::allocator_arg_t&, const
> boost::context::preallocated&, const default_stack&,
> boost::fibers::context::context(boost::fibers::dispatcher_context_t,
> const boost::context::preallocated&, const default_stack&,
> boost::fibers::scheduler*)::__lambda5)’ is ambiguous
> });
> ^
> libs/fiber/src/context.cpp:230:14: note: candidates are:
> In file included from ./boost/fiber/context.hpp:27:0,
> from libs/fiber/src/context.cpp:7:
> ./boost/context/continuation.hpp:468:1: note:
> boost::context::continuation
> boost::context::callcc(std::allocator_arg_t, StackAlloc, Fn&&, Arg ...)
> [with StackAlloc = boost::context::preallocated; Fn = const
> boost::context::basic_fixedsize_stack<boost::context::stack_traits>&;
> Arg =
> {boost::fibers::context::context(boost::fibers::dispatcher_context_t,
> const boost::context::preallocated&, const default_stack&,
> boost::fibers::scheduler*)::__lambda5}]
> callcc( std::allocator_arg_t, StackAlloc salloc, Fn && fn, Arg ... arg) {
> ^
> ./boost/context/continuation.hpp:482:1: note:
> boost::context::continuation
> boost::context::callcc(std::allocator_arg_t,
> boost::context::preallocated, StackAlloc, Fn&&, Arg ...) [with
> StackAlloc =
> boost::context::basic_fixedsize_stack<boost::context::stack_traits>; Fn
> = boost::fibers::context::context(boost::fibers::dispatcher_context_t,
> const boost::context::preallocated&, const default_stack&,
> boost::fibers::scheduler*)::__lambda5; Arg = {}]
> callcc( std::allocator_arg_t, preallocated palloc, StackAlloc salloc,
> Fn && fn, Arg ... arg) {
> ^
> ./boost/context/continuation.hpp:513:1: note:
> boost::context::continuation
> boost::context::callcc(std::allocator_arg_t,
> boost::context::preallocated, StackAlloc, Fn&&) [with StackAlloc =
> boost::context::basic_fixedsize_stack<boost::context::stack_traits>; Fn
> = boost::fibers::context::context(boost::fibers::dispatcher_context_t,
> const boost::context::preallocated&, const default_stack&,
> boost::fibers::scheduler*)::__lambda5]
> callcc( std::allocator_arg_t, preallocated palloc, StackAlloc salloc,
> Fn && fn) {
> ^
> ./boost/context/continuation.hpp:456:1: note:
> boost::context::continuation boost::context::callcc(Fn&&, Arg ...) [with
> Fn = const std::allocator_arg_t&; Arg = {boost::context::preallocated,
> boost::context::basic_fixedsize_stack<boost::context::stack_traits>,
> boost::fibers::context::context(boost::fibers::dispatcher_context_t,
> const boost::context::preallocated&, const default_stack&,
> boost::fibers::scheduler*)::__lambda5}; <template-parameter-1-3> = void]
> callcc( Fn && fn, Arg ... arg) {
> ^
>
> "g++-4.8" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline
> -Wall -pthread -m64 -m64 -fpic -std=c++11 -m64 -fpic
> -DBOOST_ALL_NO_LIB=1 -DBOOST_DISABLE_ASSERTS -DBOOST_FIBERS_SOURCE
> -DNDEBUG -I"." -c -o
> "/home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/context.o"
> "libs/fiber/src/context.cpp"
>
> ...failed gcc.compile.c++
> /home/jenkins/workspace/TEST_Boost_Build/gcc48/build/boost/boost/bin.v2/libs/fiber/build/gcc-4.8/release/link-static/threading-multi/context.o...
>
> ...failed updating 1 target...
> ...updated 13574 targets...
>
>

Oh, and I forget to mention another observation:
Why does the configuration summary state that Clang 3.8 does not support
the "visibility" feature? I think that is just wrong.

The configuration summary for Clang 3.8 looks like the following.
(Except for the "visibility" feature it is the same for GCC 4.8 and GCC 6.)

Performing configuration checks

     - 32-bit : no
     - 64-bit : yes
     - arm : no
     - mips1 : no
     - power : no
     - sparc : no
     - x86 : yes
     - symlinks supported : yes
     - C++11 mutex : yes
     - lockfree boost::atomic_flag : yes
     - Boost.Config Feature Check: cxx11_auto_declarations : yes
     - Boost.Config Feature Check: cxx11_constexpr : yes
     - Boost.Config Feature Check: cxx11_defaulted_functions : yes
     - Boost.Config Feature Check: cxx11_final : yes
     - Boost.Config Feature Check: cxx11_hdr_mutex : yes
     - Boost.Config Feature Check: cxx11_hdr_tuple : yes
     - Boost.Config Feature Check: cxx11_lambdas : yes
     - Boost.Config Feature Check: cxx11_noexcept : yes
     - Boost.Config Feature Check: cxx11_nullptr : yes
     - Boost.Config Feature Check: cxx11_rvalue_references : yes
     - Boost.Config Feature Check: cxx11_template_aliases : yes
     - Boost.Config Feature Check: cxx11_thread_local : no
     - Boost.Config Feature Check: cxx11_variadic_templates : yes
     - has_icu builds : yes
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
     - zlib : yes
     - bzip2 : yes
     - iconv (libc) : yes
     - icu : yes
     - native-atomic-int32-supported : yes
     - native-syslog-supported : yes
     - pthread-supports-robust-mutexes : yes
     - compiler-supports-visibility : no
     - compiler-supports-ssse3 : yes
     - compiler-supports-avx2 : yes
     - gcc visibility : yes
     - long double support : yes
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
     - zlib : yes
     - bzip2 : yes

Component configuration:

     - atomic : building
     - chrono : building
     - container : building
     - context : building
     - coroutine : building
     - coroutine2 : building
     - date_time : building
     - exception : building
     - fiber : building
     - filesystem : building
     - graph : building
     - graph_parallel : building
     - iostreams : building
     - locale : building
     - log : building
     - math : building
     - metaparse : building
     - mpi : building
     - program_options : building
     - python : building
     - random : building
     - regex : building
     - serialization : building
     - signals : building
     - system : building
     - test : building
     - thread : building
     - timer : building
     - type_erasure : building
     - wave : building

...patience...


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