Here's a stacktrace from GDB -- I don't have debug packages debuginfod just hangs, so something's up there, but looks like it's in some TLS routines?
$ gdb bin64/core_unit_tests
GNU gdb (CentOS Stream) 16.3-2.el9
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <
http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<
https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<
http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from bin64/core_unit_tests...
Reading symbols from /home/palmerdabbelt/work/dynamorio/build/bin64/core_unit_tests.debug...
(gdb) r
Starting program: /home/palmerdabbelt/work/dynamorio/build/bin64/core_unit_tests
This GDB supports auto-downloading debuginfo from the following URLs:
<
https://debuginfod.centos.org/>
Enable debuginfod for this session? (y or [n]) n
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
our_memcpy_time: size=1 time=0
libc_memcpy_time: size=1 time=0
our_memcpy_time: size=4 time=0
libc_memcpy_time: size=4 time=0
our_memcpy_time: size=128 time=5
libc_memcpy_time: size=128 time=1
our_memcpy_time: size=512 time=20
libc_memcpy_time: size=512 time=1
our_memcpy_time: size=8192 time=315
libc_memcpy_time: size=8192 time=12
our_memcpy_time: size=20480 time=733
libc_memcpy_time: size=20480 time=30
Program received signal SIGSEGV, Segmentation fault.
0x00000000711d4c34 in get_tls_thread_id () at /home/palmerdabbelt/work/dynamorio/core/unix/os.c:3124
3124 READ_TLS_SLOT_IMM(TLS_THREAD_ID_OFFSET, tid);
Missing rpms, try: dnf --enablerepo='*debug*' install glibc-debuginfo-2.34-232.el9.aarch64
(gdb) bt
#0 0x00000000711d4c34 in get_tls_thread_id () at /home/palmerdabbelt/work/dynamorio/core/unix/os.c:3124
#1 get_tls_thread_id () at /home/palmerdabbelt/work/dynamorio/core/unix/os.c:3119
#2 d_r_get_thread_id () at /home/palmerdabbelt/work/dynamorio/core/unix/os.c:3111
#3 0x000000007102914c in acquire_recursive_app_lock (mc=0x0, lock=0x712cf610 <global_alloc_lock>)
at /home/palmerdabbelt/work/dynamorio/core/utils.c:1009
#4 acquire_recursive_lock (lock=lock@entry=0x712cf610 <global_alloc_lock>) at /home/palmerdabbelt/work/dynamorio/core/utils.c:1021
#5 0x00000000710361f0 in common_global_heap_free (tu=0xfffd800200f8, p=0xfffd80038e80, size=<optimized out>)
at /home/palmerdabbelt/work/dynamorio/core/heap.c:3550
#6 0x0000000071065604 in our_memcpy_vs_libc () at /home/palmerdabbelt/work/dynamorio/core/io.c:1063
#7 unit_test_io () at /home/palmerdabbelt/work/dynamorio/core/io.c:1245
#8 0x0000000071000758 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
at /home/palmerdabbelt/work/dynamorio/core/unit_tests.c:77
Here's the logs, in case I'm missing something (`--output-on-failure` doesn't show anything extra):