When building for 32-bit arm with GCC versions >=11 and using the
DPDK-provided cross-file, the initial configuration step fails The
error given is:
config/meson.build:189:8: ERROR: Problem encountered: \
Compiler does not support "armv8-a" arch flag.
but the real problem is actually an fpu-related error which is explained
in the meson log file:
cc1: error: '-mfloat-abi=hard': selected architecture lacks an FPU
This error can be fixed by specifying an fpu explicitly, and a number of
options will work, e.g. -mfpu=neon, -mfpu=fp-armv8. Choosing the latter
here to avoid mandating neon by default.
Fixes: e754875c296c ("config/arm: add aarch32 cross-compilation")
Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]>
---
This patch should fix errors seen in the CI when building for 32-bit arm
on Ubuntu 24.04 and later. CI systems running older Ubuntu using GCC 9
do not show this error, which is why it hasn't been an issue till
recently.
---
config/arm/arm32_armv8_linux_gcc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/config/arm/arm32_armv8_linux_gcc b/config/arm/arm32_armv8_linux_gcc
index abcb182b16..231c9ac7a7 100644
--- a/config/arm/arm32_armv8_linux_gcc
+++ b/config/arm/arm32_armv8_linux_gcc
@@ -13,5 +13,8 @@ cpu_family = 'aarch32'
cpu = 'armv8-a'
endian = 'little'
+[built-in options]
+c_args = '-mfpu=fp-armv8'
+
[properties]
platform = 'generic_aarch32'
--
2.51.0