summaryrefslogtreecommitdiffstats
path: root/libc
diff options
context:
space:
mode:
Diffstat (limited to 'libc')
-rw-r--r--libc/misc/internals/Makefile.in25
-rw-r--r--libc/misc/internals/__errno_location.c23
-rw-r--r--libc/misc/internals/internal_errno.h20
3 files changed, 48 insertions, 20 deletions
diff --git a/libc/misc/internals/Makefile.in b/libc/misc/internals/Makefile.in
index 2ca6cd45d..230e6e7a9 100644
--- a/libc/misc/internals/Makefile.in
+++ b/libc/misc/internals/Makefile.in
@@ -7,7 +7,7 @@
CFLAGS-__uClibc_main.c := $(SSP_DISABLE_FLAGS)
-CSRC := tempname.c __errno_location.c __h_errno_location.c
+CSRC := tempname.c errno.c __errno_location.c __h_errno_location.c
MISC_INTERNALS_DIR := $(top_srcdir)libc/misc/internals
MISC_INTERNALS_OUT := $(top_builddir)libc/misc/internals
@@ -16,15 +16,22 @@ MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC))
MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC))
libc-y += $(MISC_INTERNALS_OBJ)
-libc-shared-y += $(MISC_INTERNALS_OUT)/__uClibc_main.oS \
- $(MISC_INTERNALS_OUT)/errno.oS
-libc-static-y += $(MISC_INTERNALS_OUT)/__uClibc_main.o \
- $(MISC_INTERNALS_OUT)/errno.o
+ifneq ($(UCLIBC_FORMAT_SHARED_FLAT),y)
+libc-shared-y += $(MISC_INTERNALS_OUT)/__uClibc_main.oS
+else
+libc-shared-y += $(MISC_INTERNALS_OUT)/__uClibc_main.os
+endif
+libc-static-y += $(MISC_INTERNALS_OUT)/__uClibc_main.o
+libc-static-$(UCLIBC_FORMAT_FLAT_SEP_DATA) += \
+ $(MISC_INTERNALS_OUT)/shared_flat_initfini.o \
+ $(MISC_INTERNALS_OUT)/shared_flat_add_library.o
libc-static-$(UCLIBC_FORMAT_SHARED_FLAT) += \
- $(MISC_INTERNALS_OUT)/shared_flat_initfini.o \
- $(MISC_INTERNALS_OUT)/shared_flat_add_library.o
-libc-nomulti-y += $(MISC_INTERNALS_OUT)/__uClibc_main.o \
- $(MISC_INTERNALS_OUT)/errno.o
+ $(MISC_INTERNALS_OUT)/shared_flat_initfini.o \
+ $(MISC_INTERNALS_OUT)/shared_flat_add_library.o
+libc-shared-$(UCLIBC_FORMAT_SHARED_FLAT) += \
+ $(MISC_INTERNALS_OUT)/shared_flat_initfini.os \
+ $(MISC_INTERNALS_OUT)/shared_flat_add_library.os
+libc-nomulti-y += $(MISC_INTERNALS_OUT)/__uClibc_main.o
objclean-y += misc_internals_clean
diff --git a/libc/misc/internals/__errno_location.c b/libc/misc/internals/__errno_location.c
index c0b1532b9..4401ba249 100644
--- a/libc/misc/internals/__errno_location.c
+++ b/libc/misc/internals/__errno_location.c
@@ -1,16 +1,17 @@
-#include <errno.h>
+/*
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
-#ifndef __UCLIBC_HAS_THREADS_NATIVE__
-#undef errno
-extern int errno;
-#endif
+#include "internal_errno.h"
-int *
-#ifndef __UCLIBC_HAS_THREADS_NATIVE__
-weak_const_function
-#endif
-__errno_location (void)
+/* psm: moved to bits/errno.h: */
+/* libc_hidden_proto(__errno_location) */
+int * weak_const_function __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/internal_errno.h b/libc/misc/internals/internal_errno.h
new file mode 100644
index 000000000..884f86774
--- /dev/null
+++ b/libc/misc/internals/internal_errno.h
@@ -0,0 +1,20 @@
+/*
+ *
+ */
+#ifndef __UCLIBC_HAS_THREADS_NATIVE__
+
+#include <features.h>
+#include <errno.h>
+#include <netdb.h>
+
+#undef errno
+#undef h_errno
+
+extern int h_errno;
+extern int errno;
+
+#ifdef __UCLIBC_HAS_THREADS__
+libc_hidden_proto(h_errno)
+libc_hidden_proto(errno)
+#endif
+#endif