Good, this was always incredibly confusing, and a hassle because it even needs Linux-specific code in otherwise completely platform-agnostic (cmake) build system files.
The other even more confusing thing is that -pthread/-lpthread may be needed even when your own code doesn't use pthreads at all (while at it, please also get rid of -pthread), but some dynamically linked dependency does (like linking with X11+GLX+GL) - which then doesn't just cause a linker error but a runtime crash with an entirely unrelated error message (but only on some Linux setups) - I hope the change will fix these problems too.
And hopefully the 'm' library is next (seems they intend to but it didn't make it into this release).
We then added a dummy call to a no-op pthread function, so that users at least get a pthread-related linker error and can figure out that they need the -pthread/-lpthread options instead of running into random runtime problems:
Also, on my Ubuntu laptop this problem didn't happen, that's why I didn't catch it during development, it seems to be specific to some distros or personal config changes.
The affected code bases don't use threading and didn't link pthread before (neither statically nor dynamically).
> Takes a boolean parameter. If set, a UNIX user and group pair is allocated dynamically when the unit is started, and released as soon as it is stopped. The user and group will not be added to /etc/passwd or /etc/group, but are managed transiently during runtime
My reading is that systemd was just used as an example of the benefit of this change. It could be any software which loads separate parts of glibc and so could run into problems during libc upgrade. Now with this idea of one shared object from musl, the entire system becomes more resilient. systemd is a benefactor but not the only one nor the reason for the change.
The other even more confusing thing is that -pthread/-lpthread may be needed even when your own code doesn't use pthreads at all (while at it, please also get rid of -pthread), but some dynamically linked dependency does (like linking with X11+GLX+GL) - which then doesn't just cause a linker error but a runtime crash with an entirely unrelated error message (but only on some Linux setups) - I hope the change will fix these problems too.
And hopefully the 'm' library is next (seems they intend to but it didn't make it into this release).