On 20.05.15 22:21, Andreas Tobler wrote:
On 20.05.15 21:49, John Marino wrote:
I have maintained unwind support for FreeBSD i386 and x86_64 in my
"gnat-aux" repository for many years (I created it).  I've always
intended on contributing it back to GCC, but I never got around to
"proving" it worked until now.

The version I've been using actually has two flavors: FreeBSD 8 and
below and FreeBSD 9 and above.  However, the last of the FreeBSD 8
releases reaches EOL at the end of June so the unwind support I've
attached here drops the FreeBSD 8 variation for simplicity's sake.

I was under the impression that MD unwinding was used for more than just
GNAT but it looks like that impression was wrong.  When I ran the
testsuite, the only tests affected were Ada tests.

It is, libjava uses it.


Note that I provided a similar unwind support for DragonFly a few months
ago.  Please consider applying the attached patch to gcc trunk.   (copy
of patch found here:
http://leaf.dragonflybsd.org/~marino/freebsd/freebsd-unwind-support.diff )

Suggested text for libgcc/ChangeLog:

2015-05-XX  John Marino <gnu...@marino.st>

        * config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*):
        Set md_unwind_header
        * config/i386/freebsd-unwind.h: New.


Also please recall that my copyright assignment to FSF is in order!

Testing patch locally now.

So, finally my findings. With some additional work on libjava for FreeBSD (pending patch on my side), I can confirm that this patch is a working prerequisite for proper signal handling in libjava. E.g, the magic Throw_2 test case succeeds.

I have not found any regressions on the FreeBSD side. And I really would like to see this patch go into trunk.

My tests were done on amd64 and i386 FreeBSD -CURRENT.

Thanks a lot!

Andreas



Reply via email to