mirror of
https://github.com/apache/httpd.git
synced 2025-07-23 00:50:44 +00:00
Merge r1812263, r1812301 from trunk:
Fix maintainer mode with GCC/Clang. Setting -Wstrict-prototypes in combination with -Werror leads to compiler errors during configure checks (autoconf generates incomplete prototypes). Adding -Wno-error=strict-prototypes lets the compiler tolerate those. Possible future enhancement: remember such "configure time only" flags and remove them from CFLAGS before generating our build time files (Makefile, config_vars.mk etc.), so that the full -Werror is in place during building. 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. Submitted by: rjung, ylavic Reviewed by: ylavic, rjung, jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1812437 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
15
STATUS
15
STATUS
@ -117,21 +117,6 @@ RELEASE SHOWSTOPPERS:
|
|||||||
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
|
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
|
||||||
[ start all new proposals below, under PATCHES PROPOSED. ]
|
[ start all new proposals below, under PATCHES PROPOSED. ]
|
||||||
|
|
||||||
*) configure.in: Fix maintainer mode with GCC/Clang.
|
|
||||||
Setting -Wstrict-prototypes in combination with -Werror leads to compiler
|
|
||||||
errors during configure checks (autoconf generates incomplete prototypes).
|
|
||||||
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.
|
|
||||||
trunk patch: http://svn.apache.org/r1812263
|
|
||||||
http://svn.apache.org/r1812301
|
|
||||||
2.4.x patch: svn merge -c 1812263,1812301 ^/httpd/httpd/trunk .
|
|
||||||
+1: ylavic, rjung, jim
|
|
||||||
ylavic: if the below mod_journald proposal gets accepted, it will
|
|
||||||
also need a backport of r1812339, otherwise maintainer
|
|
||||||
mode builds will fail due to -Werror.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
|
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
|
||||||
|
12
acinclude.m4
12
acinclude.m4
@ -726,22 +726,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])
|
||||||
|
31
configure.in
31
configure.in
@ -593,17 +593,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])
|
|
||||||
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
|
||||||
@ -619,16 +623,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
|
||||||
@ -810,10 +819,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_)
|
||||||
@ -879,8 +888,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}
|
||||||
])
|
])
|
||||||
|
Reference in New Issue
Block a user