I'm trying to get dmd and phobos working with musl. Right now I
have a bootstrapped compiler built with musl, which seems to work
fine. However user applications will segmentation fault before
even reaches main.
I investigated a bit. Looks like musl is not happy with how
druntime uses dlopen related functions. When a D library loads,
it tries to call _d_dso_registry, which will try to get a handle
of the library using dlopen. Meaning dlopen will be called on the
library itself while it's still loading. This seems to break
musl. Although this might also be a bug on musl side: it tries to
call init functions even when RTLD_NOLOAD is passed to dlopen.
However, going through sections_elf_shared.d, it makes me feel
it's doing some magic tricks with dl functions, but I don't know
what for?
If my understand is correct, it's used to register TLS storage to
GC. If that's the case, there must be simpler ways to do that.
- What does rt/sections_elf_shared.d do? (... Yuxuan Shui via Digitalmars-d
-