Date: Fri, 31 Oct 2025 12:25:23 +0100 From: Anders Straadt <anders@straadt.dk> To: freebsd-current@freebsd.org Subject: arm64/aarch64 buildworld link error on atomics in lib/libgcc_s (+workaround) Message-ID: <CADzOF%2BJkpDqTG76AhYnUrXokp%2B4ikn8UhznmdjVWkOdTBJfyJg@mail.gmail.com>
index | next in thread | raw e-mail
I get several "non-exported symbols" on atomics like these:
--- all_subdir_bin ---
ld: error: non-exported symbol '__aarch64_cas4_acq' in
'.../arm64.aarch64/tmp/usr/lib/libgcc.a(outline_atomic_cas4_2.o)' is
referenced by DSO '.../arm64.aarch64/tmp/usr/lib/libgcc_s.so'
Last year's commit 361da40536d7f implements a workaround in
sys/conf/kern.mk for the same problem it seems (C11 atomics stuff?),
so I adapted it for lib/libgcc_s/Makefile, and after that buildworld
(and buildkernel) works:
--- a/lib/libgcc_s/Makefile
+++ b/lib/libgcc_s/Makefile
@@ -44,6 +44,10 @@ SRCS+= s_logbf.c
SRCS+= s_scalbn.c
SRCS+= s_scalbnf.c
+.if ${MACHINE_CPUARCH} == "aarch64"
+CFLAGS+= -mno-outline-atomics
+.endif
+
# Don't include long double routines on architectures where long double
# is the same size as double.
.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "powerpc"
FWIW I get the same link error when building on 15.0-BETA3 native*,
and when cross-building (TARGET_ARCH=aarch64) on a 2017-ish Core i7
running 14.3-RELEASE, and the patch works in both cases.
-Anders
*) 14-3.RELEASE only booted in safe mode on my new Lenovo ThinkCentre
Neo 50q / Snapdragon X1-26-100. Normal boot blanked+rebooted after few
seconds; last non-blank frame in a phone video capture shows the line
right before "CPU 0: Qualcomm(...)" on 15.0-BETA3 -- which boots and
finds all 8 cores. The CPU is sluggish though ("World built in 13497
seconds, ncpu: 8, make -j8"), possibly due to some ACPI problem I see
in dmesg every 10 seconds (also, "powerd: no cpufreq(4) support --
aborting"), which is why I'm (new) here in -CURRENT (hi!)
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADzOF%2BJkpDqTG76AhYnUrXokp%2B4ikn8UhznmdjVWkOdTBJfyJg>
