Re: LLVM broken on main (arm64)?

From: Kevin Bowling <kevin.bowling_at_kev009.com>
Date: Mon, 28 Jul 2025 07:38:03 UTC
On Sun, Jul 27, 2025 at 7:36 PM <cyric@mm.st> wrote:
>
> Lexi Winter wrote:
> > Dimitry Andric:
> >> On 27 Jul 2025, at 12:44, Herbert J. Skuhra <herbert@gojira.at> wrote:
> >>>
> >>> after updating from main-n279078-1f2c178e5688 to
> >>> main-n279105-9b3055d0d4bc (arm64) I have the following issue:
> >>>
> >>> $ cc
> >>> PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
> >>> Stack dump:
> >>> 0.      Program arguments: cc
> >>> 1.      Compilation construction
> >>> Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
> >>> 0  libprivatellvm.so.19 0x00000edc041485ec llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 72
> >>> 1  libprivatellvm.so.19 0x00000edc041464ec llvm::sys::RunSignalHandlers() + 128
> >>> 2  libprivatellvm.so.19 0x00000edc04148d48 llvm::support::detail::provider_format_adapter<int>::format(llvm::raw_ostream&, llvm::StringRef) + 412
> >>> 3  libthr.so.3          0x00000edc06bafc38 _pthread_sigmask + 1320
> >>> Segmentation fault
> >>
> >> That's a very short trace, with no useful information. Maybe installworld was half-finished?
> >
> > i am seeing something similar on amd64 after updating past 9b3055d0d4bc:
> >
> > 1& 1? 172!freebsd15 ~/src/bsd/dev [lf/dev/pkgbase-toolchain]% cc
> >
> > PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
> > Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
> > 0  libprivatellvm.so.19 0x00001ca34ed8f2c9 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 57
> > 1  libprivatellvm.so.19 0x00001ca34ed8d185 llvm::sys::RunSignalHandlers() + 85
> > 2  libprivatellvm.so.19 0x00001ca34ed8f9d7 llvm::support::detail::provider_format_adapter<int>::format(llvm::raw_ostream&, llvm::StringRef) + 375
> > 3  libthr.so.3          0x00001ca352fc88ec _pthread_sigmask + 1340
> > 4  libthr.so.3          0x00001ca352fc7ebb pthread_signals_unblock_np + 1467
> > 5  libthr.so.3          0x00001ca34449d2d3 pthread_signals_unblock_np + 18446744073462962643
> > 6  libprivatellvm.so.19 0x00001ca34d5b28be llvm::cl::opt<int, false, llvm::cl::parser<int>>::~opt() + 62
> > 7  libc.so.7            0x00001ca35434131f __cxa_finalize + 351
> > [2]    5802 bus error (core dumped)  cc
> >
> > i'm using pkgbase so unlikely to be a partial install.  could it be that
> > this change requires a clean build?
>
> And it looks like this for me, amd64, WITHOUT_CLEAN build (default):

Can you confirm if simply setting WITH_LLVM_ASSERTIONS fixes the
issue?  No clean, no blowing away /usr/obj, etc.  I just need a
confirmation from someone that a reversion would actually work or if
we are stuck in for something deeper.

> $ cc --version
> FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git
> llvmorg-19.1.7-0-gcd708029e0b2)
> Target: x86_64-unknown-freebsd15.0
> Thread model: posix
> InstalledDir: /usr/bin
> Build config: +assertions
> zsh: abort (core dumped)  cc --version
>
> (gdb) bt
> #0  kill () at kill.S:4
> #1  0x0000062f57af2540 in __fail (msg=0x62f579f5aa5 "stack overflow
> detected; terminated")
>     at /usr/src/lib/libc/secure/libc_stack_protector.c:119
> #2  0x0000062f57af24b0 in __stack_chk_fail () at
> /usr/src/lib/libc/secure/libc_stack_protector.c:126
> #3  0x0000062f49fcebb6 in BuildCompilation () at
> /data/obj/usr/src/amd64.amd64/tmp/usr/include/c++/v1/string:2330
> #4  0x000006272564d3e4 in clang_main () at
> /usr/src/contrib/llvm-project/clang/tools/driver/driver.cpp:361
> #5  0x000006272564bc22 in main () at
> /usr/src/usr.bin/clang/clang/clang-driver.cpp:17
>