[Boost-bugs] [Boost C++ Libraries] #3479: Cannot use $ORIGIN in <dll-path> when building boost

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