From: Arnd Bergmann <arnd@kernel.org>
To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: Arnd Bergmann <arnd@arndb.de>,
Aaro Koskinen <aaro.koskinen@iki.fi>,
Andrew Lunn <andrew@lunn.ch>, Ard Biesheuvel <ardb@kernel.org>,
Daniel Mack <daniel@zonque.org>,
Gregory Clement <gregory.clement@bootlin.com>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
"Jeremy J. Peper" <jeremy@jeremypeper.com>,
Kristoffer Ericson <kristoffer.ericson@gmail.com>,
Krzysztof Kozlowski <krzk@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Mark Brown <broonie@kernel.org>,
Ralph Siemsen <ralph.siemsen@linaro.org>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Russell King <linux@armlinux.org.uk>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Tony Lindgren <tony@atomide.com>
Subject: [PATCH 02/15] ARM: limit OABI support to StrongARM CPUs
Date: Wed, 4 Dec 2024 11:28:51 +0100 [thread overview]
Message-ID: <20241204102904.1863796-3-arnd@kernel.org> (raw)
In-Reply-To: <20241204102904.1863796-1-arnd@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
As discussed on the mailing lists, there is no way to build OABI userspace
binaries any more since gcc-4.8, and now support is also getting dropped in
binutils, which will make it impossible to build pure OABI kernels at some
point in the future.
I found no evidence of anyone still sing OABI userspace on embedded systems
that keep getting kernel updates, but there are a few desktop-class machines
that date back to the 1990s using Intel StrongARM processors that were
supported by old versions of Debian, Red Hat or the official Corel
Netwinder distribution.
Add a much stricter Kconfig dependency for both native OABI and OABI_COMPAT
enabled kernels, only allowing either of them to be selected when building
a kernel that targets a StrongARM based machine.
Link: https://lore.kernel.org/lkml/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/Kconfig | 14 +++++++-------
arch/arm/configs/am200epdkit_defconfig | 1 -
arch/arm/configs/axm55xx_defconfig | 1 -
| 2 +-
arch/arm/configs/neponset_defconfig | 2 +-
arch/arm/configs/versatile_defconfig | 1 -
6 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f8f127650ace..54f5cc12dea4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1161,8 +1161,7 @@ config ARM_PATCH_IDIV
code to do integer division.
config AEABI
- bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \
- !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG
+ bool "Use the ARM EABI to compile the kernel" if CPU_SA110 || CPU_SA1100
default y
help
The Arm EABI is the default ABI on all modern Linux
@@ -1172,9 +1171,13 @@ config AEABI
Everyone should enable this, as support for OABI user space
was dropped in gcc-4.8 and most distributions after ca. 2013.
+ Support for OABI mode will be removed from the kernel
+ once Intel StrongARM CPUs are phased out.
+
config OABI_COMPAT
bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
depends on AEABI && !THUMB2_KERNEL
+ depends on CPU_SA110 || CPU_SA1100
help
This option preserves the old syscall interface along with the
new (ARM EABI) one. It also provides a compatibility layer to
@@ -1187,11 +1190,8 @@ config OABI_COMPAT
selected, since there is no way yet to sensibly distinguish
between calling conventions during filtering.
- If you know you'll be using only pure EABI user space then you
- can say N here. If this option is not selected and you attempt
- to execute a legacy ABI binary then the result will be
- UNPREDICTABLE (in fact it can be predicted that it won't work
- at all). If in doubt say N.
+ Support for OABI_COMPAT will be removed from the kernel
+ once Intel StrongARM CPUs are phased out.
config ARCH_SELECT_MEMORY_MODEL
def_bool y
diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig
index 22397d45f4a0..55c5c08a5f96 100644
--- a/arch/arm/configs/am200epdkit_defconfig
+++ b/arch/arm/configs/am200epdkit_defconfig
@@ -7,7 +7,6 @@ CONFIG_EXPERT=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y
CONFIG_ARCH_GUMSTIX=y
-# CONFIG_OABI_COMPAT is not set
CONFIG_CMDLINE="console=ttyS0,115200n8 root=1f01 rootfstype=jffs2"
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
diff --git a/arch/arm/configs/axm55xx_defconfig b/arch/arm/configs/axm55xx_defconfig
index 39b06d59d87a..9d14b987ee94 100644
--- a/arch/arm/configs/axm55xx_defconfig
+++ b/arch/arm/configs/axm55xx_defconfig
@@ -38,7 +38,6 @@ CONFIG_PCIE_AXXIA=y
CONFIG_SMP=y
CONFIG_NR_CPUS=16
CONFIG_HOTPLUG_CPU=y
-CONFIG_OABI_COMPAT=y
CONFIG_HIGHMEM=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
--git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 589b7b1df8c6..e8bf9847d35d 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -9,9 +9,9 @@ CONFIG_ARCH_MULTI_V4=y
CONFIG_ARCH_FOOTBRIDGE=y
CONFIG_ARCH_EBSA285_HOST=y
CONFIG_ARCH_NETWINDER=y
+# CONFIG_AEABI is not set
CONFIG_FPE_NWFPE=y
CONFIG_FPE_NWFPE_XP=y
-# CONFIG_AEABI is not set
CONFIG_MODULES=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_ACORN_PARTITION=y
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index a8833b2ce335..7a7b6a896f85 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -6,12 +6,12 @@ CONFIG_ARCH_MULTI_V4=y
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y
CONFIG_ASSABET_NEPONSET=y
+# CONFIG_AEABI is not set
CONFIG_ZBOOT_ROM_TEXT=0x80000
CONFIG_ZBOOT_ROM_BSS=0xc1000000
CONFIG_ZBOOT_ROM=y
CONFIG_CMDLINE="console=ttySA0,38400n8 cpufreq=221200 rw root=/dev/mtdblock2 mtdparts=sa1100:512K(boot),1M(kernel),2560K(initrd),4M(root) load_ramdisk=1 prompt_ramdisk=0 mem=32M noinitrd initrd=0xc0800000,3M"
CONFIG_FPE_NWFPE=y
-# CONFIG_AEABI is not set
CONFIG_PM=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig
index 8e89debb5a5b..bb9eb9ccbbde 100644
--- a/arch/arm/configs/versatile_defconfig
+++ b/arch/arm/configs/versatile_defconfig
@@ -6,7 +6,6 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_VERSATILE=y
-CONFIG_OABI_COMPAT=y
CONFIG_CMDLINE="root=1f03 mem=32M"
CONFIG_FPE_NWFPE=y
CONFIG_VFP=y
--
2.39.5
next prev parent reply other threads:[~2024-12-04 10:32 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-04 10:28 [PATCH 00/15] ARM: platform and feature deprecation Arnd Bergmann
2024-12-04 10:28 ` [PATCH 01/15] ARM: use CONFIG_AEABI by default everywhere Arnd Bergmann
2024-12-04 13:54 ` Linus Walleij
2024-12-04 10:28 ` Arnd Bergmann [this message]
2024-12-04 13:58 ` [PATCH 02/15] ARM: limit OABI support to StrongARM CPUs Linus Walleij
2024-12-04 14:50 ` Ralph Siemsen
2024-12-04 15:42 ` Russell King (Oracle)
2024-12-04 10:28 ` [PATCH 03/15] ARM: rework ARM11 CPU selection logic Arnd Bergmann
2024-12-04 14:02 ` Linus Walleij
2024-12-04 20:26 ` Arnd Bergmann
2024-12-04 18:47 ` kernel test robot
2024-12-04 20:09 ` kernel test robot
2024-12-04 21:32 ` kernel test robot
2024-12-04 10:28 ` [PATCH 04/15] ARM: deprecate support for ARM1136r0 Arnd Bergmann
2024-12-04 14:03 ` Linus Walleij
2024-12-04 10:28 ` [PATCH 05/15] ARM: turn CONFIG_ATAGS off by default Arnd Bergmann
2024-12-04 14:04 ` Linus Walleij
2024-12-04 10:28 ` [PATCH 06/15] ARM: update DEPRECATED_PARAM_STRUCT removal timeline Arnd Bergmann
2024-12-04 14:04 ` Linus Walleij
2024-12-04 10:28 ` [PATCH 07/15] ARM: s3c64xx: extend deprecation schedule Arnd Bergmann
2024-12-09 7:36 ` Krzysztof Kozlowski
2024-12-04 10:28 ` [PATCH 08/15] ARM: update FPE_NWFPE help text Arnd Bergmann
2024-12-04 14:06 ` Linus Walleij
2024-12-04 10:28 ` [PATCH 09/15] ARM: mark IWMMXT as deprecated Arnd Bergmann
2024-12-04 10:28 ` [PATCH 10/15] ARM: deprecate ARCH_DOVE Arnd Bergmann
2024-12-04 10:29 ` [PATCH 11/15] ARM: PXA: deprecate remaining board file support Arnd Bergmann
2024-12-04 10:29 ` [PATCH 12/15] ARM: orion5x: mark all board files as deprecated Arnd Bergmann
2024-12-04 15:48 ` Andrew Lunn
2024-12-04 10:29 ` [PATCH 13/15] ARM: mark mach-sa1100 " Arnd Bergmann
2024-12-04 14:18 ` Linus Walleij
2024-12-04 10:29 ` [PATCH 14/15] ARM: mark RiscPC " Arnd Bergmann
2024-12-04 10:29 ` [PATCH 15/15] ARM: mark footbridge " Arnd Bergmann
2024-12-04 14:29 ` Linus Walleij
2024-12-04 14:37 ` Russell King (Oracle)
2024-12-04 15:14 ` Linus Walleij
2024-12-04 15:30 ` Russell King (Oracle)
2024-12-04 14:44 ` Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241204102904.1863796-3-arnd@kernel.org \
--to=arnd@kernel.org \
--cc=aaro.koskinen@iki.fi \
--cc=andrew@lunn.ch \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=daniel@zonque.org \
--cc=gregory.clement@bootlin.com \
--cc=haojian.zhuang@gmail.com \
--cc=jeremy@jeremypeper.com \
--cc=kristoffer.ericson@gmail.com \
--cc=krzk@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=ralph.siemsen@linaro.org \
--cc=robert.jarzmik@free.fr \
--cc=sebastian.hesselbarth@gmail.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.