[gcc r16-6894] s390: Deprecate -m31
Stefan Schulze Frielinghaus
stefansf@gcc.gnu.org
Mon Jan 19 08:57:58 GMT 2026
https://gcc.gnu.org/g:5886bb453a6a010fc218d90c18febf94a1be30d1
commit r16-6894-g5886bb453a6a010fc218d90c18febf94a1be30d1
Author: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Date: Mon Jan 19 09:56:51 2026 +0100
s390: Deprecate -m31
Support for -m31 is deprecated and will be removed in a future release.
In order to let users know, emit an error/warning during configure. An
error is thrown if --enable-multilib is given implicitly, or if
explicitly but not --enable-obsolete.
ChangeLog:
* configure: Regenerate.
* configure.ac: Deprecate -m31.
gcc/ChangeLog:
* config.gcc: Deprecate -m31.
* doc/invoke.texi: Deprecate -m31.
Diff:
---
configure | 16 ++++++++++++++++
configure.ac | 15 +++++++++++++++
gcc/config.gcc | 9 +++++++++
gcc/doc/invoke.texi | 3 ++-
4 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index bb0905df77fa..576e25348315 100755
--- a/configure
+++ b/configure
@@ -11755,6 +11755,22 @@ case "$target:$have_compiler:$host:$target:$enable_multilib" in
;;
esac
+# For s390, -m31 is deprecated. Emit a warning if --enable-multilib and
+# --enable-obsolete are explicitly specified. If --enable-multilib is
+# specified implicitly or --enable-obsolete is missing, error out.
+case "$target:$enable_multilib:$enable_obsolete" in
+ s390*:yes:yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Support for -m31 is deprecated and will be removed." >&5
+$as_echo "$as_me: WARNING: Support for -m31 is deprecated and will be removed." >&2;}
+ ;;
+ s390*::*)
+ as_fn_error $? "Support for -m31 is deprecated and will be removed. Explicitly specify --disable-multilib or --enable-multilib --enable-obsolete to build it anyway." "$LINENO" 5
+ ;;
+ s390*:yes:*)
+ as_fn_error $? "Support for -m31 is deprecated and will be removed. Specify --enable-obsolete to build it anyway." "$LINENO" 5
+ ;;
+esac
+
# Default to --enable-multilib.
if test x${enable_multilib} = x ; then
target_configargs="--enable-multilib ${target_configargs}"
diff --git a/configure.ac b/configure.ac
index 5b8702567717..31ad7cd04e1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3825,6 +3825,21 @@ case "$target:$have_compiler:$host:$target:$enable_multilib" in
;;
esac
+# For s390, -m31 is deprecated. Emit a warning if --enable-multilib and
+# --enable-obsolete are explicitly specified. If --enable-multilib is
+# specified implicitly or --enable-obsolete is missing, error out.
+case "$target:$enable_multilib:$enable_obsolete" in
+ s390*:yes:yes)
+ AC_MSG_WARN([Support for -m31 is deprecated and will be removed.])
+ ;;
+ s390*::*)
+ AC_MSG_ERROR([Support for -m31 is deprecated and will be removed. Explicitly specify --disable-multilib or --enable-multilib --enable-obsolete to build it anyway.])
+ ;;
+ s390*:yes:*)
+ AC_MSG_ERROR([Support for -m31 is deprecated and will be removed. Specify --enable-obsolete to build it anyway.])
+ ;;
+esac
+
# Default to --enable-multilib.
if test x${enable_multilib} = x ; then
target_configargs="--enable-multilib ${target_configargs}"
diff --git a/gcc/config.gcc b/gcc/config.gcc
index b671e11960be..14b1e9b87e36 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -292,6 +292,15 @@ case ${target} in
fi;;
esac
+case ${target} in
+ s390-*)
+ if test "x$enable_obsolete" != xyes; then
+ echo "*** Configuration ${target} is deprecated and will be removed." >&2
+ echo "*** Specify --enable-obsolete to build it anyway." >&2
+ exit 1
+ fi;;
+esac
+
# Unsupported targets list. Do not put an entry in this list unless
# it would otherwise be caught by a more permissive pattern. The list
# should be in alphabetical order.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 9420462538f7..39c7aee99d78 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -34172,7 +34172,8 @@ GNU/Linux for S/390 ABI@. When @option{-m64} is specified, generate
code compliant to the GNU/Linux for zSeries ABI@. This allows GCC in
particular to generate 64-bit instructions. For the @samp{s390}
targets, the default is @option{-m31}, while the @samp{s390x}
-targets default to @option{-m64}.
+targets default to @option{-m64}. Note, @option{-m31} is deprecated and
+support will be removed.
@opindex mzarch
@opindex mesa
More information about the Gcc-cvs
mailing list