]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bypass gcc 4.4/4.5 compilation bug by moving -fomit-frame-pointer to Makefile.all.am
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Tue, 15 May 2012 21:04:31 +0000 (21:04 +0000)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Tue, 15 May 2012 21:04:31 +0000 (21:04 +0000)
gcc 4.4 and 4.5 has a bug which causes miscompilation of mc_main.c:
 args are not correctly given to VG_(am_munmap_valgrind).
This causes the secondary map entries to not be unmapped
(which can cause unlimited memory growth)
and/or causes the assert on VG_(am_munmap_valgrind) result to fail.

Removing the pragma optimize from mc_main.c and inserting it instead
in Makefile.all.am for x86 solves the gcc bug.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12564

Makefile.all.am
memcheck/mc_main.c

index 30502798feb2829b0b4331f76d7e194171db816b..029f9253456fa10bd6cb1a2e9f37665bdb7b27c8 100644 (file)
@@ -133,13 +133,13 @@ AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \
 endif
 
 AM_FLAG_M3264_X86_LINUX   = @FLAG_M32@
-AM_CFLAGS_X86_LINUX       = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
-                               $(AM_CFLAGS_BASE)
+AM_CFLAGS_X86_LINUX       = @FLAG_M32@  @PREFERRED_STACK_BOUNDARY@ \
+                               $(AM_CFLAGS_BASE) -fomit-frame-pointer
 AM_CCASFLAGS_X86_LINUX    = @FLAG_M32@ -g
 
 AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@
-AM_CFLAGS_AMD64_LINUX     = @FLAG_M64@ -fomit-frame-pointer \
-                               @PREFERRED_STACK_BOUNDARY@ $(AM_CFLAGS_BASE)
+AM_CFLAGS_AMD64_LINUX     = @FLAG_M64@ @PREFERRED_STACK_BOUNDARY@ \
+                               $(AM_CFLAGS_BASE) -fomit-frame-pointer
 AM_CCASFLAGS_AMD64_LINUX  = @FLAG_M64@ -g
 
 AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@
index d481b5f5827679a8668eaac8c7b5f0de4ee1234b..804285ae6059e91659808f9898d132e38f38c513 100644 (file)
 #include "memcheck.h"   /* for client requests */
 
 
-/* We really want this frame-pointer-less on all platforms, since the
-   helper functions are small and called very frequently.  By default
-   on x86-linux, though, Makefile.all.am doesn't specify it, so do it
-   here.  Requires gcc >= 4.4, unfortunately. */
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
-# pragma GCC optimize("-fomit-frame-pointer")
-#endif
-
-
 /* Set to 1 to do a little more sanity checking */
 #define VG_DEBUG_MEMORY 0