Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37879121
en ru br
Репозитории ALT
5.1: 0.30-alt3
4.1: 0.30-alt3
4.0: 0.30-alt3
3.0: 0.28-alt1
www.altlinux.org/Changes

Группа :: Разработка/C
Пакет: dietlibc

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: dietlibc-0.27-biarch.patch
Скачать


--- 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<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);
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin