Subject: Re: [Boost-build] Building on OSX with link=shared
From: Robert Ramey (ramey_at_[hidden])
Date: 2016-01-20 11:11:01
On 1/18/16 8:43 PM, Ian Emmons wrote:
> Sorry for the delay, but I've been working too hard to check my home email for a few days.
> I ran into this problem recently as well. It seems to be related to changes in OSX made in the last major release, version 10.11, a.k.a. El Capitan. One set of changes went under the heading of System Integrity Protection (SIP) [1, 2]. Among the changes was disabling DYLD_LIBRARY_PATH and other environment variables related to the dynamic linker (dyld).
> I solved this by first building Boost's and my shared libraries in the normal way, and then using install_name_tool to change the install names of the resulting .so files. You can find discussions of install names, how they are used to load shared libraries, and how they can be changed in [3, 4, 5].
> I know that's not a simple recipe for success, but I hope it gets you on the right path.
>  https://en.wikipedia.org/wiki/System_Integrity_Protection
>  https://developer.apple.com/library/mac/documentation/Security/
>  https://developer.apple.com/library/mac/documentation/
>  https://blogs.oracle.com/dipol/entry/dynamic_libraries_rpath_and_mac
>  https://wincent.com/wiki/@executable_path,_@load_path_and_@rpath
Thanks for explaining this - it's very helpful.
The context where this problem showed up is running boost test suite
with a variety of compilers and configurations. In this case, the
shared libraries are sprinkled in different places in the bin.v2
directory struction so it's hard to see how to make your solution work
in this case. It seems to me that a a solution in this case would
require significant investment of effort on the part of boost build
team. I'm not sure they could justify this kind of effort. It's sad.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk