[I have CC'd a could of authors with recent libpmc commits. I did not list any recent libc authors.]
>From a build typescript: Building /usr/obj/BUILDs/main-CA76-dbg-clang/usr/main-src/arm64.aarch64/lib/libpmc/libpmc_events.c Segmentation fault (core dumped) *** [libpmc_events.c] Error code 139 make[5]: stopped making "all" in /usr/main-src/lib/libpmc .ERROR_TARGET='libpmc_events.c' .ERROR_META_FILE='/usr/obj/BUILDs/main-CA76-dbg-clang/usr/main-src/arm64.aarch64/lib/libpmc/libpmc_events.c.meta' .MAKE.LEVEL='5' MAKEFILE='' .MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose' _ERROR_CMD='./pmu-events/jevents "arm64" /usr/main-src/lib/libpmc/pmu-events/arch libpmc_events.c.tmp; if [ ! -e libpmc_events.c ] || ! cmp -s libpmc_events.c libpmc_events.c.tmp; then mv -f libpmc_events.c.tmp libpmc_events.c; fi;' . . . It was building from source based on: # ~/fbsd-based-on-what-commit.sh -C /usr/main-src/ you have mail aef4c3eb31d9 (HEAD -> main, freebsd/main, freebsd/HEAD) mana: Initialize ports with the common RSS key Author: Kevin Bowling <[email protected]> Commit: Kevin Bowling <[email protected]> CommitDate: 2026-09-18 23:01:09 +0000 branch: main merge-base: aef4c3eb31d9c29c6aeb08023b1c9d2457d817e3 merge-base: CommitDate: 2026-09-18 23:01:09 +0000 n289448 (--first-parent --count for merge-base) # uname -apKU FreeBSD aarch64-main-pbase 16.0-CURRENT FreeBSD 16.0-CURRENT #12 main-n289448-aef4c3eb31d9-dirty: Sat Sep 19 12:58:23 PDT 2026 root@aarch64-main-pbase:/usr/obj/BUILDs/main-CA76-nodbg-clang/usr/main-src/arm64.aarch64/sys/GENERIC-NODBG-CA76 arm64 aarch64 1600026 1600026 The prior builds date back to: main-n287870-21bc31ce2e4a-dirty (built on 2026-Jul-31). I do nothing to libpmc or libc sources. The failing build reported was after a rm -fr of: /usr/obj/BUILDs/main-CA76-dbg-clang/usr gdb reports the backtrace (and more) as shown below: gdb /usr/obj/BUILDs/main-CA76-dbg-clang/usr/main-src/arm64.aarch64/lib/libpmc/pmu-events/jevents /usr/obj/BUILDs/main-CA76-dbg-clang/usr/main-src/arm64.aarch64/lib/libpmc/jevents.core GNU gdb (GDB) 15.1 [GDB v15.1 for FreeBSD] . . . Reading symbols from /usr/obj/BUILDs/main-CA76-dbg-clang/usr/main-src/arm64.aarch64/lib/libpmc/pmu-events/jevents... Reading symbols from /usr/obj/BUILDs/main-CA76-dbg-clang/usr/main-src/arm64.aarch64/lib/libpmc/pmu-events/jevents.debug... [New LWP 100153] Core was generated by `./pmu-events/jevents arm64 /usr/main-src/lib/libpmc/pmu-events/arch libpmc_event'. Program terminated with signal SIGSEGV, Segmentation fault. Address not mapped to object. #0 strcmp () at /usr/main-src/lib/libc/aarch64/string/strcmp.S:77 77 ldr q0, [x0] // load true heads (gdb) bt #0 strcmp () at /usr/main-src/lib/libc/aarch64/string/strcmp.S:77 #1 0x00006bd929182ac4 in med3 (a=0x8f0f4f821500 "\200\003\202O\017\217", b=0x8f0f4f821528 "@\f\202O\017\217", c=0x8f0f4f821548 "@\023\202O\017\217", cmp=0x6bd8a6fd6640 <fts_compare>, thunk=0x0) at /usr/main-src/lib/libc/stdlib/qsort.c:87 #2 local_qsort (a=<optimized out>, n=n@entry=10, es=es@entry=8, cmp=0x6bd8a6fd6640 <fts_compare>, thunk=0x0) at /usr/main-src/lib/libc/stdlib/qsort.c:133 #3 0x00006bd9291826c4 in qsort (a=0x3, n=3, n@entry=10, es=es@entry=8, cmp=0x10) at /usr/main-src/lib/libc/stdlib/qsort.c:246 #4 0x00006bd9290b7144 in fts_sort (sp=0x8f0f4f811000, head=<optimized out>, nitems=10) at /usr/main-src/lib/libc/gen/fts.c:1221 #5 0x00006bd9290b6cf8 in fts_build (sp=sp@entry=0x8f0f4f811000, type=<optimized out>, type@entry=3) at /usr/main-src/lib/libc/gen/fts.c:1093 #6 0x00006bd9290b5fc8 in fts_read (sp=0x8f0f4f811000) at /usr/main-src/lib/libc/gen/fts.c:534 #7 0x00006bd8a6fd3118 in nftw_ordered (path=path@entry=0x6bd927190120 "/usr/main-src/lib/libpmc/pmu-events/arch/arm64", fn=0x6bd8a6fd3230 <preprocess_arch_std_files>, nfds=nfds@entry=512, ftwflags=0) at /usr/main-src/lib/libpmc/pmu-events/jevents.c:1538 #8 0x00006bd8a6fd2d60 in main (argc=<optimized out>, argv=<optimized out>) at /usr/main-src/lib/libpmc/pmu-events/jevents.c:1427 (gdb) info reg x0 0x3 3 x1 0x3 3 x2 0x8 8 x3 0x10 16 x4 0x10 16 x5 0x8f0f4f81b03b 157295921180731 x6 0x2e656c696670616d 3343197498338468205 x7 0x7673632e656c69 33340917069212777 x8 0x0 0 x9 0x3 3 x10 0x0 0 x11 0x3 3 x12 0x77a28b0 125446320 x13 0xffffffffffffffff -1 x14 0x1 1 x15 0x0 0 x16 0x6bd9291707a0 118580441450400 x17 0x6bd92718feb0 118580408024752 x18 0x1000 4096 x19 0x6bd8a6fd6640 118578258732608 x20 0x8 8 x21 0x8f0f4f821500 157295921206528 x22 0x8 8 x23 0x8f0f4f821528 157295921206568 x24 0x6bd8a6ff7000 118578258866176 x25 0x6bd8a6ff7000 118578258866176 x26 0x8f0f4f821548 157295921206600 x27 0xfffffffffffffff8 -8 x28 0x8f0f4f821500 157295921206528 x29 0x6bd92718ff30 118580408024880 x30 0x6bd929182ac4 118580441524932 sp 0x6bd92718fec0 0x6bd92718fec0 pc 0x6bd929170840 0x6bd929170840 <strcmp+160> cpsr 0x80000200 [ EL=0 D BTYPE=0 N ] fpsr 0x0 [ ] fpcr 0x0 [ Len=0 Stride=0 RMode=0 ] tpidr 0x8f0f4f41f010 0x8f0f4f41f010 (gdb) So: 77 ldr q0, [x0] // load true heads and: x0 0x3 3 might suggest a small offset from a NULL pointer ended up involved. -- === Mark Millard marklmi at yahoo.com
