Date: Sat, 22 Nov 2025 12:20:28 -0800 From: Mark Millard <marklmi@yahoo.com> To: Konstantin Belousov <kostikbel@gmail.com>, Michal Meloun <mmel@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: mmap( MAP_ANON) is broken on current. (was Still seeing Failed assertion: "p[i] == 0" on armv7 buildworld) [i386 chroot still fails with vm_map.c and vm_object.c patches] Message-ID: <A5CB9EA8-7146-430A-8246-0EAD3B1D1429@yahoo.com> References: <A5CB9EA8-7146-430A-8246-0EAD3B1D1429.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Konstantin Belousov <kostikbel_at_gmail.com> wrote on
Date: Sat, 22 Nov 2025 18:45:32 UTC :
> On Sat, Nov 22, 2025 at 07:01:03PM +0100, Michal Meloun wrote:
> > > Would you please gather the same ddebugging info, with this patch applied?
> > Oups, sorry.
> > In meantime, next round with he vm_map patch finished successfully.
>
> It was still the case of coalescing previous entry and the mapping.
>
> It is weird, the patch ensures that there is no pages in the object
> backing the new region, and due to the ensured properties of the object,
> there should be no way to create pages under us.
> I am almost sure that the provided patch is correct, but it might be
> some additional cases that I miss.
>
> Please apply the following debugging patch, it includes the vm_object'
> part. Instead of allowing the corruption in userspace, kernel should
> panic now. Can you confirm that?
>
> diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
> index 6b09552c5fee..76808b5ad7f1 100644
> --- a/sys/vm/vm_map.c
> +++ b/sys/vm/vm_map.c
> @@ -1743,6 +1743,27 @@ vm_map_insert1(vm_map_t map, vm_object_t object, vm_ooffset_t offset,
> (vm_size_t)(prev_entry->end - prev_entry->start),
> (vm_size_t)(end - prev_entry->end), cred != NULL &&
> (protoeflags & MAP_ENTRY_NEEDS_COPY) == 0)) {
> + vm_object_t obj = prev_entry->object.vm_object;
> + if (obj != NULL) {
> + struct pctrie_iter pages;
> + vm_page_t p;
> +
> + vm_page_iter_init(&pages, obj);
> + p = vm_radix_iter_lookup_ge(&pages,
> + OFF_TO_IDX(prev_entry->offset +
> + prev_entry->end - prev_entry->start));
> + if (p != NULL) {
> + KASSERT(p->pindex >= OFF_TO_IDX(prev_entry->offset +
> + prev_entry->end - prev_entry->start +
> + end - start),
> + ("FOUND page %p pindex %#jx "
> + "e %#jx %#jx %#jx %#jx",
> + p, p->pindex, (uintmax_t)prev_entry->offset,
> + (uintmax_t)prev_entry->end,
> + (uintmax_t)prev_entry->start,
> + (uintmax_t)(end - start)));
> + }
> + }
> /*
> * We were able to extend the object. Determine if we
> * can extend the previous map entry to include the
> diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
> index 5b4517d2bf0c..9bb4e54edd96 100644
> --- a/sys/vm/vm_object.c
> +++ b/sys/vm/vm_object.c
> @@ -2189,13 +2189,19 @@ vm_object_coalesce(vm_object_t prev_object, vm_ooffset_t prev_offset,
> next_size >>= PAGE_SHIFT;
> next_pindex = OFF_TO_IDX(prev_offset) + prev_size;
>
> - if (prev_object->ref_count > 1 &&
> - prev_object->size != next_pindex &&
> + if (prev_object->ref_count > 1 ||
> + prev_object->size != next_pindex ||
> (prev_object->flags & OBJ_ONEMAPPING) == 0) {
> VM_OBJECT_WUNLOCK(prev_object);
> return (FALSE);
> }
>
> + KASSERT(next_pindex + next_size > prev_object->size,
> + ("vm_object_coalesce: "
> + "obj %p next_pindex %#jx next_size %#jx obj_size %#jx",
> + prev_object, (uintmax_t)next_pindex, (uintmax_t)next_size,
> + (uintmax_t)prev_object->size));
> +
> /*
> * Account for the charge.
> */
> @@ -2222,26 +2228,13 @@ vm_object_coalesce(vm_object_t prev_object, vm_ooffset_t prev_offset,
> * Remove any pages that may still be in the object from a previous
> * deallocation.
> */
> - if (next_pindex < prev_object->size) {
> - vm_object_page_remove(prev_object, next_pindex, next_pindex +
> - next_size, 0);
> -#if 0
> - if (prev_object->cred != NULL) {
> - KASSERT(prev_object->charge >=
> - ptoa(prev_object->size - next_pindex),
> - ("object %p overcharged 1 %jx %jx", prev_object,
> - (uintmax_t)next_pindex, (uintmax_t)next_size));
> - prev_object->charge -= ptoa(prev_object->size -
> - next_pindex);
> - }
> -#endif
> - }
> + vm_object_page_remove(prev_object, next_pindex, next_pindex +
> + next_size, 0);
>
> /*
> * Extend the object if necessary.
> */
> - if (next_pindex + next_size > prev_object->size)
> - prev_object->size = next_pindex + next_size;
> + prev_object->size = next_pindex + next_size;
>
> VM_OBJECT_WUNLOCK(prev_object);
> return (TRUE);
For the i386 chroot test context, it still fails like before:
. . .
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/ExtractAPI/ExtractAPIConsumer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/ExtractAPI/Serialization/SymbolGraphSerializer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/ExtractAPI/TypedefUnderlyingTypeResolver.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/AffectedRangeManager.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/BreakableToken.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/ContinuationIndenter.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/DefinitionBlockSeparator.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/Format.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/FormatToken.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/FormatTokenLexer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/IntegerLiteralSeparatorFixer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/MacroCallReconstructor.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/MacroExpander.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/NamespaceEndCommentsFixer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/ObjCPropertyAttributeOrderFixer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/QualifierAlignmentFixer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/SortJavaScriptImports.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/TokenAnalyzer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/TokenAnnotator.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/UnwrappedLineFormatter.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/UnwrappedLineParser.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/UsingDeclarationsSorter.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Format/WhitespaceManager.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/ASTConsumers.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/ASTMerge.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/ASTUnit.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/ChainedDiagnosticConsumer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/ChainedIncludesSource.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/CompilerInstance.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/CompilerInvocation.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/CreateInvocationFromCommandLine.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/DependencyFile.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/DependencyGraph.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/DiagnosticRenderer.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/FrontendAction.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/FrontendActions.pico
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/FrontendOptions.pico
<jemalloc>: /usr/src/contrib/jemalloc/include/jemalloc/internal/ehooks.h:170: Failed assertion: "p[i] == 0"
Building /usr/obj/usr/src/i386.i386/lib/clang/libclang/Frontend/HeaderIncludeGen.pico
Abort trap (core dumped)
*** [ExtractAPI/ExtractAPIConsumer.pico] Error code 134
. . .
For reference (from the amd64 boot context):
# strings /boot/kernel.jemallocfailure/kernel | grep 'FOUND page %p pindex %#jx'
FOUND page %p pindex %#jx e %#jx %#jx %#jx %#jx
# uname -apKU
FreeBSD 7950X3D-UFS 16.0-CURRENT FreeBSD 16.0-CURRENT #3: Sat Nov 22 11:42:13 PST 2025 root@7950X3D-UFS:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 1600004 1600004
The backtrace looks like:
(lldb) bt
* thread #1, name = 'c++', stop reason = signal SIGABRT
* frame #0: 0x24bd378b libsys.so.7`__sys_thr_kill at thr_kill.S:4
frame #1: 0x2ab2231b libc.so.7`__raise(s=6) at raise.c:48:10
frame #2: 0x2abcc73b libc.so.7`abort at abort.c:61:8
frame #3: 0x2ac10440 libc.so.7`ehooks_debug_zero_check(addr=<unavailable>, size=<unavailable>) at ehooks.h:0
frame #4: 0x2ac0ccfa libc.so.7`__je_extent_alloc_wrapper [inlined] ehooks_alloc(tsdn=<unavailable>, ehooks=<unavailable>, new_addr=<unavailable>, size=<unavailable>, alignment=<unavailable>, zero=0xffff7c7b, commit=<unavailable>) at ehooks.h:208:3
frame #5: 0x2ac0cc5a libc.so.7`__je_extent_alloc_wrapper(tsdn=0x2adf90a0, pac=0x2b0015e4, ehooks=0x2b000080, new_addr=0x00000000, size=20480, alignment=4096, zero=true, commit=0xffff7ce3, growing_retained=<unavailable>) at jemalloc_extent.c:1003:15
frame #6: 0x2ac0c58e libc.so.7`__je_ecache_alloc_grow(tsdn=0x2adf90a0, pac=0x2b0015e4, ehooks=0x2b000080, ecache=0x2b0036d0, expand_edata=0x00000000, size=20480, alignment=4096, zero=<unavailable>, guarded=<unavailable>) at jemalloc_extent.c:126:11
frame #7: 0x2ac3c73f libc.so.7`pac_alloc_impl [inlined] pac_alloc_real(tsdn=<unavailable>, pac=<unavailable>, ehooks=<unavailable>, size=<unavailable>, alignment=4096, zero=<unavailable>, guarded=<unavailable>) at jemalloc_pac.c:124:11
frame #8: 0x2ac3c696 libc.so.7`pac_alloc_impl(tsdn=0x2adf90a0, self=0x2b0015e4, size=20480, alignment=4096, zero=<unavailable>, guarded=<unavailable>, frequent_reuse=<unavailable>, deferred_work_generated=<unavailable>) at jemalloc_pac.c:178:11
frame #9: 0x2ac3afe0 libc.so.7`__je_pa_alloc [inlined] pai_alloc(tsdn=<unavailable>, self=<unavailable>, size=<unavailable>, alignment=<unavailable>, zero=<unavailable>, guarded=<unavailable>, frequent_reuse=<unavailable>, deferred_work_generated=<unavailable>) at pai.h:43:9
frame #10: 0x2ac3afc9 libc.so.7`__je_pa_alloc(tsdn=0x2adf90a0, shard=0x2b0015d8, size=20480, alignment=4096, slab=<unavailable>, szind=25, zero=<unavailable>, guarded=<unavailable>, deferred_work_generated=0xffff7dc7) at jemalloc_pa.c:139:11
frame #11: 0x2abec82b libc.so.7`arena_slab_alloc(tsdn=<unavailable>, arena=<unavailable>, binind=25, binshard=0, bin_info=0x2ac71658) at jemalloc_arena.c:839:18
frame #12: 0x2abebdaa libc.so.7`__je_arena_cache_bin_fill_small(tsdn=0x2adf90a0, arena=0x2b000500, cache_bin=0x2adf94e8, cache_bin_info=0x2b0004b2, binind=25, nfill=10) at jemalloc_arena.c:1034:16
frame #13: 0x2ac2b737 libc.so.7`__je_tcache_alloc_small_hard(tsdn=0x2adf90a0, arena=0x2b000500, tcache=0x2adf92f0, cache_bin=0x2adf94e8, binind=25, tcache_success=0xffff7e8b) at jemalloc_tcache.c:238:2
frame #14: 0x2abed8e3 libc.so.7`arena_malloc [inlined] tcache_alloc_small(tsd=<unavailable>, arena=0x2b000500, tcache=<unavailable>, size=<unavailable>, binind=<unavailable>, zero=<unavailable>, slow_path=true) at tcache_inlines.h:68:9
frame #15: 0x2abed83e libc.so.7`arena_malloc(tsdn=<unavailable>, arena=<unavailable>, size=2560, ind=25, zero=<unavailable>, tcache=0x2adf92f0, slow_path=true) at arena_inlines_b.h:151:11
frame #16: 0x2abed610 libc.so.7`__je_arena_palloc(tsdn=0x2adf90a0, arena=0x00000000, usize=2560, alignment=4, zero=<unavailable>, tcache=0x2adf92f0) at jemalloc_arena.c:1224:9
frame #17: 0x2abe7838 libc.so.7`ipalloct [inlined] ipallocztm(tsdn=<unavailable>, usize=2560, alignment=4, zero=<unavailable>, tcache=0x2adf92f0, is_internal=false, arena=0x00000000) at jemalloc_internal_inlines_c.h:80:8
frame #18: 0x2abe7705 libc.so.7`ipalloct(tsdn=<unavailable>, usize=2560, alignment=4, zero=<unavailable>, tcache=0x2adf92f0, arena=0x00000000) at jemalloc_internal_inlines_c.h:91:9
frame #19: 0x2abe754c libc.so.7`imalloc_body [inlined] imalloc_no_sample(sopts=0xffff7f9c, dopts=0xffff7f7c, tsd=0x2adf90a0, size=2304, usize=2560, ind=0) at jemalloc_jemalloc.c:2398:10
frame #20: 0x2abe753f libc.so.7`imalloc_body(sopts=<unavailable>, dopts=<unavailable>, tsd=0x2adf90a0) at jemalloc_jemalloc.c:2577:16
frame #21: 0x2abdae88 libc.so.7`imalloc(sopts=<unavailable>, dopts=<unavailable>) at tsd.h:0:2
frame #22: 0x2abdb3ef libc.so.7`__aligned_alloc(alignment=4, size=2304) at jemalloc_jemalloc.c:2821:2
frame #23: 0x2aa69777 libc++.so.1`operator new(unsigned int, std::align_val_t) [inlined] std::__1::__libcpp_aligned_alloc[abi:se190107](__alignment=4, __size=<unavailable>) at aligned_alloc.h:43:10
frame #24: 0x2aa69768 libc++.so.1`operator new(unsigned int, std::align_val_t) [inlined] operator_new_aligned_impl(size=<unavailable>, alignment=4) at new.cpp:129:15
frame #25: 0x2aa69748 libc++.so.1`operator new(size=2304, alignment=4) at new.cpp:141:13
frame #26: 0x28a7905b libprivatellvm.so.19`llvm::allocate_buffer(unsigned int, unsigned int) at MemAlloc.cpp:16:10
frame #27: 0x26fa313e libprivatellvm.so.19`::grow() [inlined] allocateBuckets at DenseMap.h:915:9
frame #28: 0x26fa312d libprivatellvm.so.19`::grow() at DenseMap.h:849:5
frame #29: 0x26fa30a5 libprivatellvm.so.19`::InsertIntoBucketImpl<llvm::AssertingVH<const llvm::BasicBlock> >() [inlined] grow at DenseMap.h:580:36
frame #30: 0x26fa309e libprivatellvm.so.19`::InsertIntoBucketImpl<llvm::AssertingVH<const llvm::BasicBlock> >() at DenseMap.h:0
frame #31: 0x26fa2f51 libprivatellvm.so.19`::FindAndConstruct() [inlined] InsertIntoBucket<llvm::AssertingVH<const llvm::BasicBlock> > at DenseMap.h:590:17
frame #32: 0x26fa2f48 libprivatellvm.so.19`::FindAndConstruct() at DenseMap.h:381:13
frame #33: 0x26f9f3fe libprivatellvm.so.19`::initializeRPOT() [inlined] operator[] at DenseMap.h:385:12
frame #34: 0x26f9f3f0 libprivatellvm.so.19`::initializeRPOT() at BlockFrequencyInfoImpl.h:1173:5
frame #35: 0x26f99bbd libprivatellvm.so.19`::calculate() at BlockFrequencyInfoImpl.h:1119:3
frame #36: 0x26f992a0 libprivatellvm.so.19`::calculate() at BlockFrequencyInfo.cpp:189:8
frame #37: 0x26f9bc3a libprivatellvm.so.19`llvm::BlockFrequencyAnalysis::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) at BlockFrequencyInfo.cpp:338:7
frame #38: 0x2880e51b libprivatellvm.so.19`::run() at PassManagerInternal.h:320:14
frame #39: 0x283b7e8b libprivatellvm.so.19`::getResultImpl() at PassManagerImpl.h:156:35
frame #40: 0x26f9c0a6 libprivatellvm.so.19`::getResult<llvm::BlockFrequencyAnalysis>() at PassManager.h:409:9
frame #41: 0x29b202aa libprivatellvm.so.19`::run() at Inliner.cpp:385:16
frame #42: 0x2882dbad libprivatellvm.so.19`llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::InlinerPass, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) at PassManagerInternal.h:90:17
frame #43: 0x26fd7933 libprivatellvm.so.19`::run() at CGSCCPassManager.cpp:87:38
frame #44: 0x2881959d libprivatellvm.so.19`llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) at PassManagerInternal.h:90:17
frame #45: 0x26fda8e4 libprivatellvm.so.19`::run() at CGSCCPassManager.cpp:413:38
frame #46: 0x28849d1d libprivatellvm.so.19`llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::DevirtSCCRepeatedPass, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) at PassManagerInternal.h:90:17
frame #47: 0x26fd901f libprivatellvm.so.19`::run() at CGSCCPassManager.cpp:274:44
frame #48: 0x288198a7 libprivatellvm.so.19`llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) at PassManagerInternal.h:90:17
frame #49: 0x283b43bd libprivatellvm.so.19`::run() at PassManagerImpl.h:81:38
frame #50: 0x29b224ef libprivatellvm.so.19`::run() at Inliner.cpp:631:7
frame #51: 0x288235a7 libprivatellvm.so.19`llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) at PassManagerInternal.h:90:17
frame #52: 0x283b43bd libprivatellvm.so.19`::run() at PassManagerImpl.h:81:38
frame #53: 0x228e956a libprivateclang.so.19`::RunOptimizationPipeline() at BackendUtil.cpp:1114:9
frame #54: 0x228e000c libprivateclang.so.19`::EmitBackendOutput() [inlined] EmitAssembly at BackendUtil.cpp:1179:3
frame #55: 0x228df8a5 libprivateclang.so.19`::EmitBackendOutput() at BackendUtil.cpp:1341:13
frame #56: 0x22d84b4d libprivateclang.so.19`::HandleTranslationUnit() at CodeGenAction.cpp:354:3
frame #57: 0x234f63bd libprivateclang.so.19`::ParseAST() at ParseAST.cpp:184:13
frame #58: 0x2335bdef libprivateclang.so.19`::ExecuteAction() at FrontendAction.cpp:1192:3
frame #59: 0x22d8ad1d libprivateclang.so.19`::ExecuteAction() at CodeGenAction.cpp:1144:30
frame #60: 0x2335b650 libprivateclang.so.19`::Execute() at FrontendAction.cpp:1078:8
frame #61: 0x232bc3ac libprivateclang.so.19`::ExecuteAction() at CompilerInstance.cpp:1061:33
frame #62: 0x233f3b7c libprivateclang.so.19`::ExecuteCompilerInvocation() at ExecuteCompilerInvocation.cpp:280:25
frame #63: 0x0040df8f c++`::cc1_main() at cc1_main.cpp:284:15
frame #64: 0x0041c927 c++`::ExecuteCC1Tool() at driver.cpp:215:12
frame #65: 0x22f460a6 libprivateclang.so.19`::callback_fn<(lambda at /usr/src/contrib/llvm-project/clang/lib/Driver/Job.cpp:440:22)>() [inlined] operator() at STLFunctionalExtras.h:68:12
frame #66: 0x22f46097 libprivateclang.so.19`::callback_fn<(lambda at /usr/src/contrib/llvm-project/clang/lib/Driver/Job.cpp:440:22)>() [inlined] operator() at Job.cpp:440:34
frame #67: 0x22f46094 libprivateclang.so.19`::callback_fn<(lambda at /usr/src/contrib/llvm-project/clang/lib/Driver/Job.cpp:440:22)>() at STLFunctionalExtras.h:45:12
frame #68: 0x28a3f834 libprivatellvm.so.19`::RunSafely() [inlined] operator() at STLFunctionalExtras.h:68:12
frame #69: 0x28a3f82f libprivatellvm.so.19`::RunSafely() at CrashRecoveryContext.cpp:426:3
frame #70: 0x22f456d4 libprivateclang.so.19`::Execute() at Job.cpp:440:12
frame #71: 0x22f00688 libprivateclang.so.19`::ExecuteCommand() at Compilation.cpp:199:15
frame #72: 0x22f0097e libprivateclang.so.19`::ExecuteJobs() at Compilation.cpp:253:19
frame #73: 0x22f21e9c libprivateclang.so.19`::ExecuteCompilation() at Driver.cpp:1943:5
frame #74: 0x0041bfdd c++`::clang_main() at driver.cpp:391:21
frame #75: 0x0041a387 c++`main at clang-driver.cpp:17:10
frame #76: 0x2aaf8820 libc.so.7`__libc_start1(argc=71, argv=0xffffc28c, env=0xffffc3ac, cleanup=(ld-elf.so.1`rtld_nop_exit at rtld.c:3602), mainX=(c++`main at clang-driver.cpp:15)) at libc_start1.c:180:7
frame #77: 0x0040c438 c++`_start at crt1_s.S:84
===
Mark Millard
marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A5CB9EA8-7146-430A-8246-0EAD3B1D1429>
