diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ada/tracebak.c | 7 |
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 { |