On Fri, 14 Sep 2012, Ludovic Courtès wrote:
Marc Glisse <marc.glisse@xxxxxxxx> skribis:
On Thu, 13 Sep 2012, Ludovic Courtès wrote:
Hi,
The page at <http://gcc.gnu.org/faq.html>, under “Dynamic linker is
unable to find GCC libraries” reads:
The short explanation is that if you always pass a -R option to the
linker, your programs become dependent on directories which may be NFS
mounted [...]
However, if you feel you really need such an option to be passed
automatically to the linker, you may add it to a GCC specs file. [...]
You may add linker flags such as -R or -rpath, depending on platform
and linker, to the *link or *lib specs.
After spending some time looking at spec strings and at the manual, I
can’t think of a way of emitting ‘-rpath LIBDIR’ for every ‘-LLIBDIR’
encountered.
%{L*:-rpath %*} maybe?
I realize this isn’t sufficient for my purposes: when $LIBRARY_PATH is
used, -L can be omitted, thus bypassing the above trick.
Ideally, for every ‘-lLIB’, it would add ‘-rpath $(dirname $(which
LIB))’, so to speak. That may be beyond what spec strings can express,
though. Or maybe not? :-)
If you bypass the compiler to talk to the linker (LD_* environment
variables, -Wl,* flags), only the linker can help you.
--
Marc Glisse