diff --git a/Makefile b/Makefile index f1f3b9717..dd6eebf26 100644 --- a/Makefile +++ b/Makefile @@ -441,6 +441,7 @@ COSMOPOLITAN_OBJECTS = \ LIBC_TIME \ THIRD_PARTY_MUSL \ THIRD_PARTY_ZLIB_GZ \ + THIRD_PARTY_LIBUNWIND \ LIBC_STDIO \ THIRD_PARTY_GDTOA \ THIRD_PARTY_REGEX \ diff --git a/libc/runtime/unwind.c b/libc/runtime/unwind.c deleted file mode 100644 index fe4987cf5..000000000 --- a/libc/runtime/unwind.c +++ /dev/null @@ -1,37 +0,0 @@ -/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ -│ vi: set et ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi │ -╞══════════════════════════════════════════════════════════════════════════════╡ -│ Copyright 2022 Justine Alexandra Roberts Tunney │ -│ │ -│ Permission to use, copy, modify, and/or distribute this software for │ -│ any purpose with or without fee is hereby granted, provided that the │ -│ above copyright notice and this permission notice appear in all copies. │ -│ │ -│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ -│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ -│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ -│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ -│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ -│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ -│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ -│ PERFORMANCE OF THIS SOFTWARE. │ -╚─────────────────────────────────────────────────────────────────────────────*/ -#include "libc/runtime/unwind.h" - -// temporary stubs for libunwind - -uintptr_t _Unwind_GetCFA(struct _Unwind_Context *ctx) { - return 0; -} - -uintptr_t _Unwind_GetIP(struct _Unwind_Context *ctx) { - return 0; -} - -_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn fn, void *arg) { - return _URC_NORMAL_STOP; -} - -void *_Unwind_FindEnclosingFunction(void *arg) { - return NULL; -} diff --git a/libc/runtime/unwind.h b/libc/runtime/unwind.h deleted file mode 100644 index 4570446f6..000000000 --- a/libc/runtime/unwind.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef COSMOPOLITAN_LIBC_RUNTIME_UNWIND_H_ -#define COSMOPOLITAN_LIBC_RUNTIME_UNWIND_H_ - -#define UNW_TDEP_CURSOR_LEN 127 - -COSMOPOLITAN_C_START_ - -typedef enum { - _URC_NO_REASON = 0, - _URC_FOREIGN_EXCEPTION_CAUGHT = 1, - _URC_FATAL_PHASE2_ERROR = 2, - _URC_FATAL_PHASE1_ERROR = 3, - _URC_NORMAL_STOP = 4, - _URC_END_OF_STACK = 5, - _URC_HANDLER_FOUND = 6, - _URC_INSTALL_CONTEXT = 7, - _URC_CONTINUE_UNWIND = 8 -} _Unwind_Reason_Code; - -typedef uint64_t unw_word_t; - -typedef struct unw_cursor { - unw_word_t opaque[UNW_TDEP_CURSOR_LEN]; -} unw_cursor_t; - -struct _Unwind_Context { - unw_cursor_t cursor; - int end_of_stack; -}; - -typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *, - void *); - -uintptr_t _Unwind_GetCFA(struct _Unwind_Context *); -uintptr_t _Unwind_GetIP(struct _Unwind_Context *); -_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); -void *_Unwind_FindEnclosingFunction(void *); - -COSMOPOLITAN_C_END_ -#endif /* COSMOPOLITAN_LIBC_RUNTIME_UNWIND_H_ */