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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marc,

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?

Woow, indeed!

What about adding it as an example to the FAQ entry, and/or to the “Spec
Files” node of the manual?  For instance along these lines:

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 42285a7..a47a702 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -10200,7 +10200,14 @@ Substitutes @code{X} if one or more switches whose names start with
 once, no matter how many such switches appeared.  However, if @code{%*}
 appears somewhere in @code{X}, then @code{X} will be substituted once
 for each matching switch, with the @code{%*} replaced by the part of
-that switch that matched the @code{*}.
+that switch that matched the @code{*}.  Consider this example:
+
+@example
+%@{L*: -rpath %*@}
+@end example
+
+For each occurrence of a @code{-L@var{libdir}} command-line switch, the
+above expands to @code{-rpath @var{libdir}}.
 
 @item %@{.@code{S}:@code{X}@}
 Substitutes @code{X}, if processing a file with suffix @code{S}.
Regarding that section of the manual, I was also confused by the use of
the verb “to substitute” not followed by “with” or “for”.  “Expands to”
(as for macros) would seem more appropriate to me.  WDYT?

Thanks!

Ludo’.

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux