Sophie

Sophie

distrib > Mageia > cauldron > i586 > by-pkgid > 1ddfe4a48b2b559a00dbca912106d555 > files > 10

dietlibc-0.34-4.mga9.src.rpm

diff -Naurp dietlibc-0.32-20080509/diet.c dietlibc-0.32-20080509.oden/diet.c
--- dietlibc-0.32-20080509/diet.c      2006-08-27 09:49:00.000000000 -0400
+++ dietlibc-0.32-20080509.oden/diet.c 2008-06-08 12:01:47.000000000 -0400
@@ -71,6 +71,7 @@
   int shared=0;
 #endif
   char* shortplatform=0;
+  char* shortplatform32=0;
 #ifdef WANT_SAFEGUARD
   char safeguard1[]="-include";
   char* safeguard2;
@@ -157,6 +158,7 @@
 #endif
 #ifdef __powerpc64__
       shortplatform="ppc64";
+      shortplatform32="ppc";
 #endif
 #ifdef __i386__
       shortplatform="i386";
@@ -187,11 +189,26 @@
       shortplatform="parisc";
 #endif
 #ifdef __x86_64__
-      shortplatform=(m==32?"i386":(m==33?"x32":"x86_64"));
+      shortplatform=(m==33?"x32":"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<argc; ++i) {
+		      if (!strcmp(argv[i],"-m32"))
+			      m64=0;
+		      else if (!strcmp(argv[i],"-m64"))
+			      m64=1;
+	      }
+	      if (!m64)
+		      shortplatform=shortplatform32;
+      }
       {
 	char *tmp=platform+strlen(platform);
 	strcpy(tmp,shortplatform);
diff -Naurp dietlibc-0.32-20080509/Makefile dietlibc-0.32-20080509.oden/Makefile
--- dietlibc-0.32-20080509/Makefile	2008-06-08 12:37:26.000000000 -0400
+++ dietlibc-0.32-20080509.oden/Makefile	2008-06-08 12:39:29.000000000 -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
@@ -89,16 +91,23 @@ ILIBDIR=$(INSTALLHOME)/lib-$(ARCH)
 
 HOME=$(shell pwd)
 
-WHAT=	$(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dyn_stop.o \
+LIBS=	$(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
+ 
+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
@@ -353,17 +362,19 @@ t:
 t1:
 	$(CROSS)$(CC) -g -o t1 t.c
 
-install-bin: $(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-lib: $(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
+
+install-bin: $(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
 endif
-	$(INSTALL) -m 755 $(OBJDIR)/elftrunc $(OBJDIR)/dnsd $(DESTDIR)$(BINDIR)
 	$(INSTALL) -m 644 diet.1 $(DESTDIR)$(MAN1DIR)/diet.1
 
 install-profiling:
@@ -383,8 +394,14 @@ install-pic:
 install-headers:
 	for i in `find include -name \*.h`; do install -m 644 -D $$i $(DESTDIR)$(INSTALLHOME)/$$i; done
 
+ifeq (,$(ARCH32))
+install-32:
+else
+install-32:
+	$(MAKE) MYARCH=$(ARCH32) CC="$(CC) -m32" install-lib
+endif
 
-install: install-bin install-profiling install-pic install-headers
+install: install-32 install-lib install-bin install-profiling install-pic install-headers
 
 uninstall:
 	for i in start.o libm.a libpthread.a librpc.a liblatin1.a libcompat.a libcrypt.a libc.a; do rm -f $(DESTDIR)$(ILIBDIR)/$$i; done