]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r1702948, r1759415 from trunk:
authorJim Jagielski <jim@apache.org>
Fri, 2 Dec 2016 11:36:06 +0000 (11:36 +0000)
committerJim Jagielski <jim@apache.org>
Fri, 2 Dec 2016 11:36:06 +0000 (11:36 +0000)
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

STATUS
acinclude.m4
configure.in
include/http_config.h
include/scoreboard.h

diff --git a/STATUS b/STATUS
index b5a6e336f3ba9e0968303fc62cc84ae7322e9152..d0d91b1c46c6652946a4025951b990a57c1b0ed0 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -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)
index d0afed34ef2078102caae8651f24e17476cdc742..2605e20cec54e267befae801ec21c72f9130c12f 100644 (file)
@@ -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"
     ])
index c59c54257cf4969611f39e1f6c869c9044db54a5..7ae20b83d031054d914e3da2886c3d76aabd96dc 100644 (file)
@@ -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}
+])
index 5321a8a5069a0376838585118332ad5be3bbbfaa..66c5b3192fbbd81780752a7f74753a83c1b74d5e 100644 (file)
@@ -409,6 +409,23 @@ struct module_struct {
     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.
@@ -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
index d712bd43b48949a291efe0adc66c00b87fae8c98..e3c68d26cb550396331bcf03b97e87131db6a7ed 100644 (file)
@@ -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