This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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]

Re: v8.S dwarf2 eh frame issues again :(


On Fri, Apr 19, 2002 at 07:23:57PM -0700, David S. Miller wrote:
> 
> Dwarf2 unwinds from libjava/testsuite/libjava.lang/invokethrow.java
> fail to work unless I make the change at the end of thie email to the
> .eh_frame information added recently to libffi/src/sparc/v8.S
> 
> I don't understand the .eh_frame format at all, basically what I did
> was compile a dummy "extern int bar(void); int foo(void) { bar(); }"
> with -g -fexceptions and copied the .eh_frame section code into v8.S
> and then the test started working.

Please use -fexceptions -fpic -dA to generate eh_frame. Does it work then?

> Either it is a bug in binutils eh frame optimizations, the .eh_frame
> specification currently in v8.S, or the runtime unwinder itself has an
> .eh_frame decoding bug of some sort.
> 
> --- v8.S	Wed Apr 10 19:57:34 2002
> +++ v8.S.NEW	Fri Apr 19 10:26:03 2002
> @@ -106,36 +106,32 @@
>  
>  	.section	".eh_frame",#alloc,#write
>  .LLframe1:
> -	.uaword	.LLECIE1-.LLSCIE1	! Length of Common Information Entry
> +	.uaword	.LLECIE1-.LLSCIE1
>  .LLSCIE1:
> -	.uaword	0x0	! CIE Identifier Tag
> -	.byte	0x1	! CIE Version
> -	.ascii "zR\0"	! CIE Augmentation
> -	.byte	0x1	! uleb128 0x1; CIE Code Alignment Factor
> -	.byte	0x80-WS	! sleb128 -WS; CIE Data Alignment Factor
> -	.byte	0xf	! CIE RA Column
> -	.byte	0x1	! uleb128 0x1; Augmentation size
> -	.byte	0x50	! FDE Encoding (aligned absolute)
> -	.byte	0xc	! DW_CFA_def_cfa
> -	.byte	0xe	! uleb128 0xe
> -	.byte	0x0	! uleb128 0x0
> -	.align	WS
> +	.uaword	0x0
> +	.byte	0x1
> +	.asciz	""
> +	.byte   0x1
> +	.byte   0x80-WS
> +	.byte	0xf
> +	.byte	0xc
> +	.byte   0xe
> +	.byte   0x0
> +	.align  WS
>  .LLECIE1:
>  .LLSFDE1:
> -	.uaword	.LLEFDE1-.LLASFDE1	! FDE Length
> +	.uaword	.LLEFDE1-.LLASFDE1
>  .LLASFDE1:
> -	.uaword	.LLASFDE1-.LLframe1	! FDE CIE offset
> -	.align	WS
> +	.uaword	.LLASFDE1-.LLframe1
>  	.nword	.LLFB1
> -	.uanword .LLFE1-.LLFB1	! FDE address range
> -	.byte	0x0	! uleb128 0x0; Augmentation size
> -	.byte	0x4	! DW_CFA_advance_loc4
> +	.uanword .LLFE1-.LLFB1
> +	.byte	0x4
>  	.uaword	.LLCFI0-.LLFB1
> -	.byte	0xd	! DW_CFA_def_cfa_register
> -	.byte	0x1e	! uleb128 0x1e
> -	.byte	0x2d	! DW_CFA_GNU_window_save
> -	.byte	0x9	! DW_CFA_register
> -	.byte	0xf	! uleb128 0xf
> -	.byte	0x1f	! uleb128 0x1f
> -	.align	WS
> +	.byte	0xd
> +	.byte   0x1e
> +	.byte	0x2d
> +	.byte	0x9
> +	.byte   0xf
> +	.byte   0x1f
> +	.align 4
>  .LLEFDE1:

	Jakub


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