[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#685559: gnat-4.6: Use GCC stack frame unwinder for GNU/kFreeBSD in tracebak.c

Package: gnat-4.6
Version: 4.6.3-5
Severity: important
Tags: patch
Usertags: kfreebsd
User: debian-bsd@lists.debian.org


When building polyorb-2.8~20110207 for GNU/kFreeBSD it segfaults, see 

Building non-stripped versions of libgnat-4.6.so.1 and libgnarl-4.6.so.1
the gdb backtrace revealed that the stack unwinder with
USE_GENERIC_UNWINDER in gcc/ada/tracebak.c is the cause (as for

With USE_GCC_UNWINDER the build works, except for a linker error later
on, see separate bug reports for gnat-4.6 of gcc-interface/Makefile.in
changes for Hurd and kFreeBSD! 

The patch is inlined below. Preferably it could be applied by modifying
the last part of the recent patch: ada-symbolic-tracebacks.diff
--- a/src/gcc/ada/tracebak.c	2012-08-20 14:10:21.000000000 +0200
+++ b/src/gcc/ada/tracebak.c	2012-08-20 18:30:35.000000000 +0200
@@ -320,7 +320,7 @@
 /* Starting with GCC 4.6, -fomit-frame-pointer is turned on by default
    32-bit x86/Linux as well and DWARF 2 unwind tables are emitted
    See the x86-64 case below for the drawbacks with this approach.  */
-#if (defined (linux) || defined(__GNU__)) && (__GNUC__ * 10 +
__GNUC_MINOR__ > 45)
+#if (defined (linux) || defined(__GNU__) ||
defined(__kFreeBSD_kernel__)) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45)

Reply to: