From: Ian Lance Taylor Date: Tue, 11 Sep 2007 22:57:35 +0000 (+0000) Subject: Only create a version definition for a shared library. Set the X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=92f0e169b4932e9e143a10788b448d2cac35f770;p=binutils-gdb.git Only create a version definition for a shared library. Set the dynamic symbol index for a version definition when finalizing versions. --- diff --git a/gold/dynobj.cc b/gold/dynobj.cc index 874b4e7fcb4..96488d8f840 100644 --- a/gold/dynobj.cc +++ b/gold/dynobj.cc @@ -1195,7 +1195,10 @@ Versions::record_version(const General_options* options, const char* version = dynpool->add(sym->version(), &version_key); if (!sym->is_from_dynobj()) - this->add_def(options, sym, version, version_key); + { + if (options->is_shared()) + this->add_def(options, sym, version, version_key); + } else { // This is a version reference. @@ -1331,6 +1334,7 @@ Versions::finalize(const Target* target, Symbol_table* symtab, elfcpp::STV_DEFAULT, 0, false); vsym->set_needs_dynsym_entry(); + vsym->set_dynsym_index(dynsym_index); ++dynsym_index; syms->push_back(vsym); // The name is already in the dynamic pool.