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.