Репозитории ALT
5.1: | 0.30-alt3 |
4.1: | 0.30-alt3 |
4.0: | 0.30-alt3 |
3.0: | 0.28-alt1 |
Группа :: Разработка/C
Пакет: dietlibc
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: dietlibc-0.29-biarch.patch
Скачать
Скачать
--- 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<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);