X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fax_harden_compiler_flags.m4;h=91d58b393518ecd50dcd7bd716c4009c388ba5ce;hb=1cd9d18499cc945862e8f9b3d16e9d673441df14;hp=caab7853d1fd3240e60e65203297b23d2f3a9f95;hpb=b973bd495b75c6c0f7fd38d32e73a8383d4b1dc8;p=m6w6%2Flibmemcached diff --git a/m4/ax_harden_compiler_flags.m4 b/m4/ax_harden_compiler_flags.m4 index caab7853..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], @@ -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])