X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gold%2Fobject.cc;h=c98b3c5a7731abf3e204933169886017ded0bfd8;hb=7903e5309890633911c91539e23a407e1f74b959;hp=1f113d14facf76e80ac4edcfee42f419a02575ab;hpb=60e8b3fccd5e6748c420c7ae5d78917af26345fc;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/object.cc b/gold/object.cc index 1f113d14fa..c98b3c5a77 100644 --- a/gold/object.cc +++ b/gold/object.cc @@ -389,6 +389,23 @@ Sized_relobj::do_for_all_local_got_entries( } } +// Get the address of an output section. + +template +uint64_t +Sized_relobj::do_output_section_address( + unsigned int shndx) +{ + // If the input file is linked as --just-symbols, the output + // section address is the input section address. + if (this->just_symbols()) + return this->section_address(shndx); + + const Output_section* os = this->do_output_section(shndx); + gold_assert(os != NULL); + return os->address(); +} + // Class Sized_relobj_file. template @@ -3216,21 +3233,33 @@ Object::find_shdr<64,true>(const unsigned char*, const char*, const char*, #endif #ifdef HAVE_TARGET_32_LITTLE +template +class Sized_relobj<32, false>; + template class Sized_relobj_file<32, false>; #endif #ifdef HAVE_TARGET_32_BIG +template +class Sized_relobj<32, true>; + template class Sized_relobj_file<32, true>; #endif #ifdef HAVE_TARGET_64_LITTLE +template +class Sized_relobj<64, false>; + template class Sized_relobj_file<64, false>; #endif #ifdef HAVE_TARGET_64_BIG +template +class Sized_relobj<64, true>; + template class Sized_relobj_file<64, true>; #endif