[PATCH 1/3] Move __atexit_lock definition
Jeff Johnston
jjohnstn@redhat.com
Tue May 7 18:24:00 GMT 2013
Patch checked in.
-- Jeff J.
On 05/04/2013 10:11 AM, Sebastian Huber wrote:
> 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
>
>
More information about the Newlib
mailing list