summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--configure.ac21
2 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a587b430..b50f79ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-02-09 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Add check for adding -D_FORTIFY_SOURCE=2 to CFLAGS.
+
2017-01-12 Mark Wielaard <mark@klomp.org>
* configure.ac: Define PACKAGE_URL for older autoconf.
diff --git a/configure.ac b/configure.ac
index 07ad592f..46055f26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -159,6 +159,27 @@ AC_CACHE_CHECK([whether fts.h is bad when included (with LFS)], ac_cv_bad_fts,
ac_cv_bad_fts=no, ac_cv_bad_fts=yes)])
AS_IF([test "x$ac_cv_bad_fts" = "xyes"], [CFLAGS="$CFLAGS -DBAD_FTS=1"])
+# See if we can add -D_FORTIFY_SOURCE=2. Don't do it if it is already
+# (differently) defined or if it generates warnings/errors because we
+# don't use the right optimisation level (string.h will warn about that).
+AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CFLAGS])
+case "$CFLAGS" in
+ *-D_FORTIFY_SOURCE=2*)
+ AC_MSG_RESULT([no, already there])
+ ;;
+ *)
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="-D_FORTIFY_SOURCE=2 -Werror $CFLAGS"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include <string.h>
+ int main() { return 0; }
+ ]])], [ AC_MSG_RESULT([yes])
+ CFLAGS="-D_FORTIFY_SOURCE=2 $save_CFLAGS" ],
+ [ AC_MSG_RESULT([no])
+ CFLAGS="$save_CFLAGS"])
+ ;;
+esac
+
dnl enable debugging of branch prediction.
AC_ARG_ENABLE([debugpred],
AS_HELP_STRING([--enable-debugpred],[build binaries with support to debug branch prediction]),