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] |
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] |