Subject: [Boost-bugs] [Boost C++ Libraries] #3479: Cannot use $ORIGIN in <dll-path> when building boost
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-09-22 17:53:40
#3479: Cannot use $ORIGIN in <dll-path> when building boost
-----------------------------------------------+----------------------------
Reporter: Chris BeHanna <chris@â¦> | Owner:
Type: Bugs | Status: new
Milestone: Boost 1.41.0 | Component: Building Boost
Version: Boost 1.40.0 | Severity: Problem
Keywords: |
-----------------------------------------------+----------------------------
Boost 1.40.0 has internal library dependencies (e.g.,
libboost_filesystem.so depends upon libboost_system.so) that I wanted to
be able to automatically satisfy at run-time via RPATH. The most
straightforward way to do this would be to embed an RPATH of
$ORIGIN/../lib in the shared libraries (or even, more simply, $ORIGIN).
Unfortunately, there is no way that I could discern to modify project-
config.jam to escape $ORIGIN so that it would get passed through to the
linker. I attempted to change the gcc toolset line to
if ! gcc in [ feature.values <toolset> ]
{
using gcc : : : <dll-path>\$ORIGIN/../lib <linkoptions>-z origin ;
}
but no matter what combination of single quotes, backslashes, etc., that I
tried, $ORIGIN got evaluated as an empty shell variable, and I'd end up
with /../lib as my RPATH.
In desperation, to move forward with my project, I hacked gcc.jam
directly, and that produced the desired effect, but obviously, this is not
a production-quality solution.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/3479> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:01 UTC