diff --git a/libc/stdlib/atexit.c b/libc/stdlib/atexit.c index df2b1b5d5..a6970dd5d 100644 --- a/libc/stdlib/atexit.c +++ b/libc/stdlib/atexit.c @@ -37,7 +37,18 @@ #include "atexit.h" #include "private/thread_private.h" -struct atexit *__atexit; +struct atexit { + struct atexit *next; /* next in list */ + int ind; /* next index in this table */ + int max; /* max entries >= ATEXIT_SIZE */ + struct atexit_fn { + void (*fn_ptr)(void *); + void *fn_arg; /* argument for CXA callback */ + void *fn_dso; /* shared module handle */ + } fns[1]; /* the table itself */ +}; + +static struct atexit *__atexit; static int restartloop; /* BEGIN android-changed: __unregister_atfork is used by __cxa_finalize */ diff --git a/libc/stdlib/atexit.h b/libc/stdlib/atexit.h index 3de2aa3bf..e01bb34a6 100644 --- a/libc/stdlib/atexit.h +++ b/libc/stdlib/atexit.h @@ -30,18 +30,5 @@ * */ -struct atexit { - struct atexit *next; /* next in list */ - int ind; /* next index in this table */ - int max; /* max entries >= ATEXIT_SIZE */ - struct atexit_fn { - void (*fn_ptr)(void *); - void *fn_arg; /* argument for CXA callback */ - void *fn_dso; /* shared module handle */ - } fns[1]; /* the table itself */ -}; - -extern struct atexit *__atexit; /* points to head of LIFO stack */ - int __cxa_atexit(void (*)(void *), void *, void *); void __cxa_finalize(void *); diff --git a/libc/upstream-openbsd/android/include/openbsd-compat.h b/libc/upstream-openbsd/android/include/openbsd-compat.h index 8f55a26cd..47bacc3ea 100644 --- a/libc/upstream-openbsd/android/include/openbsd-compat.h +++ b/libc/upstream-openbsd/android/include/openbsd-compat.h @@ -74,7 +74,6 @@ __LIBC_HIDDEN__ void* reallocarray(void*, size_t, size_t); __LIBC64_HIDDEN__ extern const short* _tolower_tab_; __LIBC64_HIDDEN__ extern const short* _toupper_tab_; -__LIBC_HIDDEN__ extern struct atexit* __atexit; __LIBC_HIDDEN__ extern const char _C_ctype_[]; __LIBC_HIDDEN__ extern const short _C_toupper_[]; __LIBC_HIDDEN__ extern const short _C_tolower_[];