On Sun, Apr 27, 2025 at 07:42:44PM +0200, Dimitry Andric wrote:
> On 27 Apr 2025, at 17:04, Shawn Webb <shawn.w...@hardenedbsd.org> wrote:
> > 
> > On Sat, Apr 26, 2025 at 06:06:54PM +0200, Dimitry Andric wrote:
> ...
> >> Please let me know if you encounter any problems resulting due to this
> >> change, as I intend to MFC it. For example, I tried covering all
> >> incremental build scenarios, but I may have missed some corner case.
> > 
> > Hey Dimitry,
> > 
> > I suspect this may be a problem specific to HardenedBSD, but it looks
> > like cc occasionally crashes. It hits an assert at
> > /usr/src/contrib/llvm-project/clang/lib/Driver/Driver.cpp:2702.
> > 
> > I can reproduce this by running `env SHELL=/bin/sh make buildenv` at
> > the top of /usr/src. Though, it doesn't reproduce 100%, but perhaps
> > around 60%.
> 
> It's asserting on this line:
> 
>             assert(!CCGenDiagnostics && "stdin produces no crash reproducer");
> 
> I think during make buildenv the make framework will run cc --version
> and ld --version to get at the compiler and linker version, but it could
> be that it's doing some weird combination that hasn't been thought of.
> Can you get the exact command line out of the debugger?

For some reason, I'm failing to figure out how to view the program's
invocation using lldb or gdb. But, running `strings
/usr/obj/usr/src/amd64.amd64/cc.core`, I see this, which may or may
not be the arguments passed to cc:

==== BEGIN OUTPUT ====
"-cc1" "-ferror-limit" "19" "-o" "-" "-disable-free" "-E" "-x" "c" "-" 
"-tune-cpu" "generic" "-target-cpu" "x86-64" "-triple"
 "x86_64-unknown-freebsd15.0" "-resource-dir" "/usr/lib/clang/19" "-isystem" 
"/usr/lib/clang/19/include" "-internal-externc-i
system" "/usr/include" "-std=gnu17" "-fskip-odr-check-in-gmf" 
"-ftrivial-auto-var-init=zero" "-fgnuc-version=4.2.1" "-ffp-con
tract=on" "-fno-experimental-relative-c++-abi-vtables" "-fno-file-reproducible" 
"-O0" "-fdebug-compilation-dir=/usr/obj/usr/s
rc/amd64.amd64" "-fcoverage-compilation-dir=/usr/obj/usr/src/amd64.amd64" 
"-faddrsig" "-mrelocation-model" "static" "-debugge
r-tuning=gdb" "-funwind-tables=2" "-mconstructor-aliases" 
"-clear-ast-before-backend" "-main-file-name" "-" "-mframe-pointer=
all" "-fdiagnostics-hotness-threshold=0" "-fdiagnostics-misexpect-tolerance=0" 
"-D" "__GCC_HAVE_DWARF2_CFI_ASM=1"
==== END OUTPUT ====

I hope that helps. Otherwise, can you provide me a hint as to how to
get lldb/gdb to show the arguments passed to cc?

Thanks,

-- 
Shawn Webb
Cofounder / Security Engineer
HardenedBSD

Signal Username:  shawn_webb.74
Tor-ified Signal: +1 303-901-1600 / shawn_webb_opsec.50
https://git.hardenedbsd.org/hardenedbsd/pubkeys/-/raw/master/Shawn_Webb/03A4CBEBB82EA5A67D9F3853FF2E67A277F8E1FA.pub.asc

Attachment: signature.asc
Description: PGP signature

Reply via email to