Opened 5 years ago
Last modified 5 years ago
#13440 new Bugs
Paths to boost libraries contain colons on OS X 10.13 (xcode 9) with Intel's compiler
Reported by: | Owned by: | ||
---|---|---|---|
Milestone: | Boost 1.66.0 | Component: | Building Boost |
Version: | Boost 1.66.0 | Severity: | Regression |
Keywords: | Cc: |
Description
After some changes in build system in boost 1.66 many tests started to fail on Mac OS with Intel's compiler due to colon in paths to boost libraries. With Clang compiler or on Linux this problem does not appear. OS X example:
$ pwd /export/users/ikelarev/test3/boost_1_66_0/libs/array/test $ ../../../b2 toolset=intel-darwin array0 ... testing.capture-output ../../../bin.v2/libs/array/test/array0.test/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin/array0.run /bin/sh: line 9: 26781 Abort trap: 6 "../../../bin.v2/libs/array/test/array0.test/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin/array0" > "../../../bin.v2/libs/array/test/array0.test/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin/array0.output" 2>&1 < /dev/null ====== BEGIN OUTPUT ====== dyld: Library not loaded: libboost_unit_test_framework.dylib Referenced from: /export/users1/ikelarev/test3/boost_1_66_0/libs/array/test/../../../bin.v2/libs/array/test/array0.test/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin/array0 Reason: image not found EXIT STATUS: 134 ====== END OUTPUT ====== DYLD_LIBRARY_PATH="/export/users1/ikelarev/test3/boost_1_66_0/bin.v2/libs/chrono/build/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin:/export/users1/ikelarev/test3/boost_1_66_0/bin.v2/libs/system/build/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin:/export/users1/ikelarev/test3/boost_1_66_0/bin.v2/libs/test/build/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin:/export/users1/ikelarev/test3/boost_1_66_0/bin.v2/libs/timer/build/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin:/nfs/igk/proj/icl/archive/deploy_mainline/efi2mac/20180206_000000/build/mac_prod/mac/bin/lib:/nfs/igk/proj/icl/archive/deploy_mainline/efi2mac/20180206_000000/build/mac_prod/mac/lib/intel64:$DYLD_LIBRARY_PATH" export DYLD_LIBRARY_PATH ...
DYLD_LIBRARY_PATH contains paths like /export/users1/ikelarev/test3/boost_1_66_0/bin.v2/libs/chrono/build/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin:linker-type-darwin
but colon is the path separator and this path will be broken into two parts - /export/users1/ikelarev/test3/boost_1_66_0/bin.v2/libs/chrono/build/intel-darwin/debug/threadapi-pthread/toolset-intel-darwin
and linker-type-darwin
. As a result any library which is placed there will be not found.
With Clang compiler paths look like ../../../bin.v2/libs/chrono/build/darwin-darwin-4.2.1/debug/threadapi-pthread
without "toolset-intel-darwin:linker-type-darwin" part or something similar.
As a workaround we started adding --hash parameter which forces build system to convert incorrect paths with colons into alphanumerical hash sequences.