[PATCH v2 01/19] ARM: use CONFIG_AEABI by default everywhere
Sverdlin, Alexander
alexander.sverdlin at siemens.com
Fri Jul 3 10:29:13 PDT 2026
Hi Arnd,
On Wed, 2026-07-01 at 23:23 +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd at arndb.de>
>
> On ARMv4 and ARMv5, the default is still to build for OABI, with
> CONFIG_AEABI disabled, even though distros and toolchains no longer
> support OABI as a target.
>
> Change the default to EABI for all architecture levels and change
> the defconfig entries as follows:
>
> - All machines that used to explicitly enable EABI can drop that line now
> - Machines that are likely to actually use old distros and had NWFPE
> enabled in combination with OABI (rpc, footrbridge, netwinder,
> assabet, neponset) explicitly turn it on now.
> - Machines that already had both EABI and NWFPE disabled in defconfig
> (at91_dt, collie, ep93xx, gemini, h3600, imx_v4_v5, integrator, jornada,
> moxart, multi_v4t, omap1) were likely not usable with either OABI or
> EABI and now use EABI instead implicitly, making it more likely that
> they could work.
>
> Acked-by: Linus Walleij <linus.walleij at linaro.org>
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
for EP93xx:
Acked-by: Alexander Sverdlin <alexander.sverdlin at siemens.com>
> ---
> arch/arm/Kconfig | 15 ++++++---------
> arch/arm/configs/am200epdkit_defconfig | 1 -
> arch/arm/configs/aspeed_g4_defconfig | 1 -
> arch/arm/configs/assabet_defconfig | 1 +
> arch/arm/configs/at91_dt_defconfig | 1 -
> arch/arm/configs/axm55xx_defconfig | 1 -
> arch/arm/configs/bcm2835_defconfig | 1 -
> arch/arm/configs/clps711x_defconfig | 1 -
> arch/arm/configs/collie_defconfig | 1 -
> arch/arm/configs/davinci_all_defconfig | 1 -
> arch/arm/configs/dove_defconfig | 1 -
> arch/arm/configs/ep93xx_defconfig | 1 -
> arch/arm/configs/footbridge_defconfig | 1 +
> arch/arm/configs/gemini_defconfig | 1 -
> arch/arm/configs/h3600_defconfig | 1 -
> arch/arm/configs/hisi_defconfig | 1 -
> arch/arm/configs/imx_v4_v5_defconfig | 1 -
> arch/arm/configs/integrator_defconfig | 1 -
> arch/arm/configs/ixp4xx_defconfig | 1 -
> arch/arm/configs/jornada720_defconfig | 1 -
> arch/arm/configs/keystone_defconfig | 1 -
> arch/arm/configs/lpc32xx_defconfig | 1 -
> arch/arm/configs/mmp2_defconfig | 1 -
> arch/arm/configs/moxart_defconfig | 1 -
> arch/arm/configs/multi_v4t_defconfig | 1 -
> arch/arm/configs/multi_v5_defconfig | 1 -
> arch/arm/configs/mv78xx0_defconfig | 2 --
> arch/arm/configs/mvebu_v5_defconfig | 1 -
> arch/arm/configs/mxs_defconfig | 1 -
> arch/arm/configs/neponset_defconfig | 1 +
> arch/arm/configs/netwinder_defconfig | 1 +
> arch/arm/configs/nhk8815_defconfig | 1 -
> arch/arm/configs/omap1_defconfig | 2 --
> arch/arm/configs/orion5x_defconfig | 2 --
> arch/arm/configs/pxa168_defconfig | 2 --
> arch/arm/configs/pxa3xx_defconfig | 2 --
> arch/arm/configs/pxa910_defconfig | 2 --
> arch/arm/configs/pxa_defconfig | 1 -
> arch/arm/configs/rpc_defconfig | 1 +
> arch/arm/configs/spear13xx_defconfig | 1 -
> arch/arm/configs/spitz_defconfig | 1 -
> arch/arm/configs/versatile_defconfig | 1 -
> arch/arm/configs/vt8500_v6_v7_defconfig | 1 -
> arch/arm/configs/wpcm450_defconfig | 1 -
> 44 files changed, 11 insertions(+), 53 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9187240a02db..ccc0114d30de 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1153,17 +1153,14 @@ config ARM_PATCH_IDIV
> config AEABI
> bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \
> !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG
> - default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K || CC_IS_CLANG
> + default y
> help
> - This option allows for the kernel to be compiled using the latest
> - ARM ABI (aka EABI). This is only useful if you are using a user
> - space environment that is also compiled with EABI.
> + The Arm EABI is the default ABI on all modern Linux
> + distributions, replacing the obsolete and "OABI" that was
> + commonly used on ARMv4 distributions before ca. 2013.
>
> - Since there are major incompatibilities between the legacy ABI and
> - EABI, especially with regard to structure member alignment, this
> - option also changes the kernel syscall calling convention to
> - disambiguate both ABIs and allow for backward compatibility support
> - (selected with CONFIG_OABI_COMPAT).
> + Everyone should enable this, as support for OABI user space
> + was dropped in gcc-4.8 and most distributions after ca. 2013.
>
> config OABI_COMPAT
> bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
>
[]
> diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
> index ce41dc8c435c..6863d8fd7713 100644
> --- a/arch/arm/configs/ep93xx_defconfig
> +++ b/arch/arm/configs/ep93xx_defconfig
> @@ -18,7 +18,6 @@ CONFIG_MACH_EDB9315=y
> CONFIG_MACH_EDB9315A=y
> CONFIG_MACH_TS72XX=y
> CONFIG_MACH_VISION_EP9307=y
> -CONFIG_AEABI=y
> CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/nfs ip=bootp"
> CONFIG_MODULES=y
> CONFIG_MODULE_UNLOAD=y
--
Alexander Sverdlin
Siemens AG
www.siemens.com
More information about the linux-arm-kernel
mailing list