diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-05-11 07:42:30 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-05-11 07:45:59 -0700 |
commit | dc2be3d2f6de530aac40983e79e29e050f40e759 (patch) | |
tree | 07603beeba1b30451b6608cbfe6e6944f288b938 /ld/testsuite/ld-i386 | |
parent | f96f371cbb33454544a9f1827c239c4375f0b60e (diff) | |
download | gdb-dc2be3d2f6de530aac40983e79e29e050f40e759.zip gdb-dc2be3d2f6de530aac40983e79e29e050f40e759.tar.gz gdb-dc2be3d2f6de530aac40983e79e29e050f40e759.tar.bz2 |
x86: Generate PLT relocations for -z now
This patch partially reverses:
commit 25070364b0ce33eed46aa5d78ebebbec6accec7e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat May 16 07:00:21 2015 -0700
Don't generate PLT relocations for now binding
to support LD_AUDIT and LD_PROFILE with -z now. If there is an existing
GOT relocation, it is still used to avoid PLT relocation against the same
function symbol.
bfd/
* elf32-i386.c (elf_i386_allocate_dynrelocs): Partially revert
commit 25070364b0ce33eed46aa5d78ebebbec6accec7e.
* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewse.
ld/
* testsuite/ld-i386/plt-pic2.dd: Updated.
* testsuite/ld-i386/plt2.dd: Likewise.
* testsuite/ld-i386/plt2.rd: Likewise.
* testsuite/ld-i386/pr17689now.rd: Likewise.
* testsuite/ld-ifunc/ifunc-16-i386-now.d: Likewise.
* testsuite/ld-ifunc/ifunc-16-x86-64-now.d: Likewise.
* testsuite/ld-ifunc/pr17154-i386-now.d: Likewise.
* testsuite/ld-ifunc/pr17154-x86-64-now.d: Likewise.
* testsuite/ld-x86-64/bnd-branch-1-now.d: Likewise.
* testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise.
* testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise.
* testsuite/ld-x86-64/plt2.dd: Likewise.
* testsuite/ld-x86-64/plt2.rd: Likewise.
* testsuite/ld-x86-64/pr17689now.rd: Likewise.
* testsuite/ld-x86-64/pr21038b-now.d: Likewise.
* testsuite/ld-x86-64/pr21038c-now.d: Likewise.
Diffstat (limited to 'ld/testsuite/ld-i386')
-rw-r--r-- | ld/testsuite/ld-i386/plt-pic2.dd | 20 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/plt2.dd | 17 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/plt2.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/pr17689now.rd | 3 |
4 files changed, 20 insertions, 22 deletions
diff --git a/ld/testsuite/ld-i386/plt-pic2.dd b/ld/testsuite/ld-i386/plt-pic2.dd index aa311fe..4047db5 100644 --- a/ld/testsuite/ld-i386/plt-pic2.dd +++ b/ld/testsuite/ld-i386/plt-pic2.dd @@ -15,19 +15,19 @@ Disassembly of section .plt: +[a-f0-9]+: 00 00 add %al,\(%eax\) ... -Disassembly of section .plt.got: - 0+190 <fn1@plt>: - +[a-f0-9]+: ff a3 f8 ff ff ff jmp \*-0x8\(%ebx\) - +[a-f0-9]+: 66 90 xchg %ax,%ax + +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) + +[a-f0-9]+: 68 00 00 00 00 push \$0x0 + +[a-f0-9]+: e9 e0 ff ff ff jmp 180 <.plt> -0+198 <fn2@plt>: - +[a-f0-9]+: ff a3 fc ff ff ff jmp \*-0x4\(%ebx\) - +[a-f0-9]+: 66 90 xchg %ax,%ax +0+1a0 <fn2@plt>: + +[a-f0-9]+: ff a3 10 00 00 00 jmp \*0x10\(%ebx\) + +[a-f0-9]+: 68 08 00 00 00 push \$0x8 + +[a-f0-9]+: e9 d0 ff ff ff jmp 180 <.plt> Disassembly of section .text: -0+1a0 <foo>: - +[a-f0-9]+: e8 eb ff ff ff call 190 <fn1@plt> - +[a-f0-9]+: e9 ee ff ff ff jmp 198 <fn2@plt> +0+1b0 <foo>: + +[a-f0-9]+: e8 db ff ff ff call 190 <fn1@plt> + +[a-f0-9]+: e9 e6 ff ff ff jmp 1a0 <fn2@plt> #pass diff --git a/ld/testsuite/ld-i386/plt2.dd b/ld/testsuite/ld-i386/plt2.dd index 1a5ea6f..9f8e11d 100644 --- a/ld/testsuite/ld-i386/plt2.dd +++ b/ld/testsuite/ld-i386/plt2.dd @@ -10,26 +10,25 @@ Disassembly of section .plt: 0+80481c0 <.plt>: - +[a-f0-9]+: ff 35 b4 92 04 08 pushl 0x80492b4 - +[a-f0-9]+: ff 25 b8 92 04 08 jmp \*0x80492b8 + +[a-f0-9]+: ff 35 a0 92 04 08 pushl 0x80492a0 + +[a-f0-9]+: ff 25 a4 92 04 08 jmp \*0x80492a4 +[a-f0-9]+: 00 00 add %al,\(%eax\) ... 0+80481d0 <fn1@plt>: - +[a-f0-9]+: ff 25 bc 92 04 08 jmp \*0x80492bc + +[a-f0-9]+: ff 25 a8 92 04 08 jmp \*0x80492a8 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 +[a-f0-9]+: e9 e0 ff ff ff jmp 80481c0 <.plt> -Disassembly of section .plt.got: - 0+80481e0 <fn2@plt>: +[a-f0-9]+: ff 25 ac 92 04 08 jmp \*0x80492ac - +[a-f0-9]+: 66 90 xchg %ax,%ax + +[a-f0-9]+: 68 08 00 00 00 push \$0x8 + +[a-f0-9]+: e9 d0 ff ff ff jmp 80481c0 <.plt> Disassembly of section .text: -0+80481e8 <_start>: - +[a-f0-9]+: e8 e3 ff ff ff call 80481d0 <fn1@plt> - +[a-f0-9]+: e8 ee ff ff ff call 80481e0 <fn2@plt> +0+80481f0 <_start>: + +[a-f0-9]+: e8 db ff ff ff call 80481d0 <fn1@plt> + +[a-f0-9]+: e8 e6 ff ff ff call 80481e0 <fn2@plt> +[a-f0-9]+: 81 7c 24 04 d0 81 04 08 cmpl \$0x80481d0,0x4\(%esp\) #pass diff --git a/ld/testsuite/ld-i386/plt2.rd b/ld/testsuite/ld-i386/plt2.rd index 11952b4..8233a9a 100644 --- a/ld/testsuite/ld-i386/plt2.rd +++ b/ld/testsuite/ld-i386/plt2.rd @@ -5,5 +5,5 @@ #target: i?86-*-* #... - +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+20 +.* +AX +0 +0 +16 + +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+30 +.* +AX +0 +0 +16 #pass diff --git a/ld/testsuite/ld-i386/pr17689now.rd b/ld/testsuite/ld-i386/pr17689now.rd index 9741df8..594c424 100644 --- a/ld/testsuite/ld-i386/pr17689now.rd +++ b/ld/testsuite/ld-i386/pr17689now.rd @@ -1,4 +1,3 @@ -#failif #... [0-9a-f ]+R_386_JUMP_SLOT +0+.* -#... +#pass |