[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