This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


R_ARM_REL32 is not supported by ARM32 dynamic linker.

we need reject it when against external symbol and if it's supposed to
be copied to dynamic relocation section.

when linking some hand written assembly code, I found some code in elf32_arm_final_link_relocate
assume we have rejected them. If we haven't, the following assertion will be triggered.

 /* This symbol is local, or marked to become local.  */
 BFD_ASSERT (r_type == R_ARM_ABS32 || r_type == R_ARM_ABS32_NOI);


ok for trunk?

pass native ld test on chrome book.

The f2/f4 test in ifunc-7 and 8 was written without consideration of this rejection.
we need to remove them.

lots of the diff are caused by ifunc testcase update.

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.
commit 14ce92a6e74e6da5f394c2af9d03b3c9c82b80d0
Author: Jiong Wang <jiowan01@pdtl-cb1.cambridge.arm.com>
Date:   Thu Nov 13 16:55:54 2014 +0000

    fixedh

diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 49d0f65..56fa573 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/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index 3c8cc68..cdb58e4 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 f82fd37..c2c5e9c 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 <f2@plt-0x14>:
-    9000:	e52de004 	push	{lr}		; \(str lr, \[sp, #-4\]!\)
-    9004:	e59fe004 	ldr	lr, \[pc, #4\]	; 9010 <f2@plt-0x4>
-    9008:	e08fe00e 	add	lr, pc, lr
-    900c:	e5bef008 	ldr	pc, \[lr, #8\]!
-#------------------------------------------------------------------------------
-#------ PC-relative offset of .got.plt
-#------------------------------------------------------------------------------
-    9010:	00007ff0 	\.word	0x00007ff0
-#------------------------------------------------------------------------------
-#------ f2's .plt entry
-#------------------------------------------------------------------------------
-00009014 <f2@plt>:
-    9014:	e28fc600 	add	ip, pc, #0, 12
-    9018:	e28cca07 	add	ip, ip, #28672	; 0x7000
-    901c:	e5bcfff0 	ldr	pc, \[ip, #4080\]!	; 0xff0
-#------------------------------------------------------------------------------
-#------ f4's .plt entry
-#------------------------------------------------------------------------------
-00009020 <f4@plt>:
-    9020:	e28fc600 	add	ip, pc, #0, 12
-    9024:	e28cca07 	add	ip, ip, #28672	; 0x7000
-    9028:	e5bcffe8 	ldr	pc, \[ip, #4072\]!	; 0xfe8
-
 Disassembly of section \.iplt:
 
-0000902c <\.iplt>:
+00009000 <\.iplt>:
 #------------------------------------------------------------------------------
 #------ f1's .iplt entry
 #------------------------------------------------------------------------------
-    902c:	e28fc600 	add	ip, pc, #0, 12
-    9030:	e28cca07 	add	ip, ip, #28672	; 0x7000
-    9034:	e5bcffe0 	ldr	pc, \[ip, #4064\]!	; 0xfe0
+    9000:	e28fc600 	add	ip, pc, #0, 12
+    9004:	e28cca08 	add	ip, ip, #8, 20	; 0x8000
+    9008:	e5bcf004 	ldr	pc, \[ip, #4\]!
 #------------------------------------------------------------------------------
 #------ f3's .iplt entry
 #------------------------------------------------------------------------------
-    9038:	e28fc600 	add	ip, pc, #0, 12
-    903c:	e28cca07 	add	ip, ip, #28672	; 0x7000
-    9040:	e5bcffd8 	ldr	pc, \[ip, #4056\]!	; 0xfd8
+    900c:	e28fc600 	add	ip, pc, #0, 12
+    9010:	e28cca07 	add	ip, ip, #28672	; 0x7000
+    9014:	e5bcfffc 	ldr	pc, \[ip, #4092\]!	; 0xffc
 
 Disassembly of section \.text:
 
@@ -59,64 +33,36 @@ Disassembly of section \.text:
 #------------------------------------------------------------------------------
 #------ .got offset for foo
 #------------------------------------------------------------------------------
-    a014:	00000020 	\.word	0x00000020
+    a014:	00000018 	\.word	0x00000018
 #------------------------------------------------------------------------------
 #------ PC-relative offset of .got entry for foo
 #------------------------------------------------------------------------------
-    a018:	00007004 	\.word	0x00007004
+    a018:	00006ffc 	\.word	0x00006ffc
 #------------------------------------------------------------------------------
 #------ f1's .iplt entry
 #------------------------------------------------------------------------------
-    a01c:	ebfffc02 	bl	902c <f4@plt\+0xc>
+    a01c:	ebfffbf7 	bl	9000 <f1-0x1000>
     a020:	e59f4000 	ldr	r4, \[pc\]	; a028 <arm\+0x20>
     a024:	e59f4000 	ldr	r4, \[pc\]	; a02c <arm\+0x24>
 #------------------------------------------------------------------------------
 #------ GP-relative offset of f1's .igot.plt entry
 #------------------------------------------------------------------------------
-    a028:	00000014 	\.word	0x00000014
+    a028:	0000000c 	\.word	0x0000000c
 #------------------------------------------------------------------------------
 #------ PC-relative offset of f1's .igot.plt entry
 #------------------------------------------------------------------------------
-    a02c:	00006fe8 	\.word	0x00006fe8
+    a02c:	00006fe0 	\.word	0x00006fe0
 #------------------------------------------------------------------------------
-#------ f2's .plt entry
+#------ f3's .iplt entry
 #------------------------------------------------------------------------------
-    a030:	ebfffbf7 	bl	9014 <f2@plt>
+    a030:	ebfffbf5 	bl	900c <f1-0xff4>
     a034:	e59f4000 	ldr	r4, \[pc\]	; a03c <arm\+0x34>
     a038:	e59f4000 	ldr	r4, \[pc\]	; a040 <arm\+0x38>
 #------------------------------------------------------------------------------
-#------ .got offset for f2
-#------------------------------------------------------------------------------
-    a03c:	00000024 	\.word	0x00000024
-#------------------------------------------------------------------------------
-#------ PC-relative offset of .got entry for f2
-#------------------------------------------------------------------------------
-    a040:	00006fe4 	\.word	0x00006fe4
-#------------------------------------------------------------------------------
-#------ f3's .iplt entry
-#------------------------------------------------------------------------------
-    a044:	ebfffbfb 	bl	9038 <f4@plt\+0x18>
-    a048:	e59f4000 	ldr	r4, \[pc\]	; a050 <arm\+0x48>
-    a04c:	e59f4000 	ldr	r4, \[pc\]	; a054 <arm\+0x4c>
-#------------------------------------------------------------------------------
 #------ GP-relative offset of f3's .igot.plt entry
 #------------------------------------------------------------------------------
-    a050:	00000018 	\.word	0x00000018
+    a03c:	00000010 	\.word	0x00000010
 #------------------------------------------------------------------------------
 #------ PC-relative offset of f3's .igot.plt entry
 #------------------------------------------------------------------------------
-    a054:	00006fc4 	\.word	0x00006fc4
-#------------------------------------------------------------------------------
-#------ f4's .plt entry
-#------------------------------------------------------------------------------
-    a058:	ebfffbf0 	bl	9020 <f4@plt>
-    a05c:	e59f4000 	ldr	r4, \[pc\]	; a064 <arm\+0x5c>
-    a060:	e59f4000 	ldr	r4, \[pc\]	; a068 <arm\+0x60>
-#------------------------------------------------------------------------------
-#------ .got offset for f4
-#------------------------------------------------------------------------------
-    a064:	00000028 	\.word	0x00000028
-#------------------------------------------------------------------------------
-#------ PC-relative offset of .got entry for f4
-#------------------------------------------------------------------------------
-    a068:	00006fc0 	\.word	0x00006fc0
+    a040:	00006fd0 	\.word	0x00006fd0
diff --git a/ld/testsuite/ld-arm/ifunc-7.gd b/ld/testsuite/ld-arm/ifunc-7.gd
index 3251c45..da1bb45 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 a29b184..f250bb7 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 85ffb68..1159768 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 3cca17c..50a9177 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 <atf2@plt-0x14>:
-    9000:	e52de004 	push	{lr}		; \(str lr, \[sp, #-4\]!\)
-    9004:	e59fe004 	ldr	lr, \[pc, #4\]	; 9010 <atf2@plt-0x4>
-    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 <atf2@plt>:
-    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 <aaf4@plt>:
-    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 <ttf2@plt>:
-    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 <tbf2@plt>:
-    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 <taf2@plt>:
-    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 <aaf2@plt>:
-    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 <abf4@plt>:
-    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 <tbf4@plt>:
-    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 <ttf4@plt>:
-    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 <atf4@plt>:
-    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 <taf4@plt>:
-    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 <abf2@plt>:
-    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 <abf2@plt\+0x10>
+    a044:	ebfffbed 	bl	9000 <aaf1-0x1000>
 #------------------------------------------------------------------------------
 #------ aaf1's .iplt entry
 #------------------------------------------------------------------------------
-    a048:	eafffc1d 	b	90c4 <abf2@plt\+0x10>
+    a048:	eafffbec 	b	9000 <aaf1-0x1000>
 #------------------------------------------------------------------------------
 #------ aaf1's .iplt entry
 #------------------------------------------------------------------------------
-    a04c:	0afffc1c 	beq	90c4 <abf2@plt\+0x10>
+    a04c:	0afffbeb 	beq	9000 <aaf1-0x1000>
     a050:	e59f4000 	ldr	r4, \[pc\]	; a058 <arm\+0x30>
     a054:	e59f4000 	ldr	r4, \[pc\]	; a05c <arm\+0x34>
 #------------------------------------------------------------------------------
 #------ 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 <abf2@plt\+0x3c>
+    a060:	ebfffbf1 	bl	902c <aaf1-0xfd4>
 #------------------------------------------------------------------------------
 #------ taf1's .iplt entry
 #------------------------------------------------------------------------------
-    a064:	eafffc21 	b	90f0 <abf2@plt\+0x3c>
+    a064:	eafffbf0 	b	902c <aaf1-0xfd4>
 #------------------------------------------------------------------------------
 #------ taf1's .iplt entry
 #------------------------------------------------------------------------------
-    a068:	0afffc20 	beq	90f0 <abf2@plt\+0x3c>
+    a068:	0afffbef 	beq	902c <aaf1-0xfd4>
     a06c:	e59f4000 	ldr	r4, \[pc\]	; a074 <arm\+0x4c>
     a070:	e59f4000 	ldr	r4, \[pc\]	; a078 <arm\+0x50>
 #------------------------------------------------------------------------------
 #------ 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 <abf2@plt\+0x30>
+    a07c:	ebfffbe7 	bl	9020 <aaf1-0xfe0>
 #------------------------------------------------------------------------------
 #------ abf1's .iplt entry
 #------------------------------------------------------------------------------
-    a080:	eafffc17 	b	90e4 <abf2@plt\+0x30>
+    a080:	eafffbe6 	b	9020 <aaf1-0xfe0>
 #------------------------------------------------------------------------------
 #------ abf1's .iplt entry
 #------------------------------------------------------------------------------
-    a084:	0afffc16 	beq	90e4 <abf2@plt\+0x30>
+    a084:	0afffbe5 	beq	9020 <aaf1-0xfe0>
     a088:	e59f4000 	ldr	r4, \[pc\]	; a090 <arm\+0x68>
     a08c:	e59f4000 	ldr	r4, \[pc\]	; a094 <arm\+0x6c>
 #------------------------------------------------------------------------------
 #------ 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 <abf2@plt\+0x5c>
+    a098:	ebfffbeb 	bl	904c <aaf1-0xfb4>
 #------------------------------------------------------------------------------
 #------ tbf1's .iplt entry
 #------------------------------------------------------------------------------
-    a09c:	eafffc1b 	b	9110 <abf2@plt\+0x5c>
+    a09c:	eafffbea 	b	904c <aaf1-0xfb4>
 #------------------------------------------------------------------------------
 #------ tbf1's .iplt entry
 #------------------------------------------------------------------------------
-    a0a0:	0afffc1a 	beq	9110 <abf2@plt\+0x5c>
+    a0a0:	0afffbe9 	beq	904c <aaf1-0xfb4>
     a0a4:	e59f4000 	ldr	r4, \[pc\]	; a0ac <arm\+0x84>
     a0a8:	e59f4000 	ldr	r4, \[pc\]	; a0b0 <arm\+0x88>
 #------------------------------------------------------------------------------
 #------ 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 <aaf2@plt>
+    a0b4:	ebfffbfa 	bl	90a4 <aaf1-0xf5c>
 #------------------------------------------------------------------------------
-#------ aaf2's .plt entry
+#------ aaf3's .plt entry
 #------------------------------------------------------------------------------
-    a0b8:	eafffbe7 	b	905c <aaf2@plt>
+    a0b8:	eafffbf9 	b	90a4 <aaf1-0xf5c>
 #------------------------------------------------------------------------------
-#------ aaf2's .plt entry
+#------ aaf3's .plt entry
 #------------------------------------------------------------------------------
-    a0bc:	0afffbe6 	beq	905c <aaf2@plt>
+    a0bc:	0afffbf8 	beq	90a4 <aaf1-0xf5c>
     a0c0:	e59f4000 	ldr	r4, \[pc\]	; a0c8 <arm\+0xa0>
     a0c4:	e59f4000 	ldr	r4, \[pc\]	; a0cc <arm\+0xa4>
 #------------------------------------------------------------------------------
-#------ .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@plt>
-#------------------------------------------------------------------------------
-#------ taf2's .plt entry
-#------------------------------------------------------------------------------
-    a0d4:	eafffbdd 	b	9050 <taf2@plt>
-#------------------------------------------------------------------------------
-#------ taf2's .plt entry
-#------------------------------------------------------------------------------
-    a0d8:	0afffbdc 	beq	9050 <taf2@plt>
-    a0dc:	e59f4000 	ldr	r4, \[pc\]	; a0e4 <arm\+0xbc>
-    a0e0:	e59f4000 	ldr	r4, \[pc\]	; a0e8 <arm\+0xc0>
-#------------------------------------------------------------------------------
-#------ .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@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ abf2's .plt entry
-#------------------------------------------------------------------------------
-    a0f0:	eafffbf0 	b	90b8 <abf2@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ abf2's .plt entry
-#------------------------------------------------------------------------------
-    a0f4:	0afffbef 	beq	90b8 <abf2@plt\+0x4>
-    a0f8:	e59f4000 	ldr	r4, \[pc\]	; a100 <arm\+0xd8>
-    a0fc:	e59f4000 	ldr	r4, \[pc\]	; a104 <arm\+0xdc>
-#------------------------------------------------------------------------------
-#------ .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@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ tbf2's .plt entry
-#------------------------------------------------------------------------------
-    a10c:	eafffbcc 	b	9044 <tbf2@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ tbf2's .plt entry
-#------------------------------------------------------------------------------
-    a110:	0afffbcb 	beq	9044 <tbf2@plt\+0x4>
-    a114:	e59f4000 	ldr	r4, \[pc\]	; a11c <arm\+0xf4>
-    a118:	e59f4000 	ldr	r4, \[pc\]	; a120 <arm\+0xf8>
-#------------------------------------------------------------------------------
-#------ .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 <abf2@plt\+0xb4>
-#------------------------------------------------------------------------------
-#------ aaf3's .iplt entry
-#------------------------------------------------------------------------------
-    a128:	eafffc0e 	b	9168 <abf2@plt\+0xb4>
-#------------------------------------------------------------------------------
-#------ aaf3's .iplt entry
-#------------------------------------------------------------------------------
-    a12c:	0afffc0d 	beq	9168 <abf2@plt\+0xb4>
-    a130:	e59f4000 	ldr	r4, \[pc\]	; a138 <arm\+0x110>
-    a134:	e59f4000 	ldr	r4, \[pc\]	; a13c <arm\+0x114>
-#------------------------------------------------------------------------------
 #------ 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 <abf2@plt\+0xa8>
+    a0d0:	ebfffbf0 	bl	9098 <aaf1-0xf68>
 #------------------------------------------------------------------------------
 #------ taf3's .iplt entry
 #------------------------------------------------------------------------------
-    a144:	eafffc04 	b	915c <abf2@plt\+0xa8>
+    a0d4:	eafffbef 	b	9098 <aaf1-0xf68>
 #------------------------------------------------------------------------------
 #------ taf3's .iplt entry
 #------------------------------------------------------------------------------
-    a148:	0afffc03 	beq	915c <abf2@plt\+0xa8>
-    a14c:	e59f4000 	ldr	r4, \[pc\]	; a154 <arm\+0x12c>
-    a150:	e59f4000 	ldr	r4, \[pc\]	; a158 <arm\+0x130>
+    a0d8:	0afffbee 	beq	9098 <aaf1-0xf68>
+    a0dc:	e59f4000 	ldr	r4, \[pc\]	; a0e4 <arm\+0xbc>
+    a0e0:	e59f4000 	ldr	r4, \[pc\]	; a0e8 <arm\+0xc0>
 #------------------------------------------------------------------------------
 #------ 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 <abf2@plt\+0x7c>
+    a0ec:	ebfffbde 	bl	906c <aaf1-0xf94>
 #------------------------------------------------------------------------------
 #------ abf3's .iplt entry
 #------------------------------------------------------------------------------
-    a160:	eafffbf2 	b	9130 <abf2@plt\+0x7c>
+    a0f0:	eafffbdd 	b	906c <aaf1-0xf94>
 #------------------------------------------------------------------------------
 #------ abf3's .iplt entry
 #------------------------------------------------------------------------------
-    a164:	0afffbf1 	beq	9130 <abf2@plt\+0x7c>
-    a168:	e59f4000 	ldr	r4, \[pc\]	; a170 <arm\+0x148>
-    a16c:	e59f4000 	ldr	r4, \[pc\]	; a174 <arm\+0x14c>
+    a0f4:	0afffbdc 	beq	906c <aaf1-0xf94>
+    a0f8:	e59f4000 	ldr	r4, \[pc\]	; a100 <arm\+0xd8>
+    a0fc:	e59f4000 	ldr	r4, \[pc\]	; a104 <arm\+0xdc>
 #------------------------------------------------------------------------------
 #------ 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 <abf2@plt\+0x9c>
+    a108:	ebfffbdf 	bl	908c <aaf1-0xf74>
 #------------------------------------------------------------------------------
 #------ tbf3's .iplt entry
 #------------------------------------------------------------------------------
-    a17c:	eafffbf3 	b	9150 <abf2@plt\+0x9c>
+    a10c:	eafffbde 	b	908c <aaf1-0xf74>
 #------------------------------------------------------------------------------
 #------ tbf3's .iplt entry
 #------------------------------------------------------------------------------
-    a180:	0afffbf2 	beq	9150 <abf2@plt\+0x9c>
-    a184:	e59f4000 	ldr	r4, \[pc\]	; a18c <arm\+0x164>
-    a188:	e59f4000 	ldr	r4, \[pc\]	; a190 <arm\+0x168>
+    a110:	0afffbdd 	beq	908c <aaf1-0xf74>
+    a114:	e59f4000 	ldr	r4, \[pc\]	; a11c <arm\+0xf4>
+    a118:	e59f4000 	ldr	r4, \[pc\]	; a120 <arm\+0xf8>
 #------------------------------------------------------------------------------
 #------ 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@plt>
-#------------------------------------------------------------------------------
-#------ aaf4's .plt entry
-#------------------------------------------------------------------------------
-    a198:	eafffba1 	b	9024 <aaf4@plt>
-#------------------------------------------------------------------------------
-#------ aaf4's .plt entry
-#------------------------------------------------------------------------------
-    a19c:	0afffba0 	beq	9024 <aaf4@plt>
-    a1a0:	e59f4000 	ldr	r4, \[pc\]	; a1a8 <arm\+0x180>
-    a1a4:	e59f4000 	ldr	r4, \[pc\]	; a1ac <arm\+0x184>
-#------------------------------------------------------------------------------
-#------ .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@plt>
-#------------------------------------------------------------------------------
-#------ taf4's .plt entry
-#------------------------------------------------------------------------------
-    a1b4:	eafffbbb 	b	90a8 <taf4@plt>
-#------------------------------------------------------------------------------
-#------ taf4's .plt entry
-#------------------------------------------------------------------------------
-    a1b8:	0afffbba 	beq	90a8 <taf4@plt>
-    a1bc:	e59f4000 	ldr	r4, \[pc\]	; a1c4 <arm\+0x19c>
-    a1c0:	e59f4000 	ldr	r4, \[pc\]	; a1c8 <arm\+0x1a0>
-#------------------------------------------------------------------------------
-#------ .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@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ abf4's .plt entry
-#------------------------------------------------------------------------------
-    a1d0:	eafffba5 	b	906c <abf4@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ abf4's .plt entry
-#------------------------------------------------------------------------------
-    a1d4:	0afffba4 	beq	906c <abf4@plt\+0x4>
-    a1d8:	e59f4000 	ldr	r4, \[pc\]	; a1e0 <arm\+0x1b8>
-    a1dc:	e59f4000 	ldr	r4, \[pc\]	; a1e4 <arm\+0x1bc>
-#------------------------------------------------------------------------------
-#------ .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@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ tbf4's .plt entry
-#------------------------------------------------------------------------------
-    a1ec:	eafffba2 	b	907c <tbf4@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ tbf4's .plt entry
-#------------------------------------------------------------------------------
-    a1f0:	0afffba1 	beq	907c <tbf4@plt\+0x4>
-    a1f4:	e59f4000 	ldr	r4, \[pc\]	; a1fc <arm\+0x1d4>
-    a1f8:	e59f4000 	ldr	r4, \[pc\]	; a200 <arm\+0x1d8>
-#------------------------------------------------------------------------------
-#------ .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 <foo>
-    a208:	f005 befa 	b\.w	10000 <foo>
-    a20c:	f005 86f8 	beq\.w	10000 <foo>
-    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 <foo>
+    a128:	f005 bf6a 	b\.w	10000 <foo>
+    a12c:	f005 8768 	beq\.w	10000 <foo>
+    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 <abf2@plt\+0x20>
+    a13c:	f7fe ef68 	blx	9010 <aaf1-0xff0>
 #------------------------------------------------------------------------------
 #------ thumb entry to atf1's .iplt entry
 #------------------------------------------------------------------------------
-    a220:	f7fe bf56 	b\.w	90d0 <abf2@plt\+0x1c>
+    a140:	f7fe bf64 	b\.w	900c <aaf1-0xff4>
 #------------------------------------------------------------------------------
 #------ thumb entry to atf1's .iplt entry
 #------------------------------------------------------------------------------
-    a224:	f43e af54 	beq\.w	90d0 <abf2@plt\+0x1c>
-    a228:	4c00      	ldr	r4, \[pc, #0\]	; \(a22c <_thumb\+0x28>\)
-    a22a:	4c01      	ldr	r4, \[pc, #4\]	; \(a230 <_thumb\+0x2c>\)
+    a144:	f43e af62 	beq\.w	900c <aaf1-0xff4>
+    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 <abf2@plt\+0x4c>
+    a154:	f7fe ef72 	blx	903c <aaf1-0xfc4>
 #------------------------------------------------------------------------------
 #------ thumb entry to ttf1's .iplt entry
 #------------------------------------------------------------------------------
-    a238:	f7fe bf60 	b\.w	90fc <abf2@plt\+0x48>
+    a158:	f7fe bf6e 	b\.w	9038 <aaf1-0xfc8>
 #------------------------------------------------------------------------------
 #------ thumb entry to ttf1's .iplt entry
 #------------------------------------------------------------------------------
-    a23c:	f43e af5e 	beq\.w	90fc <abf2@plt\+0x48>
-    a240:	4c00      	ldr	r4, \[pc, #0\]	; \(a244 <_thumb\+0x40>\)
-    a242:	4c01      	ldr	r4, \[pc, #4\]	; \(a248 <_thumb\+0x44>\)
+    a15c:	f43e af6c 	beq\.w	9038 <aaf1-0xfc8>
+    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 <abf2@plt\+0x30>
+    a16c:	f7fe ef58 	blx	9020 <aaf1-0xfe0>
 #------------------------------------------------------------------------------
 #------ thumb entry to abf1's .iplt entry
 #------------------------------------------------------------------------------
-    a250:	f7fe bf46 	b\.w	90e0 <abf2@plt\+0x2c>
+    a170:	f7fe bf54 	b\.w	901c <aaf1-0xfe4>
 #------------------------------------------------------------------------------
 #------ thumb entry to abf1's .iplt entry
 #------------------------------------------------------------------------------
-    a254:	f43e af44 	beq\.w	90e0 <abf2@plt\+0x2c>
-    a258:	4c00      	ldr	r4, \[pc, #0\]	; \(a25c <_thumb\+0x58>\)
-    a25a:	4c01      	ldr	r4, \[pc, #4\]	; \(a260 <_thumb\+0x5c>\)
+    a174:	f43e af52 	beq\.w	901c <aaf1-0xfe4>
+    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 <abf2@plt\+0x5c>
+    a184:	f7fe ef62 	blx	904c <aaf1-0xfb4>
 #------------------------------------------------------------------------------
 #------ thumb entry to tbf1's .iplt entry
 #------------------------------------------------------------------------------
-    a268:	f7fe bf50 	b\.w	910c <abf2@plt\+0x58>
+    a188:	f7fe bf5e 	b\.w	9048 <aaf1-0xfb8>
 #------------------------------------------------------------------------------
 #------ thumb entry to tbf1's .iplt entry
 #------------------------------------------------------------------------------
-    a26c:	f43e af4e 	beq\.w	910c <abf2@plt\+0x58>
-    a270:	4c00      	ldr	r4, \[pc, #0\]	; \(a274 <_thumb\+0x70>\)
-    a272:	4c01      	ldr	r4, \[pc, #4\]	; \(a278 <_thumb\+0x74>\)
+    a18c:	f43e af5c 	beq\.w	9048 <aaf1-0xfb8>
+    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 <atf2@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to atf2's .plt entry
-#------------------------------------------------------------------------------
-    a280:	f7fe bec8 	b\.w	9014 <atf2@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to atf2's .plt entry
-#------------------------------------------------------------------------------
-    a284:	f43e aec6 	beq\.w	9014 <atf2@plt>
-    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 <ttf2@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to ttf2's .plt entry
-#------------------------------------------------------------------------------
-    a298:	f7fe beca 	b\.w	9030 <ttf2@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to ttf2's .plt entry
-#------------------------------------------------------------------------------
-    a29c:	f43e aec8 	beq\.w	9030 <ttf2@plt>
-    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 <abf2@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to abf2's .plt entry
-#------------------------------------------------------------------------------
-    a2b0:	f7fe bf00 	b\.w	90b4 <abf2@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to abf2's .plt entry
-#------------------------------------------------------------------------------
-    a2b4:	f43e aefe 	beq\.w	90b4 <abf2@plt>
-    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 <tbf2@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to tbf2's .plt entry
-#------------------------------------------------------------------------------
-    a2c8:	f7fe beba 	b\.w	9040 <tbf2@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to tbf2's .plt entry
-#------------------------------------------------------------------------------
-    a2cc:	f43e aeb8 	beq\.w	9040 <tbf2@plt>
-    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 <abf2@plt\+0x6c>
+    a19c:	f7fe ef5e 	blx	905c <aaf1-0xfa4>
 #------------------------------------------------------------------------------
 #------ thumb entry to atf3's .iplt entry
 #------------------------------------------------------------------------------
-    a2e0:	f7fe bf1c 	b\.w	911c <abf2@plt\+0x68>
+    a1a0:	f7fe bf5a 	b\.w	9058 <aaf1-0xfa8>
 #------------------------------------------------------------------------------
 #------ thumb entry to atf3's .iplt entry
 #------------------------------------------------------------------------------
-    a2e4:	f43e af1a 	beq\.w	911c <abf2@plt\+0x68>
-    a2e8:	4c00      	ldr	r4, \[pc, #0\]	; \(a2ec <_thumb\+0xe8>\)
-    a2ea:	4c01      	ldr	r4, \[pc, #4\]	; \(a2f0 <_thumb\+0xec>\)
+    a1a4:	f43e af58 	beq\.w	9058 <aaf1-0xfa8>
+    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 <abf2@plt\+0x8c>
+    a1b4:	f7fe ef62 	blx	907c <aaf1-0xf84>
 #------------------------------------------------------------------------------
 #------ thumb entry to ttf3's .iplt entry
 #------------------------------------------------------------------------------
-    a2f8:	f7fe bf20 	b\.w	913c <abf2@plt\+0x88>
+    a1b8:	f7fe bf5e 	b\.w	9078 <aaf1-0xf88>
 #------------------------------------------------------------------------------
 #------ thumb entry to ttf3's .iplt entry
 #------------------------------------------------------------------------------
-    a2fc:	f43e af1e 	beq\.w	913c <abf2@plt\+0x88>
-    a300:	4c00      	ldr	r4, \[pc, #0\]	; \(a304 <_thumb\+0x100>\)
-    a302:	4c01      	ldr	r4, \[pc, #4\]	; \(a308 <_thumb\+0x104>\)
+    a1bc:	f43e af5c 	beq\.w	9078 <aaf1-0xf88>
+    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 <abf2@plt\+0x7c>
+    a1cc:	f7fe ef4e 	blx	906c <aaf1-0xf94>
 #------------------------------------------------------------------------------
 #------ thumb entry to abf3's .iplt entry
 #------------------------------------------------------------------------------
-    a310:	f7fe bf0c 	b\.w	912c <abf2@plt\+0x78>
+    a1d0:	f7fe bf4a 	b\.w	9068 <aaf1-0xf98>
 #------------------------------------------------------------------------------
 #------ thumb entry to abf3's .iplt entry
 #------------------------------------------------------------------------------
-    a314:	f43e af0a 	beq\.w	912c <abf2@plt\+0x78>
-    a318:	4c00      	ldr	r4, \[pc, #0\]	; \(a31c <_thumb\+0x118>\)
-    a31a:	4c01      	ldr	r4, \[pc, #4\]	; \(a320 <_thumb\+0x11c>\)
+    a1d4:	f43e af48 	beq\.w	9068 <aaf1-0xf98>
+    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 <abf2@plt\+0x9c>
+    a1e4:	f7fe ef52 	blx	908c <aaf1-0xf74>
 #------------------------------------------------------------------------------
 #------ thumb entry to tbf3's .iplt entry
 #------------------------------------------------------------------------------
-    a328:	f7fe bf10 	b\.w	914c <abf2@plt\+0x98>
+    a1e8:	f7fe bf4e 	b\.w	9088 <aaf1-0xf78>
 #------------------------------------------------------------------------------
 #------ thumb entry to tbf3's .iplt entry
 #------------------------------------------------------------------------------
-    a32c:	f43e af0e 	beq\.w	914c <abf2@plt\+0x98>
-    a330:	4c00      	ldr	r4, \[pc, #0\]	; \(a334 <_thumb\+0x130>\)
-    a332:	4c01      	ldr	r4, \[pc, #4\]	; \(a338 <_thumb\+0x134>\)
+    a1ec:	f43e af4c 	beq\.w	9088 <aaf1-0xf78>
+    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 <atf4@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to atf4's .plt entry
-#------------------------------------------------------------------------------
-    a340:	f7fe beaa 	b\.w	9098 <atf4@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to atf4's .plt entry
-#------------------------------------------------------------------------------
-    a344:	f43e aea8 	beq\.w	9098 <atf4@plt>
-    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 <ttf4@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to ttf4's .plt entry
-#------------------------------------------------------------------------------
-    a358:	f7fe be96 	b\.w	9088 <ttf4@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to ttf4's .plt entry
-#------------------------------------------------------------------------------
-    a35c:	f43e ae94 	beq\.w	9088 <ttf4@plt>
-    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 <abf4@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to abf4's .plt entry
-#------------------------------------------------------------------------------
-    a370:	f7fe be7a 	b\.w	9068 <abf4@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to abf4's .plt entry
-#------------------------------------------------------------------------------
-    a374:	f43e ae78 	beq\.w	9068 <abf4@plt>
-    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 <tbf4@plt\+0x4>
-#------------------------------------------------------------------------------
-#------ thumb entry to tbf4's .plt entry
-#------------------------------------------------------------------------------
-    a388:	f7fe be76 	b\.w	9078 <tbf4@plt>
-#------------------------------------------------------------------------------
-#------ thumb entry to tbf4's .plt entry
-#------------------------------------------------------------------------------
-    a38c:	f43e ae74 	beq\.w	9078 <tbf4@plt>
-    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 356f042..92377c9 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 a8ad1f2..c7c7975 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 3947f7f..2727180 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 0000000..475b324
--- /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 0000000..cc49e02
--- /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 0000000..c82fd4d
--- /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 0000000..4cfbd2c
--- /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 - .

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]