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

Message ID 20260413114052.2415966-2-jremus@linux.ibm.com
State New
Headers
Series s390: Deprecate s390 32-bit target "s390-*" |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Test passed
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Test passed

Commit Message

Jens Remus April 13, 2026, 11:40 a.m. UTC
  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(+)
  

Patch

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>.