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

Hi Nigel,

Newer rEFIt version use fat binaries embedding both ia32 and x86_64 EFI
binaries. As such, I also need an x86_64 gnu-efi build on i386.

The attached patch applies on top of my previous patch (for libgcc.a) and
install an x86_64 build into /usr/lib64 on i386.

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:23:44.439237000 +0200
+++ gnu-efi-3.0e/Make.defaults	2008-05-20 18:32:56.020928156 +0200
@@ -29,12 +29,12 @@
 
 TOPDIR    := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
 
-HOSTARCH   = $(shell uname -m)
+HOSTARCH   = $(shell uname -m | sed s,i[3456789]86,ia32,)
 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	   = $(ARCH32) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants
-ASFLAGS    = $(ARCH32)
+CFLAGS	   = $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants
+ASFLAGS    = $(ARCH3264)
 LDFLAGS	   = -nostdlib
 INSTALL	   = install
 prefix     = /usr/bin/
@@ -56,6 +56,12 @@
 
 ifeq ($(ARCH), ia32)
   ifeq ($(HOSTARCH), x86_64)
-    ARCH32 = -m32
+    ARCH3264 = -m32
+  endif
+endif
+
+ifeq ($(ARCH), x86_64)
+  ifeq ($(HOSTARCH), ia32)
+    ARCH3264 = -m64
   endif
 endif
diff -ru orig/gnu-efi-3.0e/apps/Makefile gnu-efi-3.0e/apps/Makefile
--- orig/gnu-efi-3.0e/apps/Makefile	2008-05-20 16:23:44.464233000 +0200
+++ gnu-efi-3.0e/apps/Makefile	2008-05-20 16:30:47.322905854 +0200
@@ -28,7 +28,7 @@
 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) $(ARCH32) -print-libgcc-file-name)
+LOADLIBES	= -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -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
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 16:23:44.475238000 +0200
+++ gnu-efi-3.0e/debian/control	2008-05-20 16:29:29.327162021 +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), gcc-multilib [amd64], rsync [amd64]
+Build-Depends: debhelper (>> 5), binutils (>= 2.17.50.0.14), gcc-multilib [i386 amd64], rsync [i386 amd64]
 Standards-Version: 3.7.3
 
 Package: gnu-efi
diff -ru orig/gnu-efi-3.0e/debian/rules gnu-efi-3.0e/debian/rules
--- orig/gnu-efi-3.0e/debian/rules	2008-05-20 18:23:32.000000000 +0200
+++ gnu-efi-3.0e/debian/rules	2008-05-20 18:34:03.355659556 +0200
@@ -21,6 +21,12 @@
 	$(MAKE) ARCH=ia32 -C build-ia32
 endif
 
+ifeq ($(buildarch),i386)
+	mkdir build-x86_64
+	rsync -a --exclude debian/ -exclude build-x86_64/ ./ build-x86_64/
+	$(MAKE) ARCH=x86_64 -C build-x86_64
+endif
+
 	$(MAKE)
 
 	touch build-stamp
@@ -30,7 +36,7 @@
 	dh_testroot
 	rm -f build-stamp configure-stamp
 	[ ! -f Makefile ] || $(MAKE) clean
-	rm -rf build-ia32
+	rm -rf build-ia32 build-x86_64
 	dh_clean
 
 install: build
@@ -61,6 +67,14 @@
 	cp build-ia32/lib/*.a debian/gnu-efi/emul/ia32-linux/usr/lib/
 endif
 
+ifeq ($(buildarch),i386)
+	mkdir -p debian/gnu-efi/usr/lib64
+	cp build-x86_64/gnuefi/*.a debian/gnu-efi/usr/lib64/
+	cp build-x86_64/gnuefi/elf_x86_64_efi.lds debian/gnu-efi/usr/lib64/
+	cp build-x86_64/gnuefi/crt0-efi-x86_64.o debian/gnu-efi/usr/lib64/
+	cp build-x86_64/lib/*.a debian/gnu-efi/usr/lib64/
+endif
+
 # Build architecture-independent files here.
 binary-indep: build install
 # We have nothing to do by default.

Reply via email to