mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 13:27:26 +08:00
[AArch64] Enable overflow check for TLSLE_MOVW_TPREL_G2
bfd/ * elfnn-aarch64.c: (elfNN_aarch64_howto_table): Enable overflow check for TLSLE_MOVW_TPREL_G2. ld/testsuite/ * ld-aarch64/tprel_g2_overflow.s: New testcase. * ld-aarch64/tprel_g2_overflow.d: New expectation file. * ld-aarch64/aarch64-elf.exp: Run new testcase.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* elfnn-aarch64.c: (elfNN_aarch64_howto_table): Enable overflow check
|
||||||
|
for TLSLE_MOVW_TPREL_G2.
|
||||||
|
|
||||||
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
PR ld/17415
|
PR ld/17415
|
||||||
|
@ -968,7 +968,7 @@ static reloc_howto_type elfNN_aarch64_howto_table[] =
|
|||||||
12, /* bitsize */
|
12, /* bitsize */
|
||||||
FALSE, /* pc_relative */
|
FALSE, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_dont, /* complain_on_overflow */
|
complain_overflow_unsigned, /* complain_on_overflow */
|
||||||
bfd_elf_generic_reloc, /* special_function */
|
bfd_elf_generic_reloc, /* special_function */
|
||||||
AARCH64_R_STR (TLSLE_MOVW_TPREL_G2), /* name */
|
AARCH64_R_STR (TLSLE_MOVW_TPREL_G2), /* name */
|
||||||
FALSE, /* partial_inplace */
|
FALSE, /* partial_inplace */
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* ld-aarch64/tprel_g2_overflow.s: New testcase.
|
||||||
|
* ld-aarch64/tprel_g2_overflow.d: New expectation file.
|
||||||
|
* ld-aarch64/aarch64-elf.exp: Run new testcase.
|
||||||
|
|
||||||
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
2015-01-13 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
PR ld/17415
|
PR ld/17415
|
||||||
|
@ -131,6 +131,7 @@ run_dump_test "gc-plt-relocs"
|
|||||||
run_dump_test "gc-relocs-257-dyn"
|
run_dump_test "gc-relocs-257-dyn"
|
||||||
run_dump_test "gc-relocs-257"
|
run_dump_test "gc-relocs-257"
|
||||||
run_dump_test "pr17415"
|
run_dump_test "pr17415"
|
||||||
|
run_dump_test "tprel_g2_overflow"
|
||||||
|
|
||||||
# ifunc tests
|
# ifunc tests
|
||||||
run_dump_test "ifunc-1"
|
run_dump_test "ifunc-1"
|
||||||
|
6
ld/testsuite/ld-aarch64/tprel_g2_overflow.d
Normal file
6
ld/testsuite/ld-aarch64/tprel_g2_overflow.d
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#name: TLS offset out of range - TPREL_G2
|
||||||
|
#source: tprel_g2_overflow.s
|
||||||
|
#as:
|
||||||
|
#ld: -e0
|
||||||
|
#error: .*\(.text\+0x\d+\): relocation truncated to fit: R_AARCH64_TLSLE_MOVW_TPREL_G2 against symbol `i' .*
|
||||||
|
|
22
ld/testsuite/ld-aarch64/tprel_g2_overflow.s
Normal file
22
ld/testsuite/ld-aarch64/tprel_g2_overflow.s
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
.cpu generic
|
||||||
|
.global ff
|
||||||
|
.section .tbss,"awT",%nobits
|
||||||
|
.align 3
|
||||||
|
.type ff, %object
|
||||||
|
.size ff, 562949953421312
|
||||||
|
ff:
|
||||||
|
.zero 562949953421312
|
||||||
|
.global i
|
||||||
|
.align 2
|
||||||
|
.type i, %object
|
||||||
|
.size i, 4
|
||||||
|
i:
|
||||||
|
.zero 4
|
||||||
|
.text
|
||||||
|
.align 2
|
||||||
|
.global main
|
||||||
|
.type main, %function
|
||||||
|
main:
|
||||||
|
movz x0, #:tprel_g2:i
|
||||||
|
ret
|
||||||
|
.size main, .-main
|
Reference in New Issue
Block a user