diff options
author | Ian Lance Taylor <ian@airs.com> | 2010-01-08 19:33:18 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2010-01-08 19:33:18 +0000 |
commit | e291e7b9c9cd9e432fdcc63922f2529647f5b930 (patch) | |
tree | df4d976076d4d37f7b062a60f9f6bcb47b7f0ddb /gold/ChangeLog | |
parent | dd35de74344bc1dad410ed21fedd14671ab57aff (diff) | |
download | gdb-e291e7b9c9cd9e432fdcc63922f2529647f5b930.zip gdb-e291e7b9c9cd9e432fdcc63922f2529647f5b930.tar.gz gdb-e291e7b9c9cd9e432fdcc63922f2529647f5b930.tar.bz2 |
PR 10287
PR 11063
* i386.cc (class Target_i386): Change return type of plt_section
to be non-const.
(class Output_data_plt_i386): Add tls_desc_rel_ field.
(Output_data_plt_i386::Output_data_plt_i386): Initialize
tls_desc_rel_ field.
(Output_data_plt_i386::rel_tls_desc): New function.
(Target_i386::rel_tls_desc_section): New function.
(Target_i386::Scan::local): Rewrite R_386_TLS_GOTDESC handling.
(Target_i386::Scan::global): For R_386_TLS_GOTDESC put
R_386_TLS_DESC reloc in rel_tls_desc_section.
* x86_64.cc (class Target_x86_64): Add tlsdesc_reloc_info_ field.
Define struct Tlsdesc_info.
(Target_x86_64::Target_x86_64): Initialize tlsdesc_reloc_info_.
(Target_x86_64::do_reloc_symbol_index): New function.
(Target_x86_64::add_tlsdesc_info): New function.
(class Output_data_plt_x86_64): Add tlsdesc_rel_ field.
(Output_data_plt_x86_64::Output_data_plt_x86_64): Initialize
tlsdesc_rel_ field.
(Output_data_plt_x86_64::rela_plt): Rename from rel_plt. Change
all callers.
(Output_data_plt_x86_64::rela_tlsdesc): New function.
(Target_x86_64::rela_tlsdesc_section): New function.
(Target_x86_64::Scan::local): Rewrite R_X86_64_GOTPC32_TLSDESC
handling.
(Target_x86_64::Scan::global): For R_X86_64_GOTPC32_TLSDESC put
(Target_x86_64::do_reloc_addend): New function.
R_X86_64_TLSDESC reloc in rela_tlsdesc_section.
* output.h (class Output_reloc) [SHT_REL]: Add new constructor
declarations. Define TARGET_CODE. Add arg field to u1_ union.
(Output_reloc::type): New function.
(Output_reloc::is_local_section_symbol): Check for TARGET_CODE.
(Output_reloc::is_target_specific): New function.
(Output_reloc::target_arg): New function.
(class Output_reloc) [SHT_RELA]: Add four new constructors for
absolute relocs and target specific relocs.
(class Output_data_reloc) [SHT_REL]: Add add_absolute and
add_target_specific.
(class Output_data_reloc) [SHT_RELA]: Likewise.
* output.cc (Output_reloc::Output_reloc): Add four new versions
for absolute relocs and target specific relocs.
(Output_reloc::set_needs_dynsym_index): Add TARGET_CODE case.
(Output_reloc::get_symbol_index): Likewise.
(Output_reloc::local_section_offset): Check that local_sym_index_
is not TARGET_CODE or 0.
(Output_reloc::symbol_value): Likewise.
(Output_reloc::write) [SHT_RELA]: Call target for target specific
reloc.
* target.h (class Target): Add reloc_symbol_index and reloc_addend
functions. Add do_reloc_symbol_index and do_reloc_addend virtual
functions.
* layout.cc (add_target_dynamic_tags): Use output section for
DT_PLTRELSZ and DT_JMPREL.
Diffstat (limited to 'gold/ChangeLog')
-rw-r--r-- | gold/ChangeLog | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 928af4c..038a278 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,60 @@ +2010-01-08 Ian Lance Taylor <iant@google.com> + + PR 10287 + PR 11063 + * i386.cc (class Target_i386): Change return type of plt_section + to be non-const. + (class Output_data_plt_i386): Add tls_desc_rel_ field. + (Output_data_plt_i386::Output_data_plt_i386): Initialize + tls_desc_rel_ field. + (Output_data_plt_i386::rel_tls_desc): New function. + (Target_i386::rel_tls_desc_section): New function. + (Target_i386::Scan::local): Rewrite R_386_TLS_GOTDESC handling. + (Target_i386::Scan::global): For R_386_TLS_GOTDESC put + R_386_TLS_DESC reloc in rel_tls_desc_section. + * x86_64.cc (class Target_x86_64): Add tlsdesc_reloc_info_ field. + Define struct Tlsdesc_info. + (Target_x86_64::Target_x86_64): Initialize tlsdesc_reloc_info_. + (Target_x86_64::do_reloc_symbol_index): New function. + (Target_x86_64::add_tlsdesc_info): New function. + (class Output_data_plt_x86_64): Add tlsdesc_rel_ field. + (Output_data_plt_x86_64::Output_data_plt_x86_64): Initialize + tlsdesc_rel_ field. + (Output_data_plt_x86_64::rela_plt): Rename from rel_plt. Change + all callers. + (Output_data_plt_x86_64::rela_tlsdesc): New function. + (Target_x86_64::rela_tlsdesc_section): New function. + (Target_x86_64::Scan::local): Rewrite R_X86_64_GOTPC32_TLSDESC + handling. + (Target_x86_64::Scan::global): For R_X86_64_GOTPC32_TLSDESC put + (Target_x86_64::do_reloc_addend): New function. + R_X86_64_TLSDESC reloc in rela_tlsdesc_section. + * output.h (class Output_reloc) [SHT_REL]: Add new constructor + declarations. Define TARGET_CODE. Add arg field to u1_ union. + (Output_reloc::type): New function. + (Output_reloc::is_local_section_symbol): Check for TARGET_CODE. + (Output_reloc::is_target_specific): New function. + (Output_reloc::target_arg): New function. + (class Output_reloc) [SHT_RELA]: Add four new constructors for + absolute relocs and target specific relocs. + (class Output_data_reloc) [SHT_REL]: Add add_absolute and + add_target_specific. + (class Output_data_reloc) [SHT_RELA]: Likewise. + * output.cc (Output_reloc::Output_reloc): Add four new versions + for absolute relocs and target specific relocs. + (Output_reloc::set_needs_dynsym_index): Add TARGET_CODE case. + (Output_reloc::get_symbol_index): Likewise. + (Output_reloc::local_section_offset): Check that local_sym_index_ + is not TARGET_CODE or 0. + (Output_reloc::symbol_value): Likewise. + (Output_reloc::write) [SHT_RELA]: Call target for target specific + reloc. + * target.h (class Target): Add reloc_symbol_index and reloc_addend + functions. Add do_reloc_symbol_index and do_reloc_addend virtual + functions. + * layout.cc (add_target_dynamic_tags): Use output section for + DT_PLTRELSZ and DT_JMPREL. + 2010-01-07 Ian Lance Taylor <iant@google.com> PR 11061 |