--- dietlibc-0.29/Makefile.biarch 2005-05-18 18:38:55 +0400 +++ dietlibc-0.29/Makefile 2006-06-14 18:47:54 +0400 @@ -24,6 +24,7 @@ ARCH=ppc else ifeq ($(MYARCH),ppc64) ARCH=ppc64 +ARCH32=ppc else ifeq ($(MYARCH),arm) ARCH=arm @@ -52,6 +53,7 @@ MYARCH=parisc else ifeq ($(MYARCH),x86_64) ARCH=x86_64 +ARCH32=i386 else ifeq ($(MYARCH),ia64) ARCH=ia64 @@ -84,16 +86,23 @@ ILIBDIR=$(LIBDIR)-$(ARCH) HOME=$(shell pwd) -WHAT= $(OBJDIR) $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dyn_stop.o \ +LIBS= $(OBJDIR) $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dyn_stop.o \ $(OBJDIR)/dietlibc.a $(OBJDIR)/liblatin1.a \ $(OBJDIR)/libcompat.a $(OBJDIR)/libm.a \ $(OBJDIR)/librpc.a $(OBJDIR)/libpthread.a \ - $(OBJDIR)/libcrypt.a \ - $(OBJDIR)/diet $(OBJDIR)/diet-i $(OBJDIR)/elftrunc \ - $(OBJDIR)/dnsd + $(OBJDIR)/libcrypt.a -all: $(WHAT) +all: all_32 libs $(OBJDIR)/diet $(OBJDIR)/diet-i $(OBJDIR)/elftrunc $(OBJDIR)/dnsd +libs: $(LIBS) + +ifeq (,$(ARCH32)) +all_32: +else +all_32: + $(MAKE) MYARCH=$(ARCH32) CC="$(CC) -m32" libs +endif + profiling: $(OBJDIR)/libgmon.a $(OBJDIR)/pstart.o CFLAGS=-pipe -nostdinc @@ -324,12 +328,22 @@ t: t1: $(CROSS)$(CC) -g -o t1 t.c -install: $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/librpc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a $(OBJDIR)/elftrunc $(OBJDIR)/diet-i - $(INSTALL) -d $(DESTDIR)$(ILIBDIR) $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(BINDIR) +install_libs: $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/librpc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a + $(INSTALL) -d $(DESTDIR)$(ILIBDIR) $(INSTALL) $(OBJDIR)/start.o $(DESTDIR)$(ILIBDIR)/start.o $(INSTALL) -m 644 $(OBJDIR)/libm.a $(OBJDIR)/libpthread.a $(OBJDIR)/librpc.a \ $(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a $(OBJDIR)/libcrypt.a $(DESTDIR)$(ILIBDIR) $(INSTALL) -m 644 $(OBJDIR)/dietlibc.a $(DESTDIR)$(ILIBDIR)/libc.a + +ifeq (,$(ARCH32)) +install_32: +else +install_32: + $(MAKE) MYARCH=$(ARCH32) CC="$(CC) -m32" install_libs +endif + +install: install_32 install_libs $(OBJDIR)/elftrunc $(OBJDIR)/diet-i + $(INSTALL) -d $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(BINDIR) ifeq ($(MYARCH),$(ARCH)) $(INSTALL) $(OBJDIR)/diet-i $(DESTDIR)$(BINDIR)/diet -$(INSTALL) $(PICODIR)/diet-dyn-i $(DESTDIR)$(BINDIR)/diet-dyn --- dietlibc-0.29/diet.c.biarch 2005-05-18 10:38:55.000000000 -0400 +++ dietlibc-0.29/diet.c 2005-09-10 13:54:04.000000000 -0400 @@ -71,6 +71,7 @@ int shared=0; #endif char* shortplatform=0; + char* shortplatform32=0; #ifdef WANT_SAFEGUARD char safeguard1[]="-include"; char* safeguard2; @@ -155,6 +156,7 @@ #endif #ifdef __powerpc64__ shortplatform="ppc64"; + shortplatform32="ppc"; #endif #ifdef __i386__ shortplatform="i386"; @@ -183,10 +185,25 @@ #endif #ifdef __x86_64__ shortplatform=(m==32?"i386":"x86_64"); + shortplatform32="i386"; #endif #ifdef __ia64__ shortplatform="ia64"; #endif + /* Check for -m32 on biarch platforms */ + /* NOTE: though it's wrong to pass both -m32/-m64 flags to + gcc at once, we pick up the last one only */ + if (shortplatform32) { + int i, m64=1; + for (i=0; i