[cfe-dev] Choosing the unwinder / C++ low-level libraries in Clang
Renato Golin
renato.golin at linaro.org
Thu Jul 23 08:26:20 PDT 2015
On 23 July 2015 at 16:16, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:
> Minor clarification, but libgcc also doesn’t include the C++ ABI stuff - that’s in libsupc++, which is usually statically linked to libstdc++. I think FreeBSD 9 is the only system to ship a separate libsupc++ shared library, though some ship a libsupc++.a for static linking of C++ programs that don’t use the standard library.
So, if I got it right:
GCC LLVM
SoftLib: libgcc compiler-rt
Unwind: libgcc_s libunwind
EH ABI: libgcc_eh libc++abi
C++ABI: libsupc++ libc++abi
C++ Lib: libstdc++ libc++
Std LIBC: glibc --
I'm not seeing any mention to libsupc++ anywhere in Clang, which I
trust means it's not a division important enough to warrant worry.
LLVM's mode { libc++ / libc++abi / libunwind / compiler-rt } is
equivalent to GCC's { libstdc++ / libgcc* }. The only conflict that
could arise is when using libc++abi with libstdc++, but that depends
on how the functions are named. If memory serves me right, I had no
issue whatsoever when every time I used it.
> The Compiler-RT repository does include an unwinder, so perhaps this should be built as libcompilerrt_eh.so for platforms that want to use -rtlib=compilerrt?
No, the unwinder is long gone to its own repository, because of a
cross-dependency with libc++abi.
cheers,
--renato
More information about the cfe-dev
mailing list