PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) Fix warnings with new compilers, warnings treated as error
- in maintainer-mode, standard c-89 is enforced
- trunk patch: http://svn.apache.org/r1702948
- http://svn.apache.org/r1759415
- 2.4.x patch: http://home.apache.org/~ylavic/patches/httpd-2.4.x-r1702948_and_co.patch
- +1: ylavic, jorton, wrowe
- jchampion: r1702948 doesn't quite work as advertised. -Werror is never
- added to CFLAGS because when combined with -Wstrict-prototypes,
- the AC_LANG_PROGRAM won't compile (it uses a bare main()).
- ylavic: Maybe the -Werror case could be handled later, for now this series
- avoids a lot of "warning: 'aplog_module_index' defined but not
- used [-Wunused-const-variable=]" thanks to AP_MAYBE_UNUSED.
- jchampion: Fine by me. I just think the dead code should be removed from
- the backport in the meantime, so people don't have a false sense
- of security.
-
*) mod_cache: Bring up-to-date w/ trunk.
trunk patch:
try to use the key of a possible open but stale cache entry (PR 50317)
AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $1"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo() { return 0; }])],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
[ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
CFLAGS="$save_CFLAGS"
])
APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
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([-Werror])
APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
- APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement])
APACHE_ADD_GCC_CFLAG([-Wformat])
APACHE_ADD_GCC_CFLAG([-Wformat-security])
- APACHE_ADD_GCC_CFLAG([-Werror=format-security])
+ APACHE_ADD_GCC_CFLAG([-Wunused])
elif test "$AIX_XLC" = "yes"; then
APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
fi
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_CPP=${CPP}
+
APR_RESTORE_THE_ENVIRONMENT(CPPFLAGS, EXTRA_)
APR_RESTORE_THE_ENVIRONMENT(CFLAGS, EXTRA_)
APR_RESTORE_THE_ENVIRONMENT(CXXFLAGS, EXTRA_)
AC_CONFIG_FILES(docs/conf/httpd.conf docs/conf/extra/httpd-autoindex.conf docs/conf/extra/httpd-dav.conf docs/conf/extra/httpd-default.conf docs/conf/extra/httpd-info.conf docs/conf/extra/httpd-languages.conf docs/conf/extra/httpd-manual.conf docs/conf/extra/httpd-mpm.conf docs/conf/extra/httpd-multilang-errordoc.conf docs/conf/extra/httpd-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf docs/conf/extra/proxy-html.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh)
AC_CONFIG_COMMANDS([default], [true], [APACHE_GEN_MAKEFILES])
AC_OUTPUT
+AC_MSG_NOTICE([summary of build options:
+
+ Server Version: ${HTTPD_VERSION}
+ Install prefix: ${prefix}
+ C compiler: ${APACHE_CONF_SEL_CC}
+ CFLAGS: ${APACHE_CONF_SEL_CFLAGS}
+ LDFLAGS: ${APACHE_CONF_SEL_LDFLAGS}
+ LIBS: ${APACHE_CONF_SEL_LIBS}
+ CPPFLAGS: ${APACHE_CONF_SEL_CPPFLAGS}
+ C preprocessor: ${APACHE_CONF_SEL_CPP}
+])
void (*register_hooks) (apr_pool_t *p);
};
+/**
+ * The AP_MAYBE_UNUSED macro is used for variable declarations that
+ * might potentially exhibit "unused var" warnings on some compilers if
+ * left untreated.
+ * Since static intializers are not part of the C language (C89), making
+ * (void) usage is not possible. However many compiler have proprietary
+ * mechanism to suppress those warnings.
+ */
+#ifdef AP_MAYBE_UNUSED
+#elif defined(__GNUC__)
+# define AP_MAYBE_UNUSED(x) x __attribute__((unused))
+#elif defined(__LCLINT__)
+# define AP_MAYBE_UNUSED(x) /*@unused@*/ x
+#else
+# define AP_MAYBE_UNUSED(x) x
+#endif
+
/**
* The APLOG_USE_MODULE macro is used choose which module a file belongs to.
* This is necessary to allow per-module loglevel configuration.
*/
#define APLOG_USE_MODULE(foo) \
extern module AP_MODULE_DECLARE_DATA foo##_module; \
- static int * const aplog_module_index = &(foo##_module.module_index)
+ AP_MAYBE_UNUSED(static int * const aplog_module_index) = &(foo##_module.module_index)
/**
* AP_DECLARE_MODULE is a convenience macro that combines a call of
extern "C" {
#endif
-#ifdef HAVE_SYS_TIMES_H
+#ifdef APR_HAVE_SYS_TIME_H
#include <sys/time.h>
#include <sys/times.h>
#endif