From 44ec90b93bb675836c5ebf1498463393f72acb97 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Fri, 5 Mar 2010 21:04:59 +0000 Subject: 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. --- gold/dynobj.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'gold/dynobj.cc') diff --git a/gold/dynobj.cc b/gold/dynobj.cc index dc6b009..fca9bbd 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 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(), - 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(), - false, false, false); + false, false, false, false); this->defs_.push_back(vd); ins.first->second = vd; } -- cgit v1.1