diff options
author | Cary Coutant <ccoutant@google.com> | 2011-05-24 21:41:10 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2011-05-24 21:41:10 +0000 |
commit | 6fa2a40bf45fcc738eb580a6b644ac74b42c2d6a (patch) | |
tree | 41ae0a8dbe33a58e626c8fbcaa13f0b435b193bf /gold/reloc.cc | |
parent | 2e21250dbcb81b1909ba3fbda8931a47c7215beb (diff) | |
download | binutils-gdb-6fa2a40bf45fcc738eb580a6b644ac74b42c2d6a.tar.gz |
* incremental-dump.cc (dump_incremental_inputs): Print dynamic reloc
info; adjust display of GOT entries.
* incremental.cc (Sized_incremental_binary::setup_readers): Allocate
vector of input objects; remove file_status_.
(Sized_incremental_binary::do_reserve_layout): Remove file_status_.
(Sized_incremental_binary::do_process_got_plt): Adjust calls to
got_plt reader; call target hooks to reserve GOT entries.
(Output_section_incremental_inputs::set_final_data_size): Adjust size
of input file info header and GOT info entry.
(Output_section_incremental_inputs::write_info_blocks): Write dynamic
relocation info.
(Got_plt_view_info::got_descriptor): Remove.
(Got_plt_view_info::sym_index): New data member.
(Got_plt_view_info::input_index): New data member.
(Local_got_offset_visitor::visit): Write input file index.
(Global_got_offset_visitor::visit): Write 0 for input file index.
(Global_symbol_visitor_got_plt::operator()): Replace got_descriptor
with sym_index and input_index.
(Output_section_incremental_inputs::write_got_plt): Adjust size of
incremental info GOT entry; replace got_descriptor with input_index.
(Sized_relobj_incr::Sized_relobj_incr): Adjust initializers; record
map from input file index to object.
(Sized_relobj_incr::do_layout): Replace direct data member reference
with accessor function.
(Sized_relobj_incr::do_for_all_local_got_entries): Move to base class.
* incremental.h (Incremental_input_entry_reader::get_symbol_offset):
Adjust size of input file info header.
(Incremental_input_entry_reader::get_first_dyn_reloc): New function.
(Incremental_input_entry_reader::get_dyn_reloc_count): New function.
(Incremental_input_entry_reader::get_input_section): Adjust size of
input file info header.
(Incremental_got_plt_reader::Incremental_got_plt_reader): Adjust size
of incremental info GOT entry.
(Incremental_got_plt_reader::get_got_desc): Remove.
(Incremental_got_plt_reader::get_got_symndx): New function.
(Incremental_got_plt_reader::get_got_input_index): New function.
(Sized_incremental_binary::Sized_incremental_binary): Remove
file_status_; add input_objects_.
(Sized_incremental_binary::~Sized_incremental_binary): Remove.
(Sized_incremental_binary::set_file_is_unchanged): Remove.
(Sized_incremental_binary::file_is_unchanged): Remove.
(Sized_incremental_binary::set_input_object): New function.
(Sized_incremental_binary::input_object): New function.
(Sized_incremental_binary::file_status_): Remove.
(Sized_incremental_binary::input_objects_): New data member.
(Sized_relobj_incr): Rename Sized_incr_relobj to this; adjust all
references.
(Sized_relobj_incr::invalid_address): Move to base class.
(Sized_relobj_incr::is_output_section_offset_invalid): Move to base
class.
(Sized_relobj_incr::do_output_section_offset): Likewise.
(Sized_relobj_incr::do_for_all_local_got_entries): Likewise.
(Sized_relobj_incr::section_offsets_): Likewise.
* object.cc (Sized_relobj::do_for_all_local_got_entries): New
function.
(Sized_relobj_file::Sized_relobj_file): Remove local_got_offsets_.
(Sized_relobj_file::layout_section): Replace refs to section_offsets_
with accessor function.
(Sized_relobj_file::do_layout): Likewise.
(Sized_relobj_file::do_layout_deferred_sections): Likewise.
(Sized_relobj_file::do_for_all_local_got_entries): Move to base class.
(Sized_relobj_file::compute_final_local_value): Replace refs to
section_offsets_ with accessor function.
(Sized_relobj_file::do_finalize_local_symbols): Likewise.
* object.h (Relobj::Relobj): Initialize new data members.
(Relobj::add_dyn_reloc): New function.
(Relobj::first_dyn_reloc): New function.
(Relobj::dyn_reloc_count): New function.
(Relobj::first_dyn_reloc_): New data member.
(Relobj::dyn_reloc_count_): New data member.
(Sized_relobj): Rename Sized_relobj_base to this; adjust all
references.
(Sized_relobj::Address): New typedef.
(Sized_relobj::invalid_address): Move here from child class.
(Sized_relobj::Sized_relobj): Initialize new data members.
(Sized_relobj::sized_relobj): New function.
(Sized_relobj::is_output_section_offset_invalid): Move here from
child class.
(Sized_relobj::get_output_section_offset): Likewise.
(Sized_relobj::local_has_got_offset): Likewise.
(Sized_relobj::local_got_offset): Likewise.
(Sized_relobj::set_local_got_offset): Likewise.
(Sized_relobj::do_for_all_local_got_entries): Likewise.
(Sized_relobj::clear_got_offsets): New function.
(Sized_relobj::section_offsets): Move here from child class.
(Sized_relobj::do_output_section_offset): Likewise.
(Sized_relobj::do_set_section_offset): Likewise.
(Sized_relobj::Local_got_offsets): Likewise.
(Sized_relobj::local_got_offsets_): Likewise.
(Sized_relobj::section_offsets_): Likewise.
(Sized_relobj_file): Rename Sized_relobj to this; adjust all
references.
(Sized_relobj_file::is_output_section_offset_invalid): Move to base
class.
(Sized_relobj_file::sized_relobj): New function
(Sized_relobj_file::local_has_got_offset): Move to base class.
(Sized_relobj_file::local_got_offset): Likewise.
(Sized_relobj_file::set_local_got_offset): Likewise.
(Sized_relobj_file::get_output_section_offset): Likewise.
(Sized_relobj_file::do_for_all_local_got_entries): Likewise.
(Sized_relobj_file::do_output_section_offset): Likewise.
(Sized_relobj_file::do_set_section_offset): Likewise.
(Sized_relobj_file::Local_got_offsets): Likewise.
(Sized_relobj_file::local_got_offsets_): Likewise.
(Sized_relobj_file::section_offsets_): Likewise.
* output.cc (Output_reloc::Output_reloc): Adjust type of relobj
(all constructors).
(set_needs_dynsym_index): Convert relobj to derived class pointer.
(Output_reloc::get_symbol_index): Likewise.
(Output_reloc::local_section_offset): Likewise.
(Output_reloc::get_address): Likewise.
(Output_reloc::symbol_value): Likewise.
(Output_data_got::reserve_slot): Move to class definition.
(Output_data_got::reserve_local): New function.
(Output_data_got::reserve_slot_for_global): Remove.
(Output_data_got::reserve_global): New function.
* output.h (Output_reloc::Output_reloc): Adjust type of relobj
(all constructors, two instantiations).
(Output_reloc::get_relobj): New function (two instantiations).
(Output_reloc::u1_.relobj, Output_reloc::u2_.relobj): Adjust type.
(Output_data_reloc_base::add): Convert relobj to derived class pointer.
(Output_data_reloc::add_global): Adjust type of relobj.
(Output_data_reloc::add_global_relative): Likewise.
(Output_data_reloc::add_symbolless_global_addend): Likewise.
(Output_data_reloc::add_local): Likewise.
(Output_data_reloc::add_local_relative): Likewise.
(Output_data_reloc::add_symbolless_local_addend): Likewise.
(Output_data_reloc::add_local_section): Likewise.
(Output_data_reloc::add_output_section): Likewise.
(Output_data_reloc::add_absolute): Likewise.
(Output_data_reloc::add_target_specific): Likewise.
(Output_data_got::reserve_slot): Move definition here.
(Output_data_got::reserve_local): New function.
(Output_data_got::reserve_global): New function.
* reloc.cc (Sized_relobj_file::do_read_relocs): Replace refs to
section_offsets_ with accessor function.
(Sized_relobj_file::write_sections): Likewise.
(Sized_relobj_file::do_relocate_sections): Likewise.
* target.h (Sized_target::reserve_local_got_entry): New function.
(Sized_target::reserve_global_got_entry): New function.
* x86_64.cc (Target_x86_64::reserve_local_got_entry): New function.
(Target_x86_64::reserve_global_got_entry): New function.
(Target_x86_64::init_got_plt_for_update): Create rela_dyn section.
Diffstat (limited to 'gold/reloc.cc')
-rw-r--r-- | gold/reloc.cc | 162 |
1 files changed, 81 insertions, 81 deletions
diff --git a/gold/reloc.cc b/gold/reloc.cc index c58e42b5a54..97ed33715a7 100644 --- a/gold/reloc.cc +++ b/gold/reloc.cc @@ -258,7 +258,7 @@ Relocate_task::get_name() const template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::do_read_relocs(Read_relocs_data* rd) +Sized_relobj_file<size, big_endian>::do_read_relocs(Read_relocs_data* rd) { rd->relocs.clear(); @@ -269,7 +269,7 @@ Sized_relobj<size, big_endian>::do_read_relocs(Read_relocs_data* rd) rd->relocs.reserve(shnum / 2); const Output_sections& out_sections(this->output_sections()); - const std::vector<Address>& out_offsets(this->section_offsets_); + const std::vector<Address>& out_offsets(this->section_offsets()); const unsigned char* pshdrs = this->get_view(this->elf_file_.shoff(), shnum * This::shdr_size, @@ -380,9 +380,9 @@ Sized_relobj<size, big_endian>::do_read_relocs(Read_relocs_data* rd) template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::do_gc_process_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd) +Sized_relobj_file<size, big_endian>::do_gc_process_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd) { Sized_target<size, big_endian>* target = parameters->sized_target<size, big_endian>(); @@ -420,7 +420,7 @@ Sized_relobj<size, big_endian>::do_gc_process_relocs(Symbol_table* symtab, template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::do_scan_relocs(Symbol_table* symtab, +Sized_relobj_file<size, big_endian>::do_scan_relocs(Symbol_table* symtab, Layout* layout, Read_relocs_data* rd) { @@ -537,7 +537,7 @@ class Emit_relocs_strategy template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::emit_relocs_scan( +Sized_relobj_file<size, big_endian>::emit_relocs_scan( Symbol_table* symtab, Layout* layout, const unsigned char* plocal_syms, @@ -564,7 +564,7 @@ Sized_relobj<size, big_endian>::emit_relocs_scan( template<int size, bool big_endian> template<int sh_type> void -Sized_relobj<size, big_endian>::emit_relocs_scan_reltype( +Sized_relobj_file<size, big_endian>::emit_relocs_scan_reltype( Symbol_table* symtab, Layout* layout, const unsigned char* plocal_syms, @@ -590,7 +590,7 @@ Sized_relobj<size, big_endian>::emit_relocs_scan_reltype( template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::incremental_relocs_scan( +Sized_relobj_file<size, big_endian>::incremental_relocs_scan( const Read_relocs_data::Relocs_list::iterator& p) { if (p->sh_type == elfcpp::SHT_REL) @@ -608,7 +608,7 @@ Sized_relobj<size, big_endian>::incremental_relocs_scan( template<int size, bool big_endian> template<int sh_type> void -Sized_relobj<size, big_endian>::incremental_relocs_scan_reltype( +Sized_relobj_file<size, big_endian>::incremental_relocs_scan_reltype( const Read_relocs_data::Relocs_list::iterator& p) { typedef typename Reloc_types<sh_type, size, big_endian>::Reloc Reltype; @@ -638,9 +638,9 @@ Sized_relobj<size, big_endian>::incremental_relocs_scan_reltype( template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::do_relocate(const Symbol_table* symtab, - const Layout* layout, - Output_file* of) +Sized_relobj_file<size, big_endian>::do_relocate(const Symbol_table* symtab, + const Layout* layout, + Output_file* of) { unsigned int shnum = this->shnum(); @@ -709,13 +709,13 @@ struct Read_multiple_compare template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::write_sections(const unsigned char* pshdrs, - Output_file* of, - Views* pviews) +Sized_relobj_file<size, big_endian>::write_sections(const unsigned char* pshdrs, + Output_file* of, + Views* pviews) { unsigned int shnum = this->shnum(); const Output_sections& out_sections(this->output_sections()); - const std::vector<Address>& out_offsets(this->section_offsets_); + const std::vector<Address>& out_offsets(this->section_offsets()); File_read::Read_multiple rm; bool is_sorted = true; @@ -888,7 +888,7 @@ Sized_relobj<size, big_endian>::write_sections(const unsigned char* pshdrs, template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::do_relocate_sections( +Sized_relobj_file<size, big_endian>::do_relocate_sections( const Symbol_table* symtab, const Layout* layout, const unsigned char* pshdrs, @@ -900,7 +900,7 @@ Sized_relobj<size, big_endian>::do_relocate_sections( parameters->sized_target<size, big_endian>(); const Output_sections& out_sections(this->output_sections()); - const std::vector<Address>& out_offsets(this->section_offsets_); + const std::vector<Address>& out_offsets(this->section_offsets()); Relocate_info<size, big_endian> relinfo; relinfo.symtab = symtab; @@ -1024,7 +1024,7 @@ Sized_relobj<size, big_endian>::do_relocate_sections( template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::emit_relocs( +Sized_relobj_file<size, big_endian>::emit_relocs( const Relocate_info<size, big_endian>* relinfo, unsigned int i, unsigned int sh_type, @@ -1061,7 +1061,7 @@ Sized_relobj<size, big_endian>::emit_relocs( template<int size, bool big_endian> template<int sh_type> void -Sized_relobj<size, big_endian>::emit_relocs_reltype( +Sized_relobj_file<size, big_endian>::emit_relocs_reltype( const Relocate_info<size, big_endian>* relinfo, unsigned int i, const unsigned char* prelocs, @@ -1093,7 +1093,7 @@ Sized_relobj<size, big_endian>::emit_relocs_reltype( template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::incremental_relocs_write( +Sized_relobj_file<size, big_endian>::incremental_relocs_write( const Relocate_info<size, big_endian>* relinfo, unsigned int sh_type, const unsigned char* prelocs, @@ -1129,7 +1129,7 @@ Sized_relobj<size, big_endian>::incremental_relocs_write( template<int size, bool big_endian> template<int sh_type> void -Sized_relobj<size, big_endian>::incremental_relocs_write_reltype( +Sized_relobj_file<size, big_endian>::incremental_relocs_write_reltype( const Relocate_info<size, big_endian>* relinfo, const unsigned char* prelocs, size_t reloc_count, @@ -1215,7 +1215,7 @@ Sized_relobj<size, big_endian>::incremental_relocs_write_reltype( template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::initialize_input_to_output_maps() +Sized_relobj_file<size, big_endian>::initialize_input_to_output_maps() { const unsigned int loccount = this->local_symbol_count_; for (unsigned int i = 1; i < loccount; ++i) @@ -1229,7 +1229,7 @@ Sized_relobj<size, big_endian>::initialize_input_to_output_maps() template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::free_input_to_output_maps() +Sized_relobj_file<size, big_endian>::free_input_to_output_maps() { const unsigned int loccount = this->local_symbol_count_; for (unsigned int i = 1; i < loccount; ++i) @@ -1247,7 +1247,7 @@ Sized_relobj<size, big_endian>::free_input_to_output_maps() template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::split_stack_adjust( +Sized_relobj_file<size, big_endian>::split_stack_adjust( const Symbol_table* symtab, const unsigned char* pshdrs, unsigned int sh_type, @@ -1279,7 +1279,7 @@ Sized_relobj<size, big_endian>::split_stack_adjust( template<int size, bool big_endian> template<int sh_type> void -Sized_relobj<size, big_endian>::split_stack_adjust_reltype( +Sized_relobj_file<size, big_endian>::split_stack_adjust_reltype( const Symbol_table* symtab, const unsigned char* pshdrs, unsigned int shndx, @@ -1436,10 +1436,10 @@ Sized_relobj<size, big_endian>::split_stack_adjust_reltype( template<int size, bool big_endian> void -Sized_relobj<size, big_endian>::find_functions( +Sized_relobj_file<size, big_endian>::find_functions( const unsigned char* pshdrs, unsigned int shndx, - Sized_relobj<size, big_endian>::Function_offsets* function_offsets) + Sized_relobj_file<size, big_endian>::Function_offsets* function_offsets) { // We need to read the symbols to find the functions. If we wanted // to, we could cache reading the symbols across all sections in the @@ -1636,127 +1636,127 @@ Track_relocs<size, big_endian>::advance(off_t offset) #ifdef HAVE_TARGET_32_LITTLE template void -Sized_relobj<32, false>::do_read_relocs(Read_relocs_data* rd); +Sized_relobj_file<32, false>::do_read_relocs(Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_32_BIG template void -Sized_relobj<32, true>::do_read_relocs(Read_relocs_data* rd); +Sized_relobj_file<32, true>::do_read_relocs(Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_64_LITTLE template void -Sized_relobj<64, false>::do_read_relocs(Read_relocs_data* rd); +Sized_relobj_file<64, false>::do_read_relocs(Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_64_BIG template void -Sized_relobj<64, true>::do_read_relocs(Read_relocs_data* rd); +Sized_relobj_file<64, true>::do_read_relocs(Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_32_LITTLE template void -Sized_relobj<32, false>::do_gc_process_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<32, false>::do_gc_process_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_32_BIG template void -Sized_relobj<32, true>::do_gc_process_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<32, true>::do_gc_process_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_64_LITTLE template void -Sized_relobj<64, false>::do_gc_process_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<64, false>::do_gc_process_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_64_BIG template void -Sized_relobj<64, true>::do_gc_process_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<64, true>::do_gc_process_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_32_LITTLE template void -Sized_relobj<32, false>::do_scan_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<32, false>::do_scan_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_32_BIG template void -Sized_relobj<32, true>::do_scan_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<32, true>::do_scan_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_64_LITTLE template void -Sized_relobj<64, false>::do_scan_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<64, false>::do_scan_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_64_BIG template void -Sized_relobj<64, true>::do_scan_relocs(Symbol_table* symtab, - Layout* layout, - Read_relocs_data* rd); +Sized_relobj_file<64, true>::do_scan_relocs(Symbol_table* symtab, + Layout* layout, + Read_relocs_data* rd); #endif #ifdef HAVE_TARGET_32_LITTLE template void -Sized_relobj<32, false>::do_relocate(const Symbol_table* symtab, - const Layout* layout, - Output_file* of); +Sized_relobj_file<32, false>::do_relocate(const Symbol_table* symtab, + const Layout* layout, + Output_file* of); #endif #ifdef HAVE_TARGET_32_BIG template void -Sized_relobj<32, true>::do_relocate(const Symbol_table* symtab, - const Layout* layout, - Output_file* of); +Sized_relobj_file<32, true>::do_relocate(const Symbol_table* symtab, + const Layout* layout, + Output_file* of); #endif #ifdef HAVE_TARGET_64_LITTLE template void -Sized_relobj<64, false>::do_relocate(const Symbol_table* symtab, - const Layout* layout, - Output_file* of); +Sized_relobj_file<64, false>::do_relocate(const Symbol_table* symtab, + const Layout* layout, + Output_file* of); #endif #ifdef HAVE_TARGET_64_BIG template void -Sized_relobj<64, true>::do_relocate(const Symbol_table* symtab, - const Layout* layout, - Output_file* of); +Sized_relobj_file<64, true>::do_relocate(const Symbol_table* symtab, + const Layout* layout, + Output_file* of); #endif #ifdef HAVE_TARGET_32_LITTLE template void -Sized_relobj<32, false>::do_relocate_sections( +Sized_relobj_file<32, false>::do_relocate_sections( const Symbol_table* symtab, const Layout* layout, const unsigned char* pshdrs, @@ -1767,7 +1767,7 @@ Sized_relobj<32, false>::do_relocate_sections( #ifdef HAVE_TARGET_32_BIG template void -Sized_relobj<32, true>::do_relocate_sections( +Sized_relobj_file<32, true>::do_relocate_sections( const Symbol_table* symtab, const Layout* layout, const unsigned char* pshdrs, @@ -1778,7 +1778,7 @@ Sized_relobj<32, true>::do_relocate_sections( #ifdef HAVE_TARGET_64_LITTLE template void -Sized_relobj<64, false>::do_relocate_sections( +Sized_relobj_file<64, false>::do_relocate_sections( const Symbol_table* symtab, const Layout* layout, const unsigned char* pshdrs, @@ -1789,7 +1789,7 @@ Sized_relobj<64, false>::do_relocate_sections( #ifdef HAVE_TARGET_64_BIG template void -Sized_relobj<64, true>::do_relocate_sections( +Sized_relobj_file<64, true>::do_relocate_sections( const Symbol_table* symtab, const Layout* layout, const unsigned char* pshdrs, @@ -1800,41 +1800,41 @@ Sized_relobj<64, true>::do_relocate_sections( #ifdef HAVE_TARGET_32_LITTLE template void -Sized_relobj<32, false>::initialize_input_to_output_maps(); +Sized_relobj_file<32, false>::initialize_input_to_output_maps(); template void -Sized_relobj<32, false>::free_input_to_output_maps(); +Sized_relobj_file<32, false>::free_input_to_output_maps(); #endif #ifdef HAVE_TARGET_32_BIG template void -Sized_relobj<32, true>::initialize_input_to_output_maps(); +Sized_relobj_file<32, true>::initialize_input_to_output_maps(); template void -Sized_relobj<32, true>::free_input_to_output_maps(); +Sized_relobj_file<32, true>::free_input_to_output_maps(); #endif #ifdef HAVE_TARGET_64_LITTLE template void -Sized_relobj<64, false>::initialize_input_to_output_maps(); +Sized_relobj_file<64, false>::initialize_input_to_output_maps(); template void -Sized_relobj<64, false>::free_input_to_output_maps(); +Sized_relobj_file<64, false>::free_input_to_output_maps(); #endif #ifdef HAVE_TARGET_64_BIG template void -Sized_relobj<64, true>::initialize_input_to_output_maps(); +Sized_relobj_file<64, true>::initialize_input_to_output_maps(); template void -Sized_relobj<64, true>::free_input_to_output_maps(); +Sized_relobj_file<64, true>::free_input_to_output_maps(); #endif #if defined(HAVE_TARGET_32_LITTLE) || defined(HAVE_TARGET_32_BIG) |