* `-Werror` can cause issues when a more recent version of GCC compiles
  an older version:
  - https://bugs.gentoo.org/229059
  - https://bugs.gentoo.org/475350
  - https://bugs.gentoo.org/667104

libatomic/ChangeLog:

        * libatomic/configure.ac: Support --disable-werror.
        * libatomic/configure: Regenerate.

libbacktrace/ChangeLog:

        * libbacktrace/configure.ac: Support --disable-werror.
        * libbacktrace/configure: Regenerate.

libgo/ChangeLog:

        * libgo/configure.ac: Support --disable-werror.
        * libgo/configure: Regenerate.

libgomp/ChangeLog:

        * libgomp/configure.ac: Support --disable-werror.
        * libgomp/configure: Regenerate.

libitm/ChangeLog:

        * libitm/configure.ac: Support --disable-werror.
        * libitm/configure: Regenerate.

libsanitizer/ChangeLog:

        * libsanitizer/configure.ac: Support --disable-werror.
        * libsanitizer/libbacktrace/Makefile.am (WARN_FLAGS): Remove.
---
 libatomic/configure.ac                | 6 ++++--
 libbacktrace/configure.ac             | 7 ++++---
 libgo/configure.ac                    | 8 ++++----
 libgomp/configure.ac                  | 6 ++++--
 libitm/configure.ac                   | 6 ++++--
 libsanitizer/configure.ac             | 9 +++++++++
 libsanitizer/libbacktrace/Makefile.am | 2 --
 7 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/libatomic/configure.ac b/libatomic/configure.ac
index f350b9b3509..c715d06fe8b 100644
--- a/libatomic/configure.ac
+++ b/libatomic/configure.ac
@@ -251,10 +251,12 @@ LIBAT_ENABLE_SYMVERS
 CFLAGS="$save_CFLAGS"
 AC_CACHE_SAVE
 
+AC_ARG_ENABLE([werror], [
+  AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
 # Add -Wall -Werror if we are using GCC.
-if test "x$GCC" = "xyes"; then
+AS_IF([test "x$enable_werror" != "xno" && test "x$GCC" = "xyes"], [
   XCFLAGS="$XCFLAGS -Wall -Werror"
-fi
+])
 
 # Add CET specific flags if CET is enabled
 GCC_CET_FLAGS(CET_FLAGS)
diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac
index 0dfd82bc03e..f18de946597 100644
--- a/libbacktrace/configure.ac
+++ b/libbacktrace/configure.ac
@@ -145,10 +145,11 @@ ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings 
-Wstrict-prototypes \
                          -Wmissing-format-attribute -Wcast-qual],
                          [WARN_FLAGS])
 
-if test -n "${with_target_subdir}"; then
+AC_ARG_ENABLE([werror], [
+  AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
+AS_IF([test "x$enable_werror" != "xno" && test -n "${with_target_subdir}"], [
   WARN_FLAGS="$WARN_FLAGS -Werror"
-fi
-
+])
 AC_SUBST(WARN_FLAGS)
 
 if test -n "${with_target_subdir}"; then
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 1f4f32dae2b..11dd9a7fc21 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -62,11 +62,11 @@ AC_PROG_AWK
 WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual'
 AC_SUBST(WARN_FLAGS)
 
-AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror],
-                                      [turns on -Werror @<:@default=yes@:>@])])
-if test "x$enable_werror" != "xno"; then
+AC_ARG_ENABLE([werror], [
+  AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
+AS_IF([test "x$enable_werror" != "xno" && test "x$GCC" = "xyes"], [
   WERROR="-Werror"
-fi
+])
 AC_SUBST(WERROR)
 
 glibgo_toolexecdir=no
diff --git a/libgomp/configure.ac b/libgomp/configure.ac
index bfb613b91f0..9b77c8f44e8 100644
--- a/libgomp/configure.ac
+++ b/libgomp/configure.ac
@@ -121,10 +121,12 @@ AC_SUBST(CFLAGS)
 # in both places for now and restore CFLAGS at the end of config.
 save_CFLAGS="$CFLAGS"
 
+AC_ARG_ENABLE([werror], [
+  AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
 # Add -Wall -Werror if we are using GCC.
-if test "x$GCC" = "xyes"; then
+AS_IF([test "x$enable_werror" != "xno" && test "x$GCC" = "xyes"], [
   XCFLAGS="$XCFLAGS -Wall -Werror"
-fi
+])
 
 # Find other programs we need.
 AC_CHECK_TOOL(AR, ar)
diff --git a/libitm/configure.ac b/libitm/configure.ac
index ac81b146845..616158f5c43 100644
--- a/libitm/configure.ac
+++ b/libitm/configure.ac
@@ -261,10 +261,12 @@ GCC_CHECK_ELF_STYLE_WEAKREF
 CFLAGS="$save_CFLAGS"
 AC_CACHE_SAVE
 
+AC_ARG_ENABLE([werror], [
+  AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
 # Add -Wall -Werror if we are using GCC.
-if test "x$GCC" = "xyes"; then
+AS_IF([test "x$enable_werror" != "xno" && test "x$GCC" = "xyes"], [
   XCFLAGS="$XCFLAGS -Wall -Werror"
-fi
+])
 
 XCFLAGS="$XCFLAGS $XPCFLAGS"
 
diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac
index 13cd302030d..432f05d160a 100644
--- a/libsanitizer/configure.ac
+++ b/libsanitizer/configure.ac
@@ -400,6 +400,15 @@ fi
 AC_SUBST([TSAN_TARGET_DEPENDENT_OBJECTS])
 AC_SUBST([SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS])
 
+AC_ARG_ENABLE([werror], [
+  AS_HELP_STRING([--disable-werror], [disable building with -Werror])])
+
+WARN_FLAGS="-Wextra -Wall -Wwrite-strings -Wmissing-format-attribute 
-Wcast-qual"
+AS_IF([test "x$enable_werror" != "xno"], [
+  WARN_FLAGS="$WARN_FLAGS -Werror"
+])
+AC_SUBST([WARN_FLAGS])
+
 # Determine what GCC version number to use in filesystem paths.
 GCC_BASE_VER
 
diff --git a/libsanitizer/libbacktrace/Makefile.am 
b/libsanitizer/libbacktrace/Makefile.am
index 16accd468df..0cf8d2104c0 100644
--- a/libsanitizer/libbacktrace/Makefile.am
+++ b/libsanitizer/libbacktrace/Makefile.am
@@ -34,8 +34,6 @@ ACLOCAL_AMFLAGS = -I ../.. -I ../../config
 AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
        -I ../../libgcc -I .. -I $(top_srcdir) -I $(top_srcdir)/../libbacktrace
 
-WARN_FLAGS = -W -Wall -Wwrite-strings -Wmissing-format-attribute \
-            -Wcast-qual -Werror
 C_WARN_FLAGS = $(WARN_FLAGS) -Wstrict-prototypes -Wmissing-prototypes 
-Wold-style-definition
 CXX_WARN_FLAGS = $(WARN_FLAGS) -Wno-unused-parameter
 AM_CFLAGS = $(C_WARN_FLAGS)
-- 
2.35.1

Reply via email to