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: Ivan Kelarev <ivan.kelarev@…> 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.

Change History (1)

comment:1 by Ivan Kelarev <ivan.kelarev@…>, 5 years ago

As a workaround we started adding --hash parameter which forces build system to convert incorrect paths with colons into alphanumerical hash sequences.

Note: See TracTickets for help on using tickets.