aboutsummaryrefslogtreecommitdiff
path: root/elfcpp/ChangeLog
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-10-29 17:45:48 +1030
committerAlan Modra <amodra@gmail.com>2013-10-30 13:45:05 +1030
commitb4f7960d5307fe4aad2126382df78f63696e96b3 (patch)
tree4c7724bb2d479d9b9d36427e34de30d088750dad /elfcpp/ChangeLog
parentd4a95d4999e7fe0d868254bec76722b35f064184 (diff)
downloadgdb-b4f7960d5307fe4aad2126382df78f63696e96b3.zip
gdb-b4f7960d5307fe4aad2126382df78f63696e96b3.tar.gz
gdb-b4f7960d5307fe4aad2126382df78f63696e96b3.tar.bz2
PowerPC64 ELFv2 support for gold.
elfcpp/ * powerpc.h (EF_PPC64_ABI): New enum constant. (STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Likewise. (ppc64_decode_local_entry): New function. (ppc64_encode_local_entry): Likewise. gold/ * powerpc.cc (Powerpc_relobj::abiversion, set_abiversion, ppc64_local_entry_offset, ppc64_local_entry_offset, do_read_symbols): New functions. (Powerpc_relobj::e_flags_, st_other_): New vars. (Powerpc_relobj::Powerpc_relobj): Call set_abiversion. (Powerpc_dynobj::abiversion, set_abiversion): New functions. (Powerpc_relobj::e_flags_): New var. (Target_powerpc::first_plt_entry_offset, plt_entry_size): Inline and adjust for ELFv2. (Target_powerpc::abiversion, set_abiversion, stk_toc): New functions. (Powerpc_relobj::do_find_special_sections): Check no .opd in ELFv2. (Powerpc_dynobj::do_find_special_sections): Likewise. (Target_powerpc::do_define_standard_symbols): Define ".TOC.". (Target_powerpc::Branch_info::make_stub): Adjust stub destination to ELFv2 local entry. (Target_powerpc::do_relax): No thread safe barriers needed for ELFv2. (Output_data_plt_powerpc::initial_plt_entry_size_, plt_entry_size): Delete. Replace all uses with first_plt_entry_offset() and plt_entry_size(). (Output_data_plt_powerpc::Output_data_plt_powerpc): Remove reserved_size parm. Update callers. (Output_data_plt_powerpc::entry_count): Update. (Output_data_plt_powerpc::first_plt_entry_offset): Make private and use Target_powerpc::first_plt_entry_offset(). (Output_data_plt_powerpc::get_plt_entry_size): Similarly and rename to plt_entry_size. (Output_data_plt_powerpc::add_ifunc_entry, add_local_ifunc_entry): Adjust reloc for ELFv2. (glink_eh_frame_fde_64): Rename to glink_eh_frame_fde_64v1. (glink_eh_frame_fde_64v2): New. (Stub_table::plt_call_size): Support ELFv2 sizing. (Output_data_glink::add_eh_frame): Use the new FDE. (Output_data_glink::set_final_data_size): Adjust for ELFv2 glink. (Stub_table::do_write): Write ELFv2 stubs and glink. (Target_powerpc::Relocate::relocate): Replaces nop after call with ld 2,24(1) and adjust local offset destination for ELFv2.
Diffstat (limited to 'elfcpp/ChangeLog')
-rw-r--r--elfcpp/ChangeLog7
1 files changed, 7 insertions, 0 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 0c9c001..4d0a503 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,5 +1,12 @@
2013-10-30 Alan Modra <amodra@gmail.com>
+ * powerpc.h (EF_PPC64_ABI): New enum constant.
+ (STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Likewise.
+ (ppc64_decode_local_entry): New function.
+ (ppc64_encode_local_entry): Likewise.
+
+2013-10-30 Alan Modra <amodra@gmail.com>
+
* powerpc.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA,
R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA,
R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): Define.