summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog4
-rw-r--r--gcc/ada/tracebak.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index f0f418da015..41a91f2033e 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tracebak.c (i386): Use GCC unwinder on Linux with GCC > 4.5.
+
2010-08-10 Robert Dewar <dewar@adacore.com>
* sem_ch8.adb, sem_ch8.ads: Change name Write_Scopes to ws.
diff --git a/gcc/ada/tracebak.c b/gcc/ada/tracebak.c
index 9e5366a78cc..cd9693969c1 100644
--- a/gcc/ada/tracebak.c
+++ b/gcc/ada/tracebak.c
@@ -303,7 +303,14 @@ struct layout
#define IS_BAD_PTR(ptr) 0
#endif
+/* Starting with GCC 4.6, -fomit-frame-pointer is turned on by default for
+ 32-bit x86/Linux as well and DWARF 2 unwind tables are emitted instead.
+ See the x86-64 case below for the drawbacks with this approach. */
+#if defined (linux) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45)
+#define USE_GCC_UNWINDER
+#else
#define USE_GENERIC_UNWINDER
+#endif
struct layout
{