diff options
author | Allan McRae <allan@archlinux.org> | 2012-07-16 14:24:29 +1000 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-08-01 09:16:46 -0500 |
commit | d2669b47812aebfe3ada7df4c7d7525790ef9c33 (patch) | |
tree | ac0640af441883a043a468704895ea5cd7862755 | |
parent | e94876089a934fde13984b59e735b35f92837d96 (diff) | |
download | pacman-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.ac | 5 | ||||
-rw-r--r-- | m4/acinclude.m4 | 12 |
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 ]) |