mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 04:12:10 +08:00
[AArch64] Fix function pointer variable with -Bsymbolic-functions
bfd/ChangeLog 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com> * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND to check if a symbol should be bound symbolically. ld/testsuite/ChangeLog 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com> * ld-aarch64/aarch64-elf.exp: Added relocs-257-symbolic-func test. * ld-aarch64/relocs-257-symbolic-func.d: New file. * ld-aarch64/relocs-257-symbolic-func.s: Likewise.
This commit is contained in:
parent
0172429c3b
commit
0941db698e
@ -1,3 +1,8 @@
|
||||
2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||
|
||||
* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND
|
||||
to check if a symbol should be bound symbolically.
|
||||
|
||||
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
* elfnn-aarch64.c: (elfNN_aarch64_howto_table): Enable overflow check
|
||||
|
@ -4337,7 +4337,7 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
|
||||
memset (&outrel, 0, sizeof outrel);
|
||||
else if (h != NULL
|
||||
&& h->dynindx != -1
|
||||
&& (!info->shared || !info->symbolic || !h->def_regular))
|
||||
&& (!info->shared || !SYMBOLIC_BIND (info, h) || !h->def_regular))
|
||||
outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type);
|
||||
else
|
||||
{
|
||||
|
@ -1,3 +1,9 @@
|
||||
2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||
|
||||
* ld-aarch64/aarch64-elf.exp: Added relocs-257-symbolic-func test.
|
||||
* ld-aarch64/relocs-257-symbolic-func.d: New file.
|
||||
* ld-aarch64/relocs-257-symbolic-func.s: Likewise.
|
||||
|
||||
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
* ld-aarch64/tprel_g2_overflow.s: New testcase.
|
||||
|
@ -177,6 +177,7 @@ run_dump_test "ifunc-21"
|
||||
run_dump_test "ifunc-22"
|
||||
|
||||
run_dump_test "relasz"
|
||||
run_dump_test "relocs-257-symbolic-func"
|
||||
|
||||
set aarch64elflinktests {
|
||||
{"ld-aarch64/so with global symbol" "-shared" "" "" {copy-reloc-so.s}
|
||||
|
5
ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d
Normal file
5
ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: relocs-257-symbolic-func.s
|
||||
#ld: -shared -Bsymbolic-functions
|
||||
#readelf: -r --wide
|
||||
#...
|
||||
.* +R_AARCH64_RELATIVE +.*
|
11
ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s
Normal file
11
ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s
Normal file
@ -0,0 +1,11 @@
|
||||
.text
|
||||
.global tempy
|
||||
.type tempy, %function
|
||||
tempy:
|
||||
.size tempy, .-tempy
|
||||
.section .data.rel
|
||||
.align 3
|
||||
.type tempy_ptr, %object
|
||||
.size tempy_ptr, 8
|
||||
tempy_ptr:
|
||||
.xword tempy
|
Loading…
Reference in New Issue
Block a user