From: Julian Seward Date: Wed, 2 May 2007 10:28:07 +0000 (+0000) Subject: Merge r6721 (If gcc supports -fno-stack-protector, use it.) Fixes X-Git-Tag: svn/VALGRIND_3_2_3~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff448a85693e63a2e8b8b0ccb7244b9ea4028ebb;p=thirdparty%2Fvalgrind.git Merge r6721 (If gcc supports -fno-stack-protector, use it.) Fixes #144112 and various other reports of the same problem. git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH@6724 --- diff --git a/Makefile.tool.am b/Makefile.tool.am index 7c9318e8df..a971a6d3d1 100644 --- a/Makefile.tool.am +++ b/Makefile.tool.am @@ -38,19 +38,23 @@ COREGRIND_LIBS_PPC64_LINUX = \ @VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h $(MAKE) -C @VEX_DIR@ CC="$(CC)" 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)" 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)" 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)" 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@/priv/main/vex_svnversion.h: $(MAKE) -C @VEX_DIR@ CC="$(CC)" version diff --git a/configure.in b/configure.in index c9fb5544ec..c2014d6f76 100644 --- a/configure.in +++ b/configure.in @@ -559,6 +559,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])