diff options
-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__ |