From: Yann Ylavic Date: Mon, 16 Oct 2017 16:12:26 +0000 (+0000) Subject: Follow up to r1812263. X-Git-Tag: 2.5.0-alpha~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=89f3b1b7fccfeb6e96712cb8923f6d20c37bcbb0;p=apache Follow up to r1812263. As suggested by Joe, add --maintainer/debugger-mode's CFLAGS in NOTEST_CFLAGS to avoid interractions with autoconf's AC_LANG_PROGRAM. APACHE_ADD_GCC_CFLAG now also forces -Wno-strict-prototypes for -Werror to work despite AC_LANG_PROGRAM generating this warning by itself. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1812301 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/acinclude.m4 b/acinclude.m4 index 3ab82d726b..336f5ab697 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -958,22 +958,26 @@ YES_IS_DEFINED ]) dnl -dnl APACHE_ADD_GCC_CFLAGS +dnl APACHE_ADD_GCC_CFLAG dnl -dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS. +dnl Check if compiler is gcc and supports flag. If yes, add to NOTEST_CFLAGS. +dnl NOTEST_CFLAGS is merged lately, thus it won't accumulate in CFLAGS here. +dnl Also, AC_LANG_PROGRAM() itself is known to trigger [-Wstrict-prototypes] +dnl with some autoconf versions, so we force -Wno-strict-prototypes for the +dnl check to avoid spurious failures when adding flags like -Werror. dnl AC_DEFUN([APACHE_ADD_GCC_CFLAG], [ define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____])) if test "$GCC" = "yes"; then AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [ save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" + CFLAGS="$CFLAGS $1 -Wno-strict-prototypes" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no]) CFLAGS="$save_CFLAGS" ]) if test "$]ap_gcc_ckvar[" = "yes" ; then - APR_ADDTO(CFLAGS,[$1]) + APR_ADDTO(NOTEST_CFLAGS,[$1]) fi fi undefine([ap_gcc_ckvar]) diff --git a/configure.in b/configure.in index 2f328cc2a8..81f3d64f69 100644 --- a/configure.in +++ b/configure.in @@ -627,21 +627,21 @@ AC_ARG_ENABLE(load-all-modules,APACHE_HELP_STRING(--enable-load-all-modules,Load AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings and load all compiled modules), [ if test "$enableval" = "yes"; then - APR_ADDTO(CPPFLAGS, -DAP_DEBUG) + APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG) if test "$GCC" = "yes"; then - APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith]) - # Next flag needed, because -Wstrict-prototypes in combination with - # -Werror leads to compiler errors during configure checks (autoconf - # generates incomplete prototypes). - APACHE_ADD_GCC_CFLAG([-Wno-error=strict-prototypes]) APACHE_ADD_GCC_CFLAG([-std=c89]) APACHE_ADD_GCC_CFLAG([-Werror]) + APACHE_ADD_GCC_CFLAG([-Wall]) + APACHE_ADD_GCC_CFLAG([-Wstrict-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-declarations]) APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Wpointer-arith]) APACHE_ADD_GCC_CFLAG([-Wformat]) APACHE_ADD_GCC_CFLAG([-Wformat-security]) APACHE_ADD_GCC_CFLAG([-Wunused]) elif test "$AIX_XLC" = "yes"; then - APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) + APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) fi if test "x$enable_load_all_modules" = "x"; then LOAD_ALL_MODULES=yes @@ -657,16 +657,21 @@ AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn o AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--enable-debugger-mode,Turn on debugging and compile time warnings and turn off optimization), [ if test "$enableval" = "yes"; then - APR_ADDTO(CPPFLAGS, -DAP_DEBUG) + APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG) if test "$GCC" = "yes"; then - APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0]) + APACHE_ADD_GCC_CFLAG([-O0]) + APACHE_ADD_GCC_CFLAG([-Wall]) + APACHE_ADD_GCC_CFLAG([-Wstrict-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-prototypes]) + APACHE_ADD_GCC_CFLAG([-Wmissing-declarations]) APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement]) APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement]) + APACHE_ADD_GCC_CFLAG([-Wpointer-arith]) APACHE_ADD_GCC_CFLAG([-Wformat]) APACHE_ADD_GCC_CFLAG([-Wformat-security]) APACHE_ADD_GCC_CFLAG([-Werror=format-security]) elif test "$AIX_XLC" = "yes"; then - APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) + APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro) fi fi ])dnl @@ -935,10 +940,10 @@ AC_MSG_NOTICE([Restore user-defined environment settings...]) AC_MSG_NOTICE([]) APACHE_CONF_SEL_CC=${CC} -APACHE_CONF_SEL_CFLAGS=${CFLAGS} -APACHE_CONF_SEL_LDFLAGS=${LDFLAGS} -APACHE_CONF_SEL_LIBS=${LIBS} -APACHE_CONF_SEL_CPPFLAGS=${CPPFLAGS} +APACHE_CONF_SEL_CFLAGS="${CFLAGS} ${EXTRA_CFLAGS} ${NOTEST_CFLAGS}" +APACHE_CONF_SEL_CPPFLAGS="${CPPFLAGS} ${EXTRA_CPPFLAGS} ${NOTEST_CPPFLAGS}" +APACHE_CONF_SEL_LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS} ${NOTEST_LDFLAGS}" +APACHE_CONF_SEL_LIBS="${LIBS} ${EXTRA_LIBS} ${NOTEST_LIBS}" APACHE_CONF_SEL_CPP=${CPP} APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_) @@ -1028,8 +1033,8 @@ AC_MSG_NOTICE([summary of build options: Install prefix: ${prefix} C compiler: ${APACHE_CONF_SEL_CC} CFLAGS: ${APACHE_CONF_SEL_CFLAGS} + CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS} LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS} LIBS: ${APACHE_CONF_SEL_LIBS} - CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS} C preprocessor: ${APACHE_CONF_SEL_CPP} ])