[AArch64] Bind defined symbol locally in PIE
bfd/ PR target/20737 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined symbol locally in PIE. ld/ * testsuite/ld-aarch64/pie-bind-locally-a.s: New test source. * testsuite/ld-aarch64/pie-bind-locally-b.s: Likewise. * testsuite/ld-aarch64/pie-bind-locally.d: New testcase. * testsuite/ld-aarch64/aarch64-elf.exp: Run new testcase.
This commit is contained in:
parent
9b9720149d
commit
ac33b731d2
@ -1,3 +1,9 @@
|
||||
2016-11-10 Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
PR target/20737
|
||||
* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined
|
||||
symbol locally in PIE.
|
||||
|
||||
2016-11-08 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* dwarf2.c (struct funcinfo) <is_linkage>: Type is bfd_boolean,
|
||||
|
@ -5193,7 +5193,8 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
|
||||
else if (h != NULL
|
||||
&& h->dynindx != -1
|
||||
&& (!bfd_link_pic (info)
|
||||
|| !SYMBOLIC_BIND (info, h)
|
||||
|| !(bfd_link_pie (info)
|
||||
|| SYMBOLIC_BIND (info, h))
|
||||
|| !h->def_regular))
|
||||
outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type);
|
||||
else
|
||||
|
@ -1,3 +1,11 @@
|
||||
2016-11-10 Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
PR target/20737
|
||||
* testsuite/ld-aarch64/pie-bind-locally-a.s: New test source.
|
||||
* testsuite/ld-aarch64/pie-bind-locally-b.s: Likewise.
|
||||
* testsuite/ld-aarch64/pie-bind-locally.d: New testcase.
|
||||
* testsuite/ld-aarch64/aarch64-elf.exp: Run new testcase.
|
||||
|
||||
2016-11-07 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR ld/20784
|
||||
|
@ -287,6 +287,8 @@ run_dump_test "rela-abs-relative"
|
||||
run_dump_test "rela-abs-relative-be"
|
||||
run_dump_test "rela-abs-relative-opt"
|
||||
|
||||
run_dump_test "pie-bind-locally"
|
||||
|
||||
set aarch64elflinktests {
|
||||
{"ld-aarch64/so with global symbol" "-shared" "" "" {copy-reloc-so.s}
|
||||
{} "copy-reloc-so.so"}
|
||||
|
5
ld/testsuite/ld-aarch64/pie-bind-locally-a.s
Normal file
5
ld/testsuite/ld-aarch64/pie-bind-locally-a.s
Normal file
@ -0,0 +1,5 @@
|
||||
.text
|
||||
.align 2
|
||||
.global _start
|
||||
_start:
|
||||
ldr x0, [x0, #:got_lo12:_start]
|
6
ld/testsuite/ld-aarch64/pie-bind-locally-b.s
Normal file
6
ld/testsuite/ld-aarch64/pie-bind-locally-b.s
Normal file
@ -0,0 +1,6 @@
|
||||
.section .data.rel,"aw",%progbits
|
||||
.align 3
|
||||
.type q, %object
|
||||
.size q, 8
|
||||
q:
|
||||
.xword _start
|
9
ld/testsuite/ld-aarch64/pie-bind-locally.d
Normal file
9
ld/testsuite/ld-aarch64/pie-bind-locally.d
Normal file
@ -0,0 +1,9 @@
|
||||
#source: pie-bind-locally-a.s
|
||||
#source: pie-bind-locally-b.s
|
||||
#ld: -pie
|
||||
#readelf: -Wr
|
||||
|
||||
Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
|
||||
[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_RELATIVE[ ].*
|
||||
[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_AARCH64_RELATIVE[ ].*
|
Loading…
Reference in New Issue
Block a user