[ARM] Reject R_ARM_REL32 when trying to defer it to runtime

bfd/
    * elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
    trying to defer them to runtime.

  ld/testsuite/
    * ld-arm/elf32-reject.s: New testcase.
    * ld-arm/elf32-reject.d: Likewise.
    * ld-arm/elf32-reject-pie.s: Likewise.
    * ld-arm/elf32-reject-pie.d: Likewise.
    * ld-arm/arm-elf.exp: Run new testcases.
    * ld-arm/ifunc-7.s: Delete f2/f4 test items.
    * ld-arm/ifunc-7.rd: Likewise.
    * ld-arm/ifunc-7.gd: Likewise.
    * ld-arm/ifunc-7.dd: Likewise.
    * ld-arm/ifunc-8.s: Likewise.
    * ld-arm/ifunc-8.rd: Likewise.
    * ld-arm/ifunc-8.gd: Likewise.
    * ld-arm/ifunc-8.dd: Likewise.
This commit is contained in:
Jiong Wang 2015-01-14 19:11:54 +00:00
parent 3d0064a95d
commit 52db4ec2d1
16 changed files with 320 additions and 969 deletions

View File

@ -1,3 +1,8 @@
2015-01-14 Jiong Wang <jiong.wang@arm.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
trying to defer them to runtime.
2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND

View File

@ -8416,6 +8416,21 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
Elf_Internal_Rela outrel;
bfd_boolean skip, relocate;
if ((r_type == R_ARM_REL32 || r_type == R_ARM_REL32_NOI)
&& !h->def_regular)
{
char *v = _("shared object");
if (info->executable)
v = _("PIE executable");
(*_bfd_error_handler)
(_("%B: relocation %s against external or undefined symbol `%s'"
" can not be used when making a %s; recompile with -fPIC"), input_bfd,
elf32_arm_howto_table_1[r_type].name, h->root.root.string, v);
return bfd_reloc_notsupported;
}
*unresolved_reloc_p = FALSE;
if (sreloc == NULL && globals->root.dynamic_sections_created)

View File

@ -1,3 +1,19 @@
2015-01-14 Jiong Wang <jiong.wang@arm.com>
* ld-arm/elf32-reject.s: New testcase.
* ld-arm/elf32-reject.d: Likewise.
* ld-arm/elf32-reject-pie.s: Likewise.
* ld-arm/elf32-reject-pie.d: Likewise.
* ld-arm/arm-elf.exp: Run new testcases.
* ld-arm/ifunc-7.s: Delete f2/f4 test items.
* ld-arm/ifunc-7.rd: Likewise.
* ld-arm/ifunc-7.gd: Likewise.
* ld-arm/ifunc-7.dd: Likewise.
* ld-arm/ifunc-8.s: Likewise.
* ld-arm/ifunc-8.rd: Likewise.
* ld-arm/ifunc-8.gd: Likewise.
* ld-arm/ifunc-8.dd: Likewise.
2015-01-01 Alan Modra <amodra@gmail.com>
* ldver.c (ldversion): Just print current year.

View File

@ -299,6 +299,8 @@ run_dump_test "movw-shared-1"
run_dump_test "movw-shared-2"
run_dump_test "movw-shared-3"
run_dump_test "movw-shared-4"
run_dump_test "rel32-reject"
run_dump_test "rel32-reject-pie"
# Exclude non-ARM-EABI targets.

View File

@ -2,47 +2,21 @@
.*
Disassembly of section \.plt:
00009000 <f2@plt-0x14>:
9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <f2@plt-0x4>
9008: e08fe00e add lr, pc, lr
900c: e5bef008 ldr pc, \[lr, #8\]!
#------------------------------------------------------------------------------
#------ PC-relative offset of .got.plt
#------------------------------------------------------------------------------
9010: 00007ff0 \.word 0x00007ff0
#------------------------------------------------------------------------------
#------ f2's .plt entry
#------------------------------------------------------------------------------
00009014 <f2@plt>:
9014: e28fc600 add ip, pc, #0, 12
9018: e28cca07 add ip, ip, #28672 ; 0x7000
901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0
#------------------------------------------------------------------------------
#------ f4's .plt entry
#------------------------------------------------------------------------------
00009020 <f4@plt>:
9020: e28fc600 add ip, pc, #0, 12
9024: e28cca07 add ip, ip, #28672 ; 0x7000
9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8
Disassembly of section \.iplt:
0000902c <\.iplt>:
00009000 <\.iplt>:
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
902c: e28fc600 add ip, pc, #0, 12
9030: e28cca07 add ip, ip, #28672 ; 0x7000
9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0
9000: e28fc600 add ip, pc, #0, 12
9004: e28cca08 add ip, ip, #8, 20 ; 0x8000
9008: e5bcf004 ldr pc, \[ip, #4\]!
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
9038: e28fc600 add ip, pc, #0, 12
903c: e28cca07 add ip, ip, #28672 ; 0x7000
9040: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8
900c: e28fc600 add ip, pc, #0, 12
9010: e28cca07 add ip, ip, #28672 ; 0x7000
9014: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc
Disassembly of section \.text:
@ -59,64 +33,36 @@ Disassembly of section \.text:
#------------------------------------------------------------------------------
#------ .got offset for foo
#------------------------------------------------------------------------------
a014: 00000020 \.word 0x00000020
a014: 00000018 \.word 0x00000018
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for foo
#------------------------------------------------------------------------------
a018: 00007004 \.word 0x00007004
a018: 00006ffc \.word 0x00006ffc
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a01c: ebfffc02 bl 902c <f4@plt\+0xc>
a01c: ebfffbf7 bl 9000 <f1-0x1000>
a020: e59f4000 ldr r4, \[pc\] ; a028 <arm\+0x20>
a024: e59f4000 ldr r4, \[pc\] ; a02c <arm\+0x24>
#------------------------------------------------------------------------------
#------ GP-relative offset of f1's .igot.plt entry
#------------------------------------------------------------------------------
a028: 00000014 \.word 0x00000014
a028: 0000000c \.word 0x0000000c
#------------------------------------------------------------------------------
#------ PC-relative offset of f1's .igot.plt entry
#------------------------------------------------------------------------------
a02c: 00006fe8 \.word 0x00006fe8
#------------------------------------------------------------------------------
#------ f2's .plt entry
#------------------------------------------------------------------------------
a030: ebfffbf7 bl 9014 <f2@plt>
a034: e59f4000 ldr r4, \[pc\] ; a03c <arm\+0x34>
a038: e59f4000 ldr r4, \[pc\] ; a040 <arm\+0x38>
#------------------------------------------------------------------------------
#------ .got offset for f2
#------------------------------------------------------------------------------
a03c: 00000024 \.word 0x00000024
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f2
#------------------------------------------------------------------------------
a040: 00006fe4 \.word 0x00006fe4
a02c: 00006fe0 \.word 0x00006fe0
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
a044: ebfffbfb bl 9038 <f4@plt\+0x18>
a048: e59f4000 ldr r4, \[pc\] ; a050 <arm\+0x48>
a04c: e59f4000 ldr r4, \[pc\] ; a054 <arm\+0x4c>
a030: ebfffbf5 bl 900c <f1-0xff4>
a034: e59f4000 ldr r4, \[pc\] ; a03c <arm\+0x34>
a038: e59f4000 ldr r4, \[pc\] ; a040 <arm\+0x38>
#------------------------------------------------------------------------------
#------ GP-relative offset of f3's .igot.plt entry
#------------------------------------------------------------------------------
a050: 00000018 \.word 0x00000018
a03c: 00000010 \.word 0x00000010
#------------------------------------------------------------------------------
#------ PC-relative offset of f3's .igot.plt entry
#------------------------------------------------------------------------------
a054: 00006fc4 \.word 0x00006fc4
#------------------------------------------------------------------------------
#------ f4's .plt entry
#------------------------------------------------------------------------------
a058: ebfffbf0 bl 9020 <f4@plt>
a05c: e59f4000 ldr r4, \[pc\] ; a064 <arm\+0x5c>
a060: e59f4000 ldr r4, \[pc\] ; a068 <arm\+0x60>
#------------------------------------------------------------------------------
#------ .got offset for f4
#------------------------------------------------------------------------------
a064: 00000028 \.word 0x00000028
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f4
#------------------------------------------------------------------------------
a068: 00006fc0 \.word 0x00006fc0
a040: 00006fd0 \.word 0x00006fd0

View File

@ -11,35 +11,21 @@ Contents of section \.data:
10000 (44332211 00000100 f8ffffff 00a00000|11223344 00010000 fffffff8 0000a000) .*
#------------------------------------------------------------------------------
#------ 00010010: contains PC-relative offset of f1's .iplt entry
#------ 00010014: f2 [R_ARM_ABS32]
#------ 00010018: f2 [R_ARM_REL32]
#------ 0001001c: contains f3 [R_ARM_IRELATIVE]
#------ 00010014: contains f3 [R_ARM_IRELATIVE]
#------ 00010018: contains PC-relative offset of f3's .iplt entry
#------------------------------------------------------------------------------
10010 (1c90ffff 00000000 00000000 04a00000|ffff901c 00000000 00000000 0000a004) .*
#------------------------------------------------------------------------------
#------ 00010020: contains PC-relative offset of f3's .iplt entry
#------ 00010024: f4 [R_ARM_ABS32]
#------ 00010028: f4 [R_ARM_REL32]
#------------------------------------------------------------------------------
10020 (1890ffff|ffff9018) 00000000 00000000 .*
10010 (f08fffff 04a00000 f48fffff|ffff8ff0 0000a004 ffff8ff4) .*
Contents of section \.got:
#------------------------------------------------------------------------------
#------ 00011000: .got.plt
#------ 00011004: reserved .got.plt entry
#------ 00011008: reserved .got.plt entry
#------ 0001100c: f2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 0001100c: f1's .igot.plt entry [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
11000 (00200100 00000000 00000000 00900000|00012000 00000000 00000000 00009000) .*
11000 (00200100 00000000 00000000 00a00000|00012000 00000000 00000000 0000a000) .*
#------------------------------------------------------------------------------
#------ 00011010: f4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011014: f1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011018: f3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001101c: .got entry for foo [R_ARM_RELATIVE]
#------ 00011010: f3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011014: .got entry for foo [R_ARM_RELATIVE]
#------ 00011018: .got entry for foo [R_ARM_RELATIVE]
#------------------------------------------------------------------------------
11010 (00900000 00a00000 04a00000 00000100|00009000 0000a000 0000a004 00010000) .*
#------------------------------------------------------------------------------
#------ 00011020: .got entry for foo [R_ARM_RELATIVE]
#------ 00011024: .got entry for f2 [R_ARM_GLOB_DAT]
#------ 00011028: .got entry for f4 [R_ARM_GLOB_DAT]
#------------------------------------------------------------------------------
11020 (00000100|00010000) 00000000 00000000 .*
11010 (04a00000 00000100 00000100|0000a004 00010000 00010000) .*

View File

@ -1,21 +1,10 @@
Relocation section '\.rel\.dyn' at offset 0x8000 contains 13 entries:
Relocation section '\.rel\.dyn' at offset 0x8000 contains 7 entries:
Offset Info Type Sym\.Value Sym\. Name
00010004 ......17 R_ARM_RELATIVE
0001101c ......17 R_ARM_RELATIVE
00011020 ......17 R_ARM_RELATIVE
00011014 ......17 R_ARM_RELATIVE
00011018 ......17 R_ARM_RELATIVE
0001000c ......a0 R_ARM_IRELATIVE
0001001c ......a0 R_ARM_IRELATIVE
00011014 ......a0 R_ARM_IRELATIVE
00011018 ......a0 R_ARM_IRELATIVE
00010014 ......02 R_ARM_ABS32 00000000 f2
00010018 ......03 R_ARM_REL32 00000000 f2
00011024 ......15 R_ARM_GLOB_DAT 00000000 f2
00010024 ......02 R_ARM_ABS32 00000000 f4
00010028 ......03 R_ARM_REL32 00000000 f4
00011028 ......15 R_ARM_GLOB_DAT 00000000 f4
Relocation section '\.rel\.plt' at offset 0x8068 contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name
0001100c ......16 R_ARM_JUMP_SLOT 00000000 f2
00011010 ......16 R_ARM_JUMP_SLOT 00000000 f4
00010014 ......a0 R_ARM_IRELATIVE
0001100c ......a0 R_ARM_IRELATIVE
00011010 ......a0 R_ARM_IRELATIVE

View File

@ -36,7 +36,5 @@ foo:
arm:
test_relocs foo
test_relocs f1
test_relocs f2
test_relocs f3
test_relocs f4
.size arm,.-arm

File diff suppressed because it is too large Load Diff

View File

@ -8,160 +8,76 @@ Contents of section \.data:
#------ 00010008: contains PC-relative offset of aaf1's .iplt entry
#------ 0001000c: contains atf1 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10000 (44332211 00a00000 bc90ffff 04a00000|11223344 0000a000 ffff90bc 0000a004) .*
10000 (44332211 00a00000 f88fffff 04a00000|11223344 0000a000 ffff8ff8 0000a004) .*
#------------------------------------------------------------------------------
#------ 00010010: contains PC-relative offset of atf1's .iplt entry
#------ 00010014: contains abf1 [R_ARM_IRELATIVE]
#------ 00010018: contains PC-relative offset of abf1's .iplt entry
#------ 0001001c: contains taf1 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10010 (c490ffff 08a00000 cc90ffff 0da00000|ffff90c4 0000a008 ffff90cc 0000a00d) .*
10010 (0090ffff 08a00000 0890ffff 0da00000|ffff9000 0000a008 ffff9008 0000a00d) .*
#------------------------------------------------------------------------------
#------ 00010020: contains PC-relative offset of taf1's .iplt entry
#------ 00010024: contains ttf1 [R_ARM_IRELATIVE]
#------ 00010028: contains PC-relative offset of ttf1's .iplt entry
#------ 0001002c: contains tbf1 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10020 (d090ffff 0fa00000 d890ffff 11a00000|ffff90d0 0000a00f ffff90d8 0000a011) .*
10020 (0c90ffff 0fa00000 1490ffff 11a00000|ffff900c 0000a00f ffff9014 0000a011) .*
#------------------------------------------------------------------------------
#------ 00010030: contains PC-relative offset of tbf1's .iplt entry
#------ 00010034: aaf2 [R_ARM_ABS32]
#------ 00010038: aaf2 [R_ARM_REL32]
#------ 0001003c: atf2 [R_ARM_ABS32]
#------ 00010034: contains aaf3 [R_ARM_IRELATIVE]
#------ 00010038: contains PC-relative offset of aaf3's .iplt entry
#------ 0001003c: contains atf3 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10030 (e090ffff|ffff90e0) 00000000 00000000 00000000 .*
10030 (1c90ffff 14a00000 6c90ffff 18a00000|ffff901c 0000a014 ffff906c 0000a018) .*
#------------------------------------------------------------------------------
#------ 00010040: atf2 [R_ARM_REL32]
#------ 00010044: abf2 [R_ARM_ABS32]
#------ 00010048: abf2 [R_ARM_REL32]
#------ 0001004c: taf2 [R_ARM_ABS32]
#------ 00010040: contains PC-relative offset of atf3's .iplt entry
#------ 00010044: contains abf3 [R_ARM_IRELATIVE]
#------ 00010048: contains PC-relative offset of abf3's .iplt entry
#------ 0001004c: contains taf3 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10040 00000000 00000000 00000000 00000000 .*
10040 (1c90ffff 1ca00000 2490ffff 21a00000|ffff901c 0000a01c ffff9024 0000a021) .*
#------------------------------------------------------------------------------
#------ 00010050: taf2 [R_ARM_REL32]
#------ 00010054: ttf2 [R_ARM_ABS32]
#------ 00010058: ttf2 [R_ARM_REL32]
#------ 0001005c: tbf2 [R_ARM_ABS32]
#------ 00010050: contains PC-relative offset of taf3's .iplt entry
#------ 00010054: contains ttf3 [R_ARM_IRELATIVE]
#------ 00010058: contains PC-relative offset of ttf3's .iplt entry
#------ 0001005c: contains tbf3 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10050 00000000 00000000 00000000 00000000 .*
10050 (4890ffff 23a00000 2490ffff 25a00000|ffff9048 0000a023 ffff9024 0000a025) .*
#------------------------------------------------------------------------------
#------ 00010060: tbf2 [R_ARM_REL32]
#------ 00010064: contains aaf3 [R_ARM_IRELATIVE]
#------ 00010068: contains PC-relative offset of aaf3's .iplt entry
#------ 0001006c: contains atf3 [R_ARM_IRELATIVE]
#------ 00010060: contains PC-relative offset of tbf3's .iplt entry
#------------------------------------------------------------------------------
10060 00000000 (14a00000 0091ffff 18a00000|0000a014 ffff9100 0000a018) .*
#------------------------------------------------------------------------------
#------ 00010070: contains PC-relative offset of atf3's .iplt entry
#------ 00010074: contains abf3 [R_ARM_IRELATIVE]
#------ 00010078: contains PC-relative offset of abf3's .iplt entry
#------ 0001007c: contains taf3 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10070 (b090ffff 1ca00000 b890ffff 21a00000|ffff90b0 0000a01c ffff90b8 0000a021) .*
#------------------------------------------------------------------------------
#------ 00010080: contains PC-relative offset of taf3's .iplt entry
#------ 00010084: contains ttf3 [R_ARM_IRELATIVE]
#------ 00010088: contains PC-relative offset of ttf3's .iplt entry
#------ 0001008c: contains tbf3 [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
10080 (dc90ffff 23a00000 b890ffff 25a00000|ffff90dc 0000a023 ffff90b8 0000a025) .*
#------------------------------------------------------------------------------
#------ 00010090: contains PC-relative offset of tbf3's .iplt entry
#------ 00010094: aaf4 [R_ARM_ABS32]
#------ 00010098: aaf4 [R_ARM_REL32]
#------ 0001009c: atf4 [R_ARM_ABS32]
#------------------------------------------------------------------------------
10090 (c090ffff|ffff90c0) 00000000 00000000 00000000 .*
#------------------------------------------------------------------------------
#------ 000100a0: atf4 [R_ARM_REL32]
#------ 000100a4: abf4 [R_ARM_ABS32]
#------ 000100a8: abf4 [R_ARM_REL32]
#------ 000100ac: taf4 [R_ARM_ABS32]
#------------------------------------------------------------------------------
100a0 00000000 00000000 00000000 00000000 .*
#------------------------------------------------------------------------------
#------ 000100b0: taf4 [R_ARM_REL32]
#------ 000100b4: ttf4 [R_ARM_ABS32]
#------ 000100b8: ttf4 [R_ARM_REL32]
#------ 000100bc: tbf4 [R_ARM_ABS32]
#------------------------------------------------------------------------------
100b0 00000000 00000000 00000000 00000000 .*
#------------------------------------------------------------------------------
#------ 000100c0: tbf4 [R_ARM_REL32]
#------------------------------------------------------------------------------
100c0 00000000 .*
10060 (2c90ffff|ffff902c) .*
Contents of section \.got:
#------------------------------------------------------------------------------
#------ 00011000: .got.plt
#------ 00011004: reserved .got.plt entry
#------ 00011008: reserved .got.plt entry
#------ 0001100c: atf2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 0001100c: aaf1's .igot.plt entry [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
11000 (00200100 00000000 00000000 00900000|00012000 00000000 00000000 00009000) .*
11000 (00200100 00000000 00000000 00a00000|00012000 00000000 00000000 0000a000) .*
#------------------------------------------------------------------------------
#------ 00011010: aaf4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011014: ttf2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011018: tbf2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 0001101c: taf2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011010: atf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011014: abf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011018: taf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001101c: ttf1's .igot.plt entry [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
11010 (00900000 00900000 00900000 00900000|00009000 00009000 00009000 00009000) .*
11010 (04a00000 08a00000 0da00000 0fa00000|0000a004 0000a008 0000a00d 0000a00f) .*
#------------------------------------------------------------------------------
#------ 00011020: aaf2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011024: abf4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011028: tbf4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 0001102c: ttf4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011020: tbf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011024: atf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011028: abf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001102c: ttf3's .igot.plt entry [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
11020 (00900000 00900000 00900000 00900000|00009000 00009000 00009000 00009000) .*
11020 (11a00000 18a00000 1ca00000 23a00000|0000a011 0000a018 0000a01c 0000a023) .*
#------------------------------------------------------------------------------
#------ 00011030: atf4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011034: taf4's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 00011038: abf2's .got.plt entry [R_ARM_JUMP_SLOT]
#------ 0001103c: aaf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011030: tbf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011034: taf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011038: aaf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001103c: .got entry for foo [R_ARM_RELATIVE]
#------------------------------------------------------------------------------
11030 (00900000 00900000 00900000 00a00000|00009000 00009000 00009000 0000a000) .*
11030 (25a00000 21a00000 14a00000 00000100|0000a025 0000a021 0000a014 00010000) .*
#------------------------------------------------------------------------------
#------ 00011040: atf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011044: abf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011048: taf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001104c: ttf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011040: .got entry for foo [R_ARM_RELATIVE]
#------------------------------------------------------------------------------
11040 (04a00000 08a00000 0da00000 0fa00000|0000a004 0000a008 0000a00d 0000a00f) .*
#------------------------------------------------------------------------------
#------ 00011050: tbf1's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011054: atf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011058: abf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001105c: ttf3's .igot.plt entry [R_ARM_IRELATIVE]
#------------------------------------------------------------------------------
11050 (11a00000 18a00000 1ca00000 23a00000|0000a011 0000a018 0000a01c 0000a023) .*
#------------------------------------------------------------------------------
#------ 00011060: tbf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011064: taf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 00011068: aaf3's .igot.plt entry [R_ARM_IRELATIVE]
#------ 0001106c: .got entry for foo [R_ARM_RELATIVE]
#------------------------------------------------------------------------------
11060 (25a00000 21a00000 14a00000 00000100|0000a025 0000a021 0000a014 00010000) .*
#------------------------------------------------------------------------------
#------ 00011070: .got entry for foo [R_ARM_RELATIVE]
#------ 00011074: .got entry for atf2 [R_ARM_GLOB_DAT]
#------ 00011078: .got entry for aaf4 [R_ARM_GLOB_DAT]
#------ 0001107c: .got entry for ttf2 [R_ARM_GLOB_DAT]
#------------------------------------------------------------------------------
11070 (00000100|00010000) 00000000 00000000 00000000 .*
#------------------------------------------------------------------------------
#------ 00011080: .got entry for tbf2 [R_ARM_GLOB_DAT]
#------ 00011084: .got entry for taf2 [R_ARM_GLOB_DAT]
#------ 00011088: .got entry for aaf2 [R_ARM_GLOB_DAT]
#------ 0001108c: .got entry for abf4 [R_ARM_GLOB_DAT]
#------------------------------------------------------------------------------
11080 00000000 00000000 00000000 00000000 .*
#------------------------------------------------------------------------------
#------ 00011090: .got entry for tbf4 [R_ARM_GLOB_DAT]
#------ 00011094: .got entry for ttf4 [R_ARM_GLOB_DAT]
#------ 00011098: .got entry for atf4 [R_ARM_GLOB_DAT]
#------ 0001109c: .got entry for taf4 [R_ARM_GLOB_DAT]
#------------------------------------------------------------------------------
11090 00000000 00000000 00000000 00000000 .*
#------------------------------------------------------------------------------
#------ 000110a0: .got entry for abf2 [R_ARM_GLOB_DAT]
#------------------------------------------------------------------------------
110a0 00000000 .*
11040 (00000100|00010000) .*

View File

@ -1,80 +1,29 @@
Relocation section '\.rel\.dyn' at offset 0x8000 contains 62 entries:
Relocation section '\.rel\.dyn' at offset 0x8000 contains 26 entries:
Offset Info Type Sym\.Value Sym\. Name
0001106c ......17 R_ARM_RELATIVE
00011070 ......17 R_ARM_RELATIVE
0001103c ......17 R_ARM_RELATIVE
00011040 ......17 R_ARM_RELATIVE
00010004 ......a0 R_ARM_IRELATIVE
0001000c ......a0 R_ARM_IRELATIVE
00010014 ......a0 R_ARM_IRELATIVE
0001001c ......a0 R_ARM_IRELATIVE
00010024 ......a0 R_ARM_IRELATIVE
0001002c ......a0 R_ARM_IRELATIVE
00010064 ......a0 R_ARM_IRELATIVE
0001006c ......a0 R_ARM_IRELATIVE
00010074 ......a0 R_ARM_IRELATIVE
0001007c ......a0 R_ARM_IRELATIVE
00010084 ......a0 R_ARM_IRELATIVE
0001008c ......a0 R_ARM_IRELATIVE
0001103c ......a0 R_ARM_IRELATIVE
00011040 ......a0 R_ARM_IRELATIVE
00011044 ......a0 R_ARM_IRELATIVE
00011048 ......a0 R_ARM_IRELATIVE
0001104c ......a0 R_ARM_IRELATIVE
00011050 ......a0 R_ARM_IRELATIVE
00011054 ......a0 R_ARM_IRELATIVE
00011058 ......a0 R_ARM_IRELATIVE
0001105c ......a0 R_ARM_IRELATIVE
00011060 ......a0 R_ARM_IRELATIVE
00011064 ......a0 R_ARM_IRELATIVE
00011068 ......a0 R_ARM_IRELATIVE
00010034 ......02 R_ARM_ABS32 00000000 aaf2
00010038 ......03 R_ARM_REL32 00000000 aaf2
00011088 ......15 R_ARM_GLOB_DAT 00000000 aaf2
0001003c ......02 R_ARM_ABS32 00000000 atf2
00010040 ......03 R_ARM_REL32 00000000 atf2
00011074 ......15 R_ARM_GLOB_DAT 00000000 atf2
00010044 ......02 R_ARM_ABS32 00000000 abf2
00010048 ......03 R_ARM_REL32 00000000 abf2
000110a0 ......15 R_ARM_GLOB_DAT 00000000 abf2
0001004c ......02 R_ARM_ABS32 00000000 taf2
00010050 ......03 R_ARM_REL32 00000000 taf2
00011084 ......15 R_ARM_GLOB_DAT 00000000 taf2
00010054 ......02 R_ARM_ABS32 00000000 ttf2
00010058 ......03 R_ARM_REL32 00000000 ttf2
0001107c ......15 R_ARM_GLOB_DAT 00000000 ttf2
0001005c ......02 R_ARM_ABS32 00000000 tbf2
00010060 ......03 R_ARM_REL32 00000000 tbf2
00011080 ......15 R_ARM_GLOB_DAT 00000000 tbf2
00010094 ......02 R_ARM_ABS32 00000000 aaf4
00010098 ......03 R_ARM_REL32 00000000 aaf4
00011078 ......15 R_ARM_GLOB_DAT 00000000 aaf4
0001009c ......02 R_ARM_ABS32 00000000 atf4
000100a0 ......03 R_ARM_REL32 00000000 atf4
00011098 ......15 R_ARM_GLOB_DAT 00000000 atf4
000100a4 ......02 R_ARM_ABS32 00000000 abf4
000100a8 ......03 R_ARM_REL32 00000000 abf4
0001108c ......15 R_ARM_GLOB_DAT 00000000 abf4
000100ac ......02 R_ARM_ABS32 00000000 taf4
000100b0 ......03 R_ARM_REL32 00000000 taf4
0001109c ......15 R_ARM_GLOB_DAT 00000000 taf4
000100b4 ......02 R_ARM_ABS32 00000000 ttf4
000100b8 ......03 R_ARM_REL32 00000000 ttf4
00011094 ......15 R_ARM_GLOB_DAT 00000000 ttf4
000100bc ......02 R_ARM_ABS32 00000000 tbf4
000100c0 ......03 R_ARM_REL32 00000000 tbf4
00011090 ......15 R_ARM_GLOB_DAT 00000000 tbf4
Relocation section '\.rel\.plt' at offset 0x81f0 contains 12 entries:
Offset Info Type Sym\.Value Sym\. Name
0001100c ......16 R_ARM_JUMP_SLOT 00000000 atf2
00011010 ......16 R_ARM_JUMP_SLOT 00000000 aaf4
00011014 ......16 R_ARM_JUMP_SLOT 00000000 ttf2
00011018 ......16 R_ARM_JUMP_SLOT 00000000 tbf2
0001101c ......16 R_ARM_JUMP_SLOT 00000000 taf2
00011020 ......16 R_ARM_JUMP_SLOT 00000000 aaf2
00011024 ......16 R_ARM_JUMP_SLOT 00000000 abf4
00011028 ......16 R_ARM_JUMP_SLOT 00000000 tbf4
0001102c ......16 R_ARM_JUMP_SLOT 00000000 ttf4
00011030 ......16 R_ARM_JUMP_SLOT 00000000 atf4
00011034 ......16 R_ARM_JUMP_SLOT 00000000 taf4
00011038 ......16 R_ARM_JUMP_SLOT 00000000 abf2
00010034 ......a0 R_ARM_IRELATIVE
0001003c ......a0 R_ARM_IRELATIVE
00010044 ......a0 R_ARM_IRELATIVE
0001004c ......a0 R_ARM_IRELATIVE
00010054 ......a0 R_ARM_IRELATIVE
0001005c ......a0 R_ARM_IRELATIVE
0001100c ......a0 R_ARM_IRELATIVE
00011010 ......a0 R_ARM_IRELATIVE
00011014 ......a0 R_ARM_IRELATIVE
00011018 ......a0 R_ARM_IRELATIVE
0001101c ......a0 R_ARM_IRELATIVE
00011020 ......a0 R_ARM_IRELATIVE
00011024 ......a0 R_ARM_IRELATIVE
00011028 ......a0 R_ARM_IRELATIVE
0001102c ......a0 R_ARM_IRELATIVE
00011030 ......a0 R_ARM_IRELATIVE
00011034 ......a0 R_ARM_IRELATIVE
00011038 ......a0 R_ARM_IRELATIVE

View File

@ -63,9 +63,7 @@
arm:
test_relocs foo
test_relocs2 f1,a,
test_relocs2 f2,a,
test_relocs2 f3,a,
test_relocs2 f4,a,
.size arm,.-arm
.globl _thumb
@ -74,15 +72,11 @@ arm:
_thumb:
test_relocs foo
test_relocs2 f1,t,.w
test_relocs2 f2,t,.w
test_relocs2 f3,t,.w
test_relocs2 f4,t,.w
.size _thumb,.-_thumb
.data
foo:
.word 0x11223344
alldirs diff,f1
alldirs diff,f2
alldirs diff,f3
alldirs diff,f4

View File

@ -0,0 +1,3 @@
#source: rel32-reject-pie.s
#ld: -pie
#error: .*relocation R_ARM_REL32.*can not.*PIE executable.*

View File

@ -0,0 +1,8 @@
.text
.global main
main:
b main
.data
rel:
.word non_global - .

View File

@ -0,0 +1,3 @@
#source: rel32-reject.s
#ld: -shared
#error: .*relocation R_ARM_REL32.*can not.*shared object.*

View File

@ -0,0 +1,9 @@
.text
.global main
main:
b main
.data
.extern ext_global
rel:
.word ext_global - .