Is libunwind implementation of abi in libcxxabi?

344 views Asked by At

I was trying to build libcxx/libcxxabi/libunwind when I realized that I didn't actually understand what role they play.

I checked libcxxabi spci, and found that it defines API used in C++ exception. But I can't find any document about libunwind, and one blog(New libunwind implementation in libc++abi) I found by google says that libunwind is the implementation of libcxxabi.

So, is libunwind really like that, implements ABI in libcxxabi, if so, why we have libcxxabi?

1

There are 1 answers

0
JiaHao Xu On

I built libunwind myself and checked the symbols in libunwind by using nm and got these:

nm: libunwind.cpp.o: File format not recognized
nm: Unwind-EHABI.cpp.o: File format not recognized
nm: UnwindLevel1.c.o: File format not recognized
nm: UnwindLevel1-gcc-ext.c.o: File format not recognized
nm: Unwind-sjlj.c.o: File format not recognized

UnwindRegistersRestore.S.o:
0000000000000000 T _ZN9libunwind16Registers_x86_646jumptoEv

UnwindRegistersSave.S.o:
0000000000000000 T unw_getcontext

That seems to imply that libunwind just implements the unwind functions, nothing else.