From cb840a31ad6c4931be63584da61cfe1e3f311d83 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 19 Jun 2001 15:22:39 +0000 Subject: [PATCH] 2001-06-19 H.J. Lu * ld.texinfo (-E, --export-dynamic): Mention --version-script. (--version-script): Mention the language support. --- ld/ChangeLog | 5 +++++ ld/ld.texinfo | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index adf54cd1400..9810435cf06 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2001-06-19 H.J. Lu + + * ld.texinfo (-E, --export-dynamic): Mention --version-script. + (--version-script): Mention the language support. + 2001-06-19 H.J. Lu * ldlang.c (lang_check): Revert the change mode on 2001-06-15. diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 556f3cae882..166c4f10aa2 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -444,6 +444,10 @@ back to the symbols defined by the program, rather than some other dynamic object, then you will probably need to use this option when linking the program itself. +You can also use the version script to control what symbols should +be added to the dynamic symbol table if the output format supports it. +See the description of @samp{--version-script} in @ref{VERSION}. + @cindex big-endian objects @cindex endianness @kindex -EB @@ -3537,6 +3541,17 @@ within the shared library, you can use the aliases of convenience (i.e. @samp{old_foo}), or you can use the @samp{.symver} directive to specifically bind to an external version of the function in question. +You can also specify the language in the version script: + +@smallexample +VERSION extern "lang" @{ version-script-commands @} +@end smallexample + +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}. + @node Expressions @section Expressions in Linker Scripts @cindex expressions -- 2.30.2