Re: [PATCH v2 01/19] ARM: use CONFIG_AEABI by default everywhere
"Sverdlin, Alexander" <[email protected]> Fri, 3 Jul 2026 17:29:13 +0000
| Newsgroups | dev.linux.lists.soc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Arnd, On Wed, 2026-07-01 at 23:23 +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <[email protected]> > > 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 <[email protected]> > Signed-off-by: Arnd Bergmann <[email protected]> for EP93xx: Acked-by: Alexander Sverdlin <[email protected]> > --- > 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