Opened 7 years ago
Last modified 7 years ago
#11807 new Bugs
sun.jam needs updating when creating shared libraries compiled with -std=[c++03,c++11] mode.
Reported by: | Owned by: | Vladimir Prus | |
---|---|---|---|
Milestone: | To Be Determined | Component: | build |
Version: | Boost 1.60.0 | Severity: | Problem |
Keywords: | Cc: |
Description
When compiling with Oracle Solaris Studio compilers in -std=[c++03,c++11] modes, several python tests fail with the following error:
ImportError: ld.so.1: isapython2.6: fatal: relocation error: file /export/home/boost_regression_develop/boost_sparc-S2_cpp11/results/boost/bin.v2/libs/python/test/injected.test/sun-next_cpp11/ release/threading-multi/injected_ext.so: symbol _ZTIv: referenced symbol not found
These errors occur when any libraries that are linked into the application that has no C++11 runtime already linked in.
When creating shared libraries, for line 159 in the sun.jam file
157 actions link.dll bind LIBRARIES 158 { 159 "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" -h$(<[1]:D=) -G $(STDLIBOPT) "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME) 160 }
replacing '-G' with '-G -library=stdcpp,CrunG3'
seems to resolve the issue.
I will submit a PR shortly and specify the PR# to this ticket for reference. If interested, here is the archive on the Boost developers build regarding this issue. http://lists.boost.org/boost-build/2015/11/28379.php
PR submitted.
https://github.com/boostorg/build/pull/109