diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2011-03-23 17:08:07 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2012-06-15 14:00:32 +0200 |
commit | 87936cd0130414cccc8a7427498dd5491ec2664f (patch) | |
tree | dd839ff1c4b64f9961309203c876f4378a98d4c1 /libc/misc | |
parent | cfe1298282b9b49f11c0002b1f9cc98da2ad0065 (diff) |
errno and *_init cleanup
Define a common view of __errno_location, __h_errno_location in common header
and use that everywhere, __uClibc_main.c is no special.
The rule adopted:
for enabled threads we make in libc the __GI_x() variants strong, x() weak
and (should) provide another strong x() in libpthread.
If threads are disabled, even the __GI_x() variants are weak.
_stdio_init,_stdio_term,_locale_init: make all hidden weak in common header
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc/misc')
-rw-r--r-- | libc/misc/internals/__errno_location.c | 9 | ||||
-rw-r--r-- | libc/misc/internals/__h_errno_location.c | 2 | ||||
-rw-r--r-- | libc/misc/internals/__uClibc_main.c | 18 | ||||
-rw-r--r-- | libc/misc/locale/locale.c | 1 |
4 files changed, 8 insertions, 22 deletions
diff --git a/libc/misc/internals/__errno_location.c b/libc/misc/internals/__errno_location.c index aec7641ce..340950037 100644 --- a/libc/misc/internals/__errno_location.c +++ b/libc/misc/internals/__errno_location.c @@ -6,15 +6,8 @@ #include "internal_errno.h" -/* psm: moved to bits/errno.h: */ -int * -#ifndef __UCLIBC_HAS_THREADS__ -weak_const_function -#endif -__errno_location (void) +int *__errno_location(void) { return &errno; } -#ifdef IS_IN_libc /* not really need, only to keep in sync w/ libc_hidden_proto */ libc_hidden_weak(__errno_location) -#endif diff --git a/libc/misc/internals/__h_errno_location.c b/libc/misc/internals/__h_errno_location.c index 213d39894..113677682 100644 --- a/libc/misc/internals/__h_errno_location.c +++ b/libc/misc/internals/__h_errno_location.c @@ -6,7 +6,7 @@ #include "internal_errno.h" -int * weak_const_function __h_errno_location (void) +int *__h_errno_location(void) { return &h_errno; } diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c index bda1bb8b4..9f7258d8a 100644 --- a/libc/misc/internals/__uClibc_main.c +++ b/libc/misc/internals/__uClibc_main.c @@ -15,9 +15,6 @@ */ #include <features.h> -#ifndef __UCLIBC_HAS_THREADS_NATIVE__ -#define _ERRNO_H -#endif #include <unistd.h> #include <stdlib.h> #include <string.h> @@ -25,13 +22,13 @@ #include <link.h> #include <bits/uClibc_page.h> #include <paths.h> -#include <unistd.h> -#include <asm/errno.h> +#include <errno.h> +#include <netdb.h> +#include <stdio.h> #include <fcntl.h> #include <sys/stat.h> #include <sys/sysmacros.h> #ifdef __UCLIBC_HAS_THREADS_NATIVE__ -#include <errno.h> #include <pthread-functions.h> #include <not-cancel.h> #include <atomic.h> @@ -39,6 +36,9 @@ #ifdef __UCLIBC_HAS_THREADS__ #include <pthread.h> #endif +#ifdef __UCLIBC_HAS_LOCALE__ +#include <locale.h> +#endif #ifndef SHARED void *__libc_stack_end = NULL; @@ -116,12 +116,6 @@ static __always_inline int not_null_ptr(const void *p) /* * Prototypes. */ -extern int *weak_const_function __errno_location(void); -extern int *weak_const_function __h_errno_location(void); -extern void weak_function _stdio_init(void) attribute_hidden; -#ifdef __UCLIBC_HAS_LOCALE__ -extern void weak_function _locale_init(void) attribute_hidden; -#endif #ifdef __UCLIBC_HAS_THREADS__ #if !defined (__UCLIBC_HAS_THREADS_NATIVE__) || defined (SHARED) extern void weak_function __pthread_initialize_minimal(void); diff --git a/libc/misc/locale/locale.c b/libc/misc/locale/locale.c index 254eb70d5..2c99f06b7 100644 --- a/libc/misc/locale/locale.c +++ b/libc/misc/locale/locale.c @@ -906,7 +906,6 @@ void attribute_hidden _locale_init_l(__locale_t base) _locale_set_l((unsigned char*) C_LOCALE_SELECTOR, base); } -void _locale_init(void) attribute_hidden; void _locale_init(void) { /* TODO: mmap the locale file */ |