]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
If gcc supports -fno-stack-protector, use it. This should fix
authorJulian Seward <jseward@acm.org>
Tue, 1 May 2007 13:44:08 +0000 (13:44 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 1 May 2007 13:44:08 +0000 (13:44 +0000)
compilation failures on distros where -fstack-protector is enabled by
default.  See #144112.

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

Makefile.tool.am
configure.in

index e48ca6b5f43c7c7a98451ffecab8a3d9c4a66982..883e21ae8d2a8d94655f29d53057b6cb3af982c7 100644 (file)
@@ -53,32 +53,38 @@ COREGRIND_LIBS_PPC64_AIX5 = \
 @VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
        libvex_x86_linux.a \
-       EXTRA_CFLAGS="$(AM_CFLAGS_X86_LINUX) @FLAG_WDECL_AFTER_STMT@"
+       EXTRA_CFLAGS="$(AM_CFLAGS_X86_LINUX) @FLAG_WDECL_AFTER_STMT@ \
+                       @FLAG_FNO_STACK_PROTECTOR@"
 
 @VEX_DIR@/libvex_amd64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
        libvex_amd64_linux.a \
-       EXTRA_CFLAGS="$(AM_CFLAGS_AMD64_LINUX) @FLAG_WDECL_AFTER_STMT@"
+       EXTRA_CFLAGS="$(AM_CFLAGS_AMD64_LINUX) @FLAG_WDECL_AFTER_STMT@ \
+                       @FLAG_FNO_STACK_PROTECTOR@"
 
 @VEX_DIR@/libvex_ppc32_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
        libvex_ppc32_linux.a \
-       EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_LINUX) @FLAG_WDECL_AFTER_STMT@"
+       EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_LINUX) @FLAG_WDECL_AFTER_STMT@ \
+                       @FLAG_FNO_STACK_PROTECTOR@"
 
 @VEX_DIR@/libvex_ppc64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
        libvex_ppc64_linux.a \
-       EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_LINUX) @FLAG_WDECL_AFTER_STMT@"
+       EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_LINUX) @FLAG_WDECL_AFTER_STMT@ \
+                       @FLAG_FNO_STACK_PROTECTOR@"
 
 @VEX_DIR@/libvex_ppc32_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X32" \
        libvex_ppc32_aix5.a \
-       EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_AIX5) @FLAG_WDECL_AFTER_STMT@"
+       EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_AIX5) @FLAG_WDECL_AFTER_STMT@ \
+                       @FLAG_FNO_STACK_PROTECTOR@"
 
 @VEX_DIR@/libvex_ppc64_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X64" \
        libvex_ppc64_aix5.a \
-       EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_AIX5) @FLAG_WDECL_AFTER_STMT@"
+       EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_AIX5) @FLAG_WDECL_AFTER_STMT@ \
+                       @FLAG_FNO_STACK_PROTECTOR@"
 
 @VEX_DIR@/priv/main/vex_svnversion.h:
        $(MAKE) -C @VEX_DIR@ CC="$(CC)" version
index 9b10fd61575114834006b7884eb2d47130bbdfb7..44ef57a15df6bb239c409db6b25e8c6649052b70 100644 (file)
@@ -706,6 +706,33 @@ if test x$declaration_after_statement = xyes; then
 fi
 
 
+# does this compiler support -fno-stack-protector ?
+AC_MSG_CHECKING([if gcc accepts -fno-stack-protector ])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="-fno-stack-protector"
+
+AC_TRY_COMPILE(, [
+int main () { return 0 ; }
+],
+[
+no_stack_protector=yes
+FLAG_FNO_STACK_PROTECTOR="-fno-stack-protector"
+AC_MSG_RESULT([yes])
+], [
+no_stack_protector=no
+FLAG_FNO_STACK_PROTECTOR=""
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+AC_SUBST(FLAG_FNO_STACK_PROTECTOR)
+
+if test x$no_stack_protector = xyes; then
+  CFLAGS="$CFLAGS -fno-stack-protector"
+fi
+
+
 # does this compiler support __builtin_expect?
 AC_MSG_CHECKING([if gcc supports __builtin_expect])