Measured by mcpplibs/mcpp-index#469 (the openkal measurement, mcpp 2026.9.26.1, openkal-llvm-runtime 0.15.2, openkal-musl 0.19.2), on the two linux-musl rows it added:
x86_64-linux-musl mimalloc fails: ld.lld: error: unable to find library -latomic
aarch64-linux-musl mimalloc fails: ld.lld: error: unable to find library -latomic
compat.mimalloc links -lpthread -lrt -latomic on Linux (its CMakeLists.txt:618-626). From mcpp 2026.9.26.1 a link over a graph-supplied C library searches no host library directory (mcpp-community/mcpp#696): -lpthread and -lrt are answered by the empty archives openkal-musl 0.19.2 ships, and -latomic is answered by nothing. Before that release the host's libatomic (a glibc-world library) answered it, silently.
libatomic is the compiler runtime's library, not the C library's, so the name belongs to this package. Two candidate answers, and the choice needs a measurement rather than a guess:
- If the compiler-rt builtins this package builds include the
__atomic_* library fallbacks (compiler-rt/lib/builtins/atomic.c), ship an empty libatomic.a and a package-relative -L, exactly as openkal-musl does for musl's eight names: every symbol -latomic would supply is already on the link line.
- If they do not, an empty archive would turn a clean refusal into an undefined
__atomic_load_16 at link time for a program that needs them; the builtins would then have to gain atomic.c, and libatomic.a would carry it.
The criterion is the same program on both rows: mimalloc's tests run, and a 16-byte std::atomic load links and runs.
Measured by mcpplibs/mcpp-index#469 (the openkal measurement, mcpp 2026.9.26.1, openkal-llvm-runtime 0.15.2, openkal-musl 0.19.2), on the two linux-musl rows it added:
compat.mimalloclinks-lpthread -lrt -latomicon Linux (its CMakeLists.txt:618-626). From mcpp 2026.9.26.1 a link over a graph-supplied C library searches no host library directory (mcpp-community/mcpp#696):-lpthreadand-lrtare answered by the empty archives openkal-musl 0.19.2 ships, and-latomicis answered by nothing. Before that release the host'slibatomic(a glibc-world library) answered it, silently.libatomicis the compiler runtime's library, not the C library's, so the name belongs to this package. Two candidate answers, and the choice needs a measurement rather than a guess:__atomic_*library fallbacks (compiler-rt/lib/builtins/atomic.c), ship an emptylibatomic.aand a package-relative-L, exactly as openkal-musl does for musl's eight names: every symbol-latomicwould supply is already on the link line.__atomic_load_16at link time for a program that needs them; the builtins would then have to gainatomic.c, andlibatomic.awould carry it.The criterion is the same program on both rows: mimalloc's tests run, and a 16-byte
std::atomicload links and runs.