aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2025-08-08 12:55:07 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2025-08-08 14:46:57 +0000
commitfdc560aaaedfcf4e3a88379856badd7a153f41cf (patch)
treeb5de4327f66dab734a7963bb9a567d54e907636e /libgcc
parented520bfcf4b2e0879849706dcbf707f9f3ff9da2 (diff)
downloadgcc-fdc560aaaedfcf4e3a88379856badd7a153f41cf.zip
gcc-fdc560aaaedfcf4e3a88379856badd7a153f41cf.tar.gz
gcc-fdc560aaaedfcf4e3a88379856badd7a153f41cf.tar.bz2
aarch64: libgcc: Honor disable-werror [PR117600]
In commit r15-4417-g71c7b446b98aa5, I made -werror mandatory when building libgcc for aarch64. While it achieved its goal (make us fix problems unnoticed so far), there has a been a lot of debate because it couldn't be disabled easily. This patch adds support for --enable-werror/--disable-werror in libgcc, defaulting to --enable-werror for aarch64. Tested on non-bootstrap builds on aarch64-linux-gnu (with -Wno-prio-ctor-dtor removed in order to get an error). libgcc/ChangeLog: PR libgcc/117600 * Makefile.in (WERROR): New. * config/aarch64/t-aarch64: Handle WERROR. * configure: Regenerate. * configure.ac: Add support for --enable-werror.
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/Makefile.in1
-rw-r--r--libgcc/config/aarch64/t-aarch642
-rwxr-xr-xlibgcc/configure19
-rw-r--r--libgcc/configure.ac14
4 files changed, 35 insertions, 1 deletions
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index f7b48dc..e258f94 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -87,6 +87,7 @@ CC = @CC@
CFLAGS = @CFLAGS@
RANLIB = @RANLIB@
LN_S = @LN_S@
+WERROR = @WERROR@
PWD_COMMAND = $${PWDCMD-pwd}
diff --git a/libgcc/config/aarch64/t-aarch64 b/libgcc/config/aarch64/t-aarch64
index d4c5922..c7d83c7 100644
--- a/libgcc/config/aarch64/t-aarch64
+++ b/libgcc/config/aarch64/t-aarch64
@@ -30,4 +30,4 @@ LIB2ADDEH += \
$(srcdir)/config/aarch64/__arm_za_disable.S
SHLIB_MAPFILES += $(srcdir)/config/aarch64/libgcc-sme.ver
-LIBGCC2_CFLAGS += -Werror -Wno-prio-ctor-dtor
+LIBGCC2_CFLAGS += $(WERROR) -Wno-prio-ctor-dtor
diff --git a/libgcc/configure b/libgcc/configure
index 1841833..d5e80d2 100755
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -586,6 +586,7 @@ ac_unique_file="static-object.mk"
ac_includes_default='/* none */'
ac_subst_vars='LTLIBOBJS
LIBOBJS
+WERROR
md_unwind_header
md_unwind_def_header
unwind_header
@@ -720,6 +721,7 @@ enable_tm_clone_registry
with_glibc_version
enable_tls
with_gcc_major_version_only
+enable_werror
'
ac_precious_vars='build_alias
host_alias
@@ -1362,6 +1364,7 @@ Optional Features:
installations without PT_GNU_EH_FRAME support
--disable-tm-clone-registry disable TM clone registry
--enable-tls Use thread-local storage [default=yes]
+ --enable-werror build with -Werror for selected targets
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -5789,6 +5792,22 @@ fi
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+ enableval=$enable_werror;
+case ${enable_werror} in
+ no) WERROR="" ;;
+ *) WERROR="-Werror" ;;
+esac
+
+else
+
+WERROR="-Werror"
+
+fi
+
+
+
# We need multilib support.
ac_config_files="$ac_config_files Makefile"
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index 85e4f1b..65cd3c6 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -733,6 +733,20 @@ AC_SUBST(md_unwind_header)
AC_SUBST(sfp_machine_header)
AC_SUBST(thread_header)
+AC_ARG_ENABLE(werror,
+[AS_HELP_STRING([--enable-werror],
+ [build with -Werror for selected targets])],
+[
+case ${enable_werror} in
+ no) WERROR="" ;;
+ *) WERROR="-Werror" ;;
+esac
+],
+[
+WERROR="-Werror"
+])
+AC_SUBST(WERROR)
+
# We need multilib support.
AC_CONFIG_FILES([Makefile])
AC_CONFIG_COMMANDS([default],