[Just sending to the correct dev-commits-* list this time.]

On Nov 23, 2025, at 12:29, Mark Millard <[email protected]> wrote:

Dimitry Andric <dim_at_FreeBSD.org> wrote on
Date: Sun, 23 Nov 2025 18:40:10 UTC :

> The branch main has been updated by dim:
> 
> URL: 
> https://cgit.FreeBSD.org/src/commit/?id=3289bace53f31545976fec310b41fa784de75e64
> 
> commit 3289bace53f31545976fec310b41fa784de75e64
> Author: Dimitry Andric <[email protected]>
> AuthorDate: 2025-11-23 15:52:46 +0000
> Commit: Dimitry Andric <[email protected]>
> CommitDate: 2025-11-23 18:40:00 +0000
> 
> Reapply "Merge commit e24f90190c77 from llvm git (by Brad Smith):"
> 
> [Driver] Enable outline atomics for FreeBSD/aarch64 (#156089)
> 
> The compiler_rt helper functions have been built since 12.4, 13.1, 14
> and anything newer.
> 
> This reverts commit bd27bd1f51d049538cc7a0053be9d99110a53ae1.
> 
> Only some people (including the release manager, unfortunately) ran into
> build issues with the previous iteration of this commit, because they
> were bootstrapping the compiler, either via the WITHOUT_SYSTEM_COMPILER
> src.conf(5) setting, or because the build system determined that their
> base system compiler was out of date.
> 
> The bootstrapped compiler would then enable outline atomics and compile
> libgcc_s with these, but because libgcc_s is linked with -nodefaultlibs,
> it could not find the helper routines in libcompiler_rt.a.
> 
> In contrast, people who did not bootstrap the compiler never saw any
> issues, because libgcc_s was built using their 'old' base system
> compiler, and so libgcc_s would not contain any calls to those helper
> routines.
> 
> Fix this by ensuring that libgcc_s is linked against libcompiler_rt.a
> explicitly, similar to some other binaries and libraries that are built
> with -nodefaultlibs.
> 
> Also, bump FREEBSD_CC_VERSION to ensure that everybody gets the updated
> compiler with outline atomics enabled. (This should have been done in
> the first iteration of this commit, because the error would have shown
> up right away then.)
. . .


FYI, in sys/conf/kern.mk :

.if ${MACHINE_CPUARCH} == "aarch64"
. . .
# TODO: support outline atomics
CFLAGS += -mno-outline-atomics
INLINE_LIMIT?=  8000
.endif

It may be fine but it seems to be the only such use of
-mno-outline-atomics the source tree:

# grep -r '\-mno-outline-atomics\>' /usr/src/
/usr/src/sys/conf/kern.mk:CFLAGS += -mno-outline-atomics


===
Mark Millard
marklmi at yahoo.com


Reply via email to