OSDN Git Service

weak symbols need to be "defined" weak but "declared" strong
[uclinux-h8/uClibc.git] / libc / misc / internals / __errno_location.c
index a44bf60..6c359f9 100644 (file)
@@ -4,14 +4,15 @@
  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  */
 
-#include "internal_errno.h"
+#include <features.h>
+#include <errno.h>
 
-/* psm: moved to bits/errno.h: libc_hidden_proto(__errno_location) */
-libc_hidden_proto(__errno_location)
-int * weak_const_function __errno_location (void)
+#ifndef __UCLIBC_HAS_TLS__
+# undef errno
+extern int errno;
+#endif
+
+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