aboutsummaryrefslogtreecommitdiffstats
path: root/libc/bionic
diff options
context:
space:
mode:
authorDmitriy Ivanov <dimitry@google.com>2014-07-11 12:59:16 -0700
committerDmitriy Ivanov <dimitry@google.com>2014-07-14 12:05:16 -0700
commit53c3c271dc9927dd280981fc23409af60f460007 (patch)
tree4a04122167583b9994204372bbc549a8174b9611 /libc/bionic
parent83ce99d8b7e2b15b2169e6e6e18e871ad35abb6c (diff)
downloadandroid_bionic-53c3c271dc9927dd280981fc23409af60f460007.tar.gz
android_bionic-53c3c271dc9927dd280981fc23409af60f460007.tar.bz2
android_bionic-53c3c271dc9927dd280981fc23409af60f460007.zip
Upstream atexit
Change-Id: Ia454a2181b5058ed9783dc02b6b1805d0e4d2715
Diffstat (limited to 'libc/bionic')
-rw-r--r--libc/bionic/abort.cpp1
-rw-r--r--libc/bionic/libc_init_common.cpp1
-rw-r--r--libc/bionic/libc_init_dynamic.cpp2
-rw-r--r--libc/bionic/libc_init_static.cpp3
4 files changed, 3 insertions, 4 deletions
diff --git a/libc/bionic/abort.cpp b/libc/bionic/abort.cpp
index 69ac0e503..75413c608 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 fa61c3c10..aa76650cf 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 7c463643b..78125f968 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 "C" {
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 ab0b3a69f..bc11f3d93 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) {