Question about a comment in _Jv_StackTrace::UnwindTraceFn

Dave Korn
Fri May 22 06:02:00 GMT 2009

Dave Korn wrote:

> The solution is now obvious, but not easy.  I'll be off in the corner with
> a copy of the Dwarf spec for a while, learning how to hand-craft CIEs and
> FDEs and all those things.  If anyone knows of a handy tool or shortcut
> that can help me with that task, please drop me a reply, because I don't
> know of any option apart from doing it manually.

  That wasn't so bad.  The quick way turned out to be to read enough of the
spec to be able to hand-parse and understand the x64/sysv.S FDE CFI lists, and
then apply the equivalent annotations to the win32 versions.  This fixed the
testcase I was debugging, so I've rebuilt (not re-bootstrapped, just rebuilt
the target libs after reconfiguring in $objdir/i686-pc-cygwin/libffi) and am
putting the attached patch through a libjava/libffi testrun.  FTR, the results
before this patch were:

                === libjava Summary ===

# of expected passes            2392
# of unexpected failures        96
# of untested testcases         84

                === libffi Summary ===

# of expected passes            1374
# of unexpected failures        27

  Assuming we see nothing but improvements, OK for head?


	* (_Jv_CreateJavaVM):  Don't set runtimeInitialized
	until initialization is fully complete.


	*  Also check if assembler supports pc-relative
	relocs on X86_WIN32 targets.
	* configure:  Regenerate.
	* src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
	(_ffi_call_SYSV):  Add missing function type symbol .def and
	add EH markup labels.
	(_ffi_call_STDCALL):  Likewise.
	(_ffi_closure_SYSV):  Likewise.
	(_ffi_closure_raw_SYSV):  Likewise.
	(.eh_frame):  Add hand-crafted EH data.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: libffi-win32-eh-markup.diff
Type: text/x-c
Size: 8250 bytes
Desc: not available
URL: <>

More information about the Java-patches mailing list