https://gcc.gnu.org/g:5886bb453a6a010fc218d90c18febf94a1be30d1

commit r16-6894-g5886bb453a6a010fc218d90c18febf94a1be30d1
Author: Stefan Schulze Frielinghaus <[email protected]>
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

Reply via email to