diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2005-09-28 12:34:41 +0000 |
---|---|---|
committer | Peter S. Mazinger <ps.m@gmx.net> | 2005-09-28 12:34:41 +0000 |
commit | f70602be19ff8042c369ea33b29f90b8c0f5d02e (patch) | |
tree | 146eb1810d44dc99f8bf26ecd71cec4ee5ba5b32 /libpthread | |
parent | e1ac781ed8b4a0f44a696f95618b73d2fa490576 (diff) |
Remove ar-target and shared targets, at build time now we traverse the tree only once. Generalize all toplevel makefiles. Make sure, that libdl.so is built against libc.so and not libc.a
Diffstat (limited to 'libpthread')
-rw-r--r-- | libpthread/Makefile | 74 | ||||
-rw-r--r-- | libpthread/linuxthreads/Makefile | 65 | ||||
-rw-r--r-- | libpthread/linuxthreads/sysdeps/sh64/Makefile | 26 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/Makefile | 62 |
4 files changed, 88 insertions, 139 deletions
diff --git a/libpthread/Makefile b/libpthread/Makefile index 1218b5cc8..60ad7563d 100644 --- a/libpthread/Makefile +++ b/libpthread/Makefile @@ -19,31 +19,14 @@ TOPDIR=../ include $(TOPDIR)Rules.mak -#Adjust the soname version to avoid namespace collisions with glibc's libpthread -LIBPTHREAD=libpthread.a -LIBPTHREAD_SHARED=libpthread.so -LIBPTHREAD_SHARED_FULLNAME=libpthread-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so - -LIBTHREAD_DB=libthread_db.a -LIBTHREAD_DB_SHARED=libthread_db.so -LIBTHREAD_DB_SHARED_FULLNAME=libthread_db-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so +ALL_SUBDIRS = linuxthreads linuxthreads_db DIRS=linuxthreads ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) DIRS+=linuxthreads_db endif -ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) - SHARED_START_FILES = $(TOPDIR)lib/crti.o $(LIBGCC_DIR)crtbeginS.o - SHARED_END_FILES = $(LIBGCC_DIR)crtendS.o $(TOPDIR)lib/crtn.o -endif - -ALL_SUBDIRS = linuxthreads linuxthreads_db - -# Remove any -z defs since this lib will have undefined symbols -LIBTHREAD_DB_LDFLAGS := $(subst -z defs,,$(LDFLAGS)) - -all: $(LIBPTHREAD) $(LIBTHREAD_DB) +all: subdirs headers: ifeq ($(strip $(UCLIBC_HAS_THREADS_NATIVE)),y) @@ -53,6 +36,9 @@ ifeq ($(strip $(UCLIBC_HAS_THREADS_NATIVE)),y) $(LN) -sf ../$(TOPDIR)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/bits/pthreadtypes.h $(TOPDIR)include/bits/ $(LN) -sf ../$(TOPDIR)libpthread/nptl/sysdeps/pthread/bits/libc-lock.h $(TOPDIR)include/bits/ $(LN) -sf ../$(TOPDIR)libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h $(TOPDIR)include/bits/ +ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) + $(LN) -sf $(TOPDIR)libpthread/nptl_db/thread_db.h $(TOPDIR)include/ +endif else $(LN) -sf $(TOPDIR)libpthread/linuxthreads/sysdeps/pthread/pthread.h $(TOPDIR)include/ $(LN) -sf $(TOPDIR)libpthread/linuxthreads/semaphore.h $(TOPDIR)include/ @@ -62,52 +48,6 @@ ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) endif endif -$(LIBPTHREAD): subdirs - $(INSTALL) -d $(TOPDIR)lib - $(RM) $(TOPDIR)lib/$(LIBPTHREAD) - $(INSTALL) -m 644 $(LIBPTHREAD) $(TOPDIR)lib - -$(LIBTHREAD_DB): subdirs -ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) - $(INSTALL) -d $(TOPDIR)lib - $(RM) $(TOPDIR)lib/$(LIBTHREAD_DB) - $(INSTALL) -m 644 $(LIBTHREAD_DB) $(TOPDIR)lib -endif - - -$(OBJS): %.o : %.c - $(CC) $(CFLAGS) -c $< -o $@ - $(STRIPTOOL) -x -R .note -R .comment $*.o - -shared: all - $(LD) $(LDFLAGS_NOSTRIP) -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) - $(INSTALL) -d $(TOPDIR)lib - $(RM) $(TOPDIR)lib/$(LIBPTHREAD_SHARED_FULLNAME) \ - $(TOPDIR)lib/$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) - $(INSTALL) -m 644 $(LIBPTHREAD_SHARED_FULLNAME) $(TOPDIR)lib - $(LN) -sf $(LIBPTHREAD_SHARED_FULLNAME) \ - $(TOPDIR)lib/$(LIBPTHREAD_SHARED) - $(LN) -sf $(LIBPTHREAD_SHARED_FULLNAME) \ - $(TOPDIR)lib/$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) -ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) - $(LD) $(LIBTHREAD_DB_LDFLAGS) --warn-unresolved-symbols -soname=$(LIBTHREAD_DB_SHARED).1 \ - -o $(LIBTHREAD_DB_SHARED_FULLNAME) --whole-archive $(LIBTHREAD_DB) \ - --no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \ - -L$(TOPDIR)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) - $(INSTALL) -d $(TOPDIR)lib - $(RM) $(TOPDIR)lib/$(LIBTHREAD_DB_SHARED_FULLNAME) \ - $(TOPDIR)lib/$(LIBTHREAD_DB_SHARED).1 - $(INSTALL) -m 644 $(LIBTHREAD_DB_SHARED_FULLNAME) $(TOPDIR)lib - $(LN) -sf $(LIBTHREAD_DB_SHARED_FULLNAME) \ - $(TOPDIR)lib/$(LIBTHREAD_DB_SHARED) - $(LN) -sf $(LIBTHREAD_DB_SHARED_FULLNAME) \ - $(TOPDIR)lib/$(LIBTHREAD_DB_SHARED).1 -endif - tags: ctags -R @@ -121,9 +61,7 @@ $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy $(MAKE) -C $(patsubst _dirclean_%, %, $@) clean clean: subdirs_clean - $(RM) *.[oa] *~ core $(LIBPTHREAD) $(LIBPTHREAD_SHARED_FULLNAME) \ - $(LIBTHREAD_DB) $(LIBTHREAD_DB_SHARED_FULLNAME) \ - $(TOPDIR)include/pthread.h $(TOPDIR)include/semaphore.h \ + $(RM) $(TOPDIR)include/pthread.h $(TOPDIR)include/semaphore.h \ $(TOPDIR)include/thread_db.h \ $(TOPDIR)include/bits/pthreadtypes.h $(TOPDIR)include/bits/semaphore.h \ $(TOPDIR)include/bits/libc-lock.h $(TOPDIR)include/bits/stdio-lock diff --git a/libpthread/linuxthreads/Makefile b/libpthread/linuxthreads/Makefile index 08ff8a2d8..2d20d2351 100644 --- a/libpthread/linuxthreads/Makefile +++ b/libpthread/linuxthreads/Makefile @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Library General Public License # along with this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# Makefile for uClibc TOPDIR=../../ include $(TOPDIR)Rules.mak @@ -26,46 +25,62 @@ include $(TOPDIR)Rules.mak # $(AR)'s in subdirs running on linuxthreads.a. DIRS = sysdeps -#Adjust the soname version to avoid namespace collisions with glibc's libpthread -LIBPTHREAD:=../libpthread.a -ifeq ($(strip $(TARGET_ARCH)),sparc) -SYSDEPS_DIR:=$(TARGET_ARCH)/sparc32 -else -SYSDEPS_DIR:=$(TARGET_ARCH) -endif -CFLAGS += $(SSP_ALL_CFLAGS) +CFLAGS+=$(SSP_ALL_CFLAGS) + #This stuff will not compile without at least -O1 CFLAGS :=$(CFLAGS:-O0=-O1) - # set up system dependencies include dirs (NOTE: order matters!) +# psm: don't think that the last include makes sense +# they all should be already linked to $(TOPDIR)include PTDIR = $(TOPDIR)libpthread/linuxthreads/ SYSDEPINC = -I$(PTDIR)sysdeps/pthread \ -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) CFLAGS += $(SYSDEPINC) -CSRC=attr.c cancel.c condvar.c errno.c events.c join.c lockfile.c manager.c \ - mutex.c oldsemaphore.c pt-machine.c ptfork.c pthread.c \ - ptlongjmp.c rwlock.c semaphore.c signals.c specific.c spinlock.c +ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) + SHARED_START_FILES = $(TOPDIR)lib/crti.o $(LIBGCC_DIR)crtbeginS.o + SHARED_END_FILES = $(LIBGCC_DIR)crtendS.o $(TOPDIR)lib/crtn.o +endif -ifeq ($(UCLIBC_HAS_XLOCALE),y) - CSRC += locale.c +LIB_NAME=libpthread +AR_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).a +SO_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).so +SO_FULL_NAME=$(LIB_NAME)-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so + +CSRC = $(wildcard *.c) +ifneq ($(strip $(UCLIBC_HAS_XLOCALE)),y) +CSRC := $(filter-out locale.c,$(CSRC)) endif -COBJS=$(patsubst %.c,%.o, $(CSRC)) -OBJS=$(COBJS) +OBJS=$(patsubst %.c,%.o, $(CSRC)) # We need to make sure that we put all the top-level $(OBJS) into # our archive before executing subdirs. That way, when $(AR) is # run in the subdirs, it'll bump the generic top-level objects # out of our archive in favor of the machine-specific ones. -all: $(LIBPTHREAD) subdirs - -$(LIBPTHREAD) ar-target: $(OBJS) - $(AR) $(ARFLAGS) $(LIBPTHREAD) $(OBJS) +ifeq ($(strip $(HAVE_SHARED)),y) +all: $(SO_LIB_NAME) +else +all: subdirs +endif -$(COBJS): %.o : %.c +$(AR_LIB_NAME): $(OBJS) + $(INSTALL) -d $(TOPDIR)lib + $(RM) $(AR_LIB_NAME) + $(AR) $(ARFLAGS) $(AR_LIB_NAME) $(OBJS) + +$(SO_LIB_NAME): subdirs + $(RM) $(TOPDIR)lib/$(SO_FULL_NAME) $(SO_LIB_NAME).$(MAJOR_VERSION) $(SO_LIB_NAME) + $(LD) $(LDFLAGS_NOSTRIP) -soname=$(LIB_NAME).so.$(MAJOR_VERSION) \ + -o $(TOPDIR)lib/$(SO_FULL_NAME) $(SHARED_START_FILES) --whole-archive $(AR_LIB_NAME) \ + --no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \ + -L$(TOPDIR)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) $(SHARED_END_FILES) + $(LN) -sf $(SO_FULL_NAME) $(SO_LIB_NAME).$(MAJOR_VERSION) + $(LN) -sf $(SO_FULL_NAME) $(SO_LIB_NAME) + +$(OBJS): %.o : %.c $(CC) $(CFLAGS) -c $< -o $@ ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) $(STRIPTOOL) -X --strip-debug -R .note -R .comment $*.o @@ -74,15 +89,15 @@ else endif clean: subdirs_clean - $(RM) *.[oa] *~ core + $(RM) *.o *~ core subdirs: $(patsubst %, _dir_%, $(DIRS)) subdirs_clean: $(patsubst %, _dirclean_%, $(DIRS)) -$(patsubst %, _dir_%, $(DIRS)): $(LIBPTHREAD) +$(patsubst %, _dir_%, $(DIRS)): $(AR_LIB_NAME) $(MAKE) -C $(patsubst _dir_%, %, $@) -$(patsubst %, _dirclean_%, $(DIRS)): +$(patsubst %, _dirclean_%, $(DIRS)): dummy $(MAKE) -C $(patsubst _dirclean_%, %, $@) clean .PHONY: dummy diff --git a/libpthread/linuxthreads/sysdeps/sh64/Makefile b/libpthread/linuxthreads/sysdeps/sh64/Makefile index 11b7cc0b5..b3abb82e3 100644 --- a/libpthread/linuxthreads/sysdeps/sh64/Makefile +++ b/libpthread/linuxthreads/sysdeps/sh64/Makefile @@ -19,31 +19,25 @@ TOPDIR=../../../../ include $(TOPDIR)Rules.mak -LIBPTHREAD=../../../libpthread.a -SOBJS = $(patsubst %.S,%.o, $(SSRC)) -CSRC = pt-machine.c -COBJS = $(patsubst %.c,%.o, $(CSRC)) +CFLAGS+=$(SSP_ALL_CFLAGS) # We need to build as SHcompact for tas.. CFLAGS := $(subst 32media,compact,$(CFLAGS)) -OBJS = $(SOBJS) $(COBJS) +LIB_NAME=libpthread +AR_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).a -all: $(OBJS) $(LIBC) +CSRC = pt-machine.c +OBJS = $(patsubst %.c,%.o, $(CSRC)) -$(LIBC): ar-target +all: add_to_archive -ar-target: $(OBJS) - $(AR) $(ARFLAGS) $(LIBPTHREAD) $(OBJS) +add_to_archive: $(OBJS) + $(AR) $(ARFLAGS) $(AR_LIB_NAME) $(OBJS) -$(SOBJS): %.o : %.S - $(CC) $(ASFLAGS) -c $< -o $@ - $(STRIPTOOL) -x -R .note -R .comment $*.o - -$(COBJS): %.o : %.c +$(OBJS): %.o : %.c $(CC) $(CFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: - $(RM) *.[oa] *~ core - + $(RM) *.o *~ core diff --git a/libpthread/linuxthreads_db/Makefile b/libpthread/linuxthreads_db/Makefile index 66015be12..2c27cdccc 100644 --- a/libpthread/linuxthreads_db/Makefile +++ b/libpthread/linuxthreads_db/Makefile @@ -15,53 +15,55 @@ # You should have received a copy of the GNU Library General Public License # along with this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# Makefile for uClibc TOPDIR=../../ include $(TOPDIR)Rules.mak -#Adjust the soname version to avoid namespace collisions with glibc's libpthread -LIBTHREAD_DB:=../libthread_db.a -ifeq ($(strip $(TARGET_ARCH)),sparc) -SYSDEPS_DIR:=$(TARGET_ARCH)/sparc32 -else -SYSDEPS_DIR:=$(TARGET_ARCH) -endif +#CFLAGS+=$(SSP_ALL_CFLAGS) + +LIB_NAME=libthread_db +AR_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).a +SO_LIB_NAME=$(TOPDIR)lib/$(LIB_NAME).so +SO_FULL_NAME=$(LIB_NAME)-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so # set up system dependencies include dirs (NOTE: order matters!) PTDIR = $(TOPDIR)libpthread/linuxthreads/ SYSDEPINC = -I$(PTDIR)sysdeps/pthread \ -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) -#CFLAGS += $(SSP_ALL_CFLAGS) + CFLAGS += $(SYSDEPINC) -DLIBPTHREAD_SO="\"libpthread.so.$(MAJOR_VERSION)\"" -CSRC= td_init.c td_log.c td_ta_delete.c td_ta_get_nthreads.c \ - td_ta_get_ph.c td_ta_map_id2thr.c td_ta_map_lwp2thr.c \ - td_ta_new.c td_ta_thr_iter.c td_ta_tsd_iter.c \ - td_thr_get_info.c td_thr_getfpregs.c td_thr_getgregs.c \ - td_thr_getxregs.c td_thr_getxregsize.c td_thr_setfpregs.c \ - td_thr_setgregs.c td_thr_setprio.c td_thr_setsigpending.c \ - td_thr_setxregs.c td_thr_sigsetmask.c td_thr_tsd.c \ - td_thr_validate.c td_thr_dbsuspend.c td_thr_dbresume.c \ - td_ta_setconcurrency.c td_ta_enable_stats.c \ - td_ta_reset_stats.c td_ta_get_stats.c td_ta_event_addr.c \ - td_thr_event_enable.c td_thr_set_event.c \ - td_thr_clear_event.c td_thr_event_getmsg.c \ - td_ta_set_event.c td_ta_event_getmsg.c \ - td_ta_clear_event.c td_symbol_list.c td_thr_tls_get_addr.c +# Remove any -z defs since this lib will have undefined symbols +LDFLAGS := $(subst -z defs,,$(LDFLAGS)) --warn-unresolved-symbols -COBJS=$(patsubst %.c,%.o, $(CSRC)) -OBJS=$(COBJS) +CSRC=$(wildcard *.c) + +OBJS=$(patsubst %.c,%.o, $(CSRC)) + +ifeq ($(strip $(HAVE_SHARED)),y) +all: $(SO_LIB_NAME) +else +all: $(AR_LIB_NAME) +endif -all: $(LIBTHREAD_DB) +$(AR_LIB_NAME): $(OBJS) + $(INSTALL) -d $(TOPDIR)lib + $(RM) $(AR_LIB_NAME) + $(AR) $(ARFLAGS) $(AR_LIB_NAME) $(OBJS) -$(LIBTHREAD_DB) ar-target: $(OBJS) - $(AR) $(ARFLAGS) $(LIBTHREAD_DB) $(OBJS) +$(SO_LIB_NAME): $(AR_LIB_NAME) + $(RM) $(TOPDIR)lib/$(SO_FULL_NAME) $(SO_LIB_NAME).1 $(SO_LIB_NAME) + $(LD) $(LDFLAGS) -soname=$(LIB_NAME).so.1 \ + -o $(TOPDIR)lib/$(SO_FULL_NAME) --whole-archive $(AR_LIB_NAME) \ + --no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \ + -L$(TOPDIR)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC) + $(LN) -sf $(SO_FULL_NAME) $(SO_LIB_NAME).1 + $(LN) -sf $(SO_FULL_NAME) $(SO_LIB_NAME) -$(COBJS): %.o : %.c +$(OBJS): %.o : %.c $(CC) $(CFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: - $(RM) *.[oa] *~ core + $(RM) *.o *~ core |