mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
8b33204f37
* third_party: Add libcxxabi Added libcxxabi from LLVM 17.0.6 The library implements the Itanium C++ exception handling ABI. * third_party/libcxxabi: Enable __cxa_thread_atexit Enable `__cxa_thread_atexit` from libcxxabi. `__cxa_thread_atexit_impl` is still implemented by the cosmo libc. The original `__cxa_thread_atexit` has been removed. * third_party/libcxx: Build with exceptions Build libcxx with exceptions enabled. - Removed `_LIBCPP_NO_EXCEPTIONS` from `__config`. - Switched the exception implementation to `libcxxabi`. These two files are taken from the same `libcxx` version as mentioned in `README.cosmo`. - Removed `new_handler_fallback` in favor of `libcxxabi` implementation. - Enable `-fexceptions` and `-frtti` for `libcxx`. - Removed `THIRD_PARTY_LIBCXX` dependency from `libcxxabi` and `libunwind`. These libraries do not use any runtime `libcxx` functions, just headers. * libc: Remove remaining redundant cxa functions - `__cxa_pure_virtual` in `libcxxabi` is also a stub similar to the existing one. - `__cxa_guard_*` from `libcxxabi` is used instead of the ones from Android. Now there should be no more duplicate implementations. `__cxa_thread_atexit_impl`, `__cxa_atexit`, and related supporting functions, are still left to other libraries as in `libcxxabi`. `libcxxabi` is also now added to `cosmopolitan.a` to make up for the removed functions. Affected in-tree libraries (`third_party/double-conversion`) have been updated. |
||
---|---|---|
.. | ||
include | ||
AddressSpace.hpp | ||
BUILD.mk | ||
cet_unwind.h | ||
CompactUnwinder.hpp | ||
config.h | ||
dwarf2.h | ||
DwarfInstructions.hpp | ||
DwarfParser.hpp | ||
EHHeaderParser.hpp | ||
FrameHeaderCache.hpp | ||
libunwind.cc | ||
libunwind_ext.h | ||
LICENSE.TXT | ||
README.cosmo | ||
Registers.hpp | ||
RWMutex.hpp | ||
Unwind-EHABI.h | ||
Unwind-sjlj.c | ||
UnwindCursor.hpp | ||
UnwindLevel1-gcc-ext.c | ||
UnwindLevel1.c |
DESCRIPTION libunwind - LLVM Unwinder ORIGIN Obtained from the LLVM monorepo, release 17.0.6. https://github.com/llvm/llvm-project/tree/llvmorg-17.0.6/libunwind commit 6009708b4367171ccdbf4b5905cb6a803753fe18 Author: Tobias Hieta <tobias@hieta.se> Date: Tue, 28 Nov 2023 09:52:28 +0100 LOCAL CHANGES - Fixed `_Unwind_FunctionContext` struct to be ABI-compatible with code generated by GCC.