rpms/grub/devel grub-0.97-use-gnuefi.patch, NONE, 1.1 grub.spec, 1.106, 1.107

Peter Jones pjones at fedoraproject.org
Thu Aug 20 14:34:19 UTC 2009


Author: pjones

Update of /cvs/extras/rpms/grub/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25880

Modified Files:
	grub.spec 
Added Files:
	grub-0.97-use-gnuefi.patch 
Log Message:
* Thu Aug 20 2009 Peter Jones <pjones at redhat.com> - 0.97-59
- Correctly link against gnuefi.


grub-0.97-use-gnuefi.patch:
 configure.in    |    4 +++-
 efi/Makefile.am |   12 +++++-------
 efi/eficore.c   |   13 +++++++++++++
 3 files changed, 21 insertions(+), 8 deletions(-)

--- NEW FILE grub-0.97-use-gnuefi.patch ---
commit 94c31b2f558bb45ee80f374ceae487e6d737fcb1
Author: Peter Jones <pjones at redhat.com>
Date:   Tue May 6 12:55:40 2008 -0400

    Fix up makesfiles/configure to use gnu-efi versions of setjmp and _relocate.
    Include setjmp/longjmp wrapper until I get a chance to clean up the headers.

diff -urpN grub-0.97/configure.in.gnuefi grub-0.97/configure.in
--- grub-0.97/configure.in.gnuefi	2009-08-20 09:52:01.000000000 -0400
+++ grub-0.97/configure.in	2009-08-20 09:52:45.000000000 -0400
@@ -63,7 +63,7 @@ if test "x$platform" = xefi; then
   AC_SUBST(EFI_ARCH)
 fi
 
-gnuefi_path=/usr/lib/gnuefi
+gnuefi_path=${libdir}/gnuefi
 gnuefi_crt0=${gnuefi_path}/crt0-efi-${EFI_ARCH}.o
 if ! test -f $gnuefi_crt0 ; then
   gnuefi_crt0=crt0-efi.o
@@ -76,6 +76,8 @@ if ! test -f $gnuefi_lds ; then
 fi
 GNUEFI_LDS=${gnuefi_lds}
 AC_SUBST(GNUEFI_LDS)
+LIBGNUEFI=${libdir}/libgnuefi.a
+AC_SUBST(LIBGNUEFI)
 
 AC_SUBST(platform)
 AM_CONDITIONAL(PLATFORM_EFI, test "x$platform" = xefi)
diff -urpN grub-0.97/efi/eficore.c.gnuefi grub-0.97/efi/eficore.c
--- grub-0.97/efi/eficore.c.gnuefi	2009-08-20 09:54:04.000000000 -0400
+++ grub-0.97/efi/eficore.c	2009-08-20 09:54:57.000000000 -0400
@@ -50,6 +50,19 @@ grub_efi_locate_handle_buffer (grub_efi_
 		search_type, protocol, search_key, no_handles, buffer);
 }
 
+/* temporary, until we're using gnu-efi's include files --pjones */
+extern int setjmp(grub_jmp_buf env);
+int grub_setjmp(grub_jmp_buf env)
+{
+	return setjmp(env);
+}
+
+extern void longjmp(grub_jmp_buf env, int val);
+void grub_longjmp(grub_jmp_buf env, int val)
+{
+	longjmp(env, val);
+}
+
 void *
 grub_efi_locate_protocol (grub_efi_guid_t *protocol, void *registration)
 {
diff -urpN grub-0.97/efi/Makefile.am.gnuefi grub-0.97/efi/Makefile.am
--- grub-0.97/efi/Makefile.am.gnuefi	2009-08-20 09:51:41.000000000 -0400
+++ grub-0.97/efi/Makefile.am	2009-08-20 09:53:57.000000000 -0400
@@ -32,8 +32,9 @@ GRUBEFI_FORMAT = efi-app-$(EFI_ARCH)
 GRUBSO_LD_SCRIPT = @GNUEFI_LDS@
 GRUBSO_LD_FLAGS = -T $(GRUBSO_LD_SCRIPT) -nostdlib -shared -Bsymbolic
 
-GRUBSO_OBJS = reloc.o efimain.o @GNUEFI_CRT0@
-GRUBSO_LIBS = $(top_srcdir)/stage2/libstage2.a libgrubefi.a @LIBGCC@
+GRUBSO_OBJS = efimain.o
+GRUBSO_LIBS = @GNUEFI_CRT0@ $(top_srcdir)/stage2/libstage2.a \
+		libgrubefi.a @LIBGCC@
 
 if NETBOOT_SUPPORT
 GRUBSO_LIBS += $(top_srcdir)/netboot/libdrivers.a
@@ -45,7 +46,7 @@ grub.efi: grub.so
 	$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
                    -j .rela -j .reloc --target=$(GRUBEFI_FORMAT) $^ $@
 
-grub.so: $(GRUBSO_OBJS) $(GRUBSO_LIBS)
+grub.so: $(GRUBSO_OBJS) $(GRUBSO_LIBS) @LIBGNUEFI@
 	$(LD) -o $@ $(GRUBSO_LD_FLAGS) $^
 	echo '-------------- unresolved symbols ---------------------'
 	! nm $@ | grep -iw u
@@ -57,9 +58,6 @@ crt0-efi.o: $(EFI_ARCH)/crt0-efi.S
 efimain.o: efimain.c
 	$(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
 
-reloc.o: $(EFI_ARCH)/reloc.c
-	$(CC) -o $@ -c $(RELOC_FLAGS) $^
-
 clean-local:
 	-rm -rf grub.so grub.efi
 
@@ -70,7 +68,7 @@ RELOC_FLAGS = $(STAGE2_CFLAGS) -I$(top_s
 
 noinst_LIBRARIES = libgrubefi.a
 libgrubefi_a_SOURCES = $(EFI_ARCH)/callwrap.c eficore.c efimm.c efimisc.c \
-	$(EFI_ARCH)/setjmp.S eficon.c efidisk.c graphics.c efigraph.c efiuga.c \
+	eficon.c efidisk.c graphics.c efigraph.c efiuga.c \
 	font_8x16.c efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c \
 	xpm.c pxe.c efitftp.c
 libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc


Index: grub.spec
===================================================================
RCS file: /cvs/extras/rpms/grub/devel/grub.spec,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -p -r1.106 -r1.107
--- grub.spec	11 Aug 2009 20:56:43 -0000	1.106
+++ grub.spec	20 Aug 2009 14:34:19 -0000	1.107
@@ -1,6 +1,6 @@
 Name: grub
 Version: 0.97
-Release: 58%{?dist}
+Release: 59%{?dist}
 Summary: Grand Unified Boot Loader.
 Group: System Environment/Base
 License: GPLv2+
@@ -47,6 +47,7 @@ Patch18: grub-ext4-support.patch
 Patch19: grub-0.97-xfs-writable-strings.patch
 Patch20: grub-0.97-partitionable-md.patch
 Patch21: grub-0.97-relocatable-kernel-on-x86_64-uefi.patch
+Patch22: grub-0.97-use-gnuefi.patch
 
 %description
 GRUB (Grand Unified Boot Loader) is an experimental boot loader
@@ -78,6 +79,7 @@ systems.
 %patch19 -p1
 %patch20 -p1
 %patch21 -p1
+%patch22 -p1
 
 %build
 autoreconf
@@ -139,6 +141,9 @@ fi
 %{_datadir}/grub
 
 %changelog
+* Thu Aug 20 2009 Peter Jones <pjones at redhat.com> - 0.97-59
+- Correctly link against gnuefi.
+
 * Tue Aug 11 2009 Peter Jones <pjones at redhat.com> - 0.97-58
 - Dynamically choose load address for bzimage on 64-bit UEFI.
 




More information about the scm-commits mailing list