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
This commit is contained in:
Julian Seward 2007-05-01 13:44:08 +00:00
parent fed8fda1a5
commit ecc35db60b
2 changed files with 39 additions and 6 deletions

View 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

View 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])