ld: improve linker script section
authorMike Frysinger <vapier@gentoo.org>
Tue, 20 Jul 2010 19:25:42 +0000 (19:25 +0000)
committerMike Frysinger <vapier@gentoo.org>
Tue, 20 Jul 2010 19:25:42 +0000 (19:25 +0000)
The example version script in the manual currently suggests:
extern "C++" { "int f(int, double)"; }

But a C++ function like that doesn't encode the return type into the
mangled  name, so when the linker demangles things, it ends up with
"f(int, double)"  and so it never matches.

The example also lacks a trailing semicolon after the brace, so the
linker always complains about a syntax error in the file.

While the language section documents the possibilities, it isn't clear
as to which is the default language.  So explicitly state that the C
language is the default.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ld/ChangeLog
ld/ld.texinfo

index 80bcd2570ca460e5408b3137941c0a81390ece2b..24d2cfd74a90a84f7fdc1e46ae794d50b67f0015 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-20  Mike Frysinger  <vapier@gentoo.org>
+
+       * ld.texinfo (VERSION): Remove "int" from example script and add ";".
+       Declare the default language as C.
+
 2010-07-17  Alan Modra  <amodra@gmail.com>
 
        * ldlang.c (lang_check_section_addresses): Catch overlap for
index 808f2952db1a69f6f45cc1348c3a0f07367a8ab4..8928350ea44b1363d5e056bedc85a3fde22d9dcc 100644 (file)
@@ -4910,8 +4910,8 @@ VERS_2.0 @{
                 bar1; bar2;
         extern "C++" @{
                 ns::*;
-                "int f(int, double)";
-         @}
+                "f(int, double)";
+        @};
 @} VERS_1.2;
 @end smallexample
 
@@ -5036,7 +5036,8 @@ VERSION extern "lang" @{ version-script-commands @}
 The supported @samp{lang}s are @samp{C}, @samp{C++}, and @samp{Java}.
 The linker will iterate over the list of symbols at the link time and
 demangle them according to @samp{lang} before matching them to the
-patterns specified in @samp{version-script-commands}.
+patterns specified in @samp{version-script-commands}.  The default
+@samp{lang} is @samp{C}.
 
 Demangled names may contains spaces and other special characters.  As
 described above, you can use a glob pattern to match demangled names,