x86: Don't define _TLS_MODULE_BASE_ for ld -r
bfd/ PR ld/29820 * elfxx-x86.c (_bfd_x86_elf_always_size_sections): Don't define _TLS_MODULE_BASE_ for ld -r. ld/ PR ld/29820 * testsuite/ld-x86-64/pr29820.d: New file. * testsuite/ld-x86-64/pr29820.s: Likewise. * testsuite/ld-x86-64/x86-64.ex: Run pr29820.
This commit is contained in:
parent
26c527e62e
commit
04ad71937f
4 changed files with 20 additions and 1 deletions
|
@ -2932,7 +2932,7 @@ _bfd_x86_elf_always_size_sections (bfd *output_bfd,
|
|||
{
|
||||
asection *tls_sec = elf_hash_table (info)->tls_sec;
|
||||
|
||||
if (tls_sec)
|
||||
if (tls_sec && !bfd_link_relocatable (info))
|
||||
{
|
||||
struct elf_link_hash_entry *tlsbase;
|
||||
|
||||
|
|
6
ld/testsuite/ld-x86-64/pr29820.d
Normal file
6
ld/testsuite/ld-x86-64/pr29820.d
Normal file
|
@ -0,0 +1,6 @@
|
|||
#ld: -r
|
||||
#readelf: -s -W
|
||||
|
||||
#...
|
||||
+[0-9]+: +0+ +0 +TLS +GLOBAL +DEFAULT +UND +_TLS_MODULE_BASE_
|
||||
#pass
|
12
ld/testsuite/ld-x86-64/pr29820.s
Normal file
12
ld/testsuite/ld-x86-64/pr29820.s
Normal file
|
@ -0,0 +1,12 @@
|
|||
.text
|
||||
leaq _TLS_MODULE_BASE_@tlsdesc(%rip), %rax
|
||||
call *_TLS_MODULE_BASE_@tlscall(%rax)
|
||||
movl %fs:a@dtpoff(%rax), %edx
|
||||
addl %fs:b@dtpoff(%rax), %edx
|
||||
|
||||
.section .tbss
|
||||
.zero 8
|
||||
a:
|
||||
.zero 4
|
||||
b:
|
||||
.zero 4
|
|
@ -728,6 +728,7 @@ run_dump_test "pr27016a"
|
|||
run_dump_test "pr27016b"
|
||||
run_dump_test "report-reloc-1"
|
||||
run_dump_test "report-reloc-1-x32"
|
||||
run_dump_test "pr29820"
|
||||
|
||||
proc undefined_weak {cflags ldflags} {
|
||||
set testname "Undefined weak symbol"
|
||||
|
|
Loading…
Add table
Reference in a new issue