aboutsummaryrefslogtreecommitdiff
path: root/gold/ChangeLog
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2008-04-11 21:24:30 +0000
committerCary Coutant <ccoutant@google.com>2008-04-11 21:24:30 +0000
commitc2b45e22d5570064d11783c46bc392cb8d387db4 (patch)
tree2bf8e341da1070ab3f6b11b0f06823cc8c5a47d8 /gold/ChangeLog
parent83bfb6b77648bdee37ca84fe240e8b0a229e8f77 (diff)
downloadgdb-c2b45e22d5570064d11783c46bc392cb8d387db4.zip
gdb-c2b45e22d5570064d11783c46bc392cb8d387db4.tar.gz
gdb-c2b45e22d5570064d11783c46bc392cb8d387db4.tar.bz2
2008-04-11 Cary Coutant <ccoutant@google.com>
Add support for TLS descriptors for i386 and x86_64. * i386.cc (Target_i386::Relocate::tls_desc_gd_to_ie): New function. (Target_i386::Relocate::tls_desc_gd_to_le): New function. (Target_i386::Got_type): Add GOT_TYPE_TLS_NOFFSET and GOT_TYPE_TLS_DESC. (Target_i386::got_mod_index_entry): Remove unnecessary code. (Target_i386::Scan::local): Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations. Fix problem with initial-exec relocations. (Target_i386::Scan::global): Fix problem with GD-to-IE relaxation. Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations; Fix problem with initial-exec relocations. (Target_i386::Relocate::relocate_tls): Likewise. (Target_i386::Relocate::tls_gd_to_ie): Fix problem with GD-to-IE relaxation. * output.cc (Output_data_dynamic::Dynamic_entry::write): Add support for section-plus-offset dynamic table entries. * output.h (Output_data_dynamic::add_section_plus_offset): New function. (Output_data_dynamic::Dynamic_entry): Add support for section-plus-offset dynamic table entries. (Output_data_dynamic::Classification): Likewise. (Output_data_dynamic::classification_): Renamed offset_. * x86_64.cc (Target_x86_64::Relocate::tls_desc_gd_to_ie): New function. (Target_x86_64::Relocate::tls_desc_gd_to_le): New function. (Target_x86_64::make_plt_section): New function. (Target_x86_64::reserve_tlsdesc_entries): New function. (Output_data_plt_x86_64::Output_data_plt_x86_64): Add new parameter. (Output_data_plt_x86_64::reserve_tlsdesc_entry): New function. (Output_data_plt_x86_64::has_tlsdesc_entry): New function. (Output_data_plt_x86_64::get_tlsdesc_got_offset): New function. (Output_data_plt_x86_64::get_tlsdesc_plt_offset): New function. (Output_data_plt_x86_64::tlsdesc_plt_entry): New field. (Output_data_plt_x86_64::set_final_data_size): Move out of line; add extra PLT entry for TLS descriptors. (Output_data_plt_x86_64::got_): New field. (Output_data_plt_x86_64::tlsdesc_got_offset_): New field. (Output_data_plt_x86_64::Output_data_plt_x86_64): Initialize new fields. (Output_data_plt_x86_64::do_write): Write extra PLT entry for TLS descriptors. (Target_x86_64::make_plt_entry): Factor out make_plt_section. (Target_x86_64::got_mod_index_entry): Remove unnecessary code. (Target_x86_64::Scan::local): Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::do_finalize_sections): Add dynamic table entries for TLS descriptors. (Relocate::relocate_tls): Fix problem with GD-to-IE relaxation. Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations. (Target_x86_64::Relocate::tls_gd_to_ie): Fix problem with GD-to-IE relaxation. * configure.ac: Export new conditional variables TLS_GNU2_DIALECT and TLS_DESCRIPTORS. * Makefile.in: Rebuild. * configure: Rebuild. * testsuite/Makefile.am (tls_shared_gd_to_ie_test): New target. (tls_test_shared2.so): New target. (tls_shared_gd_to_ie_test_SOURCES): New variable. (tls_shared_gd_to_ie_test_DEPENDENCIES): New variable. (tls_shared_gd_to_ie_test_LDFLAGS): New variable. (tls_shared_gd_to_ie_test_LDADD): New variable. (tls_shared_gnu2_gd_to_ie_test): New target. (tls_test_gnu2.o, tls_test_file2_gnu2.o, tls_test_gnu2_shared2.so): New targets. (tls_shared_gnu2_gd_to_ie_test_SOURCES): New variable. (ls_shared_gnu2_gd_to_ie_test_DEPENDENCIES): New variable. (tls_shared_gnu2_gd_to_ie_test_LDFLAGS): New variable. (tls_shared_gnu2_gd_to_ie_test_LDADD): New variable. (tls_shared_gnu2_test): New target. (tls_test_gnu2_shared.so): New target. (tls_shared_gnu2_test_SOURCES): New variable. (tls_shared_gnu2_test_DEPENDENCIES): New variable. (tls_shared_gnu2_test_LDFLAGS): New variable. (tls_shared_gnu2_test_LDADD): New variable. * testsuite/Makefile.in: Rebuild. * testsuite/Makefile.
Diffstat (limited to 'gold/ChangeLog')
-rw-r--r--gold/ChangeLog79
1 files changed, 79 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 9bb3c20..cc05b97 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,82 @@
+2008-04-11 Cary Coutant <ccoutant@google.com>
+
+ Add support for TLS descriptors for i386 and x86_64.
+ * i386.cc (Target_i386::Relocate::tls_desc_gd_to_ie): New function.
+ (Target_i386::Relocate::tls_desc_gd_to_le): New function.
+ (Target_i386::Got_type): Add GOT_TYPE_TLS_NOFFSET and
+ GOT_TYPE_TLS_DESC.
+ (Target_i386::got_mod_index_entry): Remove unnecessary code.
+ (Target_i386::Scan::local): Implement R_386_TLS_GOTDESC and
+ R_386_TLS_DESC_CALL relocations. Fix problem with initial-exec
+ relocations.
+ (Target_i386::Scan::global): Fix problem with GD-to-IE relaxation.
+ Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations;
+ Fix problem with initial-exec relocations.
+ (Target_i386::Relocate::relocate_tls): Likewise.
+ (Target_i386::Relocate::tls_gd_to_ie): Fix problem with GD-to-IE
+ relaxation.
+ * output.cc (Output_data_dynamic::Dynamic_entry::write): Add
+ support for section-plus-offset dynamic table entries.
+ * output.h (Output_data_dynamic::add_section_plus_offset): New function.
+ (Output_data_dynamic::Dynamic_entry): Add support for
+ section-plus-offset dynamic table entries.
+ (Output_data_dynamic::Classification): Likewise.
+ (Output_data_dynamic::classification_): Renamed offset_.
+ * x86_64.cc (Target_x86_64::Relocate::tls_desc_gd_to_ie): New function.
+ (Target_x86_64::Relocate::tls_desc_gd_to_le): New function.
+ (Target_x86_64::make_plt_section): New function.
+ (Target_x86_64::reserve_tlsdesc_entries): New function.
+ (Output_data_plt_x86_64::Output_data_plt_x86_64): Add new parameter.
+ (Output_data_plt_x86_64::reserve_tlsdesc_entry): New function.
+ (Output_data_plt_x86_64::has_tlsdesc_entry): New function.
+ (Output_data_plt_x86_64::get_tlsdesc_got_offset): New function.
+ (Output_data_plt_x86_64::get_tlsdesc_plt_offset): New function.
+ (Output_data_plt_x86_64::tlsdesc_plt_entry): New field.
+ (Output_data_plt_x86_64::set_final_data_size): Move out of line;
+ add extra PLT entry for TLS descriptors.
+ (Output_data_plt_x86_64::got_): New field.
+ (Output_data_plt_x86_64::tlsdesc_got_offset_): New field.
+ (Output_data_plt_x86_64::Output_data_plt_x86_64): Initialize new
+ fields.
+ (Output_data_plt_x86_64::do_write): Write extra PLT entry for TLS
+ descriptors.
+ (Target_x86_64::make_plt_entry): Factor out make_plt_section.
+ (Target_x86_64::got_mod_index_entry): Remove unnecessary code.
+ (Target_x86_64::Scan::local): Implement R_386_TLS_GOTDESC and
+ R_386_TLS_DESC_CALL relocations.
+ (Target_x86_64::Scan::global): Likewise.
+ (Target_x86_64::do_finalize_sections): Add dynamic table entries
+ for TLS descriptors.
+ (Relocate::relocate_tls): Fix problem with GD-to-IE relaxation.
+ Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations.
+ (Target_x86_64::Relocate::tls_gd_to_ie): Fix problem with
+ GD-to-IE relaxation.
+ * configure.ac: Export new conditional variables TLS_GNU2_DIALECT
+ and TLS_DESCRIPTORS.
+ * Makefile.in: Rebuild.
+ * configure: Rebuild.
+ * testsuite/Makefile.am (tls_shared_gd_to_ie_test): New target.
+ (tls_test_shared2.so): New target.
+ (tls_shared_gd_to_ie_test_SOURCES): New variable.
+ (tls_shared_gd_to_ie_test_DEPENDENCIES): New variable.
+ (tls_shared_gd_to_ie_test_LDFLAGS): New variable.
+ (tls_shared_gd_to_ie_test_LDADD): New variable.
+ (tls_shared_gnu2_gd_to_ie_test): New target.
+ (tls_test_gnu2.o, tls_test_file2_gnu2.o, tls_test_gnu2_shared2.so):
+ New targets.
+ (tls_shared_gnu2_gd_to_ie_test_SOURCES): New variable.
+ (ls_shared_gnu2_gd_to_ie_test_DEPENDENCIES): New variable.
+ (tls_shared_gnu2_gd_to_ie_test_LDFLAGS): New variable.
+ (tls_shared_gnu2_gd_to_ie_test_LDADD): New variable.
+ (tls_shared_gnu2_test): New target.
+ (tls_test_gnu2_shared.so): New target.
+ (tls_shared_gnu2_test_SOURCES): New variable.
+ (tls_shared_gnu2_test_DEPENDENCIES): New variable.
+ (tls_shared_gnu2_test_LDFLAGS): New variable.
+ (tls_shared_gnu2_test_LDADD): New variable.
+ * testsuite/Makefile.in: Rebuild.
+ * testsuite/Makefile.
+
2008-04-11 Ian Lance Taylor <iant@google.com>
* testsuite/Makefile.am (justsyms_2r.o): Add dependency on