From 92f0e169b4932e9e143a10788b448d2cac35f770 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 11 Sep 2007 22:57:35 +0000 Subject: [PATCH] Only create a version definition for a shared library. Set the dynamic symbol index for a version definition when finalizing versions. --- gold/dynobj.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gold/dynobj.cc b/gold/dynobj.cc index 874b4e7..96488d8 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. -- 2.7.4