Messages in this thread Patch in this message | | | Date | Wed, 03 Apr 2024 10:45:36 +0200 | From | "Arnd Bergmann" <> | Subject | Re: include/linux/build_bug.h:78:41: error: static assertion failed: "struct bpf_fib_lookup size check" |
| |
On Wed, Apr 3, 2024, at 10:10, Anton Protopopov wrote: > On Wed, Apr 3, 2024 at 10:03 AM Naresh Kamboju > <naresh.kamboju@linaro.org> wrote: >> >> The arm footbridge_defconfig failed with gcc-13 and gcc-8 on Linux next >> starting from next-20240328..next-20240402. >> >> arm: >> build: >> * gcc-8-footbridge_defconfig - Failed >> * gcc-13-footbridge_defconfig - Failed >> >> Reported-by: Linux Kernel Functional Testing <lkft@linaro.org> >> >> In file included from include/linux/bitfield.h:10, >> from arch/arm/include/asm/ptrace.h:13, >> from arch/arm/include/asm/processor.h:14, >> from include/linux/prefetch.h:15, >> from arch/arm/include/asm/atomic.h:12, >> from include/linux/atomic.h:7, >> from net/core/filter.c:20: >> include/linux/build_bug.h:78:41: error: static assertion failed: >> "struct bpf_fib_lookup size check" >> 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) >> | ^~~~~~~~~~~~~~ > > Thanks, I will take a look today
The problem is CONFIG_AEABI=n, which changes the alignment of sub-word struct members. I had assumed that AEABI is enabled by default for everything already, but it looks like footbridge and a couple of other defconfigs still have it turned off:
$ git grep -l CONFIG_ARCH_MULTI_V7.is.not arch/arm/configs/* | xargs git grep -L AEABI arch/arm/configs/assabet_defconfig arch/arm/configs/collie_defconfig arch/arm/configs/footbridge_defconfig arch/arm/configs/h3600_defconfig arch/arm/configs/jornada720_defconfig arch/arm/configs/neponset_defconfig arch/arm/configs/netwinder_defconfig arch/arm/configs/rpc_defconfig arch/arm/configs/spear3xx_defconfig arch/arm/configs/spear6xx_defconfig arch/arm/configs/spitz_defconfig
Russell still has machines with an OABI toolchain, but I'm not aware of anyone else relying on it. It does cause other problems as well, so I already turned it off a long time ago for my randconfig testing.
We should probably make it the default for everything, except whichever defconfig Russell uses:
--- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1159,7 +1159,7 @@ 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 && !COMPILE_TEST - default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K || CC_IS_CLANG || COMPILE_TEST + 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 Or we could go one step further and make it 'depends on EXPERT', short of removing it entirely.
Arnd
| |