Re: Spec strings to pass ‘-rpath’ for each ‘-L’

Marc Glisse marc.glisse@inria.fr
Thu Sep 13 23:22:00 GMT 2012


On Fri, 14 Sep 2012, Ludovic Courtès wrote:

> Marc Glisse <marc.glisse@inria.fr> 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



More information about the Gcc-help mailing list