- AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall],
- [nmh_saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wall -Werror"
- AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no)
- CFLAGS="$nmh_saved_cflags"])
- test "$nmh_cv_has_wall" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wall"
-
- AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
- [nmh_saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wextra -Werror"
- AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,
- nmh_cv_has_wextra=no)
- CFLAGS="$nmh_saved_cflags"])
- test "$nmh_cv_has_wextra" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wextra"
-
- dnl For Ubuntu gcc 4.8.1, with -O2. It would be better to fix all these,
- dnl but until then, suppress the warning.
- AC_CACHE_CHECK([whether compiler needs -Wno-unused-result],
- [nmh_cv_needs_wnur],
- [nmh_saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -O2"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>],
- [extern const char *path;
- chdir (path);
- return 0;])],
- [nmh_cv_needs_wnur=no],
- [nmh_cv_needs_wnur=yes])
- CFLAGS="$nmh_saved_cflags"])
- AS_IF([test "$nmh_cv_needs_wnur" = yes],
- [CFLAGS="${CFLAGS:+$CFLAGS }-Wno-unused-result"])
+AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall],
+ [nmh_saved_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wall -Werror"
+ AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no)
+ CFLAGS="$nmh_saved_cflags"])
+test "$nmh_cv_has_wall" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wall"
+
+AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
+ [nmh_saved_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wextra -Werror"
+ AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,
+ nmh_cv_has_wextra=no)
+ CFLAGS="$nmh_saved_cflags"])
+test "$nmh_cv_has_wextra" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wextra"
+
+if test "$GCC" = yes; then
+ dnl Do this regardless of auto_cflags value.
+ dnl Enable _FORTIFY_SOURCE checking, which is supported by
+ dnl gcc 4.1 and later, but only when optimization is enabled.
+ dnl It shouldn't hurt with earlier versions because it's a cpp macro.
+ dnl If the user configures with a CFLAGS that contains a -O flag
+ dnl but then removes it a make time, they'll also have to remove
+ dnl -D_FORTIFY_SOURCE from CPPFLAGS because it requires optimization.
+ AS_CASE([$CFLAGS],
+ [-O*|*' -O'*],[CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-D_FORTIFY_SOURCE=2"])