This is more-or-less a mirror image of D21968, repeated for libcxxabi.
I will soon upload a dependent patch for libcxx which makes it possible to run the libcxx test suite with the externally-threaded libcxxabi variant.
Paths
| Differential D27204
[libcxxabi] Introduce an externally threaded libc++abi variant AbandonedPublic Authored by rmaprath on Nov 29 2016, 5:11 AM.
Details
Summary This is more-or-less a mirror image of D21968, repeated for libcxxabi. I will soon upload a dependent patch for libcxx which makes it possible to run the libcxx test suite with the externally-threaded libcxxabi variant.
Diff Detail Event TimelineComment Actions My main issue with this patch (and D27206) is that there are now two different CMake options for building two different external threading libraries. I would much prefer having libc++abi use libc++'s __threading_support header and cxx_external_threads library.
Comment Actions
I would like to do that too! But I always viewed libcxx and libcxxabi as two independent libraries that should be usable on their own. In this case, binding libcxxabi to __threading_support from libcxx sounded wrong, because __threading_support is something internal to libcxx (e.g. all the functions there are prefixed with __libcpp_ - there may be other libcpp-isms arising from __config in there too). Is that not a concern? I could give it a shot and try to merge the two APIs into one if not. Comment Actions
Ironically I've always viewed libcxxabi as fully dependent on libcxx (and personally I would like to see the repos merged; Although using libc++ w/o libc++abi would still be supported).
It's not a concern. Libc++abi already depends on libc++ internals to build (See the #include "__refstring" in stdlib_stdexcept.cpp`). Comment Actions
Thanks for the clarification. I'll re-spin the patch. Responses to inline comments follow, but some of those would go away with the re-spin I imagine.
rmaprath mentioned this in D27575: [libcxxabi] Introduce an externally threaded libc++abi variant (take-2). Comment ActionsAbandoning as this has been replaced with D27575.
Revision Contents
Diff 79544 CMakeLists.txt
src/CMakeLists.txt
src/config.h
src/threading_support.h
test/CMakeLists.txt
test/libcxxabi/test/config.py
test/lit.cfg
test/lit.site.cfg.in
test/support/external_threads.cpp
|
It's weird that libc++abi needs to define a libc++ option? Can you elaborate on the need for this?