This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][GOLD] Do not generate .gnu.version* if no symbol versioning is used.


Hi,

   This patch fixes a problem of that .gnu.version* sections are
always generated in a shared object even if no symbol versioning is
used in the input objects.   This has been tested on x86_64.  All test
cases, including a new one added by this patch, passed.

-Doug

2009-10-10  Doug Kwan  <dougkwan@google.com>

        * dynobj.cc (Versions::Versions): Initialize version_script_.
        Only insert base version symbol definition for a shared object
        if version script defines any version versions.
        (Versions::define_base_version): New method definition.
        (Versions::add_def): Check that base version is not needed.
        (Versions::add_need): Define base version lazily.
        * dynobj.h (Versions::define_base_version): New method declaration.
        (Versions::needs_base_version_): New data member declaration.
        * testsuite/Makefile.am (check_SCRIPTS): Add no_version_test.sh
        (check_DATA): Add no_version_test.stdout.
        (libno_version_test.so, no_version_test.o no_version_test.stdout):
        New make rules.
        * testsuite/Makefile.in: Regenerate.
        * testsuite/no_version_test.c: New file.
        * testsuite/no_version_test.sh: Ditto.

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]