Re: git: 51e8e8b0f369 - main - Merge commit e24f90190c77 from llvm git (by Brad Smith):

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sat, 01 Nov 2025 18:40:54 UTC
On 31 Oct 2025, at 17:20, Jose Luis Duran <jlduran@FreeBSD.org> wrote:
> 
> On Fri, Oct 31, 2025 at 12:48 PM Dimitry Andric <dim@freebsd.org> wrote:
>> 
>> On 31 Oct 2025, at 14:48, Jose Luis Duran <jlduran@FreeBSD.org> wrote:
>>> 
>>> On Wed, Oct 29, 2025 at 3:50 PM Dimitry Andric <dim@freebsd.org> wrote:
>>>> 
>>>> The branch main has been updated by dim:
>>>> 
>>>> URL: https://cgit.FreeBSD.org/src/commit/?id=51e8e8b0f36933814b1be08913857727876aece5
>>>> 
>>>> commit 51e8e8b0f36933814b1be08913857727876aece5
>>>> Author:     Dimitry Andric <dim@FreeBSD.org>
>>>> AuthorDate: 2025-10-29 18:49:54 +0000
>>>> Commit:     Dimitry Andric <dim@FreeBSD.org>
>>>> CommitDate: 2025-10-29 18:49:54 +0000
>>>> 
>>>>   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.
>>>> 
>>>>   MFC after:      3 days
>>>> ---
>>>> contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.h | 5 +++++
>>>> 1 file changed, 5 insertions(+)
>>>> 
>>>> diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.h b/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.h
>>>> index 7ab63905ed4f..7d090ba682b3 100644
>>>> --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.h
>>>> +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.h
>>>> @@ -78,6 +78,11 @@ public:
>>>>  void AddHIPIncludeArgs(const llvm::opt::ArgList &DriverArgs,
>>>>                         llvm::opt::ArgStringList &CC1Args) const override;
>>>> 
>>>> +  bool IsAArch64OutlineAtomicsDefault(
>>>> +      const llvm::opt::ArgList &Args) const override {
>>>> +    return true;
>>>> +  }
>>>> +
>>>>  UnwindTableLevel
>>>>  getDefaultUnwindTableLevel(const llvm::opt::ArgList &Args) const override;
>>>>  bool isPIEDefault(const llvm::opt::ArgList &Args) const override;
>>> 
>>> I'm sure you're probably aware by now, but aarch64 builds are failing
>>> after this commit:
>>> 
>>> https://ci.freebsd.org/job/FreeBSD-main-aarch64-build/33100/
>> 
>> It's weird, but I cannot reproduce it. For me, both world and kernel build fine.
>> 
>> Does anybody have any particular settings that can be used to reproduce this on a fresh 16-CURRENT or 15-STABLE box?
> 
> I can reproduce it on an aarch64 VM (using a mac studio), vanilla settings:
> 
>    make cleanuniverse <--- very important!
>    make -j $(nproc) buildworld ... as usual

Unfortunately it still does not reproduce for me. I have tried this on two different systems. The current hypothesis is that it is due to a race in the build system.

At the point where the error occurs, libgcc.a (an alias of libcompiler_rt.a) should already have been built, with the __aarch64_* symbols in it. In the logs from ci.freebsd.org <http://ci.freebsd.org/> you can see that libcompiler_rt.a has already been built, and installed into ${WORLDTMP}. So it's still a mystery why this error even occurs.

-Dimitry