[PATCH] Clean up CFLAGS detecting code and add AX macro for _FORTIFY_SOURCE

David Seifert <[email protected]>
Newsgroups gmane.comp.audio.compression.flac.devel
Message-ID <[email protected]>
---
 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 <[email protected]>
+#
+#   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

_______________________________________________
flac-dev mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/flac-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.