Re: LLVM broken on main (arm64)?

From: Herbert J. Skuhra <herbert_at_gojira.at>
Date: Sun, 27 Jul 2025 21:30:48 UTC
On Sun, 27 Jul 2025 21:41:13 +0200, Kevin Bowling wrote:
> 
> On Sun, Jul 27, 2025 at 4:58 AM Dimitry Andric <dim@freebsd.org> wrote:
> >
> > On 27 Jul 2025, at 13:33, Lexi Winter <ivy@freebsd.org> 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?
> >
> > I think it's likely that Kevin's
> > https://reviews.freebsd.org/D50388 /
> > https://cgit.freebsd.org/src/commit/?id=9b3055d0d4bc is the cause:
> > it flips MK_LLVM_ASSERTIONS from "yes" to "no" by default. My
> > guess is that some objects, libraries or binaries do not get
> > rebuilt, leading to inconsistencies.
> >
> > There probably has to be another depend-cleanup.sh hack to get
> > over this. Another complication is that in depend-cleanup.sh you
> > don't have access to the MK_xxx options from src.opts.mk.
> 
> That would not be fun because the idea is to allow someone to easily
> toggle both directions, and not blow up the noclean build time for
> everyone unconditionally whacking libprivatellvm.so or the like unless
> there is a trivial way to detect the change.
> 
> I am inclined to back this out if someone can confirm simply setting
> WITH_LLVM_ASSERTIONS fixed the issue.

I updated two amd64 systems without any issues.

After fixing my arm64 system with llvm19 from ports I tried the
following:

- Disable WITH_CCACHE_BUILD in /etc/src.conf
- Wipe /usr/obj
- Build and install 92dfc3fbcd79 and reboot
- Build and install 6c4771c73470 and reboot

Result: no issues

So I guess the problem was caused by ccache but I have no idea why it
only failed on arm64. I also use ccache on the other systems.

--
Herbert