X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fax_harden_compiler_flags.m4;h=91d58b393518ecd50dcd7bd716c4009c388ba5ce;hb=1cd9d18499cc945862e8f9b3d16e9d673441df14;hp=3d5eb2e3500d0fdfb26c8a88124eb2239128df7c;hpb=ac46009041afe0134d3719e7ab6bc467d136ac0b;p=m6w6%2Flibmemcached diff --git a/m4/ax_harden_compiler_flags.m4 b/m4/ax_harden_compiler_flags.m4 index 3d5eb2e3..91d58b39 100644 --- a/m4/ax_harden_compiler_flags.m4 +++ b/m4/ax_harden_compiler_flags.m4 @@ -52,7 +52,14 @@ # ? _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], @@ -148,6 +157,9 @@ AC_DEFUN([_HARDEN_CC_COMPILER_FLAGS], [_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]) ]) @@ -222,7 +234,7 @@ AC_DEFUN([_HARDEN_CXX_COMPILER_FLAGS], ])])]) AS_IF([test "x$ac_cv_warnings_as_errors" = xyes], - [_APPEND_COMPILE_FLAGS_ERROR([-Werror])]) + [AX_APPEND_FLAG([-Werror])]) AC_LANG_POP([C++]) ]) @@ -238,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]) @@ -246,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])