PATCH: PR gold/13507: Gold assumes GOT entry size is the same as ELF class size
Ian Lance Taylor
iant@google.com
Sat Dec 17 06:33:00 GMT 2011
More information about the Binutils mailing list
Sat Dec 17 06:33:00 GMT 2011
- Previous message (by thread): PATCH: PR gold/13507: Gold assumes GOT entry size is the same as ELF class size
- Next message (by thread): PATCH: PR gold/13507: Gold assumes GOT entry size is the same as ELF class size
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"H.J. Lu" <hjl.tools@gmail.com> writes: > Given that it is very unlikely I can remove all dependencies on the ELF > class from Output_data_got, I will prepare a patch to add a new > parameter to class templates for GOT entry size. OK, I did it for you. This patch changes Output_data_got to use a template parameter of got_size rather than size. I added virtual functions and adjusted as necessary. Committed to mainline. Ian 2011-12-16 Ian Lance Taylor <iant@google.com> * object.h (Relobj::local_symbol_value): New function. (Relobj::local_plt_offset): New function. (Relobj::local_has_got_offset): New function. (Relobj::local_got_offset): New function. (Relobj::set_local_got_offset): New function. (Relobj::do_local_symbol_value): New pure virtual function. (Relobj::do_local_plt_offset): Likewise. (Relobj::do_local_has_got_offset): Likewise. (Relobj::do_local_got_offset): Likewise. (Relobj::do_set_local_got_offset): Likewise. (Sized_relobj::do_local_has_got_offset): Rename from local_has_got_offset. (Sized_relobj::do_local_got_offset): Rename from local_got_offset. (Sized_relobj::do_set_local_got_offset): Rename from set_local_got_offset. (Sized_relobj_file::do_local_plt_offset): Rename from local_plt_offset. (Sized_relobj_file::do_local_symbol_value): New function. * object.cc (Sized_relobj_file::do_local_plt_offset): Rename from local_plt_offset. * output.cc (Output_data_got::Got_entry::write): Change object to Relobj. Use local_symbol_value. (Output_data_got::add_global_with_rel): Change rel_dyn to Output_data_reloc_generic*. Use add_global_generic. (Output_data_got::add_global_with_rela): Remove. Change all callers to use add_global_with_rel. (Output_data_got::add_global_pair_with_rel): Change rel_dyn to Output_data_reloc_generic*. Use add_global_generic. (Output_data_got::add_global_pair_with_rela): Remove. Change all callers to use add_global_pair_with_rel. (Output_data_got::add_local): Change object to Relobj*. (Output_data_got::add_local_plt): Likewise. (Output_data_got::add_local_with_rel): Change object to Relobj*, change rel_dyn to Output_data_reloc_generic*. Use add_local_generic. (Output_data_got::add_local_with_rela): Remove. Change all callers to use all_local_with_rel. (Output_data_got::add_local_pair_with_rel): Change object to Relobj*, change rel_dyn to Output_data_reloc_generic*. Use add_output_section_generic. (Output_data_got::add_local_pair_with_rela): Remove. Change all callers to use add_local_pair_with_rel. (Output_data_got::reserve_local): Change object to Relobj*. * output.h: (class Output_data_reloc_generic): Add pure virtual declarations for add_global_generic, add_local_generic, add_output_section_generic. (class Output_data_reloc) [SHT_REL, SHT_RELA]: Implement new functions for Output_data_reloc_generic. Update declarations for changes listed in output.cc. (class Output_data_got): Change template parameter to got_size. Don't define Rel_dyn or Rela_dyn. Update declarations per above. * incremental.h (Sized_relobj_incr::do_local_symbol_value): New function. (Sized_relobj_incr::do_local_plt_offset): New function. * copy-relocs.cc (Copy_relocs::Copy_reloc_entry::emit): Call add_global_generic. -------------- next part -------------- A non-text attachment was scrubbed... Name: foo.patch Type: text/x-diff Size: 45889 bytes Desc: patch URL: <https://sourceware.org/pipermail/binutils/attachments/20111217/68b31c8a/attachment.bin>
- Previous message (by thread): PATCH: PR gold/13507: Gold assumes GOT entry size is the same as ELF class size
- Next message (by thread): PATCH: PR gold/13507: Gold assumes GOT entry size is the same as ELF class size
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list