arch.aarch64: don't attempt to use the LSE cpu feature

ARMv8.0-A cpus have an optional LSE feature. This is mandatory in
ARMv8.1-A. By default, gcc will attempt to build support for runtime
detection of the LSE feature on ARMv8.0-A. This causes build failures
when attempting to create a 64-bit userland.

Test packages for this failure include gdb and mesa. Errors manifest
as undefined references to "__aarch64_cas4_acq_rel" or
"__aarch64_swp4_acq_rel" at compile time.

Disable runtime detection to always use its fallback by adding
-mno-outline-atomics to cflags.

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
This commit is contained in:
Ian Leonard 2020-07-28 02:52:07 +00:00
parent 465ddcc939
commit 148f1d563c

View File

@ -23,5 +23,7 @@
# setup ARCH specific *FLAGS
TARGET_CFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mabi=lp64 -Wno-psabi -mtune=$TARGET_CPU"
# Disable runtime checking support of ARMv8.0's optional LSE feature. Breaks gdb and mesa compile.
TARGET_CFLAGS="${TARGET_CFLAGS} -mno-outline-atomics"
TARGET_LDFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mtune=$TARGET_CPU"
GCC_OPTS="--with-abi=lp64 --with-arch=$TARGET_VARIANT"