[PATCH 1/3] Move __atexit_lock definition
Sebastian Huber
sebastian.huber@embedded-brains.de
Sat May 4 14:12:00 GMT 2013
Interchange declaration and definition of __atexit_lock. If someone
calls exit() there is no need to pull in atexit(). If someone calls
atexit() he expects that someone also uses exit() to invoke the
registered handler.
newlib/ChangeLog
2013-05-04 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libc/stdlib/__atexit.c (__atexit_lock): Declare.
* libc/stdlib/__call_atexit.c (__atexit_lock): Define.
---
newlib/libc/stdlib/__atexit.c | 5 ++++-
newlib/libc/stdlib/__call_atexit.c | 4 +---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/newlib/libc/stdlib/__atexit.c b/newlib/libc/stdlib/__atexit.c
index 4687d00..1caf2e5 100644
--- a/newlib/libc/stdlib/__atexit.c
+++ b/newlib/libc/stdlib/__atexit.c
@@ -10,7 +10,10 @@
/* Make this a weak reference to avoid pulling in malloc. */
void * malloc(size_t) _ATTRIBUTE((__weak__));
-__LOCK_INIT_RECURSIVE(, __atexit_lock);
+
+#ifndef __SINGLE_THREAD__
+extern _LOCK_RECURSIVE_T __atexit_lock;
+#endif
/*
* Register a function to be performed at exit or on shared library unload.
diff --git a/newlib/libc/stdlib/__call_atexit.c b/newlib/libc/stdlib/__call_atexit.c
index 4c45063..a21dd57 100644
--- a/newlib/libc/stdlib/__call_atexit.c
+++ b/newlib/libc/stdlib/__call_atexit.c
@@ -11,9 +11,7 @@
/* Make this a weak reference to avoid pulling in free. */
void free(void *) _ATTRIBUTE((__weak__));
-#ifndef __SINGLE_THREAD__
-extern _LOCK_RECURSIVE_T __atexit_lock;
-#endif
+__LOCK_INIT_RECURSIVE(, __atexit_lock);
#ifdef _WANT_REGISTER_FINI
--
1.7.10.4
More information about the Newlib
mailing list