From 52db4ec2d13f511ef3dfe5b9a159869da6e4c3eb Mon Sep 17 00:00:00 2001 From: Jiong Wang Date: Wed, 14 Jan 2015 19:11:54 +0000 Subject: [PATCH] [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. --- bfd/ChangeLog | 5 + bfd/elf32-arm.c | 15 + ld/ChangeLog | 16 + ld/testsuite/ld-arm/arm-elf.exp | 2 + ld/testsuite/ld-arm/ifunc-7.dd | 86 +-- ld/testsuite/ld-arm/ifunc-7.gd | 32 +- ld/testsuite/ld-arm/ifunc-7.rd | 23 +- ld/testsuite/ld-arm/ifunc-7.s | 2 - ld/testsuite/ld-arm/ifunc-8.dd | 824 +++++-------------------- ld/testsuite/ld-arm/ifunc-8.gd | 160 ++--- ld/testsuite/ld-arm/ifunc-8.rd | 93 +-- ld/testsuite/ld-arm/ifunc-8.s | 6 - ld/testsuite/ld-arm/rel32-reject-pie.d | 3 + ld/testsuite/ld-arm/rel32-reject-pie.s | 8 + ld/testsuite/ld-arm/rel32-reject.d | 3 + ld/testsuite/ld-arm/rel32-reject.s | 9 + 16 files changed, 319 insertions(+), 968 deletions(-) create mode 100644 ld/testsuite/ld-arm/rel32-reject-pie.d create mode 100644 ld/testsuite/ld-arm/rel32-reject-pie.s create mode 100644 ld/testsuite/ld-arm/rel32-reject.d create mode 100644 ld/testsuite/ld-arm/rel32-reject.s diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c6aa9665a30..0e83f2e590c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2015-01-14 Jiong Wang + + * 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 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 75ea1d48805..d36a7a538f1 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -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) diff --git a/ld/ChangeLog b/ld/ChangeLog index be4617f02f4..c7847a1806d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,19 @@ +2015-01-14 Jiong Wang + + * 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 * ldver.c (ldversion): Just print current year. diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 0efbde422b8..9d946e0606a 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -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. diff --git a/ld/testsuite/ld-arm/ifunc-7.dd b/ld/testsuite/ld-arm/ifunc-7.dd index f82fd3769f1..c2c5e9cb66a 100644 --- a/ld/testsuite/ld-arm/ifunc-7.dd +++ b/ld/testsuite/ld-arm/ifunc-7.dd @@ -2,47 +2,21 @@ .* -Disassembly of section \.plt: - -00009000 : - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) - 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 - 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 : - 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 : - 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 + a01c: ebfffbf7 bl 9000 a020: e59f4000 ldr r4, \[pc\] ; a028 a024: e59f4000 ldr r4, \[pc\] ; a02c #------------------------------------------------------------------------------ #------ 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 + a02c: 00006fe0 \.word 0x00006fe0 #------------------------------------------------------------------------------ -#------ f2's .plt entry +#------ f3's .iplt entry #------------------------------------------------------------------------------ - a030: ebfffbf7 bl 9014 + a030: ebfffbf5 bl 900c a034: e59f4000 ldr r4, \[pc\] ; a03c a038: e59f4000 ldr r4, \[pc\] ; a040 #------------------------------------------------------------------------------ -#------ .got offset for f2 -#------------------------------------------------------------------------------ - a03c: 00000024 \.word 0x00000024 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for f2 -#------------------------------------------------------------------------------ - a040: 00006fe4 \.word 0x00006fe4 -#------------------------------------------------------------------------------ -#------ f3's .iplt entry -#------------------------------------------------------------------------------ - a044: ebfffbfb bl 9038 - a048: e59f4000 ldr r4, \[pc\] ; a050 - a04c: e59f4000 ldr r4, \[pc\] ; a054 -#------------------------------------------------------------------------------ #------ 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 - a05c: e59f4000 ldr r4, \[pc\] ; a064 - a060: e59f4000 ldr r4, \[pc\] ; a068 -#------------------------------------------------------------------------------ -#------ .got offset for f4 -#------------------------------------------------------------------------------ - a064: 00000028 \.word 0x00000028 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for f4 -#------------------------------------------------------------------------------ - a068: 00006fc0 \.word 0x00006fc0 + a040: 00006fd0 \.word 0x00006fd0 diff --git a/ld/testsuite/ld-arm/ifunc-7.gd b/ld/testsuite/ld-arm/ifunc-7.gd index 3251c459b81..da1bb453c1b 100644 --- a/ld/testsuite/ld-arm/ifunc-7.gd +++ b/ld/testsuite/ld-arm/ifunc-7.gd @@ -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] -#------------------------------------------------------------------------------ - 11000 (00200100 00000000 00000000 00900000|00012000 00000000 00000000 00009000) .* -#------------------------------------------------------------------------------ -#------ 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] +#------ 0001100c: f1's .igot.plt entry [R_ARM_IRELATIVE] #------------------------------------------------------------------------------ - 11010 (00900000 00a00000 04a00000 00000100|00009000 0000a000 0000a004 00010000) .* + 11000 (00200100 00000000 00000000 00a00000|00012000 00000000 00000000 0000a000) .* #------------------------------------------------------------------------------ -#------ 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] +#------ 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] #------------------------------------------------------------------------------ - 11020 (00000100|00010000) 00000000 00000000 .* + 11010 (04a00000 00000100 00000100|0000a004 00010000 00010000) .* diff --git a/ld/testsuite/ld-arm/ifunc-7.rd b/ld/testsuite/ld-arm/ifunc-7.rd index a29b184d36e..f250bb7e430 100644 --- a/ld/testsuite/ld-arm/ifunc-7.rd +++ b/ld/testsuite/ld-arm/ifunc-7.rd @@ -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 diff --git a/ld/testsuite/ld-arm/ifunc-7.s b/ld/testsuite/ld-arm/ifunc-7.s index 85ffb686c18..1159768151f 100644 --- a/ld/testsuite/ld-arm/ifunc-7.s +++ b/ld/testsuite/ld-arm/ifunc-7.s @@ -36,7 +36,5 @@ foo: arm: test_relocs foo test_relocs f1 - test_relocs f2 test_relocs f3 - test_relocs f4 .size arm,.-arm diff --git a/ld/testsuite/ld-arm/ifunc-8.dd b/ld/testsuite/ld-arm/ifunc-8.dd index 3cca17cfcd7..50a91770926 100644 --- a/ld/testsuite/ld-arm/ifunc-8.dd +++ b/ld/testsuite/ld-arm/ifunc-8.dd @@ -2,257 +2,121 @@ .* -Disassembly of section \.plt: - -00009000 : - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) - 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got.plt -#------------------------------------------------------------------------------ - 9010: 00007ff0 \.word 0x00007ff0 -#------------------------------------------------------------------------------ -#------ thumb entry to atf2's .plt entry -#------------------------------------------------------------------------------ -00009014 : - 9014: 4778 bx pc - 9016: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ atf2's .plt entry -#------------------------------------------------------------------------------ - 9018: e28fc600 add ip, pc, #0, 12 - 901c: e28cca07 add ip, ip, #28672 ; 0x7000 - 9020: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec -#------------------------------------------------------------------------------ -#------ aaf4's .plt entry -#------------------------------------------------------------------------------ -00009024 : - 9024: e28fc600 add ip, pc, #0, 12 - 9028: e28cca07 add ip, ip, #28672 ; 0x7000 - 902c: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 -#------------------------------------------------------------------------------ -#------ thumb entry to ttf2's .plt entry -#------------------------------------------------------------------------------ -00009030 : - 9030: 4778 bx pc - 9032: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ ttf2's .plt entry -#------------------------------------------------------------------------------ - 9034: e28fc600 add ip, pc, #0, 12 - 9038: e28cca07 add ip, ip, #28672 ; 0x7000 - 903c: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 -#------------------------------------------------------------------------------ -#------ thumb entry to tbf2's .plt entry -#------------------------------------------------------------------------------ -00009040 : - 9040: 4778 bx pc - 9042: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ tbf2's .plt entry -#------------------------------------------------------------------------------ - 9044: e28fc600 add ip, pc, #0, 12 - 9048: e28cca07 add ip, ip, #28672 ; 0x7000 - 904c: e5bcffcc ldr pc, \[ip, #4044\]! ; 0xfcc -#------------------------------------------------------------------------------ -#------ taf2's .plt entry -#------------------------------------------------------------------------------ -00009050 : - 9050: e28fc600 add ip, pc, #0, 12 - 9054: e28cca07 add ip, ip, #28672 ; 0x7000 - 9058: e5bcffc4 ldr pc, \[ip, #4036\]! ; 0xfc4 -#------------------------------------------------------------------------------ -#------ aaf2's .plt entry -#------------------------------------------------------------------------------ -0000905c : - 905c: e28fc600 add ip, pc, #0, 12 - 9060: e28cca07 add ip, ip, #28672 ; 0x7000 - 9064: e5bcffbc ldr pc, \[ip, #4028\]! ; 0xfbc -#------------------------------------------------------------------------------ -#------ thumb entry to abf4's .plt entry -#------------------------------------------------------------------------------ -00009068 : - 9068: 4778 bx pc - 906a: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ abf4's .plt entry -#------------------------------------------------------------------------------ - 906c: e28fc600 add ip, pc, #0, 12 - 9070: e28cca07 add ip, ip, #28672 ; 0x7000 - 9074: e5bcffb0 ldr pc, \[ip, #4016\]! ; 0xfb0 -#------------------------------------------------------------------------------ -#------ thumb entry to tbf4's .plt entry -#------------------------------------------------------------------------------ -00009078 : - 9078: 4778 bx pc - 907a: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ tbf4's .plt entry -#------------------------------------------------------------------------------ - 907c: e28fc600 add ip, pc, #0, 12 - 9080: e28cca07 add ip, ip, #28672 ; 0x7000 - 9084: e5bcffa4 ldr pc, \[ip, #4004\]! ; 0xfa4 -#------------------------------------------------------------------------------ -#------ thumb entry to ttf4's .plt entry -#------------------------------------------------------------------------------ -00009088 : - 9088: 4778 bx pc - 908a: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ ttf4's .plt entry -#------------------------------------------------------------------------------ - 908c: e28fc600 add ip, pc, #0, 12 - 9090: e28cca07 add ip, ip, #28672 ; 0x7000 - 9094: e5bcff98 ldr pc, \[ip, #3992\]! ; 0xf98 -#------------------------------------------------------------------------------ -#------ thumb entry to atf4's .plt entry -#------------------------------------------------------------------------------ -00009098 : - 9098: 4778 bx pc - 909a: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ atf4's .plt entry -#------------------------------------------------------------------------------ - 909c: e28fc600 add ip, pc, #0, 12 - 90a0: e28cca07 add ip, ip, #28672 ; 0x7000 - 90a4: e5bcff8c ldr pc, \[ip, #3980\]! ; 0xf8c -#------------------------------------------------------------------------------ -#------ taf4's .plt entry -#------------------------------------------------------------------------------ -000090a8 : - 90a8: e28fc600 add ip, pc, #0, 12 - 90ac: e28cca07 add ip, ip, #28672 ; 0x7000 - 90b0: e5bcff84 ldr pc, \[ip, #3972\]! ; 0xf84 -#------------------------------------------------------------------------------ -#------ thumb entry to abf2's .plt entry -#------------------------------------------------------------------------------ -000090b4 : - 90b4: 4778 bx pc - 90b6: 46c0 nop ; \(mov r8, r8\) -#------------------------------------------------------------------------------ -#------ abf2's .plt entry -#------------------------------------------------------------------------------ - 90b8: e28fc600 add ip, pc, #0, 12 - 90bc: e28cca07 add ip, ip, #28672 ; 0x7000 - 90c0: e5bcff78 ldr pc, \[ip, #3960\]! ; 0xf78 - Disassembly of section \.iplt: -000090c4 <\.iplt>: +00009000 <\.iplt>: #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - 90c4: e28fc600 add ip, pc, #0, 12 - 90c8: e28cca07 add ip, ip, #28672 ; 0x7000 - 90cc: e5bcff70 ldr pc, \[ip, #3952\]! ; 0xf70 + 9000: e28fc600 add ip, pc, #0, 12 + 9004: e28cca08 add ip, ip, #8, 20 ; 0x8000 + 9008: e5bcf004 ldr pc, \[ip, #4\]! #------------------------------------------------------------------------------ #------ thumb entry to atf1's .iplt entry #------------------------------------------------------------------------------ - 90d0: 4778 bx pc - 90d2: 46c0 nop ; \(mov r8, r8\) + 900c: 4778 bx pc + 900e: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ atf1's .iplt entry #------------------------------------------------------------------------------ - 90d4: e28fc600 add ip, pc, #0, 12 - 90d8: e28cca07 add ip, ip, #28672 ; 0x7000 - 90dc: e5bcff64 ldr pc, \[ip, #3940\]! ; 0xf64 + 9010: e28fc600 add ip, pc, #0, 12 + 9014: e28cca07 add ip, ip, #28672 ; 0x7000 + 9018: e5bcfff8 ldr pc, \[ip, #4088\]! ; 0xff8 #------------------------------------------------------------------------------ #------ thumb entry to abf1's .iplt entry #------------------------------------------------------------------------------ - 90e0: 4778 bx pc - 90e2: 46c0 nop ; \(mov r8, r8\) + 901c: 4778 bx pc + 901e: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - 90e4: e28fc600 add ip, pc, #0, 12 - 90e8: e28cca07 add ip, ip, #28672 ; 0x7000 - 90ec: e5bcff58 ldr pc, \[ip, #3928\]! ; 0xf58 + 9020: e28fc600 add ip, pc, #0, 12 + 9024: e28cca07 add ip, ip, #28672 ; 0x7000 + 9028: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - 90f0: e28fc600 add ip, pc, #0, 12 - 90f4: e28cca07 add ip, ip, #28672 ; 0x7000 - 90f8: e5bcff50 ldr pc, \[ip, #3920\]! ; 0xf50 + 902c: e28fc600 add ip, pc, #0, 12 + 9030: e28cca07 add ip, ip, #28672 ; 0x7000 + 9034: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 #------------------------------------------------------------------------------ #------ thumb entry to ttf1's .iplt entry #------------------------------------------------------------------------------ - 90fc: 4778 bx pc - 90fe: 46c0 nop ; \(mov r8, r8\) + 9038: 4778 bx pc + 903a: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ ttf1's .iplt entry #------------------------------------------------------------------------------ - 9100: e28fc600 add ip, pc, #0, 12 - 9104: e28cca07 add ip, ip, #28672 ; 0x7000 - 9108: e5bcff44 ldr pc, \[ip, #3908\]! ; 0xf44 + 903c: e28fc600 add ip, pc, #0, 12 + 9040: e28cca07 add ip, ip, #28672 ; 0x7000 + 9044: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 #------------------------------------------------------------------------------ #------ thumb entry to tbf1's .iplt entry #------------------------------------------------------------------------------ - 910c: 4778 bx pc - 910e: 46c0 nop ; \(mov r8, r8\) + 9048: 4778 bx pc + 904a: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - 9110: e28fc600 add ip, pc, #0, 12 - 9114: e28cca07 add ip, ip, #28672 ; 0x7000 - 9118: e5bcff38 ldr pc, \[ip, #3896\]! ; 0xf38 + 904c: e28fc600 add ip, pc, #0, 12 + 9050: e28cca07 add ip, ip, #28672 ; 0x7000 + 9054: e5bcffcc ldr pc, \[ip, #4044\]! ; 0xfcc #------------------------------------------------------------------------------ #------ thumb entry to atf3's .iplt entry #------------------------------------------------------------------------------ - 911c: 4778 bx pc - 911e: 46c0 nop ; \(mov r8, r8\) + 9058: 4778 bx pc + 905a: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ atf3's .iplt entry #------------------------------------------------------------------------------ - 9120: e28fc600 add ip, pc, #0, 12 - 9124: e28cca07 add ip, ip, #28672 ; 0x7000 - 9128: e5bcff2c ldr pc, \[ip, #3884\]! ; 0xf2c + 905c: e28fc600 add ip, pc, #0, 12 + 9060: e28cca07 add ip, ip, #28672 ; 0x7000 + 9064: e5bcffc0 ldr pc, \[ip, #4032\]! ; 0xfc0 #------------------------------------------------------------------------------ #------ thumb entry to abf3's .iplt entry #------------------------------------------------------------------------------ - 912c: 4778 bx pc - 912e: 46c0 nop ; \(mov r8, r8\) + 9068: 4778 bx pc + 906a: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - 9130: e28fc600 add ip, pc, #0, 12 - 9134: e28cca07 add ip, ip, #28672 ; 0x7000 - 9138: e5bcff20 ldr pc, \[ip, #3872\]! ; 0xf20 + 906c: e28fc600 add ip, pc, #0, 12 + 9070: e28cca07 add ip, ip, #28672 ; 0x7000 + 9074: e5bcffb4 ldr pc, \[ip, #4020\]! ; 0xfb4 #------------------------------------------------------------------------------ #------ thumb entry to ttf3's .iplt entry #------------------------------------------------------------------------------ - 913c: 4778 bx pc - 913e: 46c0 nop ; \(mov r8, r8\) + 9078: 4778 bx pc + 907a: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ ttf3's .iplt entry #------------------------------------------------------------------------------ - 9140: e28fc600 add ip, pc, #0, 12 - 9144: e28cca07 add ip, ip, #28672 ; 0x7000 - 9148: e5bcff14 ldr pc, \[ip, #3860\]! ; 0xf14 + 907c: e28fc600 add ip, pc, #0, 12 + 9080: e28cca07 add ip, ip, #28672 ; 0x7000 + 9084: e5bcffa8 ldr pc, \[ip, #4008\]! ; 0xfa8 #------------------------------------------------------------------------------ #------ thumb entry to tbf3's .iplt entry #------------------------------------------------------------------------------ - 914c: 4778 bx pc - 914e: 46c0 nop ; \(mov r8, r8\) + 9088: 4778 bx pc + 908a: 46c0 nop ; \(mov r8, r8\) #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - 9150: e28fc600 add ip, pc, #0, 12 - 9154: e28cca07 add ip, ip, #28672 ; 0x7000 - 9158: e5bcff08 ldr pc, \[ip, #3848\]! ; 0xf08 + 908c: e28fc600 add ip, pc, #0, 12 + 9090: e28cca07 add ip, ip, #28672 ; 0x7000 + 9094: e5bcff9c ldr pc, \[ip, #3996\]! ; 0xf9c #------------------------------------------------------------------------------ #------ taf3's .iplt entry #------------------------------------------------------------------------------ - 915c: e28fc600 add ip, pc, #0, 12 - 9160: e28cca07 add ip, ip, #28672 ; 0x7000 - 9164: e5bcff00 ldr pc, \[ip, #3840\]! ; 0xf00 + 9098: e28fc600 add ip, pc, #0, 12 + 909c: e28cca07 add ip, ip, #28672 ; 0x7000 + 90a0: e5bcff94 ldr pc, \[ip, #3988\]! ; 0xf94 #------------------------------------------------------------------------------ #------ aaf3's .iplt entry #------------------------------------------------------------------------------ - 9168: e28fc600 add ip, pc, #0, 12 - 916c: e28cca07 add ip, ip, #28672 ; 0x7000 - 9170: e5bcfef8 ldr pc, \[ip, #3832\]! ; 0xef8 + 90a4: e28fc600 add ip, pc, #0, 12 + 90a8: e28cca07 add ip, ip, #28672 ; 0x7000 + 90ac: e5bcff8c ldr pc, \[ip, #3980\]! ; 0xf8c Disassembly of section \.text: @@ -303,727 +167,375 @@ Disassembly of section \.text: #------------------------------------------------------------------------------ #------ .got offset for foo #------------------------------------------------------------------------------ - a03c: 00000070 \.word 0x00000070 + a03c: 00000040 \.word 0x00000040 #------------------------------------------------------------------------------ #------ PC-relative offset of .got entry for foo #------------------------------------------------------------------------------ - a040: 0000702c \.word 0x0000702c + a040: 00006ffc \.word 0x00006ffc #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - a044: ebfffc1e bl 90c4 + a044: ebfffbed bl 9000 #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - a048: eafffc1d b 90c4 + a048: eafffbec b 9000 #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - a04c: 0afffc1c beq 90c4 + a04c: 0afffbeb beq 9000 a050: e59f4000 ldr r4, \[pc\] ; a058 a054: e59f4000 ldr r4, \[pc\] ; a05c #------------------------------------------------------------------------------ #------ GP-relative offset of aaf1's .igot.plt entry #------------------------------------------------------------------------------ - a058: 0000003c \.word 0x0000003c + a058: 0000000c \.word 0x0000000c #------------------------------------------------------------------------------ #------ PC-relative offset of aaf1's .igot.plt entry #------------------------------------------------------------------------------ - a05c: 00006fe0 \.word 0x00006fe0 + a05c: 00006fb0 \.word 0x00006fb0 #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - a060: ebfffc22 bl 90f0 + a060: ebfffbf1 bl 902c #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - a064: eafffc21 b 90f0 + a064: eafffbf0 b 902c #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - a068: 0afffc20 beq 90f0 + a068: 0afffbef beq 902c a06c: e59f4000 ldr r4, \[pc\] ; a074 a070: e59f4000 ldr r4, \[pc\] ; a078 #------------------------------------------------------------------------------ #------ GP-relative offset of taf1's .igot.plt entry #------------------------------------------------------------------------------ - a074: 00000048 \.word 0x00000048 + a074: 00000018 \.word 0x00000018 #------------------------------------------------------------------------------ #------ PC-relative offset of taf1's .igot.plt entry #------------------------------------------------------------------------------ - a078: 00006fd0 \.word 0x00006fd0 + a078: 00006fa0 \.word 0x00006fa0 #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - a07c: ebfffc18 bl 90e4 + a07c: ebfffbe7 bl 9020 #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - a080: eafffc17 b 90e4 + a080: eafffbe6 b 9020 #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - a084: 0afffc16 beq 90e4 + a084: 0afffbe5 beq 9020 a088: e59f4000 ldr r4, \[pc\] ; a090 a08c: e59f4000 ldr r4, \[pc\] ; a094 #------------------------------------------------------------------------------ #------ GP-relative offset of abf1's .igot.plt entry #------------------------------------------------------------------------------ - a090: 00000044 \.word 0x00000044 + a090: 00000014 \.word 0x00000014 #------------------------------------------------------------------------------ #------ PC-relative offset of abf1's .igot.plt entry #------------------------------------------------------------------------------ - a094: 00006fb0 \.word 0x00006fb0 + a094: 00006f80 \.word 0x00006f80 #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - a098: ebfffc1c bl 9110 + a098: ebfffbeb bl 904c #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - a09c: eafffc1b b 9110 + a09c: eafffbea b 904c #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - a0a0: 0afffc1a beq 9110 + a0a0: 0afffbe9 beq 904c a0a4: e59f4000 ldr r4, \[pc\] ; a0ac a0a8: e59f4000 ldr r4, \[pc\] ; a0b0 #------------------------------------------------------------------------------ #------ GP-relative offset of tbf1's .igot.plt entry #------------------------------------------------------------------------------ - a0ac: 00000050 \.word 0x00000050 + a0ac: 00000020 \.word 0x00000020 #------------------------------------------------------------------------------ #------ PC-relative offset of tbf1's .igot.plt entry #------------------------------------------------------------------------------ - a0b0: 00006fa0 \.word 0x00006fa0 + a0b0: 00006f70 \.word 0x00006f70 #------------------------------------------------------------------------------ -#------ aaf2's .plt entry +#------ aaf3's .plt entry #------------------------------------------------------------------------------ - a0b4: ebfffbe8 bl 905c + a0b4: ebfffbfa bl 90a4 #------------------------------------------------------------------------------ -#------ aaf2's .plt entry +#------ aaf3's .plt entry #------------------------------------------------------------------------------ - a0b8: eafffbe7 b 905c + a0b8: eafffbf9 b 90a4 #------------------------------------------------------------------------------ -#------ aaf2's .plt entry +#------ aaf3's .plt entry #------------------------------------------------------------------------------ - a0bc: 0afffbe6 beq 905c + a0bc: 0afffbf8 beq 90a4 a0c0: e59f4000 ldr r4, \[pc\] ; a0c8 a0c4: e59f4000 ldr r4, \[pc\] ; a0cc #------------------------------------------------------------------------------ -#------ .got offset for aaf2 -#------------------------------------------------------------------------------ - a0c8: 00000088 \.word 0x00000088 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for aaf2 -#------------------------------------------------------------------------------ - a0cc: 00006fbc \.word 0x00006fbc -#------------------------------------------------------------------------------ -#------ taf2's .plt entry -#------------------------------------------------------------------------------ - a0d0: ebfffbde bl 9050 -#------------------------------------------------------------------------------ -#------ taf2's .plt entry -#------------------------------------------------------------------------------ - a0d4: eafffbdd b 9050 -#------------------------------------------------------------------------------ -#------ taf2's .plt entry -#------------------------------------------------------------------------------ - a0d8: 0afffbdc beq 9050 - a0dc: e59f4000 ldr r4, \[pc\] ; a0e4 - a0e0: e59f4000 ldr r4, \[pc\] ; a0e8 -#------------------------------------------------------------------------------ -#------ .got offset for taf2 -#------------------------------------------------------------------------------ - a0e4: 00000084 \.word 0x00000084 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for taf2 -#------------------------------------------------------------------------------ - a0e8: 00006f9c \.word 0x00006f9c -#------------------------------------------------------------------------------ -#------ abf2's .plt entry -#------------------------------------------------------------------------------ - a0ec: ebfffbf1 bl 90b8 -#------------------------------------------------------------------------------ -#------ abf2's .plt entry -#------------------------------------------------------------------------------ - a0f0: eafffbf0 b 90b8 -#------------------------------------------------------------------------------ -#------ abf2's .plt entry -#------------------------------------------------------------------------------ - a0f4: 0afffbef beq 90b8 - a0f8: e59f4000 ldr r4, \[pc\] ; a100 - a0fc: e59f4000 ldr r4, \[pc\] ; a104 -#------------------------------------------------------------------------------ -#------ .got offset for abf2 -#------------------------------------------------------------------------------ - a100: 000000a0 \.word 0x000000a0 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for abf2 -#------------------------------------------------------------------------------ - a104: 00006f9c \.word 0x00006f9c -#------------------------------------------------------------------------------ -#------ tbf2's .plt entry -#------------------------------------------------------------------------------ - a108: ebfffbcd bl 9044 -#------------------------------------------------------------------------------ -#------ tbf2's .plt entry -#------------------------------------------------------------------------------ - a10c: eafffbcc b 9044 -#------------------------------------------------------------------------------ -#------ tbf2's .plt entry -#------------------------------------------------------------------------------ - a110: 0afffbcb beq 9044 - a114: e59f4000 ldr r4, \[pc\] ; a11c - a118: e59f4000 ldr r4, \[pc\] ; a120 -#------------------------------------------------------------------------------ -#------ .got offset for tbf2 -#------------------------------------------------------------------------------ - a11c: 00000080 \.word 0x00000080 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for tbf2 -#------------------------------------------------------------------------------ - a120: 00006f60 \.word 0x00006f60 -#------------------------------------------------------------------------------ -#------ aaf3's .iplt entry -#------------------------------------------------------------------------------ - a124: ebfffc0f bl 9168 -#------------------------------------------------------------------------------ -#------ aaf3's .iplt entry -#------------------------------------------------------------------------------ - a128: eafffc0e b 9168 -#------------------------------------------------------------------------------ -#------ aaf3's .iplt entry -#------------------------------------------------------------------------------ - a12c: 0afffc0d beq 9168 - a130: e59f4000 ldr r4, \[pc\] ; a138 - a134: e59f4000 ldr r4, \[pc\] ; a13c -#------------------------------------------------------------------------------ #------ GP-relative offset of aaf3's .igot.plt entry #------------------------------------------------------------------------------ - a138: 00000068 \.word 0x00000068 + a0c8: 00000038 \.word 0x00000038 #------------------------------------------------------------------------------ #------ PC-relative offset of aaf3's .igot.plt entry #------------------------------------------------------------------------------ - a13c: 00006f2c \.word 0x00006f2c + a0cc: 00006f6c \.word 0x00006f6c #------------------------------------------------------------------------------ #------ taf3's .iplt entry #------------------------------------------------------------------------------ - a140: ebfffc05 bl 915c + a0d0: ebfffbf0 bl 9098 #------------------------------------------------------------------------------ #------ taf3's .iplt entry #------------------------------------------------------------------------------ - a144: eafffc04 b 915c + a0d4: eafffbef b 9098 #------------------------------------------------------------------------------ #------ taf3's .iplt entry #------------------------------------------------------------------------------ - a148: 0afffc03 beq 915c - a14c: e59f4000 ldr r4, \[pc\] ; a154 - a150: e59f4000 ldr r4, \[pc\] ; a158 + a0d8: 0afffbee beq 9098 + a0dc: e59f4000 ldr r4, \[pc\] ; a0e4 + a0e0: e59f4000 ldr r4, \[pc\] ; a0e8 #------------------------------------------------------------------------------ #------ GP-relative offset of taf3's .igot.plt entry #------------------------------------------------------------------------------ - a154: 00000064 \.word 0x00000064 + a0e4: 00000034 \.word 0x00000034 #------------------------------------------------------------------------------ #------ PC-relative offset of taf3's .igot.plt entry #------------------------------------------------------------------------------ - a158: 00006f0c \.word 0x00006f0c + a0e8: 00006f4c \.word 0x00006f4c #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - a15c: ebfffbf3 bl 9130 + a0ec: ebfffbde bl 906c #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - a160: eafffbf2 b 9130 + a0f0: eafffbdd b 906c #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - a164: 0afffbf1 beq 9130 - a168: e59f4000 ldr r4, \[pc\] ; a170 - a16c: e59f4000 ldr r4, \[pc\] ; a174 + a0f4: 0afffbdc beq 906c + a0f8: e59f4000 ldr r4, \[pc\] ; a100 + a0fc: e59f4000 ldr r4, \[pc\] ; a104 #------------------------------------------------------------------------------ #------ GP-relative offset of abf3's .igot.plt entry #------------------------------------------------------------------------------ - a170: 00000058 \.word 0x00000058 + a100: 00000028 \.word 0x00000028 #------------------------------------------------------------------------------ #------ PC-relative offset of abf3's .igot.plt entry #------------------------------------------------------------------------------ - a174: 00006ee4 \.word 0x00006ee4 + a104: 00006f24 \.word 0x00006f24 #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - a178: ebfffbf4 bl 9150 + a108: ebfffbdf bl 908c #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - a17c: eafffbf3 b 9150 + a10c: eafffbde b 908c #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - a180: 0afffbf2 beq 9150 - a184: e59f4000 ldr r4, \[pc\] ; a18c - a188: e59f4000 ldr r4, \[pc\] ; a190 + a110: 0afffbdd beq 908c + a114: e59f4000 ldr r4, \[pc\] ; a11c + a118: e59f4000 ldr r4, \[pc\] ; a120 #------------------------------------------------------------------------------ #------ GP-relative offset of tbf3's .igot.plt entry #------------------------------------------------------------------------------ - a18c: 00000060 \.word 0x00000060 + a11c: 00000030 \.word 0x00000030 #------------------------------------------------------------------------------ #------ PC-relative offset of tbf3's .igot.plt entry #------------------------------------------------------------------------------ - a190: 00006ed0 \.word 0x00006ed0 -#------------------------------------------------------------------------------ -#------ aaf4's .plt entry -#------------------------------------------------------------------------------ - a194: ebfffba2 bl 9024 -#------------------------------------------------------------------------------ -#------ aaf4's .plt entry -#------------------------------------------------------------------------------ - a198: eafffba1 b 9024 -#------------------------------------------------------------------------------ -#------ aaf4's .plt entry -#------------------------------------------------------------------------------ - a19c: 0afffba0 beq 9024 - a1a0: e59f4000 ldr r4, \[pc\] ; a1a8 - a1a4: e59f4000 ldr r4, \[pc\] ; a1ac -#------------------------------------------------------------------------------ -#------ .got offset for aaf4 -#------------------------------------------------------------------------------ - a1a8: 00000078 \.word 0x00000078 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for aaf4 -#------------------------------------------------------------------------------ - a1ac: 00006ecc \.word 0x00006ecc -#------------------------------------------------------------------------------ -#------ taf4's .plt entry -#------------------------------------------------------------------------------ - a1b0: ebfffbbc bl 90a8 -#------------------------------------------------------------------------------ -#------ taf4's .plt entry -#------------------------------------------------------------------------------ - a1b4: eafffbbb b 90a8 -#------------------------------------------------------------------------------ -#------ taf4's .plt entry -#------------------------------------------------------------------------------ - a1b8: 0afffbba beq 90a8 - a1bc: e59f4000 ldr r4, \[pc\] ; a1c4 - a1c0: e59f4000 ldr r4, \[pc\] ; a1c8 -#------------------------------------------------------------------------------ -#------ .got offset for taf4 -#------------------------------------------------------------------------------ - a1c4: 0000009c \.word 0x0000009c -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for taf4 -#------------------------------------------------------------------------------ - a1c8: 00006ed4 \.word 0x00006ed4 -#------------------------------------------------------------------------------ -#------ abf4's .plt entry -#------------------------------------------------------------------------------ - a1cc: ebfffba6 bl 906c -#------------------------------------------------------------------------------ -#------ abf4's .plt entry -#------------------------------------------------------------------------------ - a1d0: eafffba5 b 906c -#------------------------------------------------------------------------------ -#------ abf4's .plt entry -#------------------------------------------------------------------------------ - a1d4: 0afffba4 beq 906c - a1d8: e59f4000 ldr r4, \[pc\] ; a1e0 - a1dc: e59f4000 ldr r4, \[pc\] ; a1e4 -#------------------------------------------------------------------------------ -#------ .got offset for abf4 -#------------------------------------------------------------------------------ - a1e0: 0000008c \.word 0x0000008c -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for abf4 -#------------------------------------------------------------------------------ - a1e4: 00006ea8 \.word 0x00006ea8 -#------------------------------------------------------------------------------ -#------ tbf4's .plt entry -#------------------------------------------------------------------------------ - a1e8: ebfffba3 bl 907c -#------------------------------------------------------------------------------ -#------ tbf4's .plt entry -#------------------------------------------------------------------------------ - a1ec: eafffba2 b 907c -#------------------------------------------------------------------------------ -#------ tbf4's .plt entry -#------------------------------------------------------------------------------ - a1f0: 0afffba1 beq 907c - a1f4: e59f4000 ldr r4, \[pc\] ; a1fc - a1f8: e59f4000 ldr r4, \[pc\] ; a200 -#------------------------------------------------------------------------------ -#------ .got offset for tbf4 -#------------------------------------------------------------------------------ - a1fc: 00000090 \.word 0x00000090 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for tbf4 -#------------------------------------------------------------------------------ - a200: 00006e90 \.word 0x00006e90 + a120: 00006f10 \.word 0x00006f10 -0000a204 <_thumb>: - a204: f005 fefc bl 10000 - a208: f005 befa b\.w 10000 - a20c: f005 86f8 beq\.w 10000 - a210: 4c00 ldr r4, \[pc, #0\] ; \(a214 <_thumb\+0x10>\) - a212: 4c01 ldr r4, \[pc, #4\] ; \(a218 <_thumb\+0x14>\) +0000a124 <_thumb>: + a124: f005 ff6c bl 10000 + a128: f005 bf6a b\.w 10000 + a12c: f005 8768 beq\.w 10000 + a130: 4c00 ldr r4, \[pc, #0\] ; \(a134 <_thumb\+0x10>\) + a132: 4c01 ldr r4, \[pc, #4\] ; \(a138 <_thumb\+0x14>\) #------------------------------------------------------------------------------ #------ .got offset for foo #------------------------------------------------------------------------------ - a214: 00000070 \.word 0x00000070 + a134: 00000040 \.word 0x00000040 #------------------------------------------------------------------------------ #------ PC-relative offset of .got entry for foo #------------------------------------------------------------------------------ - a218: 00006e54 \.word 0x00006e54 + a138: 00006f04 \.word 0x00006f04 #------------------------------------------------------------------------------ #------ atf1's .iplt entry #------------------------------------------------------------------------------ - a21c: f7fe ef5a blx 90d4 + a13c: f7fe ef68 blx 9010 #------------------------------------------------------------------------------ #------ thumb entry to atf1's .iplt entry #------------------------------------------------------------------------------ - a220: f7fe bf56 b\.w 90d0 + a140: f7fe bf64 b\.w 900c #------------------------------------------------------------------------------ #------ thumb entry to atf1's .iplt entry #------------------------------------------------------------------------------ - a224: f43e af54 beq\.w 90d0 - a228: 4c00 ldr r4, \[pc, #0\] ; \(a22c <_thumb\+0x28>\) - a22a: 4c01 ldr r4, \[pc, #4\] ; \(a230 <_thumb\+0x2c>\) + a144: f43e af62 beq\.w 900c + a148: 4c00 ldr r4, \[pc, #0\] ; \(a14c <_thumb\+0x28>\) + a14a: 4c01 ldr r4, \[pc, #4\] ; \(a150 <_thumb\+0x2c>\) #------------------------------------------------------------------------------ #------ GP-relative offset of atf1's .igot.plt entry #------------------------------------------------------------------------------ - a22c: 00000040 \.word 0x00000040 + a14c: 00000010 \.word 0x00000010 #------------------------------------------------------------------------------ #------ PC-relative offset of atf1's .igot.plt entry #------------------------------------------------------------------------------ - a230: 00006e10 \.word 0x00006e10 + a150: 00006ec0 \.word 0x00006ec0 #------------------------------------------------------------------------------ #------ ttf1's .iplt entry #------------------------------------------------------------------------------ - a234: f7fe ef64 blx 9100 + a154: f7fe ef72 blx 903c #------------------------------------------------------------------------------ #------ thumb entry to ttf1's .iplt entry #------------------------------------------------------------------------------ - a238: f7fe bf60 b\.w 90fc + a158: f7fe bf6e b\.w 9038 #------------------------------------------------------------------------------ #------ thumb entry to ttf1's .iplt entry #------------------------------------------------------------------------------ - a23c: f43e af5e beq\.w 90fc - a240: 4c00 ldr r4, \[pc, #0\] ; \(a244 <_thumb\+0x40>\) - a242: 4c01 ldr r4, \[pc, #4\] ; \(a248 <_thumb\+0x44>\) + a15c: f43e af6c beq\.w 9038 + a160: 4c00 ldr r4, \[pc, #0\] ; \(a164 <_thumb\+0x40>\) + a162: 4c01 ldr r4, \[pc, #4\] ; \(a168 <_thumb\+0x44>\) #------------------------------------------------------------------------------ #------ GP-relative offset of ttf1's .igot.plt entry #------------------------------------------------------------------------------ - a244: 0000004c \.word 0x0000004c + a164: 0000001c \.word 0x0000001c #------------------------------------------------------------------------------ #------ PC-relative offset of ttf1's .igot.plt entry #------------------------------------------------------------------------------ - a248: 00006e04 \.word 0x00006e04 + a168: 00006eb4 \.word 0x00006eb4 #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - a24c: f7fe ef4a blx 90e4 + a16c: f7fe ef58 blx 9020 #------------------------------------------------------------------------------ #------ thumb entry to abf1's .iplt entry #------------------------------------------------------------------------------ - a250: f7fe bf46 b\.w 90e0 + a170: f7fe bf54 b\.w 901c #------------------------------------------------------------------------------ #------ thumb entry to abf1's .iplt entry #------------------------------------------------------------------------------ - a254: f43e af44 beq\.w 90e0 - a258: 4c00 ldr r4, \[pc, #0\] ; \(a25c <_thumb\+0x58>\) - a25a: 4c01 ldr r4, \[pc, #4\] ; \(a260 <_thumb\+0x5c>\) + a174: f43e af52 beq\.w 901c + a178: 4c00 ldr r4, \[pc, #0\] ; \(a17c <_thumb\+0x58>\) + a17a: 4c01 ldr r4, \[pc, #4\] ; \(a180 <_thumb\+0x5c>\) #------------------------------------------------------------------------------ #------ GP-relative offset of abf1's .igot.plt entry #------------------------------------------------------------------------------ - a25c: 00000044 \.word 0x00000044 + a17c: 00000014 \.word 0x00000014 #------------------------------------------------------------------------------ #------ PC-relative offset of abf1's .igot.plt entry #------------------------------------------------------------------------------ - a260: 00006de4 \.word 0x00006de4 + a180: 00006e94 \.word 0x00006e94 #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - a264: f7fe ef54 blx 9110 + a184: f7fe ef62 blx 904c #------------------------------------------------------------------------------ #------ thumb entry to tbf1's .iplt entry #------------------------------------------------------------------------------ - a268: f7fe bf50 b\.w 910c + a188: f7fe bf5e b\.w 9048 #------------------------------------------------------------------------------ #------ thumb entry to tbf1's .iplt entry #------------------------------------------------------------------------------ - a26c: f43e af4e beq\.w 910c - a270: 4c00 ldr r4, \[pc, #0\] ; \(a274 <_thumb\+0x70>\) - a272: 4c01 ldr r4, \[pc, #4\] ; \(a278 <_thumb\+0x74>\) + a18c: f43e af5c beq\.w 9048 + a190: 4c00 ldr r4, \[pc, #0\] ; \(a194 <_thumb\+0x70>\) + a192: 4c01 ldr r4, \[pc, #4\] ; \(a198 <_thumb\+0x74>\) #------------------------------------------------------------------------------ #------ GP-relative offset of tbf1's .igot.plt entry #------------------------------------------------------------------------------ - a274: 00000050 \.word 0x00000050 + a194: 00000020 \.word 0x00000020 #------------------------------------------------------------------------------ #------ PC-relative offset of tbf1's .igot.plt entry #------------------------------------------------------------------------------ - a278: 00006dd8 \.word 0x00006dd8 -#------------------------------------------------------------------------------ -#------ atf2's .plt entry -#------------------------------------------------------------------------------ - a27c: f7fe eecc blx 9018 -#------------------------------------------------------------------------------ -#------ thumb entry to atf2's .plt entry -#------------------------------------------------------------------------------ - a280: f7fe bec8 b\.w 9014 -#------------------------------------------------------------------------------ -#------ thumb entry to atf2's .plt entry -#------------------------------------------------------------------------------ - a284: f43e aec6 beq\.w 9014 - a288: 4c00 ldr r4, \[pc, #0\] ; \(a28c <_thumb\+0x88>\) - a28a: 4c01 ldr r4, \[pc, #4\] ; \(a290 <_thumb\+0x8c>\) -#------------------------------------------------------------------------------ -#------ .got offset for atf2 -#------------------------------------------------------------------------------ - a28c: 00000074 \.word 0x00000074 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for atf2 -#------------------------------------------------------------------------------ - a290: 00006de4 \.word 0x00006de4 -#------------------------------------------------------------------------------ -#------ ttf2's .plt entry -#------------------------------------------------------------------------------ - a294: f7fe eece blx 9034 -#------------------------------------------------------------------------------ -#------ thumb entry to ttf2's .plt entry -#------------------------------------------------------------------------------ - a298: f7fe beca b\.w 9030 -#------------------------------------------------------------------------------ -#------ thumb entry to ttf2's .plt entry -#------------------------------------------------------------------------------ - a29c: f43e aec8 beq\.w 9030 - a2a0: 4c00 ldr r4, \[pc, #0\] ; \(a2a4 <_thumb\+0xa0>\) - a2a2: 4c01 ldr r4, \[pc, #4\] ; \(a2a8 <_thumb\+0xa4>\) -#------------------------------------------------------------------------------ -#------ .got offset for ttf2 -#------------------------------------------------------------------------------ - a2a4: 0000007c \.word 0x0000007c -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for ttf2 -#------------------------------------------------------------------------------ - a2a8: 00006dd4 \.word 0x00006dd4 -#------------------------------------------------------------------------------ -#------ abf2's .plt entry -#------------------------------------------------------------------------------ - a2ac: f7fe ef04 blx 90b8 -#------------------------------------------------------------------------------ -#------ thumb entry to abf2's .plt entry -#------------------------------------------------------------------------------ - a2b0: f7fe bf00 b\.w 90b4 -#------------------------------------------------------------------------------ -#------ thumb entry to abf2's .plt entry -#------------------------------------------------------------------------------ - a2b4: f43e aefe beq\.w 90b4 - a2b8: 4c00 ldr r4, \[pc, #0\] ; \(a2bc <_thumb\+0xb8>\) - a2ba: 4c01 ldr r4, \[pc, #4\] ; \(a2c0 <_thumb\+0xbc>\) -#------------------------------------------------------------------------------ -#------ .got offset for abf2 -#------------------------------------------------------------------------------ - a2bc: 000000a0 \.word 0x000000a0 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for abf2 -#------------------------------------------------------------------------------ - a2c0: 00006de0 \.word 0x00006de0 -#------------------------------------------------------------------------------ -#------ tbf2's .plt entry -#------------------------------------------------------------------------------ - a2c4: f7fe eebe blx 9044 -#------------------------------------------------------------------------------ -#------ thumb entry to tbf2's .plt entry -#------------------------------------------------------------------------------ - a2c8: f7fe beba b\.w 9040 -#------------------------------------------------------------------------------ -#------ thumb entry to tbf2's .plt entry -#------------------------------------------------------------------------------ - a2cc: f43e aeb8 beq\.w 9040 - a2d0: 4c00 ldr r4, \[pc, #0\] ; \(a2d4 <_thumb\+0xd0>\) - a2d2: 4c01 ldr r4, \[pc, #4\] ; \(a2d8 <_thumb\+0xd4>\) -#------------------------------------------------------------------------------ -#------ .got offset for tbf2 -#------------------------------------------------------------------------------ - a2d4: 00000080 \.word 0x00000080 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for tbf2 -#------------------------------------------------------------------------------ - a2d8: 00006da8 \.word 0x00006da8 + a198: 00006e88 \.word 0x00006e88 #------------------------------------------------------------------------------ #------ atf3's .iplt entry #------------------------------------------------------------------------------ - a2dc: f7fe ef20 blx 9120 + a19c: f7fe ef5e blx 905c #------------------------------------------------------------------------------ #------ thumb entry to atf3's .iplt entry #------------------------------------------------------------------------------ - a2e0: f7fe bf1c b\.w 911c + a1a0: f7fe bf5a b\.w 9058 #------------------------------------------------------------------------------ #------ thumb entry to atf3's .iplt entry #------------------------------------------------------------------------------ - a2e4: f43e af1a beq\.w 911c - a2e8: 4c00 ldr r4, \[pc, #0\] ; \(a2ec <_thumb\+0xe8>\) - a2ea: 4c01 ldr r4, \[pc, #4\] ; \(a2f0 <_thumb\+0xec>\) + a1a4: f43e af58 beq\.w 9058 + a1a8: 4c00 ldr r4, \[pc, #0\] ; \(a1ac <_thumb\+0x88>\) + a1aa: 4c01 ldr r4, \[pc, #4\] ; \(a1b0 <_thumb\+0x8c>\) #------------------------------------------------------------------------------ #------ GP-relative offset of atf3's .igot.plt entry #------------------------------------------------------------------------------ - a2ec: 00000054 \.word 0x00000054 + a1ac: 00000024 \.word 0x00000024 #------------------------------------------------------------------------------ #------ PC-relative offset of atf3's .igot.plt entry #------------------------------------------------------------------------------ - a2f0: 00006d64 \.word 0x00006d64 + a1b0: 00006e74 \.word 0x00006e74 #------------------------------------------------------------------------------ #------ ttf3's .iplt entry #------------------------------------------------------------------------------ - a2f4: f7fe ef24 blx 9140 + a1b4: f7fe ef62 blx 907c #------------------------------------------------------------------------------ #------ thumb entry to ttf3's .iplt entry #------------------------------------------------------------------------------ - a2f8: f7fe bf20 b\.w 913c + a1b8: f7fe bf5e b\.w 9078 #------------------------------------------------------------------------------ #------ thumb entry to ttf3's .iplt entry #------------------------------------------------------------------------------ - a2fc: f43e af1e beq\.w 913c - a300: 4c00 ldr r4, \[pc, #0\] ; \(a304 <_thumb\+0x100>\) - a302: 4c01 ldr r4, \[pc, #4\] ; \(a308 <_thumb\+0x104>\) + a1bc: f43e af5c beq\.w 9078 + a1c0: 4c00 ldr r4, \[pc, #0\] ; \(a1c4 <_thumb\+0xa0>\) + a1c2: 4c01 ldr r4, \[pc, #4\] ; \(a1c8 <_thumb\+0xa4>\) #------------------------------------------------------------------------------ #------ GP-relative offset of ttf3's .igot.plt entry #------------------------------------------------------------------------------ - a304: 0000005c \.word 0x0000005c + a1c4: 0000002c \.word 0x0000002c #------------------------------------------------------------------------------ #------ PC-relative offset of ttf3's .igot.plt entry #------------------------------------------------------------------------------ - a308: 00006d54 \.word 0x00006d54 + a1c8: 00006e64 \.word 0x00006e64 #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - a30c: f7fe ef10 blx 9130 + a1cc: f7fe ef4e blx 906c #------------------------------------------------------------------------------ #------ thumb entry to abf3's .iplt entry #------------------------------------------------------------------------------ - a310: f7fe bf0c b\.w 912c + a1d0: f7fe bf4a b\.w 9068 #------------------------------------------------------------------------------ #------ thumb entry to abf3's .iplt entry #------------------------------------------------------------------------------ - a314: f43e af0a beq\.w 912c - a318: 4c00 ldr r4, \[pc, #0\] ; \(a31c <_thumb\+0x118>\) - a31a: 4c01 ldr r4, \[pc, #4\] ; \(a320 <_thumb\+0x11c>\) + a1d4: f43e af48 beq\.w 9068 + a1d8: 4c00 ldr r4, \[pc, #0\] ; \(a1dc <_thumb\+0xb8>\) + a1da: 4c01 ldr r4, \[pc, #4\] ; \(a1e0 <_thumb\+0xbc>\) #------------------------------------------------------------------------------ #------ GP-relative offset of abf3's .igot.plt entry #------------------------------------------------------------------------------ - a31c: 00000058 \.word 0x00000058 + a1dc: 00000028 \.word 0x00000028 #------------------------------------------------------------------------------ #------ PC-relative offset of abf3's .igot.plt entry #------------------------------------------------------------------------------ - a320: 00006d38 \.word 0x00006d38 + a1e0: 00006e48 \.word 0x00006e48 #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - a324: f7fe ef14 blx 9150 + a1e4: f7fe ef52 blx 908c #------------------------------------------------------------------------------ #------ thumb entry to tbf3's .iplt entry #------------------------------------------------------------------------------ - a328: f7fe bf10 b\.w 914c + a1e8: f7fe bf4e b\.w 9088 #------------------------------------------------------------------------------ #------ thumb entry to tbf3's .iplt entry #------------------------------------------------------------------------------ - a32c: f43e af0e beq\.w 914c - a330: 4c00 ldr r4, \[pc, #0\] ; \(a334 <_thumb\+0x130>\) - a332: 4c01 ldr r4, \[pc, #4\] ; \(a338 <_thumb\+0x134>\) + a1ec: f43e af4c beq\.w 9088 + a1f0: 4c00 ldr r4, \[pc, #0\] ; \(a1f4 <_thumb\+0xd0>\) + a1f2: 4c01 ldr r4, \[pc, #4\] ; \(a1f8 <_thumb\+0xd4>\) #------------------------------------------------------------------------------ #------ GP-relative offset of tbf3's .igot.plt entry #------------------------------------------------------------------------------ - a334: 00000060 \.word 0x00000060 + a1f4: 00000030 \.word 0x00000030 #------------------------------------------------------------------------------ #------ PC-relative offset of tbf3's .igot.plt entry #------------------------------------------------------------------------------ - a338: 00006d28 \.word 0x00006d28 -#------------------------------------------------------------------------------ -#------ atf4's .plt entry -#------------------------------------------------------------------------------ - a33c: f7fe eeae blx 909c -#------------------------------------------------------------------------------ -#------ thumb entry to atf4's .plt entry -#------------------------------------------------------------------------------ - a340: f7fe beaa b\.w 9098 -#------------------------------------------------------------------------------ -#------ thumb entry to atf4's .plt entry -#------------------------------------------------------------------------------ - a344: f43e aea8 beq\.w 9098 - a348: 4c00 ldr r4, \[pc, #0\] ; \(a34c <_thumb\+0x148>\) - a34a: 4c01 ldr r4, \[pc, #4\] ; \(a350 <_thumb\+0x14c>\) -#------------------------------------------------------------------------------ -#------ .got offset for atf4 -#------------------------------------------------------------------------------ - a34c: 00000098 \.word 0x00000098 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for atf4 -#------------------------------------------------------------------------------ - a350: 00006d48 \.word 0x00006d48 -#------------------------------------------------------------------------------ -#------ ttf4's .plt entry -#------------------------------------------------------------------------------ - a354: f7fe ee9a blx 908c -#------------------------------------------------------------------------------ -#------ thumb entry to ttf4's .plt entry -#------------------------------------------------------------------------------ - a358: f7fe be96 b\.w 9088 -#------------------------------------------------------------------------------ -#------ thumb entry to ttf4's .plt entry -#------------------------------------------------------------------------------ - a35c: f43e ae94 beq\.w 9088 - a360: 4c00 ldr r4, \[pc, #0\] ; \(a364 <_thumb\+0x160>\) - a362: 4c01 ldr r4, \[pc, #4\] ; \(a368 <_thumb\+0x164>\) -#------------------------------------------------------------------------------ -#------ .got offset for ttf4 -#------------------------------------------------------------------------------ - a364: 00000094 \.word 0x00000094 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for ttf4 -#------------------------------------------------------------------------------ - a368: 00006d2c \.word 0x00006d2c -#------------------------------------------------------------------------------ -#------ abf4's .plt entry -#------------------------------------------------------------------------------ - a36c: f7fe ee7e blx 906c -#------------------------------------------------------------------------------ -#------ thumb entry to abf4's .plt entry -#------------------------------------------------------------------------------ - a370: f7fe be7a b\.w 9068 -#------------------------------------------------------------------------------ -#------ thumb entry to abf4's .plt entry -#------------------------------------------------------------------------------ - a374: f43e ae78 beq\.w 9068 - a378: 4c00 ldr r4, \[pc, #0\] ; \(a37c <_thumb\+0x178>\) - a37a: 4c01 ldr r4, \[pc, #4\] ; \(a380 <_thumb\+0x17c>\) -#------------------------------------------------------------------------------ -#------ .got offset for abf4 -#------------------------------------------------------------------------------ - a37c: 0000008c \.word 0x0000008c -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for abf4 -#------------------------------------------------------------------------------ - a380: 00006d0c \.word 0x00006d0c -#------------------------------------------------------------------------------ -#------ tbf4's .plt entry -#------------------------------------------------------------------------------ - a384: f7fe ee7a blx 907c -#------------------------------------------------------------------------------ -#------ thumb entry to tbf4's .plt entry -#------------------------------------------------------------------------------ - a388: f7fe be76 b\.w 9078 -#------------------------------------------------------------------------------ -#------ thumb entry to tbf4's .plt entry -#------------------------------------------------------------------------------ - a38c: f43e ae74 beq\.w 9078 - a390: 4c00 ldr r4, \[pc, #0\] ; \(a394 <_thumb\+0x190>\) - a392: 4c01 ldr r4, \[pc, #4\] ; \(a398 <_thumb\+0x194>\) -#------------------------------------------------------------------------------ -#------ .got offset for tbf4 -#------------------------------------------------------------------------------ - a394: 00000090 \.word 0x00000090 -#------------------------------------------------------------------------------ -#------ PC-relative offset of .got entry for tbf4 -#------------------------------------------------------------------------------ - a398: 00006cf8 \.word 0x00006cf8 + a1f8: 00006e38 \.word 0x00006e38 diff --git a/ld/testsuite/ld-arm/ifunc-8.gd b/ld/testsuite/ld-arm/ifunc-8.gd index 356f04229b9..92377c9a9ae 100644 --- a/ld/testsuite/ld-arm/ifunc-8.gd +++ b/ld/testsuite/ld-arm/ifunc-8.gd @@ -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] -#------------------------------------------------------------------------------ - 11000 (00200100 00000000 00000000 00900000|00012000 00000000 00000000 00009000) .* -#------------------------------------------------------------------------------ -#------ 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] -#------------------------------------------------------------------------------ - 11010 (00900000 00900000 00900000 00900000|00009000 00009000 00009000 00009000) .* -#------------------------------------------------------------------------------ -#------ 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] -#------------------------------------------------------------------------------ - 11020 (00900000 00900000 00900000 00900000|00009000 00009000 00009000 00009000) .* -#------------------------------------------------------------------------------ -#------ 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] -#------------------------------------------------------------------------------ - 11030 (00900000 00900000 00900000 00a00000|00009000 00009000 00009000 0000a000) .* -#------------------------------------------------------------------------------ -#------ 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] -#------------------------------------------------------------------------------ - 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] +#------ 0001100c: aaf1's .igot.plt entry [R_ARM_IRELATIVE] #------------------------------------------------------------------------------ - 11060 (25a00000 21a00000 14a00000 00000100|0000a025 0000a021 0000a014 00010000) .* + 11000 (00200100 00000000 00000000 00a00000|00012000 00000000 00000000 0000a000) .* #------------------------------------------------------------------------------ -#------ 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] +#------ 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] #------------------------------------------------------------------------------ - 11070 (00000100|00010000) 00000000 00000000 00000000 .* + 11010 (04a00000 08a00000 0da00000 0fa00000|0000a004 0000a008 0000a00d 0000a00f) .* #------------------------------------------------------------------------------ -#------ 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] +#------ 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] #------------------------------------------------------------------------------ - 11080 00000000 00000000 00000000 00000000 .* + 11020 (11a00000 18a00000 1ca00000 23a00000|0000a011 0000a018 0000a01c 0000a023) .* #------------------------------------------------------------------------------ -#------ 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] +#------ 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] #------------------------------------------------------------------------------ - 11090 00000000 00000000 00000000 00000000 .* + 11030 (25a00000 21a00000 14a00000 00000100|0000a025 0000a021 0000a014 00010000) .* #------------------------------------------------------------------------------ -#------ 000110a0: .got entry for abf2 [R_ARM_GLOB_DAT] +#------ 00011040: .got entry for foo [R_ARM_RELATIVE] #------------------------------------------------------------------------------ - 110a0 00000000 .* + 11040 (00000100|00010000) .* diff --git a/ld/testsuite/ld-arm/ifunc-8.rd b/ld/testsuite/ld-arm/ifunc-8.rd index a8ad1f29963..c7c7975d183 100644 --- a/ld/testsuite/ld-arm/ifunc-8.rd +++ b/ld/testsuite/ld-arm/ifunc-8.rd @@ -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 diff --git a/ld/testsuite/ld-arm/ifunc-8.s b/ld/testsuite/ld-arm/ifunc-8.s index 3947f7f7e1d..2727180f9bd 100644 --- a/ld/testsuite/ld-arm/ifunc-8.s +++ b/ld/testsuite/ld-arm/ifunc-8.s @@ -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 diff --git a/ld/testsuite/ld-arm/rel32-reject-pie.d b/ld/testsuite/ld-arm/rel32-reject-pie.d new file mode 100644 index 00000000000..475b3242c99 --- /dev/null +++ b/ld/testsuite/ld-arm/rel32-reject-pie.d @@ -0,0 +1,3 @@ +#source: rel32-reject-pie.s +#ld: -pie +#error: .*relocation R_ARM_REL32.*can not.*PIE executable.* diff --git a/ld/testsuite/ld-arm/rel32-reject-pie.s b/ld/testsuite/ld-arm/rel32-reject-pie.s new file mode 100644 index 00000000000..cc49e02ab20 --- /dev/null +++ b/ld/testsuite/ld-arm/rel32-reject-pie.s @@ -0,0 +1,8 @@ + .text + .global main +main: + b main + + .data +rel: + .word non_global - . diff --git a/ld/testsuite/ld-arm/rel32-reject.d b/ld/testsuite/ld-arm/rel32-reject.d new file mode 100644 index 00000000000..c82fd4df6ab --- /dev/null +++ b/ld/testsuite/ld-arm/rel32-reject.d @@ -0,0 +1,3 @@ +#source: rel32-reject.s +#ld: -shared +#error: .*relocation R_ARM_REL32.*can not.*shared object.* diff --git a/ld/testsuite/ld-arm/rel32-reject.s b/ld/testsuite/ld-arm/rel32-reject.s new file mode 100644 index 00000000000..4cfbd2c7fef --- /dev/null +++ b/ld/testsuite/ld-arm/rel32-reject.s @@ -0,0 +1,9 @@ + .text + .global main +main: + b main + + .data + .extern ext_global +rel: + .word ext_global - . -- 2.30.2