mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-30 00:52:16 +08:00
* ld-linkonce/x.s: Use .gcc_except_table instead of .eh_frame
to test that entry for deleted function is zeroed. Add a somewhat closer to normal .eh_frame to test that fde for deleted function is removed. * ld-linkonce/y.s: Likewise. * ld-linkonce/zeroeh.ld: Place .gcc_except_table too. * ld-linkonce/zeroehl32.d: Update.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
2007-04-24 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* ld-linkonce/x.s: Use .gcc_except_table instead of .eh_frame
|
||||||
|
to test that entry for deleted function is zeroed. Add a
|
||||||
|
somewhat closer to normal .eh_frame to test that fde for
|
||||||
|
deleted function is removed.
|
||||||
|
* ld-linkonce/y.s: Likewise.
|
||||||
|
* ld-linkonce/zeroeh.ld: Place .gcc_except_table too.
|
||||||
|
* ld-linkonce/zeroehl32.d: Update.
|
||||||
|
|
||||||
2007-04-21 Richard Earnshaw <rearnsha@arm.com>
|
2007-04-21 Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
|
||||||
* ld-arm/arm-app-abs32.d: Convert to unified syntax.
|
* ld-arm/arm-app-abs32.d: Convert to unified syntax.
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
;# Main file, x.s, with the program (_start) referring to two
|
;# Main file, x.s, with the program (_start) referring to two
|
||||||
;# linkonce functions fn and fn2. The functions fn and fn2 are
|
;# linkonce functions fn and fn2. The functions fn and fn2 are
|
||||||
;# supposed to be equivalent of C++ template instantiations; the
|
;# supposed to be equivalent of C++ template instantiations; the
|
||||||
;# main file instantiates fn. There's the equivalent of an FDE
|
;# main file instantiates fn.
|
||||||
;# entry in .eh_frame, referring to fn via a local label.
|
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.global _start
|
.global _start
|
||||||
@ -20,7 +19,29 @@ fn:
|
|||||||
.Lb:
|
.Lb:
|
||||||
.size fn,.Lb-.La
|
.size fn,.Lb-.La
|
||||||
|
|
||||||
.section .eh_frame,"aw",@progbits
|
.section .gcc_except_table,"aw",@progbits
|
||||||
.long 2
|
.long 2
|
||||||
.long .La
|
.long .La
|
||||||
.long .Lb-.La
|
.long .Lb-.La
|
||||||
|
|
||||||
|
.section .eh_frame,"aw",@progbits
|
||||||
|
.Lframe1:
|
||||||
|
.long .LECIE1-.LSCIE1
|
||||||
|
.LSCIE1:
|
||||||
|
.long 0x0
|
||||||
|
.byte 0x1
|
||||||
|
.byte 0
|
||||||
|
.uleb128 0x1
|
||||||
|
.sleb128 -4
|
||||||
|
.byte 0
|
||||||
|
.p2align 2
|
||||||
|
.LECIE1:
|
||||||
|
|
||||||
|
.LSFDE1:
|
||||||
|
.long .LEFDE1-.LASFDE1
|
||||||
|
.LASFDE1:
|
||||||
|
.long .LASFDE1-.Lframe1
|
||||||
|
.long .La
|
||||||
|
.long .Lb-.La
|
||||||
|
.p2align 2
|
||||||
|
.LEFDE1:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
;# that this version of fn has different code, as if compiled
|
;# that this version of fn has different code, as if compiled
|
||||||
;# with different optimization flags than the one in x.s (not
|
;# with different optimization flags than the one in x.s (not
|
||||||
;# important for this test, though). The reference from
|
;# important for this test, though). The reference from
|
||||||
;# .eh_frame to the linkonce-excluded fn2 must be zero, or g++
|
;# .gcc_except_table to the linkonce-excluded fn2 must be zero, or g++
|
||||||
;# EH will not work.
|
;# EH will not work.
|
||||||
|
|
||||||
.section .gnu.linkonce.t.fn2,"ax",@progbits
|
.section .gnu.linkonce.t.fn2,"ax",@progbits
|
||||||
@ -23,7 +23,7 @@ fn:
|
|||||||
.Lf:
|
.Lf:
|
||||||
.size fn,.Lf-.Le
|
.size fn,.Lf-.Le
|
||||||
|
|
||||||
.section .eh_frame,"aw",@progbits
|
.section .gcc_except_table,"aw",@progbits
|
||||||
.long 7
|
.long 7
|
||||||
.long .Lc
|
.long .Lc
|
||||||
.long .Ld-.Lc
|
.long .Ld-.Lc
|
||||||
@ -31,3 +31,34 @@ fn:
|
|||||||
.long 0x6066
|
.long 0x6066
|
||||||
.long .Le
|
.long .Le
|
||||||
.long .Lf-.Le
|
.long .Lf-.Le
|
||||||
|
|
||||||
|
.section .eh_frame,"aw",@progbits
|
||||||
|
.Lframe1:
|
||||||
|
.long .LECIE1-.LSCIE1
|
||||||
|
.LSCIE1:
|
||||||
|
.long 0x0
|
||||||
|
.byte 0x1
|
||||||
|
.byte 0
|
||||||
|
.uleb128 0x1
|
||||||
|
.sleb128 -4
|
||||||
|
.byte 0
|
||||||
|
.p2align 2
|
||||||
|
.LECIE1:
|
||||||
|
|
||||||
|
.LSFDE1:
|
||||||
|
.long .LEFDE1-.LASFDE1
|
||||||
|
.LASFDE1:
|
||||||
|
.long .LASFDE1-.Lframe1
|
||||||
|
.long .Lc
|
||||||
|
.long .Ld-.Lc
|
||||||
|
.p2align 2
|
||||||
|
.LEFDE1:
|
||||||
|
|
||||||
|
.LSFDE2:
|
||||||
|
.long .LEFDE2-.LASFDE2
|
||||||
|
.LASFDE2:
|
||||||
|
.long .LASFDE2-.Lframe1
|
||||||
|
.long .Le
|
||||||
|
.long .Lf-.Le
|
||||||
|
.p2align 2
|
||||||
|
.LEFDE2:
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
SECTIONS {
|
SECTIONS {
|
||||||
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
|
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
|
||||||
.eh_frame 0x2000 : { *(.eh_frame) }
|
.gcc_except_table 0x2000 : { *(.gcc_except_table) }
|
||||||
|
.eh_frame 0x4000 : { *(.eh_frame) }
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,11 @@
|
|||||||
Contents of section \.text:
|
Contents of section \.text:
|
||||||
0a00 080a0000 100a0000 01000000 02000000 .*
|
0a00 080a0000 100a0000 01000000 02000000 .*
|
||||||
0a10 03000000 .*
|
0a10 03000000 .*
|
||||||
Contents of section \.eh_frame:
|
Contents of section \.gcc_except_table:
|
||||||
2000 02000000 080a0000 08000000 07000000 .*
|
2000 02000000 080a0000 08000000 07000000 .*
|
||||||
2010 100a0000 04000000 66600000 00000000 .*
|
2010 100a0000 04000000 66600000 00000000 .*
|
||||||
2020 04000000 .*
|
2020 04000000 .*
|
||||||
#pass
|
Contents of section \.eh_frame:
|
||||||
|
4000 0c000000 00000000 0100017c 00000000 .*
|
||||||
|
4010 0c000000 14000000 080a0000 08000000 .*
|
||||||
|
4020 0c000000 24000000 100a0000 04000000 .*
|
||||||
|
Reference in New Issue
Block a user