From 9b2a90cfb1910b5092ffec3375177229101323e4 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Thu, 10 Jan 2019 12:47:01 +1000 Subject: Add -fstack-clash-protection to CFLAGS in debug builds if available Signed-off-by: Allan McRae --- configure.ac | 1 + m4/acinclude.m4 | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/configure.ac b/configure.ac index ba54c2dd..6f336022 100644 --- a/configure.ac +++ b/configure.ac @@ -443,6 +443,7 @@ if test "x$debug" = "xyes" ; then # Check for -fstack-protector availability GCC_STACK_PROTECT_LIB GCC_STACK_PROTECT_CC + GCC_STACK_CLASH_PROTECTION GCC_FORTIFY_SOURCE_CC WARNING_CFLAGS="-g -Wall -Werror" else diff --git a/m4/acinclude.m4 b/m4/acinclude.m4 index 15bb31e8..845c8286 100644 --- a/m4/acinclude.m4 +++ b/m4/acinclude.m4 @@ -38,6 +38,25 @@ AC_DEFUN([GCC_STACK_PROTECT_CC],[ fi ]) +dnl GCC_STACK_CLASH_PROTECTION +dnl check -fstack-clash-protection with the C compiler, if it exists then +dnl updates CFLAGS +AC_DEFUN([GCC_STACK_CLASH_PROTECTION],[ + AC_LANG_ASSERT(C) + if test "X$CC" != "X"; then + AC_CACHE_CHECK([whether ${CC} accepts -fstack-clash-protection], + scp_cv_cc, + [scp_old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -fstack-clash-protection" + AC_TRY_COMPILE(,, scp_cv_cc=yes, scp_cv_cc=no) + CFLAGS="$scp_old_cflags" + ]) + if test $scp_cv_cc = yes; then + CFLAGS="$CFLAGS -fstack-clash-protection" + fi + fi +]) + dnl GCC_FORTIFY_SOURCE_CC dnl checks -D_FORTIFY_SOURCE with the C compiler, if it exists then updates dnl CPPFLAGS -- cgit v1.2.3-54-g00ecf