From c81f095fd6c81cd671a8f6b8bb88eee24a0555ec Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sun, 7 Oct 2012 02:01:36 -0400 Subject: [PATCH] Update from ddm4 --- bootstrap.sh | 15 ++- m4/ax_harden_compiler_flags.m4 | 196 ++++++++++++++++++--------------- 2 files changed, 117 insertions(+), 94 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 9c873188..9c46ab79 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -309,24 +309,27 @@ bootstrap() { parse_command_line_options $@ determine_target_platform + DEFAULT_DEV_AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror" + DEFAULT_AUTORECONF_FLAGS="--install --force --verbose -Wall" + if [ -d .git ]; then - AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror" + AUTORECONF_FLAGS=$DEFAULT_DEV_AUTORECONF_FLAGS VCS_CHECKOUT=git elif [ -d .bzr ]; then - AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror" + AUTORECONF_FLAGS=$DEFAULT_DEV_AUTORECONF_FLAGS VCS_CHECKOUT=bzr elif [ -d .svn ]; then - AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror" + AUTORECONF_FLAGS=$DEFAULT_DEV_AUTORECONF_FLAGS VCS_CHECKOUT=svn elif [ -d .hg ]; then - AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror" + AUTORECONF_FLAGS=$DEFAULT_DEV_AUTORECONF_FLAGS VCS_CHECKOUT=hg else - AUTORECONF_FLAGS="--install --force --verbose -Wall" + AUTORECONF_FLAGS=$DEFAULT_AUTORECONF_FLAGS fi if [ -z "$LIBTOOLIZE_FLAGS" ]; then - LIBTOOLIZE_FLAGS="--force --verbose" + LIBTOOLIZE_FLAGS="--force --verbose --install" fi if [ "$PLATFORM" = "darwin" ]; then diff --git a/m4/ax_harden_compiler_flags.m4 b/m4/ax_harden_compiler_flags.m4 index 6fa20c17..e33d41c9 100644 --- a/m4/ax_harden_compiler_flags.m4 +++ b/m4/ax_harden_compiler_flags.m4 @@ -4,7 +4,10 @@ # # SYNOPSIS # -# AX_HARDEN_COMPILER_FLAGS, AX_HARDEN_LINKER_FLAGS, AX_HARDEN_CC_COMPILER_FLAGS, AX_HARDEN_CXX_COMPILER_FLAGS +# AX_HARDEN_COMPILER_FLAGS() +# AX_HARDEN_LINKER_FLAGS() +# AX_HARDEN_CC_COMPILER_FLAGS() +# AX_HARDEN_CXX_COMPILER_FLAGS() # # DESCRIPTION # @@ -53,7 +56,7 @@ # AX_APPEND_COMPILE_FLAGS([-fstack-protector-all]) -- Issues on 32bit compile # AX_APPEND_COMPILE_FLAGS([-Wlong-long]) -- Don't turn on for compatibility issues memcached_stat_st -#serial 2 +#serial 3 AC_DEFUN([AX_HARDEN_LINKER_FLAGS], [ AC_REQUIRE([AX_CHECK_LINK_FLAG]) @@ -61,11 +64,15 @@ AC_REQUIRE([AX_DEBUG]) AC_REQUIRE([AX_CXX_COMPILER_VERSION]) + ax_append_compile_flags_extra= + AS_IF([test "$CLANG" = "yes"],[ax_append_compile_flags_extra="-Werror"]) + AS_IF([test "$ac_cv_vcs_checkout" = yes], [ AX_CHECK_LINK_FLAG([-Werror]) + ax_append_compile_flags_extra= ]) - AX_CHECK_LINK_FLAG([-z relro -z now]) - AX_CHECK_LINK_FLAG([-pie]) + AX_CHECK_LINK_FLAG([-z relro -z now],,[$ax_append_compile_flags_extra]) + AX_CHECK_LINK_FLAG([-pie],,[$ax_append_compile_flags_extra]) ]) AC_DEFUN([AX_HARDEN_CC_COMPILER_FLAGS], [ @@ -77,59 +84,61 @@ AX_APPEND_COMPILE_FLAGS([-g]) AS_IF([test "$ax_enable_debug" = yes], [ - AX_APPEND_COMPILE_FLAGS([-ggdb]) - AX_APPEND_COMPILE_FLAGS([-O0]) + AX_APPEND_COMPILE_FLAGS([-ggdb],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-O0],,[$ax_append_compile_flags_extra]) ],[ - AX_APPEND_COMPILE_FLAGS([-O2]) + AX_APPEND_COMPILE_FLAGS([-O2],,[$ax_append_compile_flags_extra]) ]) ac_cv_warnings_as_errors=no AS_IF([test "$ac_cv_vcs_checkout" = yes], [ - AX_APPEND_COMPILE_FLAGS([-Werror]) - AX_APPEND_COMPILE_FLAGS([-Wpragmas]) + AX_APPEND_COMPILE_FLAGS([-Werror],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-fstack-check],,[$ax_append_compile_flags_extra]) ac_cv_warnings_as_errors=yes ],[ - AX_APPEND_COMPILE_FLAGS([-Wno-pragmas]) + AX_APPEND_COMPILE_FLAGS([-Wno-pragmas],,[$ax_append_compile_flags_extra]) ]) - AX_APPEND_COMPILE_FLAGS([-Wall]) - AX_APPEND_COMPILE_FLAGS([-Wextra]) - AX_APPEND_COMPILE_FLAGS([-std=c99]) + AX_APPEND_COMPILE_FLAGS([-Wall],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wextra],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wunknown-pragmas],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wthis-test-should-fail],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-std=c99],,[$ax_append_compile_flags_extra]) dnl Anything below this comment please keep sorted. - AX_APPEND_COMPILE_FLAGS([--paramssp-buffer-size=1]) - AX_APPEND_COMPILE_FLAGS([-Waddress]) - AX_APPEND_COMPILE_FLAGS([-Warray-bounds]) - AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast]) - dnl AX_APPEND_COMPILE_FLAGS([-Wc++-compat]) - AX_APPEND_COMPILE_FLAGS([-Wchar-subscripts]) - AX_APPEND_COMPILE_FLAGS([-Wcomment]) - AX_APPEND_COMPILE_FLAGS([-Wfloat-equal]) - AX_APPEND_COMPILE_FLAGS([-Wformat-security]) - AX_APPEND_COMPILE_FLAGS([-Wformat=2]) - AX_APPEND_COMPILE_FLAGS([-Wlogical-op]) - AX_APPEND_COMPILE_FLAGS([-Wmaybe-uninitialized]) - AX_APPEND_COMPILE_FLAGS([-Wmissing-field-initializers]) - AX_APPEND_COMPILE_FLAGS([-Wmissing-noreturn]) - AX_APPEND_COMPILE_FLAGS([-Wmissing-prototypes]) - AX_APPEND_COMPILE_FLAGS([-Wnested-externs]) - AX_APPEND_COMPILE_FLAGS([-Wnormalized=id]) - AX_APPEND_COMPILE_FLAGS([-Wold-style-definition]) - AX_APPEND_COMPILE_FLAGS([-Woverride-init]) - AX_APPEND_COMPILE_FLAGS([-Wpointer-arith]) - AX_APPEND_COMPILE_FLAGS([-Wpointer-sign]) - AX_APPEND_COMPILE_FLAGS([-Wredundant-decls]) - AX_APPEND_COMPILE_FLAGS([-Wshadow]) - AX_APPEND_COMPILE_FLAGS([-Wshorten-64-to-32]) - AX_APPEND_COMPILE_FLAGS([-Wsign-compare]) - AX_APPEND_COMPILE_FLAGS([-Wstrict-overflow=1]) - AX_APPEND_COMPILE_FLAGS([-Wstrict-prototypes]) - AX_APPEND_COMPILE_FLAGS([-Wswitch-enum]) - AX_APPEND_COMPILE_FLAGS([-Wundef]) - AX_APPEND_COMPILE_FLAGS([-Wunused-result]) - AX_APPEND_COMPILE_FLAGS([-Wunused-variable]) - AX_APPEND_COMPILE_FLAGS([-Wwrite-strings]) - AX_APPEND_COMPILE_FLAGS([-floop-parallelize-all]) - AX_APPEND_COMPILE_FLAGS([-fwrapv]) + AX_APPEND_COMPILE_FLAGS([--param=ssp-buffer-size=1],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Waddress],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Warray-bounds],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast],,[$ax_append_compile_flags_extra]) + dnl Not in use -Wc++-compat + AX_APPEND_COMPILE_FLAGS([-Wchar-subscripts],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wcomment],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wfloat-equal],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wformat-security],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wformat=2],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wlogical-op],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmaybe-uninitialized],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmissing-field-initializers],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmissing-noreturn],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmissing-prototypes],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wnested-externs],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wnormalized=id],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wold-style-definition],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Woverride-init],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wpointer-arith],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wpointer-sign],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wredundant-decls],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wshadow],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wshorten-64-to-32],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wsign-compare],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wstrict-overflow=1],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wstrict-prototypes],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wswitch-enum],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wundef],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wunused-result],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wunused-variable],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wwrite-strings],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-floop-parallelize-all],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-fwrapv],,[$ax_append_compile_flags_extra]) AC_LANG_POP ]) @@ -139,58 +148,69 @@ AC_LANG_PUSH([C++]) CXXFLAGS= - AX_APPEND_COMPILE_FLAGS([-g]) + AX_APPEND_COMPILE_FLAGS([-g],,[$ax_append_compile_flags_extra]) AS_IF([test "$ax_enable_debug" = yes], [ - AX_APPEND_COMPILE_FLAGS([-O0]) - AX_APPEND_COMPILE_FLAGS([-ggdb]) + AX_APPEND_COMPILE_FLAGS([-O0],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-ggdb],,[$ax_append_compile_flags_extra]) ],[ - AX_APPEND_COMPILE_FLAGS([-O2]) - AX_APPEND_COMPILE_FLAGS([-D_FORTIFY_SOURCE=2]) + AX_APPEND_COMPILE_FLAGS([-O2],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-D_FORTIFY_SOURCE=2],,[$ax_append_compile_flags_extra]) ]) AS_IF([test "$ac_cv_vcs_checkout" = yes], [ - AX_APPEND_COMPILE_FLAGS([-Werror]) - AX_APPEND_COMPILE_FLAGS([-Wpragmas]) + AX_APPEND_COMPILE_FLAGS([-Werror],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-fstack-check],,[$ax_append_compile_flags_extra]) ],[ - AX_APPEND_COMPILE_FLAGS([-Wno-pragmas]) + AX_APPEND_COMPILE_FLAGS([-Wno-pragmas],,[$ax_append_compile_flags_extra]) ]) - AX_APPEND_COMPILE_FLAGS([-Wall]) - AX_APPEND_COMPILE_FLAGS([-Wextra]) + AX_APPEND_COMPILE_FLAGS([-Wall],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wextra],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wunknown-pragmas],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wthis-test-should-fail],,[$ax_append_compile_flags_extra]) dnl Anything below this comment please keep sorted. - AX_APPEND_COMPILE_FLAGS([--paramssp-buffer-size=1]) - AX_APPEND_COMPILE_FLAGS([-Waddress]) - AX_APPEND_COMPILE_FLAGS([-Warray-bounds]) - AX_APPEND_COMPILE_FLAGS([-Wchar-subscripts]) - AX_APPEND_COMPILE_FLAGS([-Wcomment]) - AX_APPEND_COMPILE_FLAGS([-Wctor-dtor-privacy]) - AX_APPEND_COMPILE_FLAGS([-Wfloat-equal]) - AX_APPEND_COMPILE_FLAGS([-Wformat=2]) - AX_APPEND_COMPILE_FLAGS([-Wmaybe-uninitialized]) - AX_APPEND_COMPILE_FLAGS([-Wmissing-field-initializers]) - AX_APPEND_COMPILE_FLAGS([-Wmissing-noreturn]) - AX_APPEND_COMPILE_FLAGS([-Wlogical-op]) - AX_APPEND_COMPILE_FLAGS([-Wnon-virtual-dtor]) - AX_APPEND_COMPILE_FLAGS([-Wnormalized=id]) - AX_APPEND_COMPILE_FLAGS([-Woverloaded-virtual]) - AX_APPEND_COMPILE_FLAGS([-Wpointer-arith]) - AX_APPEND_COMPILE_FLAGS([-Wredundant-decls]) - AX_APPEND_COMPILE_FLAGS([-Wshadow]) - AX_APPEND_COMPILE_FLAGS([-Wshorten-64-to-32]) - AX_APPEND_COMPILE_FLAGS([-Wsign-compare]) - AX_APPEND_COMPILE_FLAGS([-Wstrict-overflow=1]) - AX_APPEND_COMPILE_FLAGS([-Wswitch-enum]) - AX_APPEND_COMPILE_FLAGS([-Wundef]) - AX_APPEND_COMPILE_FLAGS([-Wc++11-compat]) - AX_APPEND_COMPILE_FLAGS([-Wunused-result]) - AX_APPEND_COMPILE_FLAGS([-Wunused-variable]) - AX_APPEND_COMPILE_FLAGS([-Wwrite-strings]) - AX_APPEND_COMPILE_FLAGS([-Wformat-security]) - AX_APPEND_COMPILE_FLAGS([-floop-parallelize-all]) - AX_APPEND_COMPILE_FLAGS([-fwrapv]) + AX_APPEND_COMPILE_FLAGS([--param=ssp-buffer-size=1],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Waddress],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Warray-bounds],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wchar-subscripts],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wcomment],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wctor-dtor-privacy],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wfloat-equal],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wformat=2],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmaybe-uninitialized],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmissing-field-initializers],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wmissing-noreturn],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wlogical-op],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wnon-virtual-dtor],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wnormalized=id],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Woverloaded-virtual],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wpointer-arith],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wredundant-decls],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wshadow],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wshorten-64-to-32],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wsign-compare],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wstrict-overflow=1],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wswitch-enum],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wundef],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wc++11-compat],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wunused-result],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wunused-variable],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wwrite-strings],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-Wformat-security],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-floop-parallelize-all],,[$ax_append_compile_flags_extra]) + AX_APPEND_COMPILE_FLAGS([-fwrapv],,[$ax_append_compile_flags_extra]) AC_LANG_POP ]) AC_DEFUN([AX_HARDEN_COMPILER_FLAGS], [ - AC_REQUIRE([AX_HARDEN_CXX_COMPILER_FLAGS]) + AC_REQUIRE([AX_HARDEN_CXX_COMPILER_FLAGS],,[$ax_append_compile_flags_extra]) + ]) + + AC_DEFUN([AX_CC_OTHER_FLAGS], [ + AC_REQUIRE([AX_APPEND_COMPILE_FLAGS]) + AC_REQUIRE([AX_HARDEN_LINKER_FLAGS]) + + AC_LANG_PUSH([C]) + AX_APPEND_COMPILE_FLAGS([-pipe],,[$ax_append_compile_flags_extra]) + AC_LANG_POP ]) -- 2.30.2