Personal aarch64 FreeBSD OS build gets SIGSEGV during: ./pmu-events/jevents arm64 /usr/main-src/lib/libpmc/pmu-events/arch libpmc_event

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 20 Sep 2026 18:13:49 UTC
[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 <kbowling@FreeBSD.org>
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
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