diff options
author | Jim Jagielski <jim@apache.org> | 2016-12-02 11:36:06 +0000 |
---|---|---|
committer | Jim Jagielski <jim@apache.org> | 2016-12-02 11:36:06 +0000 |
commit | 5c0a8f2f6933b6166a3819049d521cef04d1e2ac (patch) | |
tree | b46d601bac5554352e94fe04a6d818c76a8138cc | |
parent | 3ce25d1de566352f175ea042b07cf82b50f8c6d9 (diff) | |
download | httpd-5c0a8f2f6933b6166a3819049d521cef04d1e2ac.tar.gz |
Merge r1702948, r1759415 from trunk:
httpd compiles warning free on gcc and every new warning will be treated as an error, standard c-89 is enforced
http_config: follow up to r1702948: maybe unused, yet maybe usefull too.
Submitted by: icing, ylavic
Reviewed/backported by: jim
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1772330 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | STATUS | 16 | ||||
-rw-r--r-- | acinclude.m4 | 2 | ||||
-rw-r--r-- | configure.in | 23 | ||||
-rw-r--r-- | include/http_config.h | 19 | ||||
-rw-r--r-- | include/scoreboard.h | 2 |
5 files changed, 41 insertions, 21 deletions
@@ -117,22 +117,6 @@ RELEASE SHOWSTOPPERS: 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) diff --git a/acinclude.m4 b/acinclude.m4 index d0afed34ef..2605e20cec 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -734,7 +734,7 @@ AC_DEFUN([APACHE_ADD_GCC_CFLAG], [ 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" ]) diff --git a/configure.in b/configure.in index c59c54257c..7ae20b83d0 100644 --- a/configure.in +++ b/configure.in @@ -596,11 +596,12 @@ AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn o 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 @@ -808,6 +809,13 @@ AC_MSG_NOTICE([]) 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_) @@ -865,3 +873,14 @@ test -d docs/conf||$mkdir_p docs/conf 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} +]) diff --git a/include/http_config.h b/include/http_config.h index 5321a8a506..66c5b3192f 100644 --- a/include/http_config.h +++ b/include/http_config.h @@ -410,6 +410,23 @@ struct module_struct { }; /** + * 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. * @@ -424,7 +441,7 @@ struct module_struct { */ #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 diff --git a/include/scoreboard.h b/include/scoreboard.h index d712bd43b4..e3c68d26cb 100644 --- a/include/scoreboard.h +++ b/include/scoreboard.h @@ -26,7 +26,7 @@ extern "C" { #endif -#ifdef HAVE_SYS_TIMES_H +#ifdef APR_HAVE_SYS_TIME_H #include <sys/time.h> #include <sys/times.h> #endif |