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


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

[PATCH] ARM: false dependencies between shared libraries due to exidx symbols


Hello!

There are cases where ``wrong'' dependencies are being calculated by the
run-time dynamic linker on ARM systems, which can cause, for example,
glibc's elf/order2 test to fail.

Two things are needed for triggering this: -funwind-tables for one, and
-static-libgcc for the other, as then libgcc_eh.a's unwind-arm.o is
linked in, which has UND __exidx_start and __exidx_end symbols.

    $ LD_DEBUG=all ./order2
    [...]
          6288:     relocation processing: /home/thomas/tmp/order2/order2mod3.so (lazy)
    [...]
          6268:     symbol=__exidx_end;  lookup in file=./order2 [0]
          6268:     symbol=__exidx_end;  lookup in file=/lib/libdl.so.2 [0]
          6268:     symbol=__exidx_end;  lookup in file=/lib/libgcc_s.so.1 [0]
          6268:     symbol=__exidx_end;  lookup in file=/lib/libc.so.6 [0]
          6268:     symbol=__exidx_end;  lookup in file=/lib/ld-linux.so.3 [0]
          6268:     symbol=__exidx_end;  lookup in file=/home/thomas/tmp/order2/order2mod1.so [0]
          6268:
          6268:     file=/home/thomas/tmp/order2/order2mod1.so [0];  needed by /home/thomas/tmp/order2/order2mod3.so [0] (relocation dependency)
          6268:
          6268:     binding file /home/thomas/tmp/order2/order2mod3.so [0] to /home/thomas/tmp/order2/order2mod1.so [0]: normal symbol `__exidx_end'
          6268:     symbol=__exidx_start;  lookup in file=./order2 [0]
          6268:     symbol=__exidx_start;  lookup in file=/lib/libdl.so.2 [0]
          6268:     symbol=__exidx_start;  lookup in file=/lib/libgcc_s.so.1 [0]
          6268:     symbol=__exidx_start;  lookup in file=/lib/libc.so.6 [0]
          6268:     symbol=__exidx_start;  lookup in file=/lib/ld-linux.so.3 [0]
          6268:     symbol=__exidx_start;  lookup in file=/home/thomas/tmp/order2/order2mod1.so [0]
          6268:     binding file /home/thomas/tmp/order2/order2mod3.so [0] to /home/thomas/tmp/order2/order2mod1.so [0]: normal symbol `__exidx_start'
    [...]

As the current ARM linker scripts publish these two exidx symbols as
global ones, the relocation processing when dlopening order2mod3.so will,
while searching for them, find these two symbols defined in order2mod1.so
(which had been dlopened before), bind to those, and thus cause that
order2mod1.so can't be unloaded (dlclose) as long as order2mod3.so is
still loaded, etc.

This results, in this specific case of the glibc elf/order2 test, in the
following ordering of ``calling fini'', ``destroying link map'' (as per
LD_DEBUG=all):

    CF order2mod2.so, CF order2mod1.so, CF order2mod4.so, CF
    order2mod3.so, DLM order2mod2.so, DLM order2mod1.so, DLM
    order2mod4.so, DLM order2mod3.so, CF order2

... instead of the correct:

    CF order2mod1.so, DLM order2mod1.so, CF order2mod2.so, CF
    order2mod4.so, CF order2mod3.so, DLM order2mod2.so, DLM
    order2mod4.so, DLM order2mod3.so, CF order2


All this is only relevant in the shared-linking case, but for
consistency, all linker script templates have been changed.


ld/
2009-11-18  Thomas Schwinge  <thomas@codesourcery.com>

	* emulparams/armelf.sh (OTHER_READONLY_SECTIONS)
	<__exidx_start, __exidx_end>: Use PROVIDE_HIDDEN.
	* emulparams/armelf_linux_eabi.sh (OTHER_READONLY_SECTIONS)
	<__exidx_start, __exidx_end>: Likewise.
	* emulparams/armsymbian.sh (OTHER_READONLY_SECTIONS)
	<.ARM.exidx$$Base, __exidx_start, __exidx_end, .ARM.exidx$$Limit>:
	Likewise.

ld/testsuite/
2009-11-18  Thomas Schwinge  <thomas@codesourcery.com>

	* ld-arm/arm-dyn.ld: Adapt to main linker script changes.
	* ld-arm/arm-lib.ld: Likewise.
	* ld-arm/armthumb-lib.sym: : Adjust expected results.
	* ld-arm/farcall-mixed-app-v5.d: Likewise.
	* ld-arm/farcall-mixed-app.d: Likewise.
	* ld-arm/farcall-mixed-app.sym: Likewise.
	* ld-arm/farcall-mixed-lib.d: Likewise.
	* ld-arm/mixed-app-v5.d: Likewise.
	* ld-arm/mixed-app.d: Likewise.
	* ld-arm/mixed-app.sym: Likewise.
	* ld-arm/mixed-lib.sym: Likewise.
	* ld-arm/preempt-app.sym: Likewise.
	* ld-arm/tls-app.d: Likewise.

Index: ld/emulparams/armelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/armelf.sh,v
retrieving revision 1.21
diff -u -p -r1.21 armelf.sh
--- ld/emulparams/armelf.sh	20 Feb 2008 15:17:56 -0000	1.21
+++ ld/emulparams/armelf.sh	18 Nov 2009 17:47:19 -0000
@@ -14,9 +14,9 @@ OTHER_SECTIONS='.note.gnu.arm.ident 0 : 
 ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
 OTHER_READONLY_SECTIONS="
   .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
-  ${RELOCATING+ __exidx_start = .; }
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
   .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
-  ${RELOCATING+ __exidx_end = .; }"
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
 
 DATA_START_SYMBOLS='__data_start = . ;';
 
Index: ld/emulparams/armelf_linux_eabi.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/armelf_linux_eabi.sh,v
retrieving revision 1.1
diff -u -p -r1.1 armelf_linux_eabi.sh
--- ld/emulparams/armelf_linux_eabi.sh	19 Nov 2004 19:28:40 -0000	1.1
+++ ld/emulparams/armelf_linux_eabi.sh	18 Nov 2009 17:47:19 -0000
@@ -3,7 +3,7 @@
 # Use the ARM ABI-compliant exception-handling sections.
 OTHER_READONLY_SECTIONS="
   .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
-  ${RELOCATING+ __exidx_start = .; }
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
   .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
-  ${RELOCATING+ __exidx_end = .; }"
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
 
Index: ld/emulparams/armsymbian.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/armsymbian.sh,v
retrieving revision 1.7
diff -u -p -r1.7 armsymbian.sh
--- ld/emulparams/armsymbian.sh	30 May 2006 16:45:32 -0000	1.7
+++ ld/emulparams/armsymbian.sh	18 Nov 2009 17:47:19 -0000
@@ -13,10 +13,10 @@ EMBEDDED=yes
 # .ARM.exidx$${Base,Limit} symbols.
 OTHER_READONLY_SECTIONS="
   .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
-  ${RELOCATING+ .ARM.exidx\$\$Base = . ; }
-  ${RELOCATING+ __exidx_start = .; }
+  ${RELOCATING+ PROVIDE_HIDDEN (.ARM.exidx\$\$Base = .); }
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
   .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
-  ${RELOCATING+ __exidx_end = .; }
-  ${RELOCATING+ .ARM.exidx\$\$Limit = . ; }"
+  ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }
+  ${RELOCATING+ PROVIDE_HIDDEN (.ARM.exidx\$\$Limit = .); }"
 
 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
Index: ld/testsuite/ld-arm/arm-dyn.ld
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/arm-dyn.ld,v
retrieving revision 1.3
diff -u -p -r1.3 arm-dyn.ld
--- ld/testsuite/ld-arm/arm-dyn.ld	13 Nov 2006 21:18:36 -0000	1.3
+++ ld/testsuite/ld-arm/arm-dyn.ld	18 Nov 2009 17:47:19 -0000
@@ -68,9 +68,9 @@ SECTIONS
   .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
   .rodata1        : { *(.rodata1) }
   .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
-   __exidx_start = .;
+  PROVIDE_HIDDEN (__exidx_start = .);
   .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
-   __exidx_end = .;
+  PROVIDE_HIDDEN (__exidx_end = .);
   .eh_frame_hdr : { *(.eh_frame_hdr) }
   .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
Index: ld/testsuite/ld-arm/arm-lib.ld
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/arm-lib.ld,v
retrieving revision 1.3
diff -u -p -r1.3 arm-lib.ld
--- ld/testsuite/ld-arm/arm-lib.ld	13 Nov 2006 21:18:36 -0000	1.3
+++ ld/testsuite/ld-arm/arm-lib.ld	18 Nov 2009 17:47:19 -0000
@@ -67,9 +67,9 @@ SECTIONS
   .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
   .rodata1        : { *(.rodata1) }
   .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
-   __exidx_start = .;
+  PROVIDE_HIDDEN (__exidx_start = .);
   .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
-   __exidx_end = .;
+  PROVIDE_HIDDEN (__exidx_end = .);
   .eh_frame_hdr : { *(.eh_frame_hdr) }
   .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
   .gcc_except_table   : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
Index: ld/testsuite/ld-arm/armthumb-lib.sym
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/armthumb-lib.sym,v
retrieving revision 1.3
diff -u -p -r1.3 armthumb-lib.sym
--- ld/testsuite/ld-arm/armthumb-lib.sym	23 Sep 2009 03:12:25 -0000	1.3
+++ ld/testsuite/ld-arm/armthumb-lib.sym	18 Nov 2009 17:47:19 -0000
@@ -7,11 +7,9 @@ Symbol table for image:
  +.. +..: ........ +4 +OBJECT +GLOBAL +DEFAULT +9 data_obj
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_end__
  +.. +..: .......0 +20 +FUNC +GLOBAL +DEFAULT +6 lib_func1
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +9 __data_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __end__
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
  +.. +..: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND app_func2
  +.. +..: .......0 +2 +FUNC +GLOBAL +DEFAULT +6 lib_func2
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _bss_end__
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_end
Index: ld/testsuite/ld-arm/farcall-mixed-app-v5.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/farcall-mixed-app-v5.d,v
retrieving revision 1.4
diff -u -p -r1.4 farcall-mixed-app-v5.d
--- ld/testsuite/ld-arm/farcall-mixed-app-v5.d	30 Jun 2009 11:57:05 -0000	1.4
+++ ld/testsuite/ld-arm/farcall-mixed-app-v5.d	18 Nov 2009 17:47:19 -0000
@@ -8,7 +8,7 @@ Disassembly of section .plt:
 
 .* <.plt>:
  .*:	e52de004 	push	{lr}		; \(str lr, \[sp, #-4\]!\)
- .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x1c>
+ .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x28>
  .*:	e08fe00e 	add	lr, pc, lr
  .*:	e5bef008 	ldr	pc, \[lr, #8\]!
  .*:	.*
@@ -25,15 +25,15 @@ Disassembly of section .text:
  .*:	e1a0c00d 	mov	ip, sp
  .*:	e92dd800 	push	{fp, ip, lr, pc}
  .*:	eb000008 	bl	.* <__app_func_veneer>
- .*:	ebfffff8 	bl	.* <_start-0xc>
- .*:	ebfffff4 	bl	.* <_start-0x18>
+ .*:	ebfffff5 	bl	.* <_start-0x18>
+ .*:	ebfffff1 	bl	.* <_start-0x24>
  .*:	e89d6800 	ldm	sp, {fp, sp, lr}
  .*:	e12fff1e 	bx	lr
  .*:	e1a00000 	nop			; \(mov r0, r0\)
 
 .* <app_tfunc_close>:
  .*:	b500      	push	{lr}
- .*:	f7ff efe2 	blx	.* <_start-0x18>
+ .*:	f7ff efdc 	blx	.* <_start-0x24>
  .*:	bd00      	pop	{pc}
  .*:	4770      	bx	lr
  .*:	46c0      	nop			; \(mov r8, r8\)
@@ -64,10 +64,10 @@ Disassembly of section .far_arm:
 
 .* <__lib_func2_veneer>:
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 2100034 <__lib_func2_veneer\+0x4>
- .*:	00008218 	.word	0x00008218
+ .*:	000081dc 	.word	0x000081dc
 .* <__lib_func1_veneer>:
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 210003c <__lib_func1_veneer\+0x4>
- .*:	00008224 	.word	0x00008224
+ .*:	000081e8 	.word	0x000081e8
 
 Disassembly of section .far_thumb:
 
@@ -82,4 +82,4 @@ Disassembly of section .far_thumb:
 
 .* <__lib_func2_from_thumb>:
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 2200014 <__lib_func2_from_thumb\+0x4>
- .*:	00008218 	.word	0x00008218
+ .*:	000081dc 	.word	0x000081dc
Index: ld/testsuite/ld-arm/farcall-mixed-app.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/farcall-mixed-app.d,v
retrieving revision 1.4
diff -u -p -r1.4 farcall-mixed-app.d
--- ld/testsuite/ld-arm/farcall-mixed-app.d	30 Jun 2009 11:57:05 -0000	1.4
+++ ld/testsuite/ld-arm/farcall-mixed-app.d	18 Nov 2009 17:47:19 -0000
@@ -8,7 +8,7 @@ Disassembly of section .plt:
 
 .* <.plt>:
  .*:	e52de004 	push	{lr}		; \(str lr, \[sp, #-4\]!\)
- .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x2c>
+ .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x28>
  .*:	e08fe00e 	add	lr, pc, lr
  .*:	e5bef008 	ldr	pc, \[lr, #8\]!
  .*:	.*
@@ -27,15 +27,15 @@ Disassembly of section .text:
  .*:	e1a0c00d 	mov	ip, sp
  .*:	e92dd800 	push	{fp, ip, lr, pc}
  .*:	eb000008 	bl	.* <__app_func_veneer>
- .*:	ebfffff5 	bl	.* <_start-0x18>
- .*:	ebfffff1 	bl	.* <_start-0x24>
+ .*:	ebfffff6 	bl	.* <_start-0x14>
+ .*:	ebfffff2 	bl	.* <_start-0x20>
  .*:	e89d6800 	ldm	sp, {fp, sp, lr}
  .*:	e12fff1e 	bx	lr
  .*:	e1a00000 	nop			; \(mov r0, r0\)
 
 .* <app_tfunc_close>:
  .*:	b500      	push	{lr}
- .*:	f7ff ffd9 	bl	8218 <_start-0x28>
+ .*:	f7ff ffdb 	bl	81dc <_start-0x24>
  .*:	bd00      	pop	{pc}
  .*:	4770      	bx	lr
  .*:	46c0      	nop			; \(mov r8, r8\)
@@ -43,7 +43,7 @@ Disassembly of section .text:
  .*:	46c0      	nop			; \(mov r8, r8\)
 
 .* <__app_func_veneer>:
- .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 8274 <__app_func_veneer\+0x4>
+ .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 8234 <__app_func_veneer\+0x4>
  .*:	02100000 	.word	0x02100000
 
 Disassembly of section .far_arm:
@@ -66,10 +66,10 @@ Disassembly of section .far_arm:
 
 .* <__lib_func2_veneer>:
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 2100034 <__lib_func2_veneer\+0x4>
- .*:	0000821c 	.word	0x0000821c
+ .*:	000081e0 	.word	0x000081e0
 .* <__lib_func1_veneer>:
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 210003c <__lib_func1_veneer\+0x4>
- .*:	00008228 	.word	0x00008228
+ .*:	000081ec 	.word	0x000081ec
 
 Disassembly of section .far_thumb:
 
@@ -86,5 +86,5 @@ Disassembly of section .far_thumb:
  .*:	4778      	bx	pc
  .*:	46c0      	nop			; \(mov r8, r8\)
  .*:	e51ff004 	ldr	pc, \[pc, #-4\]	; 2200018 <__lib_func2_from_thumb\+0x8>
- .*:	0000821c 	.word	0x0000821c
+ .*:	000081e0 	.word	0x000081e0
  .*:	00000000 	.word	0x00000000
Index: ld/testsuite/ld-arm/farcall-mixed-app.sym
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/farcall-mixed-app.sym,v
retrieving revision 1.2
diff -u -p -r1.2 farcall-mixed-app.sym
--- ld/testsuite/ld-arm/farcall-mixed-app.sym	23 Sep 2009 03:12:25 -0000	1.2
+++ ld/testsuite/ld-arm/farcall-mixed-app.sym	18 Nov 2009 17:47:19 -0000
@@ -7,11 +7,9 @@ Symbol table for image:
  +.. +..: ........ +4 +OBJECT +GLOBAL +DEFAULT +12 data_obj
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_end__
  +.. +..: 0*[^0]*.* +0 +FUNC +GLOBAL +DEFAULT +UND lib_func1
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +11 __data_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __end__
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
  +.. +..: .......0 +0 +FUNC +GLOBAL +DEFAULT +14 app_func2
  +.. +..: 0*[^0]*.* +0 +FUNC +GLOBAL +DEFAULT +UND lib_func2
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _bss_end__
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_end
Index: ld/testsuite/ld-arm/farcall-mixed-lib.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/farcall-mixed-lib.d,v
retrieving revision 1.7
diff -u -p -r1.7 farcall-mixed-lib.d
--- ld/testsuite/ld-arm/farcall-mixed-lib.d	9 Sep 2009 18:36:11 -0000	1.7
+++ ld/testsuite/ld-arm/farcall-mixed-lib.d	18 Nov 2009 17:47:19 -0000
@@ -29,8 +29,8 @@ Disassembly of section .text:
 .* <lib_func1>:
  .*:	e1a0c00d 	mov	ip, sp
  .*:	e92dd800 	push	{fp, ip, lr, pc}
- .*:	ebfffff. 	bl	.* <lib_func1-0x..?>
- .*:	ebfffff. 	bl	.* <lib_func1-0x..?>
+ .*:	ebffff.. 	bl	.* <lib_func1-0x..?>
+ .*:	ebffff.. 	bl	.* <lib_func1-0x..?>
  .*:	ebfffff. 	bl	.* <lib_func1-0x..?>
  .*:	ebfffff. 	bl	.* <lib_func1-0x..?>
  .*:	e89d6800 	ldm	sp, {fp, sp, lr}
@@ -38,10 +38,10 @@ Disassembly of section .text:
 	...
 
 .* <lib_func2>:
- .*:	f000 e80e 	blx	1000350 <__app_func_from_thumb>
- .*:	f000 e81a 	blx	100036c <__app_func_weak_from_thumb>
- .*:	f000 e810 	blx	100035c <__lib_func3_veneer>
- .*:	f000 e81c 	blx	1000378 <__lib_func4_from_thumb>
+ .*:	f000 e80e 	blx	1000320 <__app_func_from_thumb>
+ .*:	f000 e81a 	blx	100033c <__app_func_weak_from_thumb>
+ .*:	f000 e810 	blx	100032c <__lib_func3_veneer>
+ .*:	f000 e81c 	blx	1000348 <__lib_func4_from_thumb>
  .*:	4770      	bx	lr
  .*:	46c0      	nop			; \(mov r8, r8\)
  .*:	46c0      	nop			; \(mov r8, r8\)
@@ -52,42 +52,42 @@ Disassembly of section .text:
  .*:	46c0      	nop			; \(mov r8, r8\)
 
 .* <__app_func_from_thumb>:
- .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 1000358 <__app_func_from_thumb\+0x8>
+ .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 1000328 <__app_func_from_thumb\+0x8>
  .*:	e08ff00c 	add	pc, pc, ip
- .*:	feffff84 	.word	0xfeffff84
+ .*:	feffff78 	.word	0xfeffff78
 
 .* <__lib_func3_veneer>:
- .*:	e59fc004 	ldr	ip, \[pc, #4\]	; 1000368 <__lib_func3_veneer\+0xc>
+ .*:	e59fc004 	ldr	ip, \[pc, #4\]	; 1000338 <__lib_func3_veneer\+0xc>
  .*:	e08fc00c 	add	ip, pc, ip
  .*:	e12fff1c 	bx	ip
- .*:	feffff91 	.word	0xfeffff91
+ .*:	feffff85 	.word	0xfeffff85
 
 .* <__app_func_weak_from_thumb>:
- .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 1000374 <__app_func_weak_from_thumb\+0x8>
+ .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 1000344 <__app_func_weak_from_thumb\+0x8>
  .*:	e08ff00c 	add	pc, pc, ip
- .*:	feffff74 	.word	0xfeffff74
+ .*:	feffff68 	.word	0xfeffff68
 
 .* <__lib_func4_from_thumb>:
- .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 1000380 <__lib_func4_from_thumb\+0x8>
+ .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 1000350 <__lib_func4_from_thumb\+0x8>
  .*:	e08ff00c 	add	pc, pc, ip
- .*:	feffff80 	.word	0xfeffff80
+ .*:	feffff74 	.word	0xfeffff74
 	...
 
 .* <lib_func3>:
- .*:	f000 e80c 	blx	20003ac <__app_func_from_thumb>
- .*:	f000 e804 	blx	20003a0 <__app_func_weak_from_thumb>
+ .*:	f000 e80c 	blx	200037c <__app_func_from_thumb>
+ .*:	f000 e804 	blx	2000370 <__app_func_weak_from_thumb>
  .*:	4770      	bx	lr
  .*:	46c0      	nop			; \(mov r8, r8\)
  .*:	46c0      	nop			; \(mov r8, r8\)
  .*:	46c0      	nop			; \(mov r8, r8\)
 
 .* <__app_func_weak_from_thumb>:
- .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 20003a8 <__app_func_weak_from_thumb\+0x8>
+ .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 2000378 <__app_func_weak_from_thumb\+0x8>
  .*:	e08ff00c 	add	pc, pc, ip
- .*:	fdffff40 	.word	0xfdffff40
+ .*:	fdffff34 	.word	0xfdffff34
 
 .* <__app_func_from_thumb>:
- .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 20003b4 <__app_func_from_thumb\+0x8>
+ .*:	e59fc000 	ldr	ip, \[pc, #0\]	; 2000384 <__app_func_from_thumb\+0x8>
  .*:	e08ff00c 	add	pc, pc, ip
- .*:	fdffff28 	.word	0xfdffff28
+ .*:	fdffff1c 	.word	0xfdffff1c
 	...
Index: ld/testsuite/ld-arm/mixed-app-v5.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/mixed-app-v5.d,v
retrieving revision 1.6
diff -u -p -r1.6 mixed-app-v5.d
--- ld/testsuite/ld-arm/mixed-app-v5.d	30 Jun 2009 11:57:05 -0000	1.6
+++ ld/testsuite/ld-arm/mixed-app-v5.d	18 Nov 2009 17:47:19 -0000
@@ -8,7 +8,7 @@ Disassembly of section .plt:
 
 .* <.plt>:
  .*:	e52de004 	push	{lr}		; \(str lr, \[sp, #-4\]!\)
- .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x1c>
+ .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x28>
  .*:	e08fe00e 	add	lr, pc, lr
  .*:	e5bef008 	ldr	pc, \[lr, #8\]!
  .*:	.*
@@ -33,7 +33,7 @@ Disassembly of section .text:
 .* <app_func>:
  .*:	e1a0c00d 	mov	ip, sp
  .*:	e92dd800 	push	{fp, ip, lr, pc}
- .*:	ebfffff. 	bl	.*
+ .*:	ebffffee 	bl	.*
  .*:	e89d6800 	ldm	sp, {fp, sp, lr}
  .*:	e12fff1e 	bx	lr
  .*:	e1a00000 	nop			; \(mov r0, r0\)
Index: ld/testsuite/ld-arm/mixed-app.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/mixed-app.d,v
retrieving revision 1.11
diff -u -p -r1.11 mixed-app.d
--- ld/testsuite/ld-arm/mixed-app.d	30 Jun 2009 11:57:05 -0000	1.11
+++ ld/testsuite/ld-arm/mixed-app.d	18 Nov 2009 17:47:19 -0000
@@ -8,7 +8,7 @@ Disassembly of section .plt:
 
 .* <.plt>:
  .*:	e52de004 	push	{lr}		; \(str lr, \[sp, #-4\]!\)
- .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x2c>
+ .*:	e59fe004 	ldr	lr, \[pc, #4\]	; .* <_start-0x28>
  .*:	e08fe00e 	add	lr, pc, lr
  .*:	e5bef008 	ldr	pc, \[lr, #8\]!
  .*:	.*
Index: ld/testsuite/ld-arm/mixed-app.sym
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/mixed-app.sym,v
retrieving revision 1.7
diff -u -p -r1.7 mixed-app.sym
--- ld/testsuite/ld-arm/mixed-app.sym	23 Sep 2009 03:12:25 -0000	1.7
+++ ld/testsuite/ld-arm/mixed-app.sym	18 Nov 2009 17:47:19 -0000
@@ -7,11 +7,9 @@ Symbol table for image:
  +.. +..: ........ +4 +OBJECT +GLOBAL +DEFAULT +12 data_obj
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_end__
  +.. +..: 0*[^0]*.* +0 +FUNC +GLOBAL +DEFAULT +UND lib_func1
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +11 __data_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __end__
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
  +.. +..: .......0 +0 +FUNC +GLOBAL +DEFAULT +8 app_func2
  +.. +..: 0*[^0]*.* +0 +FUNC +GLOBAL +DEFAULT +UND lib_func2
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _bss_end__
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_end
Index: ld/testsuite/ld-arm/mixed-lib.sym
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/mixed-lib.sym,v
retrieving revision 1.7
diff -u -p -r1.7 mixed-lib.sym
--- ld/testsuite/ld-arm/mixed-lib.sym	23 Sep 2009 03:12:25 -0000	1.7
+++ ld/testsuite/ld-arm/mixed-lib.sym	18 Nov 2009 17:47:19 -0000
@@ -7,11 +7,9 @@ Symbol table for image:
  +.. +..: ........ +4 +OBJECT +GLOBAL +DEFAULT +9 data_obj
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_end__
  +.. +..: .......0 +20 +FUNC +GLOBAL +DEFAULT +6 lib_func1
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +9 __data_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __end__
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
  +.. +..: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND app_func2
  +.. +..: .......1 +2 +FUNC +GLOBAL +DEFAULT +6 lib_func2
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _bss_end__
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_end
Index: ld/testsuite/ld-arm/preempt-app.sym
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/preempt-app.sym,v
retrieving revision 1.2
diff -u -p -r1.2 preempt-app.sym
--- ld/testsuite/ld-arm/preempt-app.sym	23 Sep 2009 03:12:25 -0000	1.2
+++ ld/testsuite/ld-arm/preempt-app.sym	18 Nov 2009 17:47:19 -0000
@@ -7,10 +7,8 @@ Symbol table for image:
  +.. +..: ........ +4 +OBJECT +GLOBAL +DEFAULT +10 data_obj
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_end__
  +.. +..: .......1 +20 +FUNC +GLOBAL +DEFAULT +6 lib_func1
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +9 __data_start
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __end__
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start
  +.. +..: .......0 +0 +FUNC +GLOBAL +DEFAULT +6 app_func2
  +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _bss_end__
- +.. +..: ........ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __exidx_end
Index: ld/testsuite/ld-arm/tls-app.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/tls-app.d,v
retrieving revision 1.6
diff -u -p -r1.6 tls-app.d
--- ld/testsuite/ld-arm/tls-app.d	30 Jun 2009 11:57:05 -0000	1.6
+++ ld/testsuite/ld-arm/tls-app.d	18 Nov 2009 17:47:19 -0000
@@ -2,17 +2,17 @@
 .*:     file format elf32-.*arm
 architecture: arm, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
-start address 0x00008204
+start address 0x000081c8
 
 Disassembly of section .text:
 
-00008204 <foo>:
-    8204:	e1a00000 	nop			; \(mov r0, r0\)
-    8208:	e1a00000 	nop			; \(mov r0, r0\)
-    820c:	e1a0f00e 	mov	pc, lr
-    8210:	000080bc 	.word	0x000080bc
-    8214:	000080b4 	.word	0x000080b4
-    8218:	000080ac 	.word	0x000080ac
-    821c:	00000004 	.word	0x00000004
-    8220:	000080c4 	.word	0x000080c4
-    8224:	00000014 	.word	0x00000014
+000081c8 <foo>:
+    81c8:	e1a00000 	nop			; \(mov r0, r0\)
+    81cc:	e1a00000 	nop			; \(mov r0, r0\)
+    81d0:	e1a0f00e 	mov	pc, lr
+    81d4:	000080bc 	.word	0x000080bc
+    81d8:	000080b4 	.word	0x000080b4
+    81dc:	000080ac 	.word	0x000080ac
+    81e0:	00000004 	.word	0x00000004
+    81e4:	000080c4 	.word	0x000080c4
+    81e8:	00000014 	.word	0x00000014


Regards,
 Thomas

Attachment: pgp00000.pgp
Description: PGP signature


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