On Sun, Sep 29, 2019 at 01:35:18PM -0400, Sasha Levin wrote:
From: Nick Desaulniers ndesaulniers@google.com
[ Upstream commit a05b9608456e0d4464c6f7ca8572324ace57a3f4 ]
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/#%21msg/clang-built-linux/yydsAAux5hk/GxjqJS...
Suggested-by: Arnd Bergmann arnd@arndb.de Signed-off-by: Nick Desaulniers ndesaulniers@google.com Reviewed-by: Arnd Bergmann arnd@arndb.de Reviewed-by: Linus Walleij linus.walleij@linaro.org Signed-off-by: Russell King rmk+kernel@armlinux.org.uk Signed-off-by: Sasha Levin sashal@kernel.org
arch/arm/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index cf69aab648fbd..f0080864b9ce8 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1595,8 +1595,9 @@ 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
- default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K
- 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 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
-- 2.20.1
Hi Sasha,
This patch will not do anything for 4.14 because CC_IS_CLANG is not defined in this tree. The Kconfig patches that make this symbol possible were not merged until 4.18. I would recommend dropping it (unless Nick has an idea to make this work).
Cheers, Nathan