On Wed, May 15, 2019 at 2:17 PM Arnd Bergmann arnd@arndb.de wrote:
Ah, I see the problem now: most of the failed configs do not enable CONFIG_AEABI, which controls the missing symbols.
clang does not support OABI, so it fails in non-EABI configurations.
The best fix should be to hide CONFIG_AEABI when building with clang and force-enable it.
The reason I did not notice this in my own tests is that I have a different patch that force-enables AEABI when building with CONFIG_COMPILE_TEST.
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 9aed25a6019b..fa9a34e579bc 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1547,8 +1547,8 @@ 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
Arnd
So the above patch will allow Clang to build boards that are not explicitly AEABI as AEABI. That should allow the builders to build. Will that cause boot failures if the fs images have been compiled expected OABI kernel support (and try to make use of the FPU)?