summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-06-19 16:33:24 -0700
committerH.J. Lu <hjl.tools@gmail.com>2021-06-19 16:33:35 -0700
commit83b1d8f4a69ab5803ae33e05dcf14d8f26848ff2 (patch)
tree83071abd40e1659806b18fb4ac93829a13695be1 /ld
parentce3ec98acd2f344ae911de3f41dd2e3c6c68b141 (diff)
downloadbinutils-gdb-83b1d8f4a69ab5803ae33e05dcf14d8f26848ff2.tar.gz
elf: Correct DT_TEXTREL warning in PDE
Change ld: warning: creating DT_TEXTREL in a PIE to ld: warning: creating DT_TEXTREL in a PDE on PDE. bfd/ * elflink.c (bfd_elf_final_link): Correct DT_TEXTREL warning in PDE. ld/ * testsuite/ld-x86-64/textrel-1.err: New file. * testsuite/ld-x86-64/textrel-1a.s: Likewise. * testsuite/ld-x86-64/textrel-1b.s: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run textrel-1 tests.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/testsuite/ld-x86-64/textrel-1.err4
-rw-r--r--ld/testsuite/ld-x86-64/textrel-1a.s9
-rw-r--r--ld/testsuite/ld-x86-64/textrel-1b.s15
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp5
5 files changed, 40 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c84992d7633..36f8d4b5268 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2021-06-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-x86-64/textrel-1.err: New file.
+ * testsuite/ld-x86-64/textrel-1a.s: Likewise.
+ * testsuite/ld-x86-64/textrel-1b.s: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run textrel-1 tests.
+
2021-06-18 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-elf/property-and-1.d: Skip am33_2.0, hppa-hpux
diff --git a/ld/testsuite/ld-x86-64/textrel-1.err b/ld/testsuite/ld-x86-64/textrel-1.err
new file mode 100644
index 00000000000..222c7a37ada
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/textrel-1.err
@@ -0,0 +1,4 @@
+#...
+.*textrel-1b.o: warning: relocation against `foo' in read-only section `.rodata'
+.*: warning: creating DT_TEXTREL in a PDE
+#...
diff --git a/ld/testsuite/ld-x86-64/textrel-1a.s b/ld/testsuite/ld-x86-64/textrel-1a.s
new file mode 100644
index 00000000000..6b486a9a4e2
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/textrel-1a.s
@@ -0,0 +1,9 @@
+ .text
+ .globl foo
+ .data
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .long 4
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/textrel-1b.s b/ld/testsuite/ld-x86-64/textrel-1b.s
new file mode 100644
index 00000000000..8f125e43df4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/textrel-1b.s
@@ -0,0 +1,15 @@
+ .text
+ .p2align 4
+ .globl _start
+ .type _start, @function
+_start:
+ ret
+ .size _start, .-_start
+ .globl ptr
+ .section .rodata
+ .align 8
+ .type ptr, @object
+ .size ptr, 8
+ptr:
+ .quad foo
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 21a4824e3d1..3bf62504cf9 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -231,6 +231,11 @@ set x86_64tests {
"" ""
{ pr27590a.obj.bz2 pr27590b.obj.bz2 }
{{readelf -SW pr27590.rd}} "pr27590.o"}
+ {"Build textrel-1.so" "-melf_x86_64 -shared" ""
+ "--64" { textrel-1a.s } {} "textrel-1.so"}
+ {"Build textrel-1" "-no-pie -melf_x86_64 -z nocopyreloc"
+ "tmpdir/textrel-1.so"
+ "--64" { textrel-1b.s } {{ld "textrel-1.err"}} "textrel-1"}
}
run_ld_link_tests $x86_64tests