rwlock semaphore sighandler signals specific spinlock
pthread_SRC := $(patsubst %,$(libpthread_DIR)/%.c,$(pthread_SRC))
-#libpthread_shared_SRC := pt-allocrtsig
libpthread_static_SRC := pthread_atfork
libpthread_SRC := $(pthread_arch_SRC) $(pthread_linux_SRC) $(pthread_sysdep_SRC) $(pthread_SRC)
libpthread_OBJ := $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SRC))
libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
libpthread-static-y += $(patsubst %,$(libpthread_OUT)/%.o,$(libpthread_static_SRC))
-libpthread-shared-y += $(patsubst %,$(libpthread_OUT)/%.oS,$(libpthread_shared_SRC))
ifeq ($(DOPIC),y)
libpthread-a-y += $(libpthread_OBJ:.o=.os) $(libpthread-static-y:.o=.os)
else
libpthread-a-y += $(libpthread_OBJ) $(libpthread-static-y)
endif
-libpthread-so-y += $(libpthread_OBJ:.o=.os) $(libpthread-shared-y)
+libpthread-so-y += $(libpthread_OBJ:.o=.os)
lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
endif
$(do_ar)
-$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC) $(patsubst %,$(libpthread_DIR)/%.c,$(libpthread_shared_SRC))
+$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC)
$(Q)$(RM) $@
$(compile-m)
ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
02111-1307 USA. */
#include <dlfcn.h>
-#include "internals.h"
#include <stdlib.h>
+/* psm: keep this before internals.h */
+libc_hidden_proto(exit)
+#include "internals.h"
/* Pointers to the libc functions. */
struct pthread_functions __libc_pthread_functions attribute_hidden;
#endif
#include "internals.h"
+#ifdef SHARED
+libc_hidden_proto(memcpy)
+#endif
+#if !(USE_TLS && HAVE___THREAD) && defined __UCLIBC_HAS_XLOCALE__
+libc_hidden_proto(uselocale)
+#endif
+
int *
__libc_pthread_init (functions)
const struct pthread_functions *functions;
sizeof (__libc_pthread_functions));
#endif
-#if !(USE_TLS && HAVE___THREAD)
+#if !(USE_TLS && HAVE___THREAD) && defined __UCLIBC_HAS_XLOCALE__
/* Initialize thread-locale current locale to point to the global one.
With __thread support, the variable's initializer takes care of this. */
- __uselocale (LC_GLOBAL_LOCALE);
+ uselocale (LC_GLOBAL_LOCALE);
#endif
return &__libc_multiple_threads;
#include <not-cancel.h>
#define __clone clone
+#if !(USE_TLS && HAVE___THREAD) && defined __UCLIBC_HAS_XLOCALE__
+#define __uselocale(x) uselocale(x)
+#endif
/* For debugging purposes put the maximum number of threads in a variable. */
const int __linuxthreads_pthread_threads_max = PTHREAD_THREADS_MAX;
__sched_setscheduler(THREAD_GETMEM(self, p_pid),
SCHED_OTHER, &default_params);
}
-#if !(USE_TLS && HAVE___THREAD)
+#if !(USE_TLS && HAVE___THREAD) && defined __UCLIBC_HAS_XLOCALE__
/* Initialize thread-locale current locale to point to the global one.
With __thread support, the variable's initializer takes care of this. */
__uselocale (LC_GLOBAL_LOCALE);
#ifdef IS_IN_libpthread
#include "kernel-features.h"
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-
#ifndef __GLIBC_HAVE_LONG_LONG
# define __GLIBC_HAVE_LONG_LONG
#endif
-#ifndef __UCLIBC_HAS_XLOCALE__
-# define __uselocale(x)
-#endif
-
#define __getpagesize getpagesize
#define __sched_get_priority_max sched_get_priority_max
#define __sched_get_priority_min sched_get_priority_min