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

Reply via email to