diff options
author | Doug Kwan <dougkwan@google.com> | 2009-10-16 19:11:32 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2009-10-16 19:11:32 +0000 |
commit | c5617f2fb6d7c6a1898d920ac662209a195b3c9e (patch) | |
tree | 3cc0e6f7022a7431503777045283809c0aa3f762 /gold/dynobj.h | |
parent | 0a8d1bde177b4f1ef4df5ba6a7b79a9df3d1497f (diff) | |
download | gdb-c5617f2fb6d7c6a1898d920ac662209a195b3c9e.zip gdb-c5617f2fb6d7c6a1898d920ac662209a195b3c9e.tar.gz gdb-c5617f2fb6d7c6a1898d920ac662209a195b3c9e.tar.bz2 |
2009-10-16 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.
Diffstat (limited to 'gold/dynobj.h')
-rw-r--r-- | gold/dynobj.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gold/dynobj.h b/gold/dynobj.h index 2768c83..66d2bff 100644 --- a/gold/dynobj.h +++ b/gold/dynobj.h @@ -584,6 +584,10 @@ class Versions version_index(const Symbol_table*, const Stringpool*, const Symbol* sym) const; + // Define the base version of a shared library. + void + define_base_version(Stringpool* dynpool); + // We keep a hash table mapping canonicalized name/version pairs to // a version base. typedef std::pair<Stringpool::Key, Stringpool::Key> Key; @@ -616,6 +620,9 @@ class Versions bool is_finalized_; // Contents of --version-script, if passed, or NULL. const Version_script_info& version_script_; + // Whether we need to insert a base version. This is only used for + // shared libaries and is cleared when the base version is defined. + bool needs_base_version_; }; } // End namespace gold. |