Package: gnu-efi
Version: 3.0e-1.1
Severity: normal

Hi Nigel,

I've just realized that gnu-efi links the apps against the wrong libgcc.a
when cross-building a ia32 gnu-efi on an amd64 host.

It links against the host's libgcc.a, which is obviously wrong. I probably
missed that in my original patch.

Patch attached, please apply.

JB.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.24.3 (SMP w/2 CPU cores)
Locale: LANG=C, [EMAIL PROTECTED] (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

-- no debconf information
diff -ru orig/gnu-efi-3.0e/Make.defaults gnu-efi-3.0e/Make.defaults
--- orig/gnu-efi-3.0e/Make.defaults	2008-05-20 18:15:40.000000000 +0200
+++ gnu-efi-3.0e/Make.defaults	2008-05-20 18:14:00.580440417 +0200
@@ -33,8 +33,8 @@
 ARCH	   := $(shell uname -m | sed s,i[3456789]86,ia32,)
 INCDIR	   = -I. -I$(CDIR)/inc -I$(CDIR)/inc/$(ARCH) -I$(CDIR)/inc/protocol 
 CPPFLAGS   = -DCONFIG_$(ARCH)
-CFLAGS	   = -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants
-ASFLAGS    =
+CFLAGS	   = $(ARCH32) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants
+ASFLAGS    = $(ARCH32)
 LDFLAGS	   = -nostdlib
 INSTALL	   = install
 prefix     = /usr/bin/
@@ -56,7 +56,6 @@
 
 ifeq ($(ARCH), ia32)
   ifeq ($(HOSTARCH), x86_64)
-    CFLAGS += -m32
-    ASFLAGS += -m32
+    ARCH32 = -m32
   endif
 endif
diff -ru orig/gnu-efi-3.0e/apps/Makefile gnu-efi-3.0e/apps/Makefile
--- orig/gnu-efi-3.0e/apps/Makefile	2007-05-09 20:37:27.000000000 +0200
+++ gnu-efi-3.0e/apps/Makefile	2008-05-20 18:14:08.570185986 +0200
@@ -28,14 +28,13 @@
 CRTOBJS		= ../gnuefi/crt0-efi-$(ARCH).o
 LDSCRIPT	= ../gnuefi/elf_$(ARCH)_efi.lds
 LDFLAGS		+= -T $(LDSCRIPT) -shared -Bsymbolic -L../lib -L../gnuefi $(CRTOBJS)
-LOADLIBES	= -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name)
+LOADLIBES	= -lefi -lgnuefi $(shell $(CC) $(ARCH32) -print-libgcc-file-name)
 FORMAT		= efi-app-$(ARCH)
 
 TARGETS = t.efi t2.efi t3.efi t4.efi t5.efi t6.efi printenv.efi t7.efi
 
 all:	$(TARGETS)
 
-
 clean:
 	rm -f $(TARGETS) *~ *.o *.so
 
diff -ru orig/gnu-efi-3.0e/debian/control gnu-efi-3.0e/debian/control
--- orig/gnu-efi-3.0e/debian/control	2008-05-20 18:15:40.000000000 +0200
+++ gnu-efi-3.0e/debian/control	2008-05-20 18:15:17.374973119 +0200
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Nigel Croxon <[EMAIL PROTECTED]>
 Uploaders: Bdale Garbee <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>> 5), binutils (>= 2.17.50.0.14), libc6-dev-i386 [amd64], rsync [amd64]
+Build-Depends: debhelper (>> 5), binutils (>= 2.17.50.0.14), gcc-multilib [amd64], rsync [amd64]
 Standards-Version: 3.7.3
 
 Package: gnu-efi

Reply via email to