diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.c | 3 | ||||
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/textrel-1.err | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/textrel-1a.s | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/textrel-1b.s | 15 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/x86-64.exp | 5 |
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 |