]> granicus.if.org Git - apache/commitdiff
Add some CFLAGS in maintainer mode if supported by gcc:
authorStefan Fritsch <sf@apache.org>
Sat, 8 Oct 2011 07:48:01 +0000 (07:48 +0000)
committerStefan Fritsch <sf@apache.org>
Sat, 8 Oct 2011 07:48:01 +0000 (07:48 +0000)
-Wformat
-Wformat-security
-Werror=format-security
-Werror=declaration-after-statement

Add new macro APACHE_ADD_GCC_CFLAGS to do the compatibility check.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1180331 13f79535-47bb-0310-9956-ffa450edef68

acinclude.m4
configure.in

index 2e0907e6a9ea03ed82d1b4d4352fc94946e87f73..f51d27d9604965fd984407371a4610ed4e8d2f04 100644 (file)
@@ -706,3 +706,25 @@ YES_IS_DEFINED
     CPPFLAGS="$apache_old_cppflags"
   ])
 ])
+
+dnl
+dnl APACHE_ADD_GCC_CFLAGS
+dnl
+dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
+dnl
+AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
+  define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], [____]))
+  if test "$GCC" = "yes"; then
+    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; }])],
+        [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
+      CFLAGS="$save_CFLAGS"
+    ])
+    if test "$]ap_gcc_ckvar[" = "yes" ; then
+       APR_ADDTO(CFLAGS,[$1])
+    fi
+  fi
+  undefine([ap_gcc_ckvar])
+])
index 8552213417224ede35d6aea0ce648ea2ad852932..43ecea81e98753ca0c275f48ead7a1a5ce87e8ca 100644 (file)
@@ -541,16 +541,11 @@ 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])
-    AC_CACHE_CHECK([whether gcc accepts -Wdeclaration-after-statement], [ap_cv_cc_Wdas], [
-      save_CFLAGS=$CFLAGS
-      CFLAGS="$CFLAGS -Wdeclaration-after-statement"
-      AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo() { return 0; }])],
-        [ap_cv_cc_Wdas=yes], [ap_cv_cc_Wdas=no])
-      CFLAGS=$save_CFLAGS
-    ])
-    if test "$ap_cv_cc_Wdas" = "yes"; then
-      APR_ADDTO(CFLAGS,[-Wdeclaration-after-statement])
-    fi
+    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])
   elif test "$AIX_XLC" = "yes"; then
     APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
   fi
@@ -561,16 +556,11 @@ AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--enable-debugger-mode,Turn on de
   APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
   if test "$GCC" = "yes"; then
     APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0])
-    AC_CACHE_CHECK([whether gcc accepts -Wdeclaration-after-statement], [ap_cv_cc_Wdas], [
-      save_CFLAGS=$CFLAGS
-      CFLAGS="$CFLAGS -Wdeclaration-after-statement"
-      AC_COMPILE_IFELSE([AC_LANG_SOURCE([int foo() { return 0; }])],
-        [ap_cv_cc_Wdas=yes], [ap_cv_cc_Wdas=no])
-      CFLAGS=$save_CFLAGS
-    ])
-    if test "$ap_cv_cc_Wdas" = "yes"; then
-      APR_ADDTO(CFLAGS,[-Wdeclaration-after-statement])
-    fi
+    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])
   elif test "$AIX_XLC" = "yes"; then
     APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
   fi