Commit 2befe171 authored by Stefan Fritsch's avatar Stefan Fritsch
Browse files

Add some CFLAGS in maintainer mode if supported by gcc:

-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
parent 434985f0
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -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])
])
+10 −20
Original line number Diff line number Diff line
@@ -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