Browse Source
* elf32-arm.c (elf32_arm_final_link_relocate): Use origin of output segment containing the relocating symbol instead of assuming 0 for sb group relocations. * ld-arm/group-relocs-ldr-bad.s: Redefine bar into foo section beyond 16 bit offset width. * ld-arm/group-relocs-ldrs-bad.s: Likewise. * ld-arm/group-relocs-ldr-bad.d: Adjust expected result. * ld-arm/group-relocs-ldrs-bad.d: Likewise. * ld-arm/group-relocs.s: Add comments. Move symbols used for sb group relocations into .data section. Drop section zero. Use pc/r0 as base register when pc/sb group relocations are used. * ld-arm/group-relocs.d: Adjust expected result. * ld-arm/group-relocs-alu-bad-2.d: New test for sb group relocation. * ld-arm/group-relocs-ldc-bad-2.d: Likewise. * ld-arm/group-relocs-ldr-bad-2.d: New test for pc group relocation. * ld-arm/group-relocs-ldrs-bad-2.d: Likewise. * ld-arm/unresolved-2.d: Add sb relocation failure test. * ld-arm/group-relocs-alu-bad-2.s: New test source. * ld-arm/group-relocs-ldr-bad-2.s: Likewise. * ld-arm/group-relocs-ldrs-bad-2.s: Likewise. * ld-arm/group-relocs-ldc-bad-2.s: Likewise. * ld-arm/unresolved-2.s: Likewise. * ld-arm/arm-elf.exp: For group-relocs, drop section zero start definition. Run the new tests.binutils-2_24-branch
14 changed files with 72 additions and 29 deletions
@ -1,4 +1,4 @@ |
|||
#name: LDR group relocations failure test |
|||
#source: group-relocs-ldr-bad-2.s |
|||
#ld: -Ttext 0x8000 --section-start foo=0x8001000 |
|||
#error: .*Overflow whilst splitting 0x123456 for group relocation.* |
|||
#error: .*Overflow whilst splitting 0x7ff9000 for group relocation.* |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
#name: LDR group relocations failure test |
|||
#source: group-relocs-ldr-bad.s |
|||
#ld: -Ttext 0x8000 --section-start foo=0x8001000 |
|||
#error: .*Overflow whilst splitting 0x7ff9000 for group relocation.* |
|||
#error: .*Overflow whilst splitting 0x123456 for group relocation.* |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
#name: LDRS group relocations failure test |
|||
#source: group-relocs-ldrs-bad-2.s |
|||
#ld: -Ttext 0x8000 --section-start foo=0x8000100 |
|||
#error: Overflow whilst splitting 0x123456 for group relocation |
|||
#error: Overflow whilst splitting 0x7ff8100 for group relocation |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
#name: LDRS group relocations failure test |
|||
#source: group-relocs-ldrs-bad.s |
|||
#ld: -Ttext 0x8000 --section-start foo=0x8000100 |
|||
#error: Overflow whilst splitting 0x7ff8100 for group relocation |
|||
#error: Overflow whilst splitting 0x123456 for group relocation |
|||
|
|||
@ -0,0 +1,5 @@ |
|||
#name: SB relocations failure test |
|||
#source: unresolved-2.s |
|||
#ld: |
|||
#error: \(\.text\+0x0\): undefined reference to `foo' |
|||
|
|||
@ -0,0 +1,5 @@ |
|||
.text |
|||
.globl _start |
|||
_start: |
|||
ldr r1, [r0, #:sb_g0:(foo)] |
|||
|
|||
Loading…
Reference in new issue