--- dietlibc-0.27/Makefile.biarch 2004-12-14 18:58:24.663308244 -0500 +++ dietlibc-0.27/Makefile 2004-12-14 19:02:58.538554772 -0500 @@ -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 @@ -91,14 +87,22 @@ ILIBDIR=$(INSTALLHOME)/lib-$(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)/libcrypt.a + +all: all_32 libs $(OBJDIR)/diet $(OBJDIR)/diet-i $(OBJDIR)/elftrunc -all: $(WHAT) +libs: $(LIBS) + +ifeq (,$(ARCH32)) +all_32: +else +all_32: + $(MAKE) MYARCH=$(ARCH32) CC="$(CC) -m32" libs +endif profiling: $(OBJDIR)/libgmon.a $(OBJDIR)/pstart.o @@ -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.27/diet.c.biarch 2004-12-14 18:58:24.664308446 -0500 +++ dietlibc-0.27/diet.c 2004-12-14 18:58:32.734936465 -0500 @@ -70,6 +70,7 @@ int main(int argc,char *argv[]) { int shared=0; #endif char* shortplatform=0; + char* shortplatform32=0; #ifdef WANT_SAFEGUARD char safeguard1[]="-include"; char* safeguard2; @@ -141,6 +142,7 @@ int main(int argc,char *argv[]) { #endif #ifdef __powerpc64__ shortplatform="ppc64"; + shortplatform32="ppc"; #endif #ifdef __i386__ shortplatform="i386"; @@ -169,10 +171,25 @@ int main(int argc,char *argv[]) { #endif #ifdef __x86_64__ shortplatform="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