Boost logo

Boost Testing :

Subject: [Boost-testing] serialization gcc tests
From: Robert Ramey (ramey_at_[hidden])
Date: 2016-06-05 16:23:17


I've trying to get the develop branch of the serialization library to
build and test for weeks without success. Amost every thing compiles
and links, but bails at runtime with exit code 139.

On my own system - macos I have no problem getting several different
versions of gcc to pass in all combinations release/debug, shared/static
and std=c++11 and std=c++03 .

But on the test matrix I'm getting all failures.

"g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -std=c++0x -fPIC
-m64 -Wno-unused-variable -Wno-long-long -ftemplate-depth-255
-DBOOST_ALL_NO_LIB=1 -DBOOST_ARCHIVE_TEST=binary_archive.hpp
-DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_LIB_DIAGNOSTIC=1
-DBOOST_SYSTEM_DYN_LINK=1 -D_GLIBCXX_DEBUG -D_STLP_DEBUG -I".." -c -o
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/test_array.o"
"../libs/serialization/test/test_array.cpp"

Link [2016-06-05 09:38:55 UTC]: succeed

"g++" -Wl,-R
-Wl,"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/filesystem/build/gcc-4.4~c0x/debug"
-Wl,-R
-Wl,"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/build/gcc-4.4~c0x/debug"
-Wl,-R
-Wl,"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/system/build/gcc-4.4~c0x/debug"
-Wl,-rpath-link
-Wl,"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/filesystem/build/gcc-4.4~c0x/debug"
-Wl,-rpath-link
-Wl,"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/build/gcc-4.4~c0x/debug"
-Wl,-rpath-link
-Wl,"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/system/build/gcc-4.4~c0x/debug"
-o
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/test_array_binary_archive"
-Wl,--start-group
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/test_array.o"
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/A.o"
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/build/gcc-4.4~c0x/debug/libboost_serialization.so.1.62.0"
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/filesystem/build/gcc-4.4~c0x/debug/libboost_filesystem.so.1.62.0"
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/system/build/gcc-4.4~c0x/debug/libboost_system.so.1.62.0"
  -Wl,-Bstatic -Wl,-Bdynamic -Wl,--end-group -g -m64

RmTemps
/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/test_array_binary_archive

     rm -f
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/test_array.o"
"/home/jenkins/workspace/Boost/Boost_Regression_Develop/results/boost/bin.v2/libs/serialization/test/test_array_binary_archive.test/gcc-4.4~c0x/debug/A.o"

Run [2016-06-05 09:38:55 UTC]: fail

EXIT STATUS: 139

Possible things to look at.

a) Very suspicious: I see -DBOOST_FILESYSTEM_DYN_LINK=1 and
-DBOOST_SYSTEM_DYN_LINK=1 but I DON'T see
BOOST_SERIALIZATION_DYN_LINK=1

This would suggest that the serialization library is being linked
statically while the other libraries are being linked dynamically
which, in windows at least, usually leads to disaster.

b) I see -fPIC . I understant that dynamic libraries need to be
PIC But that static libaries don't. Could be aproblem here.

c) On my own system I use a command line like

b2 -j4 toolset=darwin-4.8 cxxflags=-std=c++03 variant=debug link=static
>b2.log &

so I'm explicitly specifying debug/release shared/static and
the C++ version switches. I believe this should guarentee that
the are all consistent between imported and instrinsic libraries.
I can't figure out how this works with the test runners.

I would like to know if anyone else can confirm my local results
and any other usefule information.

Robert Ramey


Boost-testing list run by mbergal at meta-comm.com