Hi Erik, similar to what I did for libsndfile, this is to simplify the handling of adding -D_FORTIFY_SOURCE=2. Regards David
David Seifert
2017-Feb-04 10:51 UTC
[flac-dev] [PATCH] Clean up CFLAGS detecting code and add AX macro for _FORTIFY_SOURCE
--- configure.ac | 23 ++------------------ m4/ax_add_fortify_source.m4 | 53 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 m4/ax_add_fortify_source.m4 diff --git a/configure.ac b/configure.ac index 8576cae5..c5b63370 100644 --- a/configure.ac +++ b/configure.ac @@ -393,9 +393,7 @@ fi dnl If debugging is disabled AND no CFLAGS/CXXFLAGS/CPPFLAGS/LDFLAGS dnl are provided, we can set defaults to our liking AS_IF([test "x${ax_enable_debug}" = "xno" && test "x${enable_flags_setting}" = "xyes"], [ - AC_PROG_SED - CFLAGS=$(echo "$CFLAGS" | $SED 's/-O2//') - CFLAGS="-O3 -funroll-loops $CFLAGS" + CFLAGS="-O3 -funroll-loops" ]) XIPH_GCC_VERSION @@ -409,24 +407,7 @@ if test x$ac_cv_c_compiler_gnu = xyes ; then dnl some distributions (such as Gentoo) have _FORTIFY_SOURCE always dnl enabled. We test for this situation in order to prevent polluting dnl the console with messages of macro redefinitions. - AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CFLAGS]) - AC_LINK_IFELSE([ - AC_LANG_SOURCE( - [[ - int main() { - #ifndef _FORTIFY_SOURCE - return 0; - #else - this_is_an_error; - #endif - } - ]] - )], [ - AC_MSG_RESULT([yes]) - XIPH_ADD_CFLAGS([-D_FORTIFY_SOURCE=2]) - ], [ - AC_MSG_RESULT([no]) - ]) + AX_ADD_FORTIFY_SOURCE AC_LANG_PUSH([C++]) XIPH_ADD_CXXFLAGS([-Weffc++]) diff --git a/m4/ax_add_fortify_source.m4 b/m4/ax_add_fortify_source.m4 new file mode 100644 index 00000000..d443814b --- /dev/null +++ b/m4/ax_add_fortify_source.m4 @@ -0,0 +1,53 @@ +# ==========================================================================+# http://www.gnu.org/software/autoconf-archive/ax_add_fortify_source.html +# ==========================================================================+# +# SYNOPSIS +# +# AX_ADD_FORTIFY_SOURCE +# +# DESCRIPTION +# +# Check whether -D_FORTIFY_SOURCE=2 can be added to CPPFLAGS without macro +# redefinition warnings. Some distributions (such as Gentoo Linux) enable +# _FORTIFY_SOURCE globally in their compilers, leading to unnecessary +# warnings in the form of +# +# <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror] +# <built-in>: note: this is the location of the previous definition +# +# which is a problem if -Werror is enabled. This macro checks whether +# _FORTIFY_SOURCE is already defined, and if not, adds -D_FORTIFY_SOURCE=2 +# to CPPFLAGS. +# +# LICENSE +# +# Copyright (c) 2017 David Seifert <soap at gentoo.org> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 1 + +AC_DEFUN([AX_ADD_FORTIFY_SOURCE],[ + AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CPPFLAGS]) + AC_LINK_IFELSE([ + AC_LANG_SOURCE( + [[ + int main() { + #ifndef _FORTIFY_SOURCE + return 0; + #else + this_is_an_error; + #endif + } + ]] + )], [ + AC_MSG_RESULT([yes]) + CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + ], [ + AC_MSG_RESULT([no]) + ]) +]) -- 2.11.1
Erik de Castro Lopo
2017-Feb-05 09:47 UTC
[flac-dev] [PATCH] Clean up CFLAGS detecting code and add AX macro for _FORTIFY_SOURCE
David Seifert wrote:> - AC_PROG_SED > - CFLAGS=$(echo "$CFLAGS" | $SED 's/-O2//') > - CFLAGS="-O3 -funroll-loops $CFLAGS" > + CFLAGS="-O3 -funroll-loops"Doesn't this mean that `-O2` and `-O3` will end up in CFLAGS? Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
Erik de Castro Lopo
2017-Feb-06 08:55 UTC
[flac-dev] [PATCH] Clean up CFLAGS detecting code and add AX macro for _FORTIFY_SOURCE
David Seifert wrote:> ---Applied. Thanks. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
Apparently Analagous Threads
- [PATCH 1/2] Do not override CFLAGS, as CFLAGS is a user flag.
- Minor CFLAGS-related cleanups
- Updated CFLAGS patches and make test compilation conditional
- [PATCH 1/4] Do not override CFLAGS, as CFLAGS is a user flag.
- [PATCH] configure: Don't define _FORTIFY_SOURCE.