Re: LLVM broken on main (arm64)?

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Mon, 28 Jul 2025 08:09:55 UTC
On Mon, Jul 28, 2025 at 12:38:03AM -0700, Kevin Bowling wrote:
> 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.
Can you make the obj directory different between assertion vs. optimized
build?  Then you do not need a special cleanup.

> 
> > $ 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
> >
>