Add FORTIFY_SOURCE support
Adds a check for the minimum mainline GCC version for FORTIFY_SOURCE support and enables -D_FORTIFY_SOURCE=2 by default when building with --enable-debug. Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
28c662e7a4
commit
900605912b
2 changed files with 24 additions and 0 deletions
23
acinclude.m4
23
acinclude.m4
|
@ -4910,6 +4910,29 @@ AC_DEFUN([GCC_STACK_PROTECT_CC],[
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl GCC_FORTIFY_SOURCE_CC
|
||||||
|
dnl checks -D_FORTIFY_SOURCE with the C compiler, if it exists then updates
|
||||||
|
dnl CFLAGS
|
||||||
|
AC_DEFUN([GCC_FORTIFY_SOURCE_CC],[
|
||||||
|
AC_LANG_ASSERT(C)
|
||||||
|
if test "X$CC" != "X"; then
|
||||||
|
AC_MSG_CHECKING(for FORTIFY_SOURCE support)
|
||||||
|
AC_TRY_COMPILE([#include <features.h>], [
|
||||||
|
int main() {
|
||||||
|
#if !(__GNUC_PREREQ (4, 1) )
|
||||||
|
#error No FORTIFY_SOURCE support
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
dnl GCC_VISIBILITY_CC
|
dnl GCC_VISIBILITY_CC
|
||||||
dnl checks -fvisibility=internal with the C compiler, if it exists then
|
dnl checks -fvisibility=internal with the C compiler, if it exists then
|
||||||
dnl defines ENABLE_VISIBILITY_CC in both configure script and Makefiles
|
dnl defines ENABLE_VISIBILITY_CC in both configure script and Makefiles
|
||||||
|
|
|
@ -316,6 +316,7 @@ if test "x$debug" = "xyes" ; then
|
||||||
# Check for -fstack-protector availability
|
# Check for -fstack-protector availability
|
||||||
GCC_STACK_PROTECT_LIB
|
GCC_STACK_PROTECT_LIB
|
||||||
GCC_STACK_PROTECT_CC
|
GCC_STACK_PROTECT_CC
|
||||||
|
GCC_FORTIFY_SOURCE_CC
|
||||||
CFLAGS="$CFLAGS -g -Wall -Werror"
|
CFLAGS="$CFLAGS -g -Wall -Werror"
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
|
|
Loading…
Add table
Reference in a new issue