Boost logo

Boost :

Subject: Re: [boost] [test] Test failures for gcc 4.6
From: Raffi Enficiaud (raffi.enficiaud_at_[hidden])
Date: 2016-09-05 17:05:31


Le 05/09/16 à 17:00, Raffi Enficiaud a écrit :
> Le 05/09/16 à 14:28, Raffi Enficiaud a écrit :
>> Le 05/09/16 à 13:15, Andrey Semashev a écrit :
>>> Hi,
>>>
>>> I'm seeing these test failures for gcc 4.6 (MinGW):
>>>
>>> http://www.boost.org/development/tests/develop/developer/output/igaztanaga-develop-gcc-4-6c++11-boost-bin-v2-libs-utility-test-string_ref_test1-test-gcc-mngw-4-6c+-dbg-dbg-symbl-off.html
>>>
>>>
>>>
>>>
>>> Looks like the error originates from Boost.Test, and I can also see lots
>>> of failures in Boost.Test itself for that compiler. Is this a known
>>> problem? Any fixes planned?
>>
>> Thanks for pointing out (and for the reminder). Yes the issue is known:
>> - https://svn.boost.org/trac/boost/ticket/12093
>> - http://lists.boost.org/Archives/boost/2016/03/228198.php
>>
>> There are also other issues with gcc<4.8 in C++0X mode:
>> http://lists.boost.org/Archives/boost/2016/03/228114.php
>>
>> I am currently checking a fix for those, I'll keep you updated.
>>
>> Raffi
>
> The branch "topic/12093-gcc-compilation-issues" of boost.test contain a
> fix that is passing my CI. If somebody has a bit of time for testing
> that would be great.
>
> Thanks,
> Raffi

I managed to fix some of the issues of gcc 4.6, however I still think
there are many issues with this compiler.

For instance, the following code

     template<typename T> \
     binary_expr<ExprType,T, \
         op::name<ValType,typename RhsT<T>::type> > \
     operator oper( T&& rhs ) \
     { \
         return binary_expr<ExprType,T, \
          op::name<ValType,typename RhsT<T>::type> > \
             ( std::forward<ExprType>( \
                 *static_cast<ExprType*>(this) ), \
               std::forward<T>(rhs) ); \
     } \

seem to yield a different type "T" between the return type at the
function declaration and the return statement in the function body.

(the difference is in the "Rhs", the error is
=======
test-organization-ts/test_case_template-test.cpp:38:5: error:
‘boost::test_tools::assertion::binary_expr<Lhs, Rhs, OP>::evaluate(bool)
const [with LExpr = boost::test_tools::assertion::value_expr<int>, Rhs =
int&, OP = boost::test_tools::assertion::op::EQ<int, int, void>]’ is not
a member of
‘boost::test_tools::assertion::binary_expr<boost::test_tools::assertion::value_expr<int>,
int, boost::test_tools::assertion::op::EQ<int, int, void> >’
=======
)

I am also experiencing errors that are outside of boost.test (see below).
If anyone has experience with this compiler (and is willing to help),
please do.

Best,
Raffi

========
gcc.compile.c++
../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi/multithreading-ts/sync-access-test.o
In file included from
../../../boost/exception/detail/exception_ptr.hpp:20:0,
                  from ../../../boost/exception_ptr.hpp:9,
                  from ../../../boost/thread/exceptional_ptr.hpp:10,
                  from ../../../boost/thread/future.hpp:25,
                  from ../../../boost/thread.hpp:24,
                  from multithreading-ts/sync-access-test.cpp:19:
../../../boost/exception/info.hpp: In instantiation of
‘boost::error_info<boost::tag_original_exception_type, const
std::type_info*>’:
../../../boost/exception/detail/exception_ptr.hpp:95:32: instantiated
from here
../../../boost/exception/info.hpp:66:5: error: ‘class
boost::error_info<boost::tag_original_exception_type, const
std::type_info*>’ has no member named ‘value_’
../../../boost/container/detail/pair.hpp:85:30: warning:
‘boost::container::piecewise_construct’ defined but not used
[-Wunused-variable]

     "/usr/bin/g++-4.6" -ftemplate-depth-128 -O0 -fno-inline -Wall
-pedantic -g -pthread -fPIC -m64 -Wno-long-long -Wno-variadic-macros
-pedantic -std=c++0x -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_STATIC_LINK=1
-DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1
-DBOOST_TEST_NO_AUTO_LINK=1 -DBOOST_THREAD_BUILD_LIB=1
-DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_LIB=1
-DBOOST_TIMER_STATIC_LINK=1 -I"../../.." -c -o
"../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi/multithreading-ts/sync-access-test.o"
"multithreading-ts/sync-access-test.cpp"

...failed gcc.compile.c++
../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi/multithreading-ts/sync-access-test.o...
gcc.compile.c++
../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi/pthread/thread.o
In file included from
../../../boost/exception/detail/exception_ptr.hpp:20:0,
                  from ../../../boost/exception_ptr.hpp:9,
                  from ../../../boost/thread/exceptional_ptr.hpp:10,
                  from ../../../boost/thread/future.hpp:25,
                  from ../../../libs/thread/src/pthread/thread.cpp:19:
../../../boost/exception/info.hpp: In instantiation of
‘boost::error_info<boost::tag_original_exception_type, const
std::type_info*>’:
../../../boost/exception/detail/exception_ptr.hpp:95:32: instantiated
from here
../../../boost/exception/info.hpp:66:5: error: ‘class
boost::error_info<boost::tag_original_exception_type, const
std::type_info*>’ has no member named ‘value_’
In file included from ../../../boost/atomic/detail/atomic_template.hpp:25:0,
                  from ../../../boost/atomic/atomic.hpp:22,
                  from ../../../boost/atomic.hpp:12,
                  from ../../../boost/thread/pthread/once_atomic.hpp:20,
                  from ../../../boost/thread/once.hpp:20,
                  from ../../../libs/thread/src/pthread/thread.cpp:17:
../../../boost/atomic/detail/bitwise_cast.hpp: In function ‘To
boost::atomics::detail::bitwise_cast(const From&) [with To = long
unsigned int, From = void*]’:
../../../boost/atomic/detail/atomic_template.hpp:556:139: instantiated
from here
../../../boost/atomic/detail/bitwise_cast.hpp:39:14: warning: missing
initializer for member ‘boost::atomics::detail::bitwise_cast(const
From&) [with To = long unsigned int, From = void*]::<anonymous
struct>::to’ [-Wmissing-field-initializers]
../../../boost/atomic/detail/bitwise_cast.hpp: In function ‘To
boost::atomics::detail::bitwise_cast(const From&) [with To = void*, From
= long unsigned int]’:
../../../boost/atomic/detail/atomic_template.hpp:574:100: instantiated
from here
../../../boost/atomic/detail/bitwise_cast.hpp:39:14: warning: missing
initializer for member ‘boost::atomics::detail::bitwise_cast(const
From&) [with To = void*, From = long unsigned int]::<anonymous
struct>::to’ [-Wmissing-field-initializers]
../../../boost/container/detail/pair.hpp: At global scope:
../../../boost/container/detail/pair.hpp:85:30: warning:
‘boost::container::piecewise_construct’ defined but not used
[-Wunused-variable]

     "/usr/bin/g++-4.6" -ftemplate-depth-128 -O0 -fno-inline -Wall
-pedantic -g -pthread -m64 -Wextra -Wno-long-long -Wno-unused-parameter
-Wunused-function -pedantic -std=c++0x -DBOOST_ALL_NO_LIB=1
-DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1
-DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -I"../../.." -c -o
"../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi/pthread/thread.o"
"../../../libs/thread/src/pthread/thread.cpp"

...failed gcc.compile.c++
../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi/pthread/thread.o...
...skipped
<p../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi>libboost_thread.a(clean)
for lack of
<p../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi>pthread/thread.o...
...skipped
<p../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi>libboost_thread.a
for lack of
<p../../../bin.v2/libs/thread/build/gcc-4.6/debug/link-static/threading-multi>pthread/thread.o...
...skipped
<p../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi>sync-access-test
for lack of
<p../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi>multithreading-ts/sync-access-test.o...
...skipped
<p../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi>sync-access-test.run
for lack of
<p../../../bin.v2/libs/test/test/sync-access-test.test/gcc-4.6/debug/threading-multi>sync-access-test...
...failed updating 4 targets...
...skipped 11 targets...
...updated 4 targets...
==========


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