summaryrefslogtreecommitdiff
path: root/libc/misc
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2011-03-23 17:08:07 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2012-06-15 14:00:32 +0200
commit87936cd0130414cccc8a7427498dd5491ec2664f (patch)
treedd839ff1c4b64f9961309203c876f4378a98d4c1 /libc/misc
parentcfe1298282b9b49f11c0002b1f9cc98da2ad0065 (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.c9
-rw-r--r--libc/misc/internals/__h_errno_location.c2
-rw-r--r--libc/misc/internals/__uClibc_main.c18
-rw-r--r--libc/misc/locale/locale.c1
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 */