Supporting musl libc
Jacob Carlborg via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 17 01:51:01 PDT 2016
As an alternative to glibc there's a C standard library called musl [1].
This is the C standard library used by ELLCC [2], a cross-compiler based
on Clang. This cross-compiler makes it very easy to target other
platforms and can be used as the C compiler when building with LDC.
The issue is that musl doesn't support the functions defined by
execinfo.h: backtrace, backtrace_symbols_fd and backtrace_symbols, since
these are glibc extensions. As far as I can see, these functions are
used in two places in druntime: src/rt/backtrace/dwarf.d [3] and
src/core/runtime.d [4].
The imports of execinfo is guarded by version(CRuntime_Glibc). I see
that CRuntime_Glibc is a predefined version identifier defined by the
compiler on Linux.
I'm not sure how to best handle different C standard libraries when it
comes to choosing which one to use. Is it best to choose that when
building the compiler or when building druntime? Or can it be a runtime
option?
[1] https://www.musl-libc.org
[2] http://ellcc.org
[3]
https://github.com/dlang/druntime/blob/master/src/rt/backtrace/dwarf.d#L41
[4]
https://github.com/dlang/druntime/blob/master/src/core/runtime.d#L433-L434
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list