powerpc relocs against local symbols

Alan Modra amodra@bigpond.net.au
Wed Mar 2 13:16:00 GMT 2005


tc_fix_adjustable prevents relocs against a symbol being reduced to
relocs against a section symbol, if there is some target dependent
reason why the reloc cannot be adjusted.  The ppc version of this
function contains bogus tests that aren't target dependent.  The
necessary tests are properly covered by generic ELF tests in
adjust_reloc_syms.  What's more the tests in ppc_fix_adjustable are
too conservative.  This results in relocs against local symbols which
would be better as relocs against sections symbols.  One effect is that
strip -x won't remove local syms used in relocs.

gas/
	* config/tc-ppc.c (ppc_fix_adjustable <ELF>): Remove bogus checks.
gas/testsuite/
	* gas/ppc/astest.d: Adjust for relocs reduced to section sym.
	* gas/ppc/astest2.d: Likewise.
	* gas/ppc/astest2_64.d: Likewise.
	* ppc/astest64.d: Likewise.
	* ppc/booke.d: Likewise.
	* ppc/power4.d: Likewise.
	* ppc/test1elf32.d: Likewise.
	* ppc/test1elf64.d: Likewise.

Index: gas/config/tc-ppc.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-ppc.c,v
retrieving revision 1.94
diff -u -p -r1.94 tc-ppc.c
--- gas/config/tc-ppc.c	23 Feb 2005 12:28:05 -0000	1.94
+++ gas/config/tc-ppc.c	2 Mar 2005 02:42:24 -0000
@@ -5485,12 +5485,7 @@ ppc_fix_adjustable (fix)
 	  && fix->fx_r_type != BFD_RELOC_VTABLE_INHERIT
 	  && fix->fx_r_type != BFD_RELOC_VTABLE_ENTRY
 	  && !(fix->fx_r_type >= BFD_RELOC_PPC_TLS
-	       && fix->fx_r_type <= BFD_RELOC_PPC64_DTPREL16_HIGHESTA)
-	  && (fix->fx_pcrel
-	      || (fix->fx_subsy != NULL
-		  && (S_GET_SEGMENT (fix->fx_subsy)
-		      == S_GET_SEGMENT (fix->fx_addsy)))
-	      || S_IS_LOCAL (fix->fx_addsy)));
+	       && fix->fx_r_type <= BFD_RELOC_PPC64_DTPREL16_HIGHESTA));
 }
 #endif
 
Index: gas/testsuite/gas/ppc/astest.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/astest.d,v
retrieving revision 1.2
diff -u -p -r1.2 astest.d
--- gas/testsuite/gas/ppc/astest.d	16 Mar 2004 00:58:42 -0000	1.2
+++ gas/testsuite/gas/ppc/astest.d	2 Mar 2005 02:42:29 -0000
@@ -33,37 +33,41 @@ Disassembly of section \.text:
   38:	48 00 00 00 	b       38 <apfour\+0x28>
 			38: R_PPC_LOCAL24PC	a
   3c:	4b ff ff d4 	b       10 <apfour>
-
   40:	00 00 00 40 	\.long 0x40
 			40: R_PPC_ADDR32	\.text\+0x40
-
   44:	00 00 00 4c 	\.long 0x4c
 			44: R_PPC_ADDR32	\.text\+0x4c
   48:	00 00 00 00 	\.long 0x0
 			48: R_PPC_REL32	x
   4c:	00 00 00 04 	\.long 0x4
 			4c: R_PPC_REL32	x\+0x4
-	\.\.\.
+  50:	00 00 00 00 	\.long 0x0
 			50: R_PPC_REL32	z
-			54: R_PPC_REL32	y
+  54:	00 00 00 04 	\.long 0x4
+			54: R_PPC_REL32	\.data\+0x4
+  58:	00 00 00 00 	\.long 0x0
 			58: R_PPC_ADDR32	x
-			5c: R_PPC_ADDR32	y
+  5c:	00 00 00 04 	\.long 0x4
+			5c: R_PPC_ADDR32	\.data\+0x4
+  60:	00 00 00 00 	\.long 0x0
 			60: R_PPC_ADDR32	z
   64:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			64: R_PPC_ADDR32	x\+0xf+ffffffc
-  68:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-			68: R_PPC_ADDR32	y\+0xf+ffffffc
+  68:	00 00 00 00 	\.long 0x0
+			68: R_PPC_ADDR32	\.data
   6c:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			6c: R_PPC_ADDR32	z\+0xf+ffffffc
   70:	ff ff ff 9c 	\.long 0xffffff9c
   74:	ff ff ff 9c 	\.long 0xffffff9c
-	\.\.\.
+  78:	00 00 00 00 	\.long 0x0
 			78: R_PPC_ADDR32	a
-			7c: R_PPC_ADDR32	b
-			80: R_PPC_ADDR32	apfour
+  7c:	00 00 00 10 	\.long 0x10
+			7c: R_PPC_ADDR32	\.text\+0x10
+  80:	00 00 00 10 	\.long 0x10
+			80: R_PPC_ADDR32	\.text\+0x10
   84:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-  88:	00 00 00 02 	\.long 0x2
-			88: R_PPC_ADDR32	apfour\+0x2
+  88:	00 00 00 12 	\.long 0x12
+			88: R_PPC_ADDR32	\.text\+0x12
   8c:	00 00 00 00 	\.long 0x0
 Disassembly of section \.data:
 
Index: gas/testsuite/gas/ppc/astest2.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/astest2.d,v
retrieving revision 1.4
diff -u -p -r1.4 astest2.d
--- gas/testsuite/gas/ppc/astest2.d	16 Mar 2004 00:58:42 -0000	1.4
+++ gas/testsuite/gas/ppc/astest2.d	2 Mar 2005 02:42:29 -0000
@@ -29,26 +29,28 @@ Disassembly of section \.text:
   38:	48 00 00 00 	b       38 <foo\+0x38>
 			38: R_PPC_LOCAL24PC	a
   3c:	48 00 00 40 	b       7c <apfour>
-
   40:	00 00 00 40 	\.long 0x40
 			40: R_PPC_ADDR32	\.text\+0x40
-
   44:	00 00 00 4c 	\.long 0x4c
 			44: R_PPC_ADDR32	\.text\+0x4c
   48:	00 00 00 00 	\.long 0x0
 			48: R_PPC_REL32	x
   4c:	00 00 00 04 	\.long 0x4
 			4c: R_PPC_REL32	x\+0x4
-	\.\.\.
+  50:	00 00 00 00 	\.long 0x0
 			50: R_PPC_REL32	z
-			54: R_PPC_REL32	y
+  54:	00 00 00 04 	\.long 0x4
+			54: R_PPC_REL32	\.data\+0x4
+  58:	00 00 00 00 	\.long 0x0
 			58: R_PPC_ADDR32	x
-			5c: R_PPC_ADDR32	y
+  5c:	00 00 00 04 	\.long 0x4
+			5c: R_PPC_ADDR32	\.data\+0x4
+  60:	00 00 00 00 	\.long 0x0
 			60: R_PPC_ADDR32	z
   64:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			64: R_PPC_ADDR32	x\+0xf+ffffffc
-  68:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-			68: R_PPC_ADDR32	y\+0xf+ffffffc
+  68:	00 00 00 00 	\.long 0x0
+			68: R_PPC_ADDR32	\.data
   6c:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			6c: R_PPC_ADDR32	z\+0xf+ffffffc
   70:	00 00 00 08 	\.long 0x8
@@ -59,12 +61,13 @@ Disassembly of section \.text:
 			78: R_PPC_ADDR32	a
 
 0+000007c <apfour>:
-	\.\.\.
-			7c: R_PPC_ADDR32	b
-			80: R_PPC_ADDR32	apfour
+  7c:	00 00 00 7c 	\.long 0x7c
+			7c: R_PPC_ADDR32	\.text\+0x7c
+  80:	00 00 00 7c 	\.long 0x7c
+			80: R_PPC_ADDR32	\.text\+0x7c
   84:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-  88:	00 00 00 02 	\.long 0x2
-			88: R_PPC_ADDR32	apfour\+0x2
+  88:	00 00 00 7e 	\.long 0x7e
+			88: R_PPC_ADDR32	\.text\+0x7e
   8c:	00 00 00 00 	\.long 0x0
   90:	60 00 00 00 	nop
   94:	40 a5 ff fc 	ble-    cr1,90 <apfour\+0x14>
Index: gas/testsuite/gas/ppc/astest2_64.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/astest2_64.d,v
retrieving revision 1.2
diff -u -p -r1.2 astest2_64.d
--- gas/testsuite/gas/ppc/astest2_64.d	16 Mar 2004 00:58:42 -0000	1.2
+++ gas/testsuite/gas/ppc/astest2_64.d	2 Mar 2005 02:42:30 -0000
@@ -34,16 +34,20 @@ Disassembly of section \.text:
 			40: R_PPC64_REL32	x
   44:	00 00 00 04 	\.long 0x4
 			44: R_PPC64_REL32	x\+0x4
-	\.\.\.
+  48:	00 00 00 00 	\.long 0x0
 			48: R_PPC64_REL32	z
-			4c: R_PPC64_REL32	y
+  4c:	00 00 00 04 	\.long 0x4
+			4c: R_PPC64_REL32	\.data\+0x4
+  50:	00 00 00 00 	\.long 0x0
 			50: R_PPC64_ADDR32	x
-			54: R_PPC64_ADDR32	y
+  54:	00 00 00 04 	\.long 0x4
+			54: R_PPC64_ADDR32	\.data\+0x4
+  58:	00 00 00 00 	\.long 0x0
 			58: R_PPC64_ADDR32	z
   5c:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			5c: R_PPC64_ADDR32	x\+0xfffffffffffffffc
-  60:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-			60: R_PPC64_ADDR32	y\+0xfffffffffffffffc
+  60:	00 00 00 00 	\.long 0x0
+			60: R_PPC64_ADDR32	\.data
   64:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			64: R_PPC64_ADDR32	z\+0xfffffffffffffffc
   68:	00 00 00 08 	\.long 0x8
@@ -54,12 +58,13 @@ Disassembly of section \.text:
 			70: R_PPC64_ADDR32	a
 
 0000000000000074 <apfour>:
-	\.\.\.
-			74: R_PPC64_ADDR32	b
-			78: R_PPC64_ADDR32	apfour
+  74:	00 00 00 74 	\.long 0x74
+			74: R_PPC64_ADDR32	\.text\+0x74
+  78:	00 00 00 74 	\.long 0x74
+			78: R_PPC64_ADDR32	\.text\+0x74
   7c:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-  80:	00 00 00 02 	\.long 0x2
-			80: R_PPC64_ADDR32	apfour\+0x2
+  80:	00 00 00 76 	\.long 0x76
+			80: R_PPC64_ADDR32	\.text\+0x76
   84:	00 00 00 00 	\.long 0x0
 Disassembly of section \.data:
 
Index: gas/testsuite/gas/ppc/astest64.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/astest64.d,v
retrieving revision 1.2
diff -u -p -r1.2 astest64.d
--- gas/testsuite/gas/ppc/astest64.d	16 Mar 2004 00:58:42 -0000	1.2
+++ gas/testsuite/gas/ppc/astest64.d	2 Mar 2005 02:42:30 -0000
@@ -38,27 +38,33 @@ Disassembly of section \.text:
 			40: R_PPC64_REL32	x
   44:	00 00 00 04 	\.long 0x4
 			44: R_PPC64_REL32	x\+0x4
-	\.\.\.
+  48:	00 00 00 00 	\.long 0x0
 			48: R_PPC64_REL32	z
-			4c: R_PPC64_REL32	y
+  4c:	00 00 00 04 	\.long 0x4
+			4c: R_PPC64_REL32	\.data\+0x4
+  50:	00 00 00 00 	\.long 0x0
 			50: R_PPC64_ADDR32	x
-			54: R_PPC64_ADDR32	y
+  54:	00 00 00 04 	\.long 0x4
+			54: R_PPC64_ADDR32	\.data\+0x4
+  58:	00 00 00 00 	\.long 0x0
 			58: R_PPC64_ADDR32	z
   5c:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			5c: R_PPC64_ADDR32	x\+0xfffffffffffffffc
-  60:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-			60: R_PPC64_ADDR32	y\+0xfffffffffffffffc
+  60:	00 00 00 00 	\.long 0x0
+			60: R_PPC64_ADDR32	\.data
   64:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
 			64: R_PPC64_ADDR32	z\+0xfffffffffffffffc
   68:	ff ff ff a4 	\.long 0xffffffa4
   6c:	ff ff ff a4 	\.long 0xffffffa4
-	\.\.\.
+  70:	00 00 00 00 	\.long 0x0
 			70: R_PPC64_ADDR32	a
-			74: R_PPC64_ADDR32	b
-			78: R_PPC64_ADDR32	apfour
+  74:	00 00 00 10 	\.long 0x10
+			74: R_PPC64_ADDR32	\.text\+0x10
+  78:	00 00 00 10 	\.long 0x10
+			78: R_PPC64_ADDR32	\.text\+0x10
   7c:	ff ff ff fc 	fnmsub  f31,f31,f31,f31
-  80:	00 00 00 02 	\.long 0x2
-			80: R_PPC64_ADDR32	apfour\+0x2
+  80:	00 00 00 12 	\.long 0x12
+			80: R_PPC64_ADDR32	\.text\+0x12
   84:	00 00 00 00 	\.long 0x0
 Disassembly of section \.data:
 
Index: gas/testsuite/gas/ppc/booke.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/booke.d,v
retrieving revision 1.8
diff -u -p -r1.8 booke.d
--- gas/testsuite/gas/ppc/booke.d	16 Mar 2004 00:58:42 -0000	1.8
+++ gas/testsuite/gas/ppc/booke.d	2 Mar 2005 02:42:30 -0000
@@ -9,20 +9,20 @@ Disassembly of section \.text:
 0+0000000 <start>:
    0:	24 25 00 30 	bce     1,4\*cr1\+gt,30 <branch_target_1>
    4:	24 46 00 3d 	bcel    2,4\*cr1\+eq,40 <branch_target_2>
-   8:	24 67 00 02 	bcea    3,4\*cr1\+so,0 <start>
-			8: R_PPC(64)?_ADDR14	branch_target_3
-   c:	24 88 00 03 	bcela   4,4\*cr2\+lt,0 <start>
-			c: R_PPC(64)?_ADDR14	branch_target_4
+   8:	24 67 00 52 	bcea    3,4\*cr1\+so,50 <branch_target_3>
+			8: R_PPC(64)?_ADDR14	\.text\+0x50
+   c:	24 88 00 73 	bcela   4,4\*cr2\+lt,70 <branch_target_4>
+			c: R_PPC(64)?_ADDR14	\.text\+0x70
   10:	4c a9 00 22 	bclre   5,4\*cr2\+gt
   14:	4c aa 00 23 	bclrel  5,4\*cr2\+eq
   18:	4d 0b 04 22 	bcctre  8,4\*cr2\+so
   1c:	4d 0c 04 23 	bcctrel 8,4\*cr3\+lt
   20:	58 00 00 74 	be      94 <branch_target_5>
   24:	58 00 00 89 	bel     ac <branch_target_6>
-  28:	58 00 00 02 	bea     0 <start>
-			28: R_PPC(64)?_ADDR24	branch_target_7
-  2c:	58 00 00 03 	bela    0 <start>
-			2c: R_PPC(64)?_ADDR24	branch_target_8
+  28:	58 00 00 f6 	bea     f4 <branch_target_7>
+			28: R_PPC(64)?_ADDR24	\.text\+0xf4
+  2c:	58 00 01 2b 	bela    128 <branch_target_8>
+			2c: R_PPC(64)?_ADDR24	\.text\+0x128
 
 0+0000030 <branch_target_1>:
   30:	e9 09 00 80 	lbze    r8,8\(r9\)
Index: gas/testsuite/gas/ppc/power4.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/power4.d,v
retrieving revision 1.5
diff -u -p -r1.5 power4.d
--- gas/testsuite/gas/ppc/power4.d	11 Dec 2004 04:32:36 -0000	1.5
+++ gas/testsuite/gas/ppc/power4.d	2 Mar 2005 02:42:30 -0000
@@ -35,13 +35,13 @@ Disassembly of section \.text:
 
 0+ <\.text>:
  +0:	e0 83 00 00 	lq      r4,0\(r3\)
-			2: R_PPC64_ADDR16_LO_DS	dsym0
+			2: R_PPC64_ADDR16_LO_DS	\.data
  +4:	e0 83 00 00 	lq      r4,0\(r3\)
-			6: R_PPC64_ADDR16_LO_DS	dsym1
+			6: R_PPC64_ADDR16_LO_DS	\.data\+0x8
  +8:	e0 83 00 00 	lq      r4,0\(r3\)
-			a: R_PPC64_ADDR16_LO_DS	usym0
- +c:	e0 83 00 00 	lq      r4,0\(r3\)
-			e: R_PPC64_ADDR16_LO_DS	usym1
+			a: R_PPC64_ADDR16_LO_DS	\.data\+0x8
+ +c:	e0 83 00 10 	lq      r4,16\(r3\)
+			e: R_PPC64_ADDR16_LO_DS	\.data\+0x10
  +10:	e0 83 00 00 	lq      r4,0\(r3\)
 			12: R_PPC64_ADDR16_LO_DS	esym0
  +14:	e0 83 00 00 	lq      r4,0\(r3\)
@@ -63,15 +63,15 @@ Disassembly of section \.text:
  +34:	e0 80 00 00 	lq      r4,0\(0\)
 			36: R_PPC64_ADDR16_LO_DS	\.text
  +38:	e0 c3 00 00 	lq      r6,0\(r3\)
-			3a: R_PPC64_GOT16_DS	dsym0
+			3a: R_PPC64_GOT16_DS	\.data
  +3c:	e0 c3 00 00 	lq      r6,0\(r3\)
-			3e: R_PPC64_GOT16_LO_DS	dsym0
+			3e: R_PPC64_GOT16_LO_DS	\.data
  +40:	e0 c3 00 00 	lq      r6,0\(r3\)
-			42: R_PPC64_PLT16_LO_DS	dsym0
+			42: R_PPC64_PLT16_LO_DS	\.data
  +44:	e0 c3 00 00 	lq      r6,0\(r3\)
-			46: R_PPC64_SECTOFF_DS	dsym1
+			46: R_PPC64_SECTOFF_DS	\.data\+0x8
  +48:	e0 c3 00 00 	lq      r6,0\(r3\)
-			4a: R_PPC64_SECTOFF_LO_DS	dsym1
+			4a: R_PPC64_SECTOFF_LO_DS	\.data\+0x8
  +4c:	e0 c4 00 10 	lq      r6,16\(r4\)
  +50:	f8 c7 00 02 	stq     r6,0\(r7\)
  +54:	f8 c7 00 12 	stq     r6,16\(r7\)
Index: gas/testsuite/gas/ppc/test1elf32.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/test1elf32.d,v
retrieving revision 1.3
diff -u -p -r1.3 test1elf32.d
--- gas/testsuite/gas/ppc/test1elf32.d	11 Dec 2004 04:32:36 -0000	1.3
+++ gas/testsuite/gas/ppc/test1elf32.d	2 Mar 2005 02:42:30 -0000
@@ -36,13 +36,13 @@ Disassembly of section \.text:
 
 0+0000 <\.text>:
    0:	80 63 00 00 	lwz     r3,0\(r3\)
-			2: R_PPC_ADDR16_LO	dsym0
-   4:	80 63 00 00 	lwz     r3,0\(r3\)
-			6: R_PPC_ADDR16_LO	dsym1
-   8:	80 63 00 00 	lwz     r3,0\(r3\)
-			a: R_PPC_ADDR16_LO	usym0
-   c:	80 63 00 00 	lwz     r3,0\(r3\)
-			e: R_PPC_ADDR16_LO	usym1
+			2: R_PPC_ADDR16_LO	\.data
+   4:	80 63 00 04 	lwz     r3,4\(r3\)
+			6: R_PPC_ADDR16_LO	\.data\+0x4
+   8:	80 63 00 04 	lwz     r3,4\(r3\)
+			a: R_PPC_ADDR16_LO	\.data\+0x4
+   c:	80 63 00 08 	lwz     r3,8\(r3\)
+			e: R_PPC_ADDR16_LO	\.data\+0x8
   10:	80 63 00 00 	lwz     r3,0\(r3\)
 			12: R_PPC_ADDR16_LO	esym0
   14:	80 63 00 00 	lwz     r3,0\(r3\)
@@ -54,11 +54,11 @@ Disassembly of section \.text:
   28:	38 60 ff fc 	li      r3,-4
   2c:	38 60 00 04 	li      r3,4
   30:	38 60 00 00 	li      r3,0
-			32: R_PPC_ADDR16_LO	dsym0
+			32: R_PPC_ADDR16_LO	\.data
   34:	38 60 00 00 	li      r3,0
-			36: R_PPC_ADDR16_HI	dsym0
+			36: R_PPC_ADDR16_HI	\.data
   38:	38 60 00 00 	li      r3,0
-			3a: R_PPC_ADDR16_HA	dsym0
+			3a: R_PPC_ADDR16_HA	\.data
   3c:	38 60 ff fc 	li      r3,-4
   40:	38 60 ff ff 	li      r3,-1
   44:	38 60 00 00 	li      r3,0
Index: gas/testsuite/gas/ppc/test1elf64.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ppc/test1elf64.d,v
retrieving revision 1.4
diff -u -p -r1.4 test1elf64.d
--- gas/testsuite/gas/ppc/test1elf64.d	11 Dec 2004 04:32:36 -0000	1.4
+++ gas/testsuite/gas/ppc/test1elf64.d	2 Mar 2005 02:42:30 -0000
@@ -41,13 +41,13 @@ Disassembly of section \.text:
 
 0000000000000000 <\.text>:
    0:	e8 63 00 00 	ld      r3,0\(r3\)
-			2: R_PPC64_ADDR16_LO_DS	dsym0
-   4:	e8 63 00 00 	ld      r3,0\(r3\)
-			6: R_PPC64_ADDR16_LO_DS	dsym1
-   8:	e8 63 00 00 	ld      r3,0\(r3\)
-			a: R_PPC64_ADDR16_LO_DS	usym0
-   c:	e8 63 00 00 	ld      r3,0\(r3\)
-			e: R_PPC64_ADDR16_LO_DS	usym1
+			2: R_PPC64_ADDR16_LO_DS	\.data
+   4:	e8 63 00 08 	ld      r3,8\(r3\)
+			6: R_PPC64_ADDR16_LO_DS	\.data\+0x8
+   8:	e8 63 00 08 	ld      r3,8\(r3\)
+			a: R_PPC64_ADDR16_LO_DS	\.data\+0x8
+   c:	e8 63 00 10 	ld      r3,16\(r3\)
+			e: R_PPC64_ADDR16_LO_DS	\.data\+0x10
   10:	e8 63 00 00 	ld      r3,0\(r3\)
 			12: R_PPC64_ADDR16_LO_DS	esym0
   14:	e8 63 00 00 	ld      r3,0\(r3\)
@@ -75,19 +75,19 @@ Disassembly of section \.text:
   48:	38 60 ff f8 	li      r3,-8
   4c:	38 60 00 08 	li      r3,8
   50:	38 60 00 00 	li      r3,0
-			52: R_PPC64_ADDR16_LO	dsym0
+			52: R_PPC64_ADDR16_LO	\.data
   54:	38 60 00 00 	li      r3,0
-			56: R_PPC64_ADDR16_HI	dsym0
+			56: R_PPC64_ADDR16_HI	\.data
   58:	38 60 00 00 	li      r3,0
-			5a: R_PPC64_ADDR16_HA	dsym0
+			5a: R_PPC64_ADDR16_HA	\.data
   5c:	38 60 00 00 	li      r3,0
-			5e: R_PPC64_ADDR16_HIGHER	dsym0
+			5e: R_PPC64_ADDR16_HIGHER	\.data
   60:	38 60 00 00 	li      r3,0
-			62: R_PPC64_ADDR16_HIGHERA	dsym0
+			62: R_PPC64_ADDR16_HIGHERA	\.data
   64:	38 60 00 00 	li      r3,0
-			66: R_PPC64_ADDR16_HIGHEST	dsym0
+			66: R_PPC64_ADDR16_HIGHEST	\.data
   68:	38 60 00 00 	li      r3,0
-			6a: R_PPC64_ADDR16_HIGHESTA	dsym0
+			6a: R_PPC64_ADDR16_HIGHESTA	\.data
   6c:	38 60 ff f8 	li      r3,-8
   70:	38 60 ff ff 	li      r3,-1
   74:	38 60 00 00 	li      r3,0
@@ -137,9 +137,15 @@ Disassembly of section \.toc:
 
 0000000000000000 <\.toc>:
 	\.\.\.
-			0: R_PPC64_ADDR64	dsym0
-			8: R_PPC64_ADDR64	dsym1
-			10: R_PPC64_ADDR64	usym0
-			18: R_PPC64_ADDR64	usym1
+			0: R_PPC64_ADDR64	\.data
+			8: R_PPC64_ADDR64	\.data\+0x8
+   c:	00 00 00 08 	\.long 0x8
+  10:	00 00 00 00 	\.long 0x0
+			10: R_PPC64_ADDR64	\.data\+0x8
+  14:	00 00 00 08 	\.long 0x8
+  18:	00 00 00 00 	\.long 0x0
+			18: R_PPC64_ADDR64	\.data\+0x10
+  1c:	00 00 00 10 	\.long 0x10
+	\.\.\.
 			20: R_PPC64_ADDR64	esym0
 			28: R_PPC64_ADDR64	esym1

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre



More information about the Binutils mailing list