From 8cbb5f73c0f3ee0fdf30813a3f1aa1e83a61106a Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Fri, 30 Jan 2009 00:21:46 +0000 Subject: [PATCH] * i386.cc (Target_i386::Relocate::relocate): Recognize non-PIC calls to __tls_get_addr. * x86_64.cc (Target_x86_64::Relocate::relocate): Likewise. * ChangeLog: Fixed typo in previous ChangeLog entry (version 1.9). --- gold/ChangeLog | 8 +++++++- gold/i386.cc | 3 ++- gold/x86_64.cc | 3 ++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index bae5102fff..56fc48e014 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,6 +1,12 @@ +2009-01-29 Cary Coutant + + * i386.cc (Target_i386::Relocate::relocate): Recognize non-PIC calls + to __tls_get_addr. + * x86_64.cc (Target_x86_64::Relocate::relocate): Likewise. + 2009-01-28 Ian Lance Taylor - * version.cc (version_string): Bump to 1.8. + * version.cc (version_string): Bump to 1.9. * gold.h: Include and . * version.cc: Include . diff --git a/gold/i386.cc b/gold/i386.cc index 3779d4e2d9..e033d34382 100644 --- a/gold/i386.cc +++ b/gold/i386.cc @@ -1633,7 +1633,8 @@ Target_i386::Relocate::relocate(const Relocate_info<32, false>* relinfo, { if (this->skip_call_tls_get_addr_) { - if (r_type != elfcpp::R_386_PLT32 + if ((r_type != elfcpp::R_386_PLT32 + && r_type != elfcpp::R_386_PC32) || gsym == NULL || strcmp(gsym->name(), "___tls_get_addr") != 0) gold_error_at_location(relinfo, relnum, rel.get_r_offset(), diff --git a/gold/x86_64.cc b/gold/x86_64.cc index 17246248ad..4dfe75b152 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -1703,7 +1703,8 @@ Target_x86_64::Relocate::relocate(const Relocate_info<64, false>* relinfo, { if (this->skip_call_tls_get_addr_) { - if (r_type != elfcpp::R_X86_64_PLT32 + if ((r_type != elfcpp::R_X86_64_PLT32 + && r_type != elfcpp::R_X86_64_PC32) || gsym == NULL || strcmp(gsym->name(), "__tls_get_addr") != 0) { -- 2.11.0