Re: [PATCH] ARM: Kconfig: default to AEABI w/ Clang

From: Arnd Bergmann
Date: Thu Jul 04 2019 - 04:29:56 EST


On Thu, Jul 4, 2019 at 10:13 AM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
> On Tue, Jun 25, 2019 at 11:04 PM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote:
>
> > Clang produces references to __aeabi_uidivmod and __aeabi_idivmod for
> > arm-linux-gnueabi and arm-linux-gnueabihf targets incorrectly when AEABI
> > is not selected (such as when OABI_COMPAT is selected).
> >
> > While this means that OABI userspaces wont be able to upgraded to
> > kernels built with Clang, it means that boards that don't enable AEABI
> > like s3c2410_defconfig will stop failing to link in KernelCI when built
> > with Clang.
> >
> > Link: https://github.com/ClangBuiltLinux/linux/issues/482
> > Link: https://groups.google.com/forum/#!msg/clang-built-linux/yydsAAux5hk/GxjqJSW-AQAJ
> > Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
> > Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>
> As reflecting the state of things with CLANG it's:
> Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
>
> But I think we in general need to have some discussion on how to
> proceed with OABI userspaces.
>
> I am well aware of distributions like OpenWrt using EABI even
> on ARMv4 with "tricks" like this:
> https://github.com/openwrt/openwrt/blob/master/toolchain/gcc/patches/9.1.0/840-armv4_pass_fix-v4bx_to_ld.patch

I did not expect that to be necessary in gcc as long as it supports
building for armv4 (non-t), but I might be missing something here.

> I have one OABI that I can think of would be nice to live on
> and it's the RedHat derivative on my Foorbridge NetWinder.
> OK I wouldn't cry if we have to kill it because it is too hard to
> keep supporting it, but it has been running the latest kernels
> all along so if it's not a huge effort I'd be interested in knowing
> the options.

But do you see any problems with cross-compiling kernels to
EABI with CONFIG_OABI_COMPAT for machines like that?

I would guess that you can't actually build modern kernels
on the RedHat OABI compiler any more as they presumably
predate the current minimum gcc-4.6.

Arnd