On 7/14/2015 9:24 PM, Deniz Bahadir wrote:
Am 14.07.2015 um 05:54 schrieb Marshall Clow:
Release candidate files for 1.59.0 beta 1 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_59_0_b1_rc1.7z) = f54a97e5ee7f8e3d04cd9af8396e30f9 MD5 (boost_1_59_0_b1_rc1.tar.bz2) = 9804305aae0c9de9f8cfc02e3de75167 MD5 (boost_1_59_0_b1_rc1.tar.gz) = e584770bd76885c123a0426d24466fe2 MD5 (boost_1_59_0_b1_rc1.zip) = ee34f223aa789a6b3f727cb9480651ed
Thanks!
-- The release managers
These are the results for compiling Boost 1.59.0-beta1-RC1 on Debian 7 (64 bit):
Success for the following compilers and settings: * GCC-4.8 with C++11 * GCC-4.9 with C++11 * GCC-5.1 with C++14 * Clang-3.5 with C++14 and libc++
Failure for the following compilers and settings: * GCC-4.8 with C++11 and preprocessed MPL-Headers (up to 100 elements) * GCC-4.9 with C++11 and preprocessed MPL-Headers (up to 100 elements) * GCC-5.1 with C++14 and preprocessed MPL-Headers (up to 100 elements) * Clang-3.5 with C++14 and preprocessed MPL-Headers (up to 100 elements)
Note1: The MPL-Headers were preprocessed using the scripts in libs/mpl/preprocessed. (See: https://svn.boost.org/trac/boost/ticket/11224 and https://github.com/boostorg/mpl/pull/20 and https://github.com/boostorg/mpl/pull/21)
Note2: See further down for the error-message and the bugfix.
Note3: With the bugfix, everything compiles smoothly!
I used the following Boost.Build command:
<VERBATIM>
b2 -j4 -q --build-dir=/tmp/TEST-Boost \ --build-type=complete \ --layout=versioned \ address-model=64 \ install \ --prefix="/opt/TEST-Boost" \ toolset=${TOOLSET} \ cflags="-fPIC" \ cxxflags="-fPIC -std=${CXX_STD} ${STDLIB}" \ dll-path="/opt/TEST-Boost/lib/x86_64-linux-gnu"
</VERBATIM>
with ${TOOLSET} being one of: gcc-4.8 gcc-4.9 gcc-5 clang-3.5 with ${CXX_STD} being one of: c++11 c++14 with ${CXX_STDLIB} being empty for GCC and for Clang: -stdlib=libc++
Boost.Build prints the following configuration-result:
<VERBATIM>
Performing configuration checks
- 32-bit : no - 64-bit : yes - arm : no - mips1 : no - power : no - sparc : no - x86 : yes - lockfree boost::atomic_flag : 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 - iconv (libc) : yes - icu : yes - compiler-supports-visibility : yes - 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 (cached) - zlib : yes (cached) - zlib : yes (cached) - zlib : yes - zlib : yes (cached) - zlib : yes (cached) - zlib : yes (cached) - zlib : yes (cached) - zlib : yes (cached) - zlib : yes (cached) - zlib : yes (cached)
Component configuration:
- atomic : building - chrono : building - container : building - context : building - coroutine : building - date_time : building - exception : building - filesystem : building - graph : building - graph_parallel : building - iostreams : building - locale : building - log : building - math : building - mpi : building - program_options : building - python : building - random : building - regex : building - serialization : building - signals : building - system : building - test : building - thread : building - timer : building - wave : building
</VERBATIM>
The error-messages with preprocessed MPl-headers:
<VERBATIM>
gcc.compile.c++ /home/jenkins/workspace/TEST_Boost_1_59_0_b1_rc1/build/boost/bin.v2/libs/log/build/gcc-5/debug/link-static/log-api-unix/threading-multi/default_formatter_factory.o
In file included from ./boost/mpl/aux_/include_preprocessed.hpp:37:0, from ./boost/mpl/vector.hpp:46, from libs/log/src/default_formatter_factory.cpp:21: ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1281:15: error: expected template-name before ‘<’ token : vector51< ^ ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1281:15: error: expected ‘{’ before ‘<’ token ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1281:15: error: expected unqualified-id before ‘<’ token ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1313:15: error: expected template-name before ‘<’ token : vector52< ^ ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1313:15: error: expected ‘{’ before ‘<’ token ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1313:15: error: expected unqualified-id before ‘<’ token ./boost/mpl/aux_/preprocessed/gcc/vector.hpp:1345:15: error: expected template-name before ‘<’ token : vector53< ^ [...]
</VERBATIM>
The reasons seems to be that "default_formatter_factory.cpp" does not use the original value of BOOST_MPL_LIMIT_VECTOR_SIZE, but instead replaces it with 50, but is not defining BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS.
A working bugfix is to define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS before undef-ing and re-defining BOOST_MPL_LIMIT_VECTOR_SIZE.
BTW: When compiling with C++11 and C++14 hundreds of warnings will be generated because of deprecated "auto_ptr". I would recommend hiding these warning when compiling with C++11/C++14, because they clutter the entire output. (Fixing the warnings would be preferred, but I am not sure if this is really possible.)
<VERBATIM>
[...] gcc.compile.c++ /home/jenkins/workspace/TEST_Boost_1_59_0_b1_rc1/build/boost/bin.v2/libs/context/build/gcc-5/debug/link-static/threading-multi/posix/stack_traits.o
In file included from ./boost/smart_ptr/shared_ptr.hpp:28:0, from ./boost/shared_ptr.hpp:17, from ./boost/date_time/time_clock.hpp:17, from ./boost/thread/thread_time.hpp:9, from ./boost/thread/lock_types.hpp:18, from ./boost/thread/pthread/thread_data.hpp:12, from ./boost/thread/thread_only.hpp:17, from ./boost/thread/thread.hpp:12, from ./boost/thread.hpp:13, from libs/context/src/posix/stack_traits.cpp:23: ./boost/smart_ptr/detail/shared_count.hpp:396:33: warning: template<class> class std::auto_ptr is deprecated [-Wdeprecated-declarations] explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) ) ^ In file included from /usr/include/c++/5/memory:81:0, from ./boost/config/no_tr1/memory.hpp:21, from ./boost/smart_ptr/shared_ptr.hpp:23, from ./boost/shared_ptr.hpp:17, from ./boost/date_time/time_clock.hpp:17, from ./boost/thread/thread_time.hpp:9, from ./boost/thread/lock_types.hpp:18, from ./boost/thread/pthread/thread_data.hpp:12, from ./boost/thread/thread_only.hpp:17, from ./boost/thread/thread.hpp:12, from ./boost/thread.hpp:13, from libs/context/src/posix/stack_traits.cpp:23: /usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here template<typename> class auto_ptr; ^ In file included from ./boost/shared_ptr.hpp:17:0, from ./boost/date_time/time_clock.hpp:17, from ./boost/thread/thread_time.hpp:9, from ./boost/thread/lock_types.hpp:18, from ./boost/thread/pthread/thread_data.hpp:12, from ./boost/thread/thread_only.hpp:17, from ./boost/thread/thread.hpp:12, from ./boost/thread.hpp:13, from libs/context/src/posix/stack_traits.cpp:23: ./boost/smart_ptr/shared_ptr.hpp:249:65: warning: template<class> class std::auto_ptr is deprecated [-Wdeprecated-declarations] template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R > ^ [...]
</VERBATIM>
The changes in MPL on 'develop' which fixed your bug never was applied to the 'master' branch. I take some responsibility for that as I was the one who discussed with you and approved the fix on 'develop'. As a matter of fact their are quite a few updates to MPL on 'develop' to fix MPL bugs, among which your fix is one of them and Bruno Dutra's fixes are others, which have been extensively regression tested on 'develop' but which were not merged to 'master' for the upcoming release. While I fell asleep regarding this I am not the only one with write access to MPL and in fact the community maintenance team also has write access to MPL and no one there thought of merging MPL 'develop' to 'master' in time for 'master' regression testing and therefore having these fixes be in the upcoming release. Because MPL is so central to everything it seems it is too late to get these fixes into 'master', have the regression tested on 'master' and into the upcoming release at this point.