This is the mail archive of the binutils-cvs@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]

[binutils-gdb] [ARM] Reject R_ARM_REL32 when trying to defer it to runtime


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=52db4ec2d13f511ef3dfe5b9a159869da6e4c3eb

commit 52db4ec2d13f511ef3dfe5b9a159869da6e4c3eb
Author: Jiong Wang <jiong.wang@arm.com>
Date:   Wed Jan 14 19:11:54 2015 +0000

    [ARM] Reject R_ARM_REL32 when trying to defer it to runtime
    
      bfd/
        * elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
        trying to defer them to runtime.
    
      ld/testsuite/
        * ld-arm/elf32-reject.s: New testcase.
        * ld-arm/elf32-reject.d: Likewise.
        * ld-arm/elf32-reject-pie.s: Likewise.
        * ld-arm/elf32-reject-pie.d: Likewise.
        * ld-arm/arm-elf.exp: Run new testcases.
        * ld-arm/ifunc-7.s: Delete f2/f4 test items.
        * ld-arm/ifunc-7.rd: Likewise.
        * ld-arm/ifunc-7.gd: Likewise.
        * ld-arm/ifunc-7.dd: Likewise.
        * ld-arm/ifunc-8.s: Likewise.
        * ld-arm/ifunc-8.rd: Likewise.
        * ld-arm/ifunc-8.gd: Likewise.
        * ld-arm/ifunc-8.dd: Likewise.

Diff:
---
 bfd/ChangeLog                          |   5 +
 bfd/elf32-arm.c                        |  15 +
 ld/ChangeLog                           |  16 +
 ld/testsuite/ld-arm/arm-elf.exp        |   2 +
 ld/testsuite/ld-arm/ifunc-7.dd         |  86 +---
 ld/testsuite/ld-arm/ifunc-7.gd         |  32 +-
 ld/testsuite/ld-arm/ifunc-7.rd         |  23 +-
 ld/testsuite/ld-arm/ifunc-7.s          |   2 -
 ld/testsuite/ld-arm/ifunc-8.dd         | 824 +++++++--------------------------
 ld/testsuite/ld-arm/ifunc-8.gd         | 160 ++-----
 ld/testsuite/ld-arm/ifunc-8.rd         |  93 +---
 ld/testsuite/ld-arm/ifunc-8.s          |   6 -
 ld/testsuite/ld-arm/rel32-reject-pie.d |   3 +
 ld/testsuite/ld-arm/rel32-reject-pie.s |   8 +
 ld/testsuite/ld-arm/rel32-reject.d     |   3 +
 ld/testsuite/ld-arm/rel32-reject.s     |   9 +
 16 files changed, 319 insertions(+), 968 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c6aa966..0e83f2e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-14  Jiong Wang  <jiong.wang@arm.com>
+
+	* elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
+	trying to defer them to runtime.
+
 2015-01-13  Thomas Preud'homme <thomas.preudhomme@arm.com>
 
 	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 75ea1d4..d36a7a5 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -8416,6 +8416,21 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	  Elf_Internal_Rela outrel;
 	  bfd_boolean skip, relocate;
 
+	  if ((r_type == R_ARM_REL32 || r_type == R_ARM_REL32_NOI)
+	      && !h->def_regular)
+	    {
+	      char *v = _("shared object");
+
+	      if (info->executable)
+		v = _("PIE executable");
+
+	      (*_bfd_error_handler)
+		(_("%B: relocation %s against external or undefined symbol `%s'"
+		   " can not be used when making a %s; recompile with -fPIC"), input_bfd,
+		 elf32_arm_howto_table_1[r_type].name, h->root.root.string, v);
+	      return bfd_reloc_notsupported;
+	    }
+
 	  *unresolved_reloc_p = FALSE;
 
 	  if (sreloc == NULL && globals->root.dynamic_sections_created)
diff --git a/ld/ChangeLog b/ld/ChangeLog
index be4617f..c7847a1 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,19 @@
+2015-01-14  Jiong Wang  <jiong.wang@arm.com>
+
+	* ld-arm/elf32-reject.s: New testcase.
+	* ld-arm/elf32-reject.d: Likewise.
+	* ld-arm/elf32-reject-pie.s: Likewise.
+	* ld-arm/elf32-reject-pie.d: Likewise.
+	* ld-arm/arm-elf.exp: Run new testcases.
+	* ld-arm/ifunc-7.s: Delete f2/f4 test items.
+	* ld-arm/ifunc-7.rd: Likewise.
+	* ld-arm/ifunc-7.gd: Likewise.
+	* ld-arm/ifunc-7.dd: Likewise.
+	* ld-arm/ifunc-8.s: Likewise.
+	* ld-arm/ifunc-8.rd: Likewise.
+	* ld-arm/ifunc-8.gd: Likewise.
+	* ld-arm/ifunc-8.dd: Likewise.
+
 2015-01-01  Alan Modra  <amodra@gmail.com>
 
 	* ldver.c (ldversion): Just print current year.
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index 0efbde4..9d946e0 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]