Fix MIPS32 frame-pointer forcing for more recent GCC.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 14 Jun 2012 15:18:27 +0000 (15:18 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 14 Jun 2012 15:18:27 +0000 (15:18 +0000)
ChangeLog.mips
sysdeps/unix/sysv/linux/mips/mips32/sysdep.h

index 853f286..9469b5c 100644 (file)
@@ -1,3 +1,9 @@
+2012-06-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+       (FORCE_FRAME_POINTER): Assign result of alloca to a volatile
+       variable.
+
 2012-06-01  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/mips/mips64/n32/s_fma.c: New file.
index e51f329..8c024b0 100644 (file)
 /* We need to use a frame pointer for the functions in which we
    adjust $sp around the syscall, or debug information and unwind
    information will be $sp relative and thus wrong during the syscall.  As
-   of GCC 3.4.3, this is sufficient.  */
-#define FORCE_FRAME_POINTER alloca (4)
+   of GCC 4.7, this is sufficient.  */
+#define FORCE_FRAME_POINTER                                            \
+  void *volatile __fp_force __attribute__ ((unused)) = alloca (4)
 
 #define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\
 ({                                                                     \