diff options
| author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-07-22 05:15:47 +0000 |
|---|---|---|
| committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-07-22 05:15:47 +0000 |
| commit | eb6ed4fe445d1d604a6deab019d547f78540127e (patch) | |
| tree | 18c7330002ea33abdc97c8b95678ac518d81b708 | |
| parent | 1dfbbd5f31e77a66e8c8b6f9e40e16277eb9f39d (diff) | |
| download | uClibc-alpine-eb6ed4fe445d1d604a6deab019d547f78540127e.tar.bz2 uClibc-alpine-eb6ed4fe445d1d604a6deab019d547f78540127e.tar.xz | |
Massive clean up of makefiles with a focus on being able to compile correctly
both thread library models. Items of interest are the 'Rules.mak' changes at
the top level as well as the new 'Rules.mak' for the NPTL library.
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | Rules.mak | 24 | ||||
| -rw-r--r-- | ldso/ldso/Makefile | 10 | ||||
| -rw-r--r-- | ldso/libdl/Makefile | 10 | ||||
| -rw-r--r-- | libc/inet/Makefile | 8 | ||||
| -rw-r--r-- | libc/inet/rpc/Makefile | 2 | ||||
| -rw-r--r-- | libc/misc/internals/Makefile | 4 | ||||
| -rw-r--r-- | libc/misc/pthread/Makefile | 4 | ||||
| -rw-r--r-- | libc/misc/syslog/Makefile | 2 | ||||
| -rw-r--r-- | libc/string/Makefile | 2 | ||||
| -rw-r--r-- | libpthread/Makefile | 16 | ||||
| -rw-r--r-- | libpthread/linuxthreads/Makefile | 1 | ||||
| -rw-r--r-- | libpthread/linuxthreads_db/Makefile | 1 | ||||
| -rw-r--r-- | libpthread/nptl/Rules.mak | 13 |
14 files changed, 69 insertions, 30 deletions
@@ -122,6 +122,8 @@ ifeq ($(strip $(PTHREADS_NATIVE)),y) $(LN) -fs ../libpthread/nptl/sysdeps/pthread/pthread.h .; \ $(LN) -fs ../libpthread/nptl/semaphore.h .); (cd include/bits; \ + $(LN) -fs ../../libpthread/nptl/sysdeps/pthread/bits/libc-lock.h .; \ + $(LN) -fs ../../libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h .; \ $(LN) -fs ../../libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/bits/pthreadtypes.h .; \ $(LN) -fs ../../libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/bits/semaphore.h .); else @@ -278,19 +278,21 @@ endif # Thread includes are needed to compile some files. # ifeq ($(PTHREADS_NATIVE),y) -PTDIR := $(TOPDIR)/libpthread/nptl/ -PT_INCLUDES := -I$(PTDIR)compat \ - -I$(PTDIR)sysdeps/unix/sysv/linux/$(TARGET_ARCH) \ - -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ - -I$(PTDIR)sysdeps/unix/sysv/linux \ - -I$(PTDIR)sysdeps/pthread \ - -include $(PTDIR)compat/libc-symbols.h +PTDIR := $(TOPDIR)libpthread/nptl/ +PTINC := -I$(PTDIR)compat \ + -I$(PTDIR)sysdeps/unix/sysv/linux/$(TARGET_ARCH) \ + -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ + -I$(PTDIR)sysdeps/unix/sysv/linux \ + -I$(PTDIR)sysdeps/pthread \ + -I$(PTDIR)sysdeps/pthread/bits \ + -I$(PTDIR)sysdeps/generic \ + -include $(PTDIR)compat/libc-symbols.h +CFLAGS += $(PTINC) else -PTDIR := $(TOPDIR)/libpthread/linuxthreads/ -PT_INCLUDES := -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ - -I$(PTDIR)sysdeps/pthread +PTDIR := $(TOPDIR)libpthread/linuxthreads/ +PTINC := -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ + -I$(PTDIR)sysdeps/pthread endif -export PT_INCLUDES ifeq ($(UCLIBC_BUILD_RELRO),y) LDFLAGS+=-z relro diff --git a/ldso/ldso/Makefile b/ldso/ldso/Makefile index 3a382673c..fc828e83b 100644 --- a/ldso/ldso/Makefile +++ b/ldso/ldso/Makefile @@ -36,9 +36,15 @@ XXFLAGS+=-Os #-g3 else XXFLAGS+=$(OPTIMIZATION) endif +ifeq ($(PTHREADS_NATIVE),y) +XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \ + -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ + -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include $(PTINC) +else XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \ -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include +endif # BEWARE!!! At least mips* will die if -O0 is used!!! XXFLAGS:=$(XXFLAGS:-O0=-O1) @@ -80,11 +86,11 @@ $(LDSO_FULLNAME): $(OBJS) $(DLINK_OBJS) $(LN) -sf $(LDSO_FULLNAME) $(TOPDIR)lib/$(UCLIBC_LDSO) $(COBJS): %.o : %.c - $(CC) $(XXFLAGS) -I../libdl -c $< -o $@ + $(CC) $(XXFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o $(AOBJS): %.o : %.S - $(CC) $(XXFLAGS) $(ASFLAGS) -I../libdl -c $< -o $@ + $(CC) $(XXFLAGS) $(ASFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o ldso.o: $(CSRC) dl-elf.c dl-hash.c dl-startup.c \ diff --git a/ldso/libdl/Makefile b/ldso/libdl/Makefile index a692a68bb..918e73b29 100644 --- a/ldso/libdl/Makefile +++ b/ldso/libdl/Makefile @@ -27,9 +27,15 @@ XXFLAGS+=-O0 -g3 else XXFLAGS+=$(OPTIMIZATION) endif +ifeq ($(PTHREADS_NATIVE),y) +XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) \ + -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ + -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I$(TOPDIR)ldso/ldso -I. -I$(TOPDIR)include $(PTINC) +else XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) \ -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I$(TOPDIR)ldso/ldso -I. -I$(TOPDIR)include +endif XXFLAGS+=-isystem $(shell $(CC) -print-file-name=include) XXFLAGS_NOPIC:=$(XXFLAGS) @@ -62,11 +68,11 @@ $(LIBDL): $(OBJS) $(LIBDL_PIC): $(PIC_OBJS) $(AR) $(ARFLAGS) $(LIBDL_PIC) $(PIC_OBJS) -libdl.o: libdl.c +libdl.o: libdl.c $(TOPDIR)ldso/include/*.h $(CC) $(XXFLAGS_NOPIC) -c libdl.c -o libdl.o $(STRIPTOOL) -x -R .note -R .comment $*.o -libdl_pic.o: libdl.c +libdl_pic.o: libdl.c $(TOPDIR)ldso/include/*.h $(CC) $(XXFLAGS) -c libdl.c -o libdl_pic.o $(STRIPTOOL) -x -R .note -R .comment $*.o diff --git a/libc/inet/Makefile b/libc/inet/Makefile index 09b274dab..e7018db7c 100644 --- a/libc/inet/Makefile +++ b/libc/inet/Makefile @@ -66,19 +66,19 @@ $(OBJ_LIST): $(OBJS) echo $(patsubst %, inet/%, $(OBJS)) > $(OBJ_LIST) $(MOBJ): $(MSRC) - $(CC) $(CFLAGS) $(PT_INCLUDES) -DL_$* $< -c -o $*.o + $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o $(STRIPTOOL) -x -R .note -R .comment $*.o $(MOBJ2): $(MSRC2) - $(CC) $(CFLAGS) $(PT_INCLUDES) -DL_$* $< -c -o $*.o + $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o $(STRIPTOOL) -x -R .note -R .comment $*.o $(MOBJ3): $(MSRC3) - $(CC) $(CFLAGS) $(PT_INCLUDES) -DL_$* $< -c -o $*.o + $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o $(STRIPTOOL) -x -R .note -R .comment $*.o $(COBJS): %.o : %.c - $(CC) $(CFLAGS) $(PT_INCLUDES) -c $< -o $@ + $(CC) $(CFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: subdirs_clean diff --git a/libc/inet/rpc/Makefile b/libc/inet/rpc/Makefile index 49adb7e84..a08cf89ea 100644 --- a/libc/inet/rpc/Makefile +++ b/libc/inet/rpc/Makefile @@ -57,7 +57,7 @@ $(OBJ_LIST): $(OBJS) echo $(patsubst %, inet/rpc/%, $(OBJS)) > $(OBJ_LIST) $(COBJS): %.o : %.c - $(CC) $(CFLAGS) $(PT_INCLUDES) -c $< -o $@ + $(CC) $(CFLAGS) $(PTINC) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: diff --git a/libc/misc/internals/Makefile b/libc/misc/internals/Makefile index fa34ccf89..23816b38d 100644 --- a/libc/misc/internals/Makefile +++ b/libc/misc/internals/Makefile @@ -45,11 +45,11 @@ interp.c: Makefile echo "#endif" >> interp.c interp.o: interp.c - $(CC) $(CFLAGS) $(PT_INCLUDES) -c $< -o $@ + $(CC) $(CFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o $(COBJS): %.o : %.c - $(CC) $(CFLAGS) $(PT_INCLUDES) -c $< -o $@ + $(CC) $(CFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: diff --git a/libc/misc/pthread/Makefile b/libc/misc/pthread/Makefile index cee80a9ac..e222e1442 100644 --- a/libc/misc/pthread/Makefile +++ b/libc/misc/pthread/Makefile @@ -19,8 +19,6 @@ TOPDIR=../../../ include $(TOPDIR)Rules.mak -CFLAGS += $(PT_INCLUDES) - CSRC=no-tsd.c weaks.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(COBJS) @@ -33,7 +31,7 @@ $(OBJ_LIST): $(OBJS) echo $(patsubst %, misc/pthread/%, $(OBJS)) > $(OBJ_LIST) $(COBJS): %.o : %.c - $(CC) $(CFLAGS) -c $< -o $@ + $(CC) $(CFLAGS) $(PTINC) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: diff --git a/libc/misc/syslog/Makefile b/libc/misc/syslog/Makefile index 3ddd2737b..35e755e40 100644 --- a/libc/misc/syslog/Makefile +++ b/libc/misc/syslog/Makefile @@ -36,7 +36,7 @@ $(OBJ_LIST): $(OBJS) echo $(patsubst %, misc/syslog/%, $(OBJS)) > $(OBJ_LIST) $(COBJS): %.o : %.c - $(CC) $(CFLAGS) $(PT_INCLUDES) -c $< -o $@ + $(CC) $(CFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o clean: diff --git a/libc/string/Makefile b/libc/string/Makefile index 111bf2fdb..4150e403e 100644 --- a/libc/string/Makefile +++ b/libc/string/Makefile @@ -64,7 +64,7 @@ endif OBJS=$(MOBJ) $(MOBJx) ifeq ($(UCLIBC_HAS_WCHAR),y) - OBJS += $(MOBJW) $(MOBJWx) +OBJS += $(MOBJW) $(MOBJWx) endif OBJ_LIST=../obj.string 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) diff --git a/libpthread/linuxthreads/Makefile b/libpthread/linuxthreads/Makefile index 5752bf98c..2929544ed 100644 --- a/libpthread/linuxthreads/Makefile +++ b/libpthread/linuxthreads/Makefile @@ -38,7 +38,6 @@ CFLAGS :=$(CFLAGS:-O0=-O1) # set up system dependencies include dirs (NOTE: order matters!) -PTDIR = $(TOPDIR)libpthread/linuxthreads/ SYSDEPINC = -I$(PTDIR)sysdeps/pthread \ -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ -I$(PTDIR)sysdeps \ diff --git a/libpthread/linuxthreads_db/Makefile b/libpthread/linuxthreads_db/Makefile index 656275fa9..d10e3131b 100644 --- a/libpthread/linuxthreads_db/Makefile +++ b/libpthread/linuxthreads_db/Makefile @@ -29,7 +29,6 @@ SYSDEPS_DIR:=$(TARGET_ARCH) endif # set up system dependencies include dirs (NOTE: order matters!) -PTDIR = $(TOPDIR)libpthread/linuxthreads/ SYSDEPINC = -I$(PTDIR)sysdeps/unix/sysv/linux \ -I$(PTDIR)sysdeps/pthread \ -I$(PTDIR)sysdeps/unix/sysv \ diff --git a/libpthread/nptl/Rules.mak b/libpthread/nptl/Rules.mak new file mode 100644 index 000000000..c3970d235 --- /dev/null +++ b/libpthread/nptl/Rules.mak @@ -0,0 +1,13 @@ +# +# These names are used for NPTL since we have to build seperate archives +# for the static and shared objects. We export them to sub-makes. +# +LIBPTHREAD_STATIC_ARCHIVE := libpthread.a +LIBPTHREAD_SHARED_ARCHIVE := libpthread-shared.a + +CFLAGS-NPTL := $(CFLAGS:-O0=-O2) \ + -I$(PTDIR) \ + -I$(TOPDIR)ldso/include \ + -DNOT_IN_libc=1 -DIS_IN_libpthread=1 -std=gnu99 + +ASFLAGS-NPTL := $(filter-out -std=gnu99, $(CFLAGS-NPTL)) -D__ASSEMBLER__ |
