diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-05-22 14:05:21 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-05-22 14:05:21 +0000 |
commit | 2fe0fd0638dafee893dcb791036a49e5a6988954 (patch) | |
tree | a91f82e259c5ac31b36e72f220dfcc6689adcabf /ld/testsuite/ld-x86-64 | |
parent | 23512c015ea3be9106e07b67133eaa2425dbcefd (diff) | |
download | gdb-2fe0fd0638dafee893dcb791036a49e5a6988954.zip gdb-2fe0fd0638dafee893dcb791036a49e5a6988954.tar.gz gdb-2fe0fd0638dafee893dcb791036a49e5a6988954.tar.bz2 |
Always create PLT eh_frame section for i386/x86-64
bfd/
2012-05-22 H.J. Lu <hongjiu.lu@intel.com>
PR ld/14105
* elf32-i386.c (elf_i386_create_dynamic_sections): Always
create PLT eh_frame section with SEC_LINKER_CREATED.
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Likewise.
ld/testsuite/
2012-05-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/14105
* ld-elf/eh4.d: Add PLT eh_frame.
* ld-i386/i386.exp: Run pr12570a and pr12570b.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/pr12570a.d: New file.
* ld-i386/pr12570a.s: Likewise.
* ld-i386/pr12570b.s: Likewise.
* ld-i386/pr12570b.s: Likewise.
* ld-x86-64/pr12570a.d: Likewise.
* ld-x86-64/pr12570a.s: Likewise.
* ld-x86-64/pr12570b.d: Likewise.
* ld-x86-64/pr12570b.s: Likewise.
Diffstat (limited to 'ld/testsuite/ld-x86-64')
-rw-r--r-- | ld/testsuite/ld-x86-64/pr12570a.d | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr12570a.s | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr12570b.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr12570b.s | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/x86-64.exp | 2 |
5 files changed, 35 insertions, 0 deletions
diff --git a/ld/testsuite/ld-x86-64/pr12570a.d b/ld/testsuite/ld-x86-64/pr12570a.d new file mode 100644 index 0000000..6105a74 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr12570a.d @@ -0,0 +1,8 @@ +#name: PR ld/12570 +#as: --64 +#ld: -melf_x86_64 -shared +#readelf: -wf --wide + +#... + 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\) +#... diff --git a/ld/testsuite/ld-x86-64/pr12570a.s b/ld/testsuite/ld-x86-64/pr12570a.s new file mode 100644 index 0000000..38e0593 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr12570a.s @@ -0,0 +1,8 @@ + .text + .globl foo + .type foo, @function +foo: + .cfi_startproc + jmp bar@PLT + .cfi_endproc + .size foo, .-foo diff --git a/ld/testsuite/ld-x86-64/pr12570b.d b/ld/testsuite/ld-x86-64/pr12570b.d new file mode 100644 index 0000000..d65f8da --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr12570b.d @@ -0,0 +1,9 @@ +#name: PR ld/12570 +#as: --64 +#ld: -melf_x86_64 -shared +#readelf: -wf --wide + +#failif +#... + 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\) +#... diff --git a/ld/testsuite/ld-x86-64/pr12570b.s b/ld/testsuite/ld-x86-64/pr12570b.s new file mode 100644 index 0000000..e76b9f1 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr12570b.s @@ -0,0 +1,8 @@ + .text + .globl foo + .type foo, @function +foo: + .cfi_startproc + ret + .cfi_endproc + .size foo, .-foo diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index e8afbc2..7d2934f 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -206,6 +206,8 @@ run_dump_test "discarded1" run_dump_test "pr12718" run_dump_test "pr12921" run_dump_test "pr13947" +run_dump_test "pr12570a" +run_dump_test "pr12570b" if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} { return |