aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.c3
-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
7 files changed, 48 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 29e41a3..5211e98 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2021-06-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (bfd_elf_final_link): Correct DT_TEXTREL warning in
+ PDE.
+
2021-06-18 H.J. Lu <hongjiu.lu@intel.com>
* elf-properties.c (_bfd_elf_parse_gnu_properties): Handle
diff --git a/bfd/elflink.c b/bfd/elflink.c
index c9a6e78..9a05208 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -13138,6 +13138,9 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
else if (bfd_link_dll (info))
info->callbacks->einfo
(_("%P: warning: creating DT_TEXTREL in a shared object\n"));
+ else if (bfd_link_pde (info))
+ info->callbacks->einfo
+ (_("%P: warning: creating DT_TEXTREL in a PDE\n"));
else
info->callbacks->einfo
(_("%P: warning: creating DT_TEXTREL in a PIE\n"));
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c84992d..36f8d4b 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 0000000..222c7a3
--- /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 0000000..6b486a9
--- /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 0000000..8f125e4
--- /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 21a4824..3bf6250 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