+2009-11-20 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.
+
2009-11-19 Matthias Klose <doko@ubuntu.com>
PR ld/9863
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 = . ;';
# 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 = .); }"
# .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)"
+2009-11-20 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.
+
2009-11-18 Nick Clifton <nickc@redhat.com>
* ld-elf/extract-symbol-1sec.d: Expect to fail for the RX target.
.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.*) }
.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.*) }
+.. +..: ........ +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
.* <.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\]!
.*: .*
.*: 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\)
.* <__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:
.* <__lib_func2_from_thumb>:
.*: e51ff004 ldr pc, \[pc, #-4\] ; 2200014 <__lib_func2_from_thumb\+0x4>
- .*: 00008218 .word 0x00008218
+ .*: 000081dc .word 0x000081dc
.* <.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\]!
.*: .*
.*: 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\)
.*: 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:
.* <__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:
.*: 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
+.. +..: ........ +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
.* <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}
...
.* <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\)
.*: 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
...
.* <.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\]!
.*: .*
.* <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\)
.* <.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\]!
.*: .*
+.. +..: ........ +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
+.. +..: ........ +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
+.. +..: ........ +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
.*: 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