From: Julian Seward Date: Tue, 1 May 2007 13:44:08 +0000 (+0000) Subject: If gcc supports -fno-stack-protector, use it. This should fix X-Git-Tag: svn/VALGRIND_3_3_0~280 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ecc35db60bde00d624986a5aaf5271f0de4bae30;p=thirdparty%2Fvalgrind.git If gcc supports -fno-stack-protector, use it. This should fix compilation failures on distros where -fstack-protector is enabled by default. See #144112. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6721 --- diff --git a/Makefile.tool.am b/Makefile.tool.am index e48ca6b5f4..883e21ae8d 100644 --- a/Makefile.tool.am +++ b/Makefile.tool.am @@ -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 diff --git a/configure.in b/configure.in index 9b10fd6157..44ef57a15d 100644 --- a/configure.in +++ b/configure.in @@ -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])