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.