summaryrefslogtreecommitdiffstats
path: root/libpthread/nptl/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-10-04 00:33:54 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-10-04 00:33:54 +0000
commitf3cacffe54fb2644fcf6dee57b5768af4e32e797 (patch)
tree4dd45d30b15b64a2074d2aea15a1b26f493e55b1 /libpthread/nptl/sysdeps/unix/sysv/linux
parent61044293e40d58523315342c0521eec46d1994c6 (diff)
downloaduClibc-alpine-f3cacffe54fb2644fcf6dee57b5768af4e32e797.tar.bz2
uClibc-alpine-f3cacffe54fb2644fcf6dee57b5768af4e32e797.tar.xz
Fix up build system for NPTL. I admit it is much cleaner now, but I lost my entire Saturday fixing this $!#$!#@$T! up.
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux')
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/Makefile103
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c8
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile100
3 files changed, 124 insertions, 87 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile
index 37ea6e05b..3dd1430b7 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile
@@ -21,35 +21,32 @@ TOPDIR=../../../../../../
include $(TOPDIR)Rules.mak
include ../../../../Rules.mak
-CSRC-LIBP-ST = pt-raise.c pthread_attr_getaffinity.c \
+AR_LIBP_CSRC = pt-raise.c pthread_attr_getaffinity.c \
pthread_attr_setaffinity.c pthread_getaffinity.c \
pthread_getcpuclockid.c pthread_kill.c \
pthread_mutex_cond_lock.c pthread_setaffinity.c \
pthread_yield.c sem_post.c sem_timedwait.c \
sem_trywait.c sem_wait.c pt-fork.c
-
-CSRC-LIBP-SH = $(CSRC-LIBP-ST)
-
-CSRC-LIBC-ST = libc_pthread_init.c libc_multiple_threads.c \
+SO_LIBP_CSRC = $(AR_LIBP_CSRC)
+AR_LIBC_CSRC = libc_pthread_init.c libc_multiple_threads.c \
register-atfork.c unregister-atfork.c
-
-CSRC-LIBC-SH = $(CSRC-LIBC-ST)
+SO_LIBC_CSRC = $(AR_LIBC_CSRC)
ifeq ($(strip $(TARGET_ARCH)),alpha)
-CSRC-LIBC-ST += libc-lowlevellock.c
-CSRC-LIBP-ST += rtld-libc-lowlevellock.c
+AR_LIBC_CSRC += libc-lowlevellock.c
+AR_LIBP_CSRC += rtld-libc-lowlevellock.c
endif
ifeq ($(strip $(TARGET_ARCH)),mips)
-CSRC-LIBC-ST += libc-lowlevellock.c
-CSRC-LIBP-ST += rtld-libc-lowlevellock.c
+AR_LIBC_CSRC += libc-lowlevellock.c
+AR_LIBP_CSRC += rtld-libc-lowlevellock.c
endif
ifeq ($(strip $(TARGET_ARCH)),powerpc)
-CSRC-LIBC-ST += libc-lowlevellock.c
-CSRC-LIBP-ST += rtld-libc-lowlevellock.c
+AR_LIBC_CSRC += libc-lowlevellock.c
+AR_LIBP_CSRC += rtld-libc-lowlevellock.c
endif
ifeq ($(strip $(TARGET_ARCH)),sparc)
-CSRC-LIBC-ST += libc-lowlevellock.c
-CSRC-LIBP-ST += rtld-libc-lowlevellock.c
+AR_LIBC_CSRC += libc-lowlevellock.c
+AR_LIBP_CSRC += rtld-libc-lowlevellock.c
endif
#
@@ -57,51 +54,67 @@ endif
#
CFLAGS-pt-fork.c = -D_GNU_SOURCE
-COBJ-LIBP-ST = $(patsubst %.c, %.o, $(CSRC-LIBP-ST))
-COBJ-LIBP-SH = $(patsubst %.c, %.os, $(CSRC-LIBP-SH))
-COBJ-LIBC-ST = $(patsubst %.c, %.o, $(CSRC-LIBC-ST))
-COBJ-LIBC-SH = $(patsubst %.c, %.os, $(CSRC-LIBC-SH))
+AR_LIBP_COBJS = $(patsubst %.c, %.o, $(AR_LIBP_CSRC))
+SO_LIBP_COBJS = $(patsubst %.c, %.os, $(SO_LIBP_CSRC))
+AR_LIBC_COBJS = $(patsubst %.c, %.o, $(AR_LIBC_CSRC))
+SO_LIBC_COBJS = $(patsubst %.c, %.os, $(SO_LIBC_CSRC))
+
+all: $(AR_LIB_NAME) $(AR_SO_LIB_NAME)
-ar-target all: $(COBJ-LIBP-ST) $(COBJ-LIBP-SH)
+$(AR_LIB_NAME): $(AR_LIBP_COBJS)
ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
- $(STRIPTOOL) -X --strip-debug -R .note -R .comment \
- $(COBJ-LIBP-ST) $(COBJ-LIBP-SH)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $(AR_LIBP_COBJS)
else
- $(STRIPTOOL) -x -R .note -R .comment \
- $(COBJ-LIBP-ST) $(COBJ-LIBP-SH)
+ $(STRIPTOOL) -x -R .note -R .comment $(AR_LIBP_COBJS)
endif
- $(AR) $(ARFLAGS) $(PTDIR)../$(LIBPTHREAD_STATIC_ARCHIVE) $(COBJ-LIBP-ST)
- $(AR) $(ARFLAGS) $(PTDIR)../$(LIBPTHREAD_SHARED_ARCHIVE) $(COBJ-LIBP-SH)
+ $(AR) $(ARFLAGS) $(AR_LIB_NAME) $(AR_LIBP_COBJS)
+
+$(AR_SO_LIB_NAME): $(SO_LIBP_COBJS)
+ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $(SO_LIBP_COBJS)
+else
+ $(STRIPTOOL) -x -R .note -R .comment $(SO_LIBP_COBJS)
+endif
+ $(AR) $(ARFLAGS) $(AR_SO_LIB_NAME) $(SO_LIBP_COBJS)
+
+obj.pthread.ar: $(AR_LIBC_COBJS)
+ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $(AR_LIBC_COBJS)
+else
+ $(STRIPTOOL) -x -R .note -R .comment $(AR_LIBC_COBJS)
+endif
+ @for objfile in $(AR_LIBC_COBJS); do \
+ echo ../libpthread/nptl/sysdeps/unix/sysv/linux/$$objfile >> \
+ $(TOPDIR)libc/$@; \
+ done
-$(COBJ-LIBP-ST): %.o : %.c
+obj.pthread.so: $(SO_LIBC_COBJS)
+ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $(SO_LIBC_COBJS)
+else
+ $(STRIPTOOL) -x -R .note -R .comment $(SO_LIBC_COBJS)
+endif
+ @for objfile in $(SO_LIBC_COBJS); do \
+ echo ../libpthread/nptl/sysdeps/unix/sysv/linux/$$objfile >> \
+ $(TOPDIR)libc/$@; \
+ done
+
+$(AR_LIBP_COBJS): %.o : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBP) -c $< -o $@
-$(COBJ-LIBP-SH): %.os : %.c
+$(SO_LIBP_COBJS): %.os : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBP) -DSHARED -c $< -o $@
-$(COBJ-LIBC-ST): %.o : %.c
+$(AR_LIBC_COBJS): %.o : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBC) -c $< -o $@
-$(COBJ-LIBC-SH): %.os : %.c
+$(SO_LIBC_COBJS): %.os : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBC) -DSHARED -c $< -o $@
-objs-pthread-libc: $(COBJ-LIBC-ST) $(COBJ-LIBC-SH)
-ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
- $(STRIPTOOL) -X --strip-debug -R .note -R .comment \
- $(COBJ-LIBC-ST) $(COBJ-LIBC-SH)
-else
- $(STRIPTOOL) -x -R .note -R .comment \
- $(COBJ-LIBC-ST) $(COBJ-LIBC-SH)
-endif
- @for objfile in $(COBJ-LIBC-ST); do \
- echo ../libpthread/nptl/sysdeps/unix/sysv/linux/$$objfile >> $(PTCOBJST); \
- done
- @for objfile in $(COBJ-LIBC-SH); do \
- echo ../libpthread/nptl/sysdeps/unix/sysv/linux/$$objfile >> $(PTCOBJSH); \
- done
-
rtld-libc-lowlevellock.c: libc-lowlevellock.c
$(LN) -fs $< $@
clean:
$(RM) *.o *.os *~ core rtld-libc-lowlevellock.c
+
+.PHONY: $(AR_LIB_NAME) $(AR_SO_LIB_NAME)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c b/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
index 3d1c02181..85b75221e 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
@@ -57,3 +57,11 @@ __libc_pthread_init (ptr, reclaim, functions)
return &__libc_multiple_threads;
#endif
}
+
+/* I would rather not talk about this. */
+#ifdef SHARED
+#include <link.h>
+void _dl_aux_init (ElfW(auxv_t) *av)
+{
+}
+#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile
index dd2bda972..865f74149 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile
@@ -21,71 +21,87 @@ TOPDIR=../../../../../../../
include $(TOPDIR)Rules.mak
include ../../../../../Rules.mak
-ASRC-LIBP-ST = pt-vfork.S clone.S
-ASRC-LIBP-SH = $(ASRC-LIBP-ST)
+AR_LIBP_ASRC = pt-vfork.S clone.S
+SO_LIBP_ASRC = $(AR_LIBP_ASRC)
+AR_LIBP_CSRC = pthread_once.c
+SO_LIBP_CSRC = $(AR_LIBP_CSRC)
+AR_LIBC_CSRC = fork-nptl.c
+SO_LIBC_CSRC = $(AR_LIBC_CSRC)
-CSRC-LIBP-ST = pthread_once.c
-CSRC-LIBP-SH = $(CSRC-LIBP-ST)
-
-CSRC-LIBC-ST = fork-nptl.c
-CSRC-LIBC-SH = $(CSRC-LIBC-ST)
-
-AOBJ-LIBP-ST = $(patsubst %.S, %.o, $(ASRC-LIBP-ST))
-AOBJ-LIBP-SH = $(patsubst %.S, %.os, $(ASRC-LIBP-SH))
-COBJ-LIBP-ST = $(patsubst %.c, %.o, $(CSRC-LIBP-ST))
-COBJ-LIBP-SH = $(patsubst %.c, %.os, $(CSRC-LIBP-ST))
-COBJ-LIBC-ST = $(patsubst %.c, %.o, $(CSRC-LIBC-ST))
-COBJ-LIBC-SH = $(patsubst %.c, %.os, $(CSRC-LIBC-SH))
+AR_LIBP_AOBJS = $(patsubst %.S, %.o, $(AR_LIBP_ASRC))
+SO_LIBP_AOBJS = $(patsubst %.S, %.os, $(SO_LIBP_ASRC))
+AR_LIBP_COBJS = $(patsubst %.c, %.o, $(AR_LIBP_CSRC))
+SO_LIBP_COBJS = $(patsubst %.c, %.os, $(SO_LIBP_CSRC))
+AR_LIBC_COBJS = $(patsubst %.c, %.o, $(AR_LIBC_CSRC))
+SO_LIBC_COBJS = $(patsubst %.c, %.os, $(SO_LIBC_CSRC))
ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y)
CFLAGS-fork-nptl.c = -D__USE_STDIO_FUTEXES__
endif
-ar-target all: $(AOBJ-LIBP-ST) $(AOBJ-LIBP-SH) $(COBJ-LIBP-ST) $(COBJ-LIBP-SH)
+all: $(AR_LIB_NAME) $(AR_SO_LIB_NAME)
+
+$(AR_LIB_NAME): $(AR_LIBP_AOBJS) $(AR_LIBP_COBJS)
+ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment \
+ $(AR_LIBP_AOBJS) $(AR_LIBP_COBJS)
+else
+ $(STRIPTOOL) -x -R .note -R .comment \
+ $(AR_LIBP_AOBJS) $(AR_LIBP_COBJS)
+endif
+ $(AR) $(ARFLAGS) $(AR_LIB_NAME) $(AR_LIBP_AOBJS) $(AR_LIBP_COBJS)
+
+$(AR_SO_LIB_NAME): $(SO_LIBP_AOBJS) $(SO_LIBP_COBJS)
ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
$(STRIPTOOL) -X --strip-debug -R .note -R .comment \
- $(AOBJ-LIBP-ST) $(AOBJ-LIBP-SH) $(COBJ-LIBP-ST) $(COBJ-LIBP-SH)
+ $(SO_LIBP_AOBJS) $(SO_LIBP_COBJS)
else
$(STRIPTOOL) -x -R .note -R .comment \
- $(AOBJ-LIBP-ST) $(AOBJ-LIBP-SH) $(COBJ-LIBP-ST) $(COBJ-LIBP-SH)
+ $(SO_LIBP_AOBJS) $(SO_LIBP_COBJS)
+endif
+ $(AR) $(ARFLAGS) $(AR_SO_LIB_NAME) $(SO_LIBP_AOBJS) $(SO_LIBP_COBJS)
+
+obj.pthread.ar: $(AR_LIBC_COBJS)
+ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $(AR_LIBC_COBJS)
+else
+ $(STRIPTOOL) -x -R .note -R .comment $(AR_LIBC_COBJS)
+endif
+ @for objfile in $(AR_LIBC_COBJS); do \
+ echo ../libpthread/nptl/sysdeps/unix/sysv/linux/mips/$$objfile \
+ >> $(TOPDIR)libc/$@; \
+ done
+
+obj.pthread.so: $(SO_LIBC_COBJS)
+ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
+ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $(SO_LIBC_COBJS)
+else
+ $(STRIPTOOL) -x -R .note -R .comment $(SO_LIBC_COBJS)
endif
- $(AR) $(ARFLAGS) $(PTDIR)../$(LIBPTHREAD_STATIC_ARCHIVE) \
- $(AOBJ-LIBP-ST) $(COBJ-LIBP-ST)
- $(AR) $(ARFLAGS) $(PTDIR)../$(LIBPTHREAD_SHARED_ARCHIVE) \
- $(AOBJ-LIBP-SH) $(COBJ-LIBP-SH)
+ @for objfile in $(SO_LIBC_COBJS); do \
+ echo ../libpthread/nptl/sysdeps/unix/sysv/linux/mips/$$objfile \
+ >> $(TOPDIR)libc/$@; \
+ done
-$(AOBJ-LIBP-ST): %.o : %.S
+$(AR_LIBP_AOBJS): %.o : %.S
$(CC) $(ASFLAGS-LIBP) -c $< -o $@
-$(AOBJ-LIBP-SH): %.os : %.S
+$(SO_LIBP_AOBJS): %.os : %.S
$(CC) $(ASFLAGS-LIBP) -DSHARED -c $< -o $@
-$(COBJ-LIBP-ST): %.o : %.c
+$(AR_LIBP_COBJS): %.o : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBP) -c $< -o $@
-$(COBJ-LIBP-SH): %.os : %.c
+$(SO_LIBP_COBJS): %.os : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBP) -DSHARED -c $< -o $@
-$(COBJ-LIBC-ST): %.o : %.c
+$(AR_LIBC_COBJS): %.o : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBC) -c $< -o $@
-$(COBJ-LIBC-SH): %.os : %.c
+$(SO_LIBC_COBJS): %.os : %.c
$(CC) $(CFLAGS-$<) $(CFLAGS-LIBC) -DSHARED -c $< -o $@
-objs-pthread-libc: $(COBJ-LIBC-ST) $(COBJ-LIBC-SH)
-ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y)
- $(STRIPTOOL) -X --strip-debug -R .note -R .comment \
- $(COBJ-LIBC-ST) $(COBJ-LIBC-SH)
-else
- $(STRIPTOOL) -x -R .note -R .comment \
- $(COBJ-LIBC-ST) $(COBJ-LIBC-SH)
-endif
- @for objfile in $(COBJ-LIBC-ST); do \
- echo ../libpthread/nptl/sysdeps/unix/sysv/linux/mips/$$objfile >> $(PTCOBJST); \
- done
- @for objfile in $(COBJ-LIBC-SH); do \
- echo ../libpthread/nptl/sysdeps/unix/sysv/linux/mips/$$objfile >> $(PTCOBJSH); \
- done
-
clean:
$(RM) *.o *.os *~ core
+
+.PHONY: $(AR_LIB_NAME) $(AR_SO_LIB_NAME)