[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:
parent
3d0064a95d
commit
52db4ec2d1
@ -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
|
||||
|
@ -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)
|
||||
|
16
ld/ChangeLog
16
ld/ChangeLog
@ -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.
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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) .*
|
||||
|
@ -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
|
||||
|
@ -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
@ -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) .*
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
3
ld/testsuite/ld-arm/rel32-reject-pie.d
Normal file
3
ld/testsuite/ld-arm/rel32-reject-pie.d
Normal file
@ -0,0 +1,3 @@
|
||||
#source: rel32-reject-pie.s
|
||||
#ld: -pie
|
||||
#error: .*relocation R_ARM_REL32.*can not.*PIE executable.*
|
8
ld/testsuite/ld-arm/rel32-reject-pie.s
Normal file
8
ld/testsuite/ld-arm/rel32-reject-pie.s
Normal file
@ -0,0 +1,8 @@
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
b main
|
||||
|
||||
.data
|
||||
rel:
|
||||
.word non_global - .
|
3
ld/testsuite/ld-arm/rel32-reject.d
Normal file
3
ld/testsuite/ld-arm/rel32-reject.d
Normal file
@ -0,0 +1,3 @@
|
||||
#source: rel32-reject.s
|
||||
#ld: -shared
|
||||
#error: .*relocation R_ARM_REL32.*can not.*shared object.*
|
9
ld/testsuite/ld-arm/rel32-reject.s
Normal file
9
ld/testsuite/ld-arm/rel32-reject.s
Normal file
@ -0,0 +1,9 @@
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
b main
|
||||
|
||||
.data
|
||||
.extern ext_global
|
||||
rel:
|
||||
.word ext_global - .
|
Loading…
x
Reference in New Issue
Block a user