summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-07-16 14:24:29 +1000
committerDan McGee <dan@archlinux.org>2012-08-01 09:16:46 -0500
commitd2669b47812aebfe3ada7df4c7d7525790ef9c33 (patch)
treeac0640af441883a043a468704895ea5cd7862755
parente94876089a934fde13984b59e735b35f92837d96 (diff)
downloadpacman-d2669b47812aebfe3ada7df4c7d7525790ef9c33.tar.xz
Do not enable _FORTIFY_SOURCE without optimization
With glibc-2.16, using -D_FORTIFY_SOURCE requires that optimization (-O) be used or it will prodice a warning message. Enable -Werror in our test for _FORTIFY_SOURCE support to catch when a users specifies CFLAGS without optimization. The line to set CFLAGS="" when no CFLAGS are specified (either due to being unset or geniunely empty) is required as autoconf will use "-O2 -g" for its tests by defult when CFLAGS is unset, but will not add them to the CFLAGS used... Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--configure.ac5
-rw-r--r--m4/acinclude.m412
2 files changed, 14 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index 5483ee15..7fe696a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,6 +66,11 @@ LT_INIT
LIB_VERSION=`expr lib_current - lib_age`.lib_age.lib_revision
LIB_VERSION_INFO="lib_current:lib_revision:lib_age"
+# Respect empty CFLAGS during compiler tests
+if test "x$CFLAGS" != "x"; then
+ CFLAGS=""
+fi
+
# Set subsitution values for version stuff in Makefiles and anywhere else,
# and put LIB_VERSION in config.h
AC_SUBST(LIB_VERSION)
diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
index 4455d261..f57a515e 100644
--- a/m4/acinclude.m4
+++ b/m4/acinclude.m4
@@ -40,11 +40,15 @@ AC_DEFUN([GCC_STACK_PROTECT_CC],[
dnl GCC_FORTIFY_SOURCE_CC
dnl checks -D_FORTIFY_SOURCE with the C compiler, if it exists then updates
-dnl CFLAGS
+dnl CPPFLAGS
AC_DEFUN([GCC_FORTIFY_SOURCE_CC],[
AC_LANG_ASSERT(C)
if test "X$CC" != "X"; then
AC_MSG_CHECKING(for FORTIFY_SOURCE support)
+ fs_old_cppflags="$CPPFLAGS"
+ fs_old_cflags="$CFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
+ CFLAGS="$CFLAGS -Werror"
AC_TRY_COMPILE([#include <features.h>], [
int main() {
#if !(__GNUC_PREREQ (4, 1) )
@@ -54,10 +58,12 @@ AC_DEFUN([GCC_FORTIFY_SOURCE_CC],[
}
], [
AC_MSG_RESULT(yes)
- CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
+ CFLAGS="$df_old_cflags"
], [
AC_MSG_RESULT(no)
- ])
+ CPPFLAGS="$df_old_cppflags"
+ CFLAGS="$df_old_cflags"
+ ])
fi
])