Explorar o código

pass our compiler -fasynchronous-unwind-tables by default

This should make more platforms (in particular, ones with compilers
where -fomit-frame-pointer is on by default but table generation
isn't) support backtrace generation.  Thanks to cypherpunks for this
one.

Fixes bug 11047; bugfix on 0.2.5.2-alpha.
Nick Mathewson %!s(int64=12) %!d(string=hai) anos
pai
achega
68ed4878ca
Modificáronse 2 ficheiros con 16 adicións e 0 borrados
  1. 9 0
      changes/bug11047
  2. 7 0
      configure.ac

+ 9 - 0
changes/bug11047

@@ -0,0 +1,9 @@
+  o Minor bugfixes:
+
+    - Build using the -fasynchronous-unwind-tables option so that more
+      platforms (in particular, ones like 32-bit Intel where the
+      -fomit-frame-pointer option is on by default and table
+      generation is not) will support generating backtraces. This
+      doesn't yet add Windows support yet; only Linux, OSX, and some BSD
+      are affected. Reported by 'cypherpunks'; fixes bug 11047; bugfix
+      on 0.2.5.2-alpha.

+ 7 - 0
configure.ac

@@ -648,6 +648,13 @@ fi
 CFLAGS="$saved_CFLAGS"
 CFLAGS="$saved_CFLAGS"
 AC_SUBST(F_OMIT_FRAME_POINTER)
 AC_SUBST(F_OMIT_FRAME_POINTER)
 
 
+dnl ------------------------------------------------------
+dnl If we are adding -fomit-frame-pointer (or if the compiler's doing it
+dnl for us, as GCC 4.6 and later do at many optimization levels), then
+dnl we should try to add -fasynchronous-unwind-tables so that our backtrace
+dnl code will work.
+TOR_CHECK_CFLAGS(-fasynchronous-unwind-tables)
+
 dnl ------------------------------------------------------
 dnl ------------------------------------------------------
 dnl Where do you live, libnatpmp?  And how do we call you?
 dnl Where do you live, libnatpmp?  And how do we call you?
 dnl There are no packages for Debian or Redhat as of this patch
 dnl There are no packages for Debian or Redhat as of this patch