diff options
author | Ian Lance Taylor <ian@airs.com> | 2010-02-10 23:00:29 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2010-02-10 23:00:29 +0000 |
commit | b3705d2a514a4235bd08c02f708f02b1c9285019 (patch) | |
tree | 78163071d0cf840f3bd90f4576400edc9e6bbcb5 /gold/x86_64.cc | |
parent | 1677b03c9001d73566c7cf0bbbf65e830a07eaec (diff) | |
download | binutils-b3705d2a514a4235bd08c02f708f02b1c9285019.zip binutils-b3705d2a514a4235bd08c02f708f02b1c9285019.tar.gz binutils-b3705d2a514a4235bd08c02f708f02b1c9285019.tar.bz2 |
* i386.cc (Relocate::relocate_tls): A local symbol is final if not
shared, not if not position independent.
* x86_64.cc (Relocate::relocate_tls): Likewise.
* testsuite/Makefile.am (check_PROGRAMS): Add tls_pie_pic_test.
(tls_pie_pic_test): New target.
* testsuite/Makefile.in: Rebuild.
Diffstat (limited to 'gold/x86_64.cc')
-rw-r--r-- | gold/x86_64.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gold/x86_64.cc b/gold/x86_64.cc index fea2ec9..802d498 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -2053,7 +2053,7 @@ Target_x86_64::Relocate::relocate_tls(const Relocate_info<64, false>* relinfo, elfcpp::Elf_types<64>::Elf_Addr value = psymval->value(relinfo->object, 0); const bool is_final = (gsym == NULL - ? !parameters->options().output_is_position_independent() + ? !parameters->options().shared() : gsym->final_value_is_known()); const tls::Tls_optimization optimized_type = Target_x86_64::optimize_tls_reloc(is_final, r_type); |