Update ddm4
[awesomized/libmemcached] / m4 / ax_harden_compiler_flags.m4
index caab7853d1fd3240e60e65203297b23d2f3a9f95..91d58b393518ecd50dcd7bd716c4009c388ba5ce 100644 (file)
 # ?  _APPEND_COMPILE_FLAGS_ERROR([-Wlong-long]) -- Don't turn on for
 # compatibility issues memcached_stat_st
 
-#serial 6
+#serial 7
+
+AC_DEFUN([_WARNINGS_AS_ERRORS],
+    [AC_CACHE_CHECK([if all warnings into errors],[ac_cv_warnings_as_errors],
+      [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],[ac_cv_warnings_as_errors=yes],
+        [ac_cv_warnings_as_errors=no])
+      ])
+    ])
 
 AC_DEFUN([_APPEND_LINK_FLAGS_ERROR],
          [AC_REQUIRE([AX_APPEND_LINK_FLAGS])
@@ -64,11 +71,13 @@ AC_DEFUN([_APPEND_COMPILE_FLAGS_ERROR],
          AX_APPEND_COMPILE_FLAGS([$1],,[-Werror])
          ])
 
+# Everything above this does the heavy lifting, while what follows does the specifics.
+
 AC_DEFUN([_HARDEN_LINKER_FLAGS],
          [_APPEND_LINK_FLAGS_ERROR([-z relro -z now])
          _APPEND_LINK_FLAGS_ERROR([-pie])
          AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
-               [_APPEND_LINK_FLAGS_ERROR([-Werror])])
+               [AX_APPEND_LINK_FLAGS([-Werror])])
          ])
 
 AC_DEFUN([_HARDEN_CC_COMPILER_FLAGS],
@@ -134,19 +143,23 @@ AC_DEFUN([_HARDEN_CC_COMPILER_FLAGS],
           _APPEND_COMPILE_FLAGS_ERROR([-fwrapv])
           _APPEND_COMPILE_FLAGS_ERROR([-fmudflapt])
 
-          AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
-                [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
-                AS_IF([test "x$ac_c_gcc_recent" = xyes],
-                      [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
-                      _APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
-                      _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
-                      _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
-                      ])])
+          AS_IF([test "x$ax_enable_debug" = xno],
+            [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
+                  [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
+                  AS_IF([test "x$ac_c_gcc_recent" = xyes],
+                        [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
+                        _APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
+                        _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
+                        _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
+                        ])])])
 
          AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
                [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])],
                [_APPEND_COMPILE_FLAGS_ERROR([-Wno-pragmas])])
 
+         AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
+             [AX_APPEND_FLAG([-Werror])])
+
           AC_LANG_POP([C])
   ])
 
@@ -210,17 +223,18 @@ AC_DEFUN([_HARDEN_CXX_COMPILER_FLAGS],
             _APPEND_COMPILE_FLAGS_ERROR([-fwrapv])
             _APPEND_COMPILE_FLAGS_ERROR([-fmudflapt])
 
-            AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
+            AS_IF([test "x$ax_enable_debug" = xno],
+            [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
                   [_APPEND_COMPILE_FLAGS_ERROR([-fstack-check])
                   AS_IF([test "x$ac_c_gcc_recent" = xyes],
                         [_APPEND_COMPILE_FLAGS_ERROR([-D_FORTIFY_SOURCE=2])
                         _APPEND_COMPILE_FLAGS_ERROR([-Wstack-protector])
                         _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector])
                         _APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
-                        ])])
+                        ])])])
 
             AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
-                  [_APPEND_COMPILE_FLAGS_ERROR([-Werror])])
+                  [AX_APPEND_FLAG([-Werror])])
             AC_LANG_POP([C++])
   ])
 
@@ -236,6 +250,7 @@ AC_DEFUN([_HARDEN_CXX_COMPILER_FLAGS],
 # _HARDEN_CC_COMPILER_FLAGS, _HARDEN_CXX_COMPILER_FLAGS, _CC_OTHER_FLAGS
   AC_DEFUN([AX_HARDEN_COMPILER_FLAGS],
            [AC_PREREQ([2.63])dnl
+           AC_REQUIRE([_WARNINGS_AS_ERRORS])
            AC_REQUIRE([AX_APPEND_LINK_FLAGS])
            AC_REQUIRE([AX_COMPILER_VERSION])
            AC_REQUIRE([AX_DEBUG])
@@ -244,11 +259,6 @@ AC_DEFUN([_HARDEN_CXX_COMPILER_FLAGS],
            AC_REQUIRE([gl_VISIBILITY])
            AS_IF([test -n "$CFLAG_VISIBILITY"],[CPPFLAGS="$CPPFLAGS $CFLAG_VISIBILITY"])
 
-           AC_CACHE_CHECK([if all warnings into errors],[ac_cv_warnings_as_errors],
-                          [AS_IF([test "x$ac_cv_vcs_checkout" = xyes],[ac_cv_warnings_as_errors=yes],
-                                 [ac_cv_warnings_as_errors=no])
-                          ])
-
            AC_REQUIRE([_HARDEN_LINKER_FLAGS])
            AC_REQUIRE([_HARDEN_CC_COMPILER_FLAGS])
            AC_REQUIRE([_HARDEN_CXX_COMPILER_FLAGS])