[PATCH v1 1/1] s390: Deprecate s390 32-bit target "s390-*"

Jens Remus jremus@linux.ibm.com
Mon Apr 13 11:40:52 GMT 2026


The s390 32-bit target (s390-*) is deprecated and planned for removal
in a future release, along with the elf32-s390 target format.  Emit an
error for this target during configure, which can be overridden using
option --enable-obsolete.

Linux Kernel 6.19 removed s390 32-bit compatibility support. [1]
Glibc 2.43 deprecated s390 32-bit with the intent to remove it in a
future release. [2]
GCC 16 will deprecate s390 32-bit (compiler option -m31) with the intent
to remove it in a future release. [3]

The s390 64-bit target (s390x-*) remains supported.

[1]: Linux kernel 6.19 commit 8e0b986c59c6 ("s390: Remove compat support"),
     https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8e0b986c59c6
[2]: Glibc 2.43 commit 638d437dbf9c ("Deprecate s390-linux-gnu (31bit)"),
     https://sourceware.org/git/glibc.git?a=commitdiff;h=638d437dbf9c
[3]: GCC 16 commit 5886bb453a6a ("s390: Deprecate -m31"),
     https://gcc.gnu.org/git/gcc.git?h=5886bb453a6a

bfd/
	* binutils/NEWS: Deprecate s390 32-bit target "s390-*".
	* config.bfd: Require --enable-obsolete to build s390 32-bit
	target "s390-*".

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
---
 bfd/config.bfd | 1 +
 binutils/NEWS  | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/bfd/config.bfd b/bfd/config.bfd
index 9472a481f81c..2d00d07cdc8d 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -48,6 +48,7 @@ targ_underscore=no
 
 # Catch obsolete configurations.
 case $targ in
+ s390-* | \
  null)
     if test "x$enable_obsolete" != xyes; then
       echo "*** Configuration $targ is obsolete." >&2
diff --git a/binutils/NEWS b/binutils/NEWS
index 1a3c25d1fe7c..53f317a8070c 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,13 @@
 -*- text -*-
 
+* The s390 32-bit target (s390-*) is deprecated and planned for removal in a
+  future release, along with the elf32-s390 target format.  configure emits
+  an error for this target, which can be overridden using --enable-obsolete.
+  Linux Kernel 6.19 removed s390 32-bit compatibility support.  Glibc 2.43
+  has and GCC 16 will deprecate s390 32-bit, both with the intent to remove
+  it in a future release.
+  The s390 64-bit target (s390x-*) remains supported.
+
 * Add --map-global-vars option to objdump which displays the location and type
   of global variables in object files. This feature was developed by Guillaume
   Vacherias <guillaume.vacherias@foss.st.com>.
-- 
2.51.0



More information about the Binutils mailing list