Browse Source

i386: Update I386_NEED_DYNAMIC_RELOC_TYPE_P for DT_TEXTREL

Update I386_NEED_DYNAMIC_RELOC_TYPE_P to allow R_386_TLS_IE for relocation
in read-only section.

bfd/

	PR ld/28894
	* elfxx-x86.h (I386_NEED_DYNAMIC_RELOC_TYPE_P): Allow
	R_386_TLS_IE.

ld/
	PR ld/28894
	* testsuite/ld-i386/i386.exp: Run pr28894.
	* testsuite/ld-i386/pr28894.d: New file.
	* testsuite/ld-i386/pr28894.s: Likewise.
gdb-12-branch
H.J. Lu 4 years ago
parent
commit
3319ba7a8d
  1. 1
      bfd/elfxx-x86.h
  2. 1
      ld/testsuite/ld-i386/i386.exp
  3. 3
      ld/testsuite/ld-i386/pr28894.d
  4. 7
      ld/testsuite/ld-i386/pr28894.s

1
bfd/elfxx-x86.h

@ -80,6 +80,7 @@
#define I386_NEED_DYNAMIC_RELOC_TYPE_P(TYPE) \
(I386_SIZE_TYPE_P (TYPE) \
|| I386_RELATIVE_RELOC_TYPE_P (TYPE) \
|| (TYPE) == R_386_TLS_IE \
|| (TYPE) == R_386_TLS_LE \
|| (TYPE) == R_386_TLS_LE_32)
#define X86_NEED_DYNAMIC_RELOC_TYPE_P(IS_X86_64, TYPE) \

1
ld/testsuite/ld-i386/i386.exp

@ -510,6 +510,7 @@ run_dump_test "pr27491-4"
run_dump_test "dt-relr-1a"
run_dump_test "dt-relr-1b"
run_dump_test "pr28870"
run_dump_test "pr28894"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]

3
ld/testsuite/ld-i386/pr28894.d

@ -0,0 +1,3 @@
#as: --32
#ld: -shared -melf_i386 --warn-shared-textrel --fatal-warnings
#error: .*warning: creating DT_TEXTREL in a shared object

7
ld/testsuite/ld-i386/pr28894.s

@ -0,0 +1,7 @@
.text
addl foo@INDNTPOFF, %eax
.section .tbss,"awT",@nobits
.globl foo
.hidden foo
foo:
.byte 0
Loading…
Cancel
Save