|
Boost : |
Subject: [boost] Parts of linkflags are disappearing: $ISALIST gone
From: Matchek (maciej_at_[hidden])
Date: 2012-03-05 03:38:34
My linkflags setting involves a dollar sign:
linkflags='-R/opt/csw/lib/$ISALIST'
The $ISALIST dynamic token tells the linker to iterate through
supported instruction sets and pick the best one[1].
When the Boost binaries are built, the RPATH in the binaries is
missing the dollar sign and everything after it:
$ /usr/ccs/bin/dump -Lv
work/solaris10-sparc/pkgroot/opt/csw/gxx/lib/sparcv9/libboost_iostreams.so.1.49.0
| grep RPATH
[13] RPATH
/opt/csw/lib/64:/opt/csw/gxx/lib/:/opt/csw/gxx/lib/64:/opt/csw/lib/
Do you see the /opt/csw/lib/ bit with the slash at the end? It could
be explained by the contents of linkflags being interpolated by a
shell. In my build, it's important to pass the dollar sign unchanged.
Here's an example of correctly set RPATH:
/usr/ccs/bin/dump -Lv /opt/csw/lib/libz.so.1 | grep RPATH
[6] RPATH /opt/csw/lib/$ISALIST:/opt/csw/lib
I need to pass the same flag to Boost libraries. Has anyone else seen
this problem?
Maciej
[1] http://docs.oracle.com/cd/E19082-01/819-0690/appendixc-3/index.html
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk