summaryrefslogtreecommitdiff
path: root/gold/dynobj.cc
diff options
context:
space:
mode:
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2010-03-05 21:04:57 +0000
committerRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2010-03-05 21:04:57 +0000
commitab127c9f571339775a84fe9c3d16eb76bbcd9d1a (patch)
tree8948cc8cb3cfd2d1d86b536cbea795e8e58e8102 /gold/dynobj.cc
parentcd7bebbcf23c92024741f9ca38928a921f1ece4d (diff)
downloadbinutils-redhat-ab127c9f571339775a84fe9c3d16eb76bbcd9d1a.tar.gz
include:
* elf/common.h (VER_FLG_*): Document. (VER_FLG_INFO): Define. gold: * dynobj.h (Verdef::Verdef): Add is_info arg, is_info member function, is_info_ member. * dynobj.cc (Verdef::write): Set VER_FLG_INFO if this->is_info_. (Versions::Versions): Update caller. (Versions::define_base_version): Likewise. (Versions::add_def): Likewise. elfcpp: * elfcpp.h (VER_FLG_INFO): Define. binutils: * readelf.c (get_ver_flags): Handle VER_FLG_INFO.
Diffstat (limited to 'gold/dynobj.cc')
-rw-r--r--gold/dynobj.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/gold/dynobj.cc b/gold/dynobj.cc
index dc6b009f49..fca9bbdf61 100644
--- a/gold/dynobj.cc
+++ b/gold/dynobj.cc
@@ -1221,7 +1221,8 @@ Verdef::write(const Stringpool* dynpool, bool is_last, unsigned char* pb) const
elfcpp::Verdef_write<size, big_endian> vd(pb);
vd.set_vd_version(elfcpp::VER_DEF_CURRENT);
vd.set_vd_flags((this->is_base_ ? elfcpp::VER_FLG_BASE : 0)
- | (this->is_weak_ ? elfcpp::VER_FLG_WEAK : 0));
+ | (this->is_weak_ ? elfcpp::VER_FLG_WEAK : 0)
+ | (this->is_info_ ? elfcpp::VER_FLG_INFO : 0));
vd.set_vd_ndx(this->index());
vd.set_vd_cnt(1 + this->deps_.size());
vd.set_vd_hash(Dynobj::elf_hash(this->name()));
@@ -1353,7 +1354,7 @@ Versions::Versions(const Version_script_info& version_script,
Verdef* const vd = new Verdef(
version,
this->version_script_.get_dependencies(version),
- false, false, false);
+ false, false, false, false);
this->defs_.push_back(vd);
Key key(version_key, 0);
this->version_table_.insert(std::make_pair(key, vd));
@@ -1391,7 +1392,7 @@ Versions::define_base_version(Stringpool* dynpool)
name = parameters->options().output_file_name();
name = dynpool->add(name, false, NULL);
Verdef* vdbase = new Verdef(name, std::vector<std::string>(),
- true, false, true);
+ true, false, false, true);
this->defs_.push_back(vdbase);
this->needs_base_version_ = false;
}
@@ -1474,7 +1475,7 @@ Versions::add_def(const Symbol* sym, const char* version,
// When creating a regular executable, automatically define
// a new version.
Verdef* vd = new Verdef(version, std::vector<std::string>(),
- false, false, false);
+ false, false, false, false);
this->defs_.push_back(vd);
ins.first->second = vd;
}