Upstream atexit
Change-Id: Ia454a2181b5058ed9783dc02b6b1805d0e4d2715
diff --git a/libc/bionic/abort.cpp b/libc/bionic/abort.cpp
index 69ac0e5..75413c6 100644
--- a/libc/bionic/abort.cpp
+++ b/libc/bionic/abort.cpp
@@ -30,7 +30,6 @@
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
-#include "atexit.h"
#ifdef __arm__
extern "C" __LIBC_HIDDEN__ void __libc_android_abort()
diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index fa61c3c..aa76650 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -39,7 +39,6 @@
#include <sys/resource.h>
#include <unistd.h>
-#include "atexit.h"
#include "private/bionic_auxv.h"
#include "private/bionic_ssp.h"
#include "private/bionic_tls.h"
diff --git a/libc/bionic/libc_init_dynamic.cpp b/libc/bionic/libc_init_dynamic.cpp
index 7c46364..78125f9 100644
--- a/libc/bionic/libc_init_dynamic.cpp
+++ b/libc/bionic/libc_init_dynamic.cpp
@@ -48,7 +48,6 @@
#include <stdlib.h>
#include <stdint.h>
#include <elf.h>
-#include "atexit.h"
#include "libc_init_common.h"
#include "private/bionic_tls.h"
@@ -58,6 +57,7 @@
extern void malloc_debug_init(void);
extern void malloc_debug_fini(void);
extern void netdClientInit(void);
+ extern int __cxa_atexit(void (*)(void *), void *, void *);
};
// We flag the __libc_preinit function as a constructor to ensure
diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp
index ab0b3a6..bc11f3d 100644
--- a/libc/bionic/libc_init_static.cpp
+++ b/libc/bionic/libc_init_static.cpp
@@ -46,7 +46,6 @@
#include <sys/auxv.h>
#include <sys/mman.h>
-#include "atexit.h"
#include "libc_init_common.h"
#include "pthread_internal.h"
@@ -60,6 +59,8 @@
// itself at the start of a page.
#define PAGE_END(x) PAGE_START((x) + (PAGE_SIZE-1))
+extern "C" int __cxa_atexit(void (*)(void *), void *, void *);
+
static void call_array(void(**list)()) {
// First element is -1, list is null-terminated
while (*++list) {