summaryrefslogtreecommitdiffstats
path: root/libpthread/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread/Makefile')
-rw-r--r--libpthread/Makefile16
1 files changed, 15 insertions, 1 deletions
diff --git a/libpthread/Makefile b/libpthread/Makefile
index abf9317d1..2d689edcc 100644
--- a/libpthread/Makefile
+++ b/libpthread/Makefile
@@ -18,10 +18,16 @@
TOPDIR=../
include $(TOPDIR)Rules.mak
+ifeq ($(strip $(PTHREADS_NATIVE)),y)
+include nptl/Rules.mak
+endif
CFLAGS+=$(SSP_ALL_CFLAGS)
-#Adjust the soname version to avoid namespace collisions with glibc's libpthread
+#
+# Adjust the soname version to avoid namespace collisions with glibc's
+# libpthread library.
+#
LIBPTHREAD=libpthread.a
LIBPTHREAD_SHARED=libpthread.so
LIBPTHREAD_SHARED_FULLNAME=libpthread-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so
@@ -95,11 +101,19 @@ $(OBJ): Makefile
shared: all
ifeq ($(strip $(UCLIBC_HAS_THREADS)),y)
+ifeq ($(strip $(PTHREADS_NATIVE)),y)
+ $(LD) $(LDFLAGS_THREAD) -soname=$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) \
+ -o $(LIBPTHREAD_SHARED_FULLNAME) $(SHARED_START_FILES) --whole-archive $(LIBPTHREAD_SHARED_ARCHIVE) \
+ --no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \
+ -L$(TOPDIR)lib -lc -ldl $(LDADD_LIBFLOAT) $(LIBGCC) \
+ $(SHARED_END_FILES)
+else
$(LD) $(LDFLAGS_THREAD) -soname=$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) \
-o $(LIBPTHREAD_SHARED_FULLNAME) $(SHARED_START_FILES) --whole-archive $(LIBPTHREAD) \
--no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \
-L$(TOPDIR)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) \
$(SHARED_END_FILES)
+endif
$(INSTALL) -d $(TOPDIR)lib
$(RM) $(TOPDIR)lib/$(LIBPTHREAD_SHARED_FULLNAME) \
$(TOPDIR)lib/$(LIBPTHREAD_SHARED).$(MAJOR_VERSION)