diff options
author | Cary Coutant <ccoutant@google.com> | 2015-02-02 11:46:45 -0800 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2015-02-02 11:46:45 -0800 |
commit | 24dd580891ed5fc331758d608b16d636eabd1ad3 (patch) | |
tree | 467621b715ec2568cf11d607e5647f8b2d28d92b | |
parent | aa3de2670f9f9327b25c47546c0005d4a80da546 (diff) | |
download | gdb-24dd580891ed5fc331758d608b16d636eabd1ad3.zip gdb-24dd580891ed5fc331758d608b16d636eabd1ad3.tar.gz gdb-24dd580891ed5fc331758d608b16d636eabd1ad3.tar.bz2 |
Fix bug with previous patch for unresolved TLS symbol.
We need to check that the output is executable before assuming that we
can replace the reference with zero.
2015-02-02 Cary Coutant <ccoutant@google.com>
gold/
* x86_64.cc (Target_x86_64::Relocate::relocate_tls): Check for
executable output file.
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/x86_64.cc | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 601d11b..399588e 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2015-02-02 Cary Coutant <ccoutant@google.com> + + * x86_64.cc (Target_x86_64::Relocate::relocate_tls): Check for + executable output file. + 2015-01-22 Han Shen <shenhan@google.com> * arm.cc (Target_arm::Target_arm): Add initialization for new members. diff --git a/gold/x86_64.cc b/gold/x86_64.cc index a4aebc8..4543c8a 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -3784,7 +3784,9 @@ Target_x86_64<size>::Relocate::relocate_tls( break; case elfcpp::R_X86_64_GOTTPOFF: // Initial-exec - if (gsym != NULL && gsym->is_undefined()) + if (gsym != NULL + && gsym->is_undefined() + && parameters->options().output_is_executable()) { Target_x86_64<size>::Relocate::tls_ie_to_le(relinfo, relnum, NULL, rela, |