diff options
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 |
commit | f3cacffe54fb2644fcf6dee57b5768af4e32e797 (patch) | |
tree | 4dd45d30b15b64a2074d2aea15a1b26f493e55b1 /libpthread/nptl/sysdeps/unix/sysv/linux | |
parent | 61044293e40d58523315342c0521eec46d1994c6 (diff) | |
download | uClibc-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/Makefile | 103 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c | 8 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile | 100 |
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) |