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
This commit is contained in:
Yann Ylavic
2017-10-16 16:12:26 +00:00
parent 0da02415a5
commit 89f3b1b7fc
2 changed files with 28 additions and 19 deletions

View File

@ -958,22 +958,26 @@ YES_IS_DEFINED
]) ])
dnl dnl
dnl APACHE_ADD_GCC_CFLAGS dnl APACHE_ADD_GCC_CFLAG
dnl 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 dnl
AC_DEFUN([APACHE_ADD_GCC_CFLAG], [ AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____])) define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
if test "$GCC" = "yes"; then if test "$GCC" = "yes"; then
AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [ AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
save_CFLAGS="$CFLAGS" save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $1" CFLAGS="$CFLAGS $1 -Wno-strict-prototypes"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
[ap_gcc_ckvar=yes], [ap_gcc_ckvar=no]) [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
CFLAGS="$save_CFLAGS" CFLAGS="$save_CFLAGS"
]) ])
if test "$]ap_gcc_ckvar[" = "yes" ; then if test "$]ap_gcc_ckvar[" = "yes" ; then
APR_ADDTO(CFLAGS,[$1]) APR_ADDTO(NOTEST_CFLAGS,[$1])
fi fi
fi fi
undefine([ap_gcc_ckvar]) undefine([ap_gcc_ckvar])

View File

@ -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), 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 if test "$enableval" = "yes"; then
APR_ADDTO(CPPFLAGS, -DAP_DEBUG) APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
if test "$GCC" = "yes"; then 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([-std=c89])
APACHE_ADD_GCC_CFLAG([-Werror]) 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([-Wdeclaration-after-statement])
APACHE_ADD_GCC_CFLAG([-Wpointer-arith])
APACHE_ADD_GCC_CFLAG([-Wformat]) APACHE_ADD_GCC_CFLAG([-Wformat])
APACHE_ADD_GCC_CFLAG([-Wformat-security]) APACHE_ADD_GCC_CFLAG([-Wformat-security])
APACHE_ADD_GCC_CFLAG([-Wunused]) APACHE_ADD_GCC_CFLAG([-Wunused])
elif test "$AIX_XLC" = "yes"; then 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
if test "x$enable_load_all_modules" = "x"; then if test "x$enable_load_all_modules" = "x"; then
LOAD_ALL_MODULES=yes 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), 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 if test "$enableval" = "yes"; then
APR_ADDTO(CPPFLAGS, -DAP_DEBUG) APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
if test "$GCC" = "yes"; then 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([-Wdeclaration-after-statement])
APACHE_ADD_GCC_CFLAG([-Werror=declaration-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])
APACHE_ADD_GCC_CFLAG([-Wformat-security]) APACHE_ADD_GCC_CFLAG([-Wformat-security])
APACHE_ADD_GCC_CFLAG([-Werror=format-security]) APACHE_ADD_GCC_CFLAG([-Werror=format-security])
elif test "$AIX_XLC" = "yes"; then 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
fi fi
])dnl ])dnl
@ -935,10 +940,10 @@ AC_MSG_NOTICE([Restore user-defined environment settings...])
AC_MSG_NOTICE([]) AC_MSG_NOTICE([])
APACHE_CONF_SEL_CC=${CC} APACHE_CONF_SEL_CC=${CC}
APACHE_CONF_SEL_CFLAGS=${CFLAGS} APACHE_CONF_SEL_CFLAGS="${CFLAGS} ${EXTRA_CFLAGS} ${NOTEST_CFLAGS}"
APACHE_CONF_SEL_LDFLAGS=${LDFLAGS} APACHE_CONF_SEL_CPPFLAGS="${CPPFLAGS} ${EXTRA_CPPFLAGS} ${NOTEST_CPPFLAGS}"
APACHE_CONF_SEL_LIBS=${LIBS} APACHE_CONF_SEL_LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS} ${NOTEST_LDFLAGS}"
APACHE_CONF_SEL_CPPFLAGS=${CPPFLAGS} APACHE_CONF_SEL_LIBS="${LIBS} ${EXTRA_LIBS} ${NOTEST_LIBS}"
APACHE_CONF_SEL_CPP=${CPP} APACHE_CONF_SEL_CPP=${CPP}
APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_) APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
@ -1028,8 +1033,8 @@ AC_MSG_NOTICE([summary of build options:
Install prefix: ${prefix} Install prefix: ${prefix}
C compiler: ${APACHE_CONF_SEL_CC} C compiler: ${APACHE_CONF_SEL_CC}
CFLAGS: ${APACHE_CONF_SEL_CFLAGS} CFLAGS: ${APACHE_CONF_SEL_CFLAGS}
CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS}
LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS} LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS}
LIBS: ${APACHE_CONF_SEL_LIBS} LIBS: ${APACHE_CONF_SEL_LIBS}
CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS}
C preprocessor: ${APACHE_CONF_SEL_CPP} C preprocessor: ${APACHE_CONF_SEL_CPP}
]) ])