X32: Place .plt.got section after .plt section
This patch places .plt.got section after .plt section for x32. * emulparams/elf32_x86_64.sh (TINY_READONLY_SECTION): New. * testsuite/ld-x86-64/pr20830.d: Renamed to ... * testsuite/ld-x86-64/pr20830a.d: This. Updated. * testsuite/ld-x86-64/pr20830b.d: New file. * testsuite/ld-x86-64/x86-64.exp: Rename pr20830 to pr20830a. Run pr20830b.
This commit is contained in:
parent
fff53daefb
commit
59a1e29d9e
5 changed files with 82 additions and 1 deletions
|
@ -1,3 +1,12 @@
|
|||
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emulparams/elf32_x86_64.sh (TINY_READONLY_SECTION): New.
|
||||
* testsuite/ld-x86-64/pr20830.d: Renamed to ...
|
||||
* testsuite/ld-x86-64/pr20830a.d: This. Updated.
|
||||
* testsuite/ld-x86-64/pr20830b.d: New file.
|
||||
* testsuite/ld-x86-64/x86-64.exp: Rename pr20830 to pr20830a.
|
||||
Run pr20830b.
|
||||
|
||||
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/20830
|
||||
|
|
|
@ -21,6 +21,10 @@ LARGE_SECTIONS=yes
|
|||
LARGE_BSS_AFTER_BSS=
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
|
||||
IREL_IN_PLT=
|
||||
# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
|
||||
TINY_READONLY_SECTION="
|
||||
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
||||
"
|
||||
|
||||
if [ "x${host}" = "x${target}" ]; then
|
||||
case " $EMULATION_LIBPATH " in
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#name: PR ld/20830 (.plt.got)
|
||||
#source: pr20830.s
|
||||
#as: --64
|
||||
#ld: -melf_x86_64 -shared -z relro --ld-generated-unwind-info
|
||||
#objdump: -dw -Wf
|
66
ld/testsuite/ld-x86-64/pr20830b.d
Normal file
66
ld/testsuite/ld-x86-64/pr20830b.d
Normal file
|
@ -0,0 +1,66 @@
|
|||
#name: PR ld/20830 (.plt.got)
|
||||
#source: pr20830.s
|
||||
#as: --x32
|
||||
#ld: -melf32_x86_64 -shared -z relro --ld-generated-unwind-info
|
||||
#objdump: -dw -Wf
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
Contents of the .eh_frame section:
|
||||
|
||||
0+ 0000000000000014 00000000 CIE
|
||||
Version: 1
|
||||
Augmentation: "zR"
|
||||
Code alignment factor: 1
|
||||
Data alignment factor: -8
|
||||
Return address column: 16
|
||||
Augmentation data: 1b
|
||||
|
||||
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000188..0000000000000194
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
0+2c ZERO terminator
|
||||
|
||||
|
||||
0+30 0000000000000020 00000034 FDE cie=00000000 pc=0000000000000170..0000000000000180
|
||||
DW_CFA_def_cfa_offset: 16
|
||||
DW_CFA_advance_loc: 6 to 0000000000000176
|
||||
DW_CFA_def_cfa_offset: 24
|
||||
DW_CFA_advance_loc: 10 to 0000000000000180
|
||||
DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit11; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
|
||||
|
||||
0+54 ZERO terminator
|
||||
|
||||
|
||||
0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000180..0000000000000188
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
|
||||
Disassembly of section .plt:
|
||||
|
||||
0+170 <.plt>:
|
||||
+[a-f0-9]+: ff 35 92 0e 20 00 pushq 0x200e92\(%rip\) # 201008 <_GLOBAL_OFFSET_TABLE_\+0x8>
|
||||
+[a-f0-9]+: ff 25 94 0e 20 00 jmpq \*0x200e94\(%rip\) # 201010 <_GLOBAL_OFFSET_TABLE_\+0x10>
|
||||
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
|
||||
|
||||
Disassembly of section .plt.got:
|
||||
|
||||
0+180 <.plt.got>:
|
||||
+[a-f0-9]+: ff 25 72 0e 20 00 jmpq \*0x200e72\(%rip\) # 200ff8 <func>
|
||||
+[a-f0-9]+: 66 90 xchg %ax,%ax
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+188 <foo>:
|
||||
+[a-f0-9]+: e8 f3 ff ff ff callq 180 <.plt.got>
|
||||
+[a-f0-9]+: 48 8b 05 64 0e 20 00 mov 0x200e64\(%rip\),%rax # 200ff8 <func>
|
||||
#pass
|
|
@ -1019,4 +1019,5 @@ if { ![istarget "x86_64-*-linux*"]} {
|
|||
run_dump_test "pr17618"
|
||||
run_dump_test "pltgot-1"
|
||||
run_dump_test "pltgot-2"
|
||||
run_dump_test "pr20830"
|
||||
run_dump_test "pr20830a"
|
||||
run_dump_test "pr20830b"
|
||||
|
|
Loading…
Add table
Reference in a new issue