diff --git a/gnu-efi-build-fix.patch b/gnu-efi-build-fix.patch new file mode 100644 index 0000000..43fab4b --- /dev/null +++ b/gnu-efi-build-fix.patch @@ -0,0 +1,113 @@ +From 0a69c42779d1d28aa406fa2c435b180156ee3435 Mon Sep 17 00:00:00 2001 +From: Fedora Ninjas +Date: Thu, 15 May 2014 21:29:25 -0400 +Subject: [PATCH] Try to make this build. + +--- + Make.defaults + inc/Makefile + 2 files changed, 12 insertions(+), 22 deletion(-) + +diff -up a/gnuefi/Makefile b/gnuefi/Makefile +--- a/gnuefi/Makefile 2014-05-15 17:15:54.000000000 -0500 ++++ b/gnuefi/Makefile 2014-05-19 14:02:29.048732554 -0500 +@@ -52,19 +52,6 @@ reloc_aarch64.o: CFLAGS += -fno-jump-tab + + TARGETS = crt0-efi-$(ARCH).o libgnuefi.a + +-INSTALLTARGETS = $(TARGETS) +-ifneq (,$(findstring FreeBSD,$(OS))) +- ifeq ($(ARCH),x86_64) +- INSTALLTARGETS += elf_$(ARCH)_fbsd_efi.lds +- else +- INSTALLTARGETS += elf_$(ARCH)_efi.lds +- endif +-else +- INSTALLTARGETS += elf_$(ARCH)_efi.lds +-endif +- +-LIBDIRINSTALL = $(INSTALLROOT)/$(LIBDIR) +- + all: $(TARGETS) + + libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS)) +@@ -72,14 +59,17 @@ libgnuefi.a: $(patsubst %,libgnuefi.a(%) + clean: + rm -f $(TARGETS) *~ *.o $(OBJS) + +-$(LIBDIRINSTALL): +- mkdir -p $@ +- +-.SECONDEXPANSION: +- +-$(LIBDIRINSTALL)/%: % | $$(dir $$@) +- $(INSTALL) -m 644 $< $(dir $@) +- +-install: $(addprefix $(LIBDIRINSTALL)/,$(INSTALLTARGETS)) ++install: ++ mkdir -p $(INSTALLROOT)/$(LIBDIR) ++ $(INSTALL) -m 644 $(TARGETS) $(INSTALLROOT)/$(LIBDIR) ++ifneq (,$(findstring FreeBSD,$(OS))) ++ ifeq ($(ARCH),x86_64) ++ $(INSTALL) -m 644 elf_$(ARCH)_fbsd_efi.lds $(INSTALLROOT)/$(LIBDIR) ++ else ++ $(INSTALL) -m 644 elf_$(ARCH)_efi.lds $(INSTALLROOT)/$(LIBDIR) ++ endif ++else ++ $(INSTALL) -m 644 elf_$(ARCH)_efi.lds $(INSTALLROOT)/$(LIBDIR) ++endif + + include $(SRCDIR)/../Make.rules +diff --git a/inc/Makefile b/inc/Makefile +index 526af22..71fded5 100644 +--- a/inc/Makefile ++++ b/inc/Makefile +@@ -8,34 +8,20 @@ TOPDIR = $(SRCDIR)/.. + + CDIR=$(TOPDIR)/.. + +-INCDIRINSTALL = $(INSTALLROOT)$(PREFIX)/include/efi +- +-SRCHEADERS = $(wildcard $(SRCDIR)/*.h) \ +- $(wildcard $(SRCDIR)/protocol/*.h) \ +- $(wildcard $(SRCDIR)/$(ARCH)/*.h) +-ifeq ($(ARCH),ia64) +- SRCHEADERS += $(wildcard $(SRCDIR)/protocol/$(ARCH)/*.h) +-endif +- +-HEADERS = $(patsubst $(SRCDIR)/%,%,$(SRCHEADERS)) +- + all: + + clean: + +- rm -f *~ +- +-$(INCDIRINSTALL) \ +-$(INCDIRINSTALL)/protocol \ +-$(INCDIRINSTALL)/$(ARCH) \ +-$(INCDIRINSTALL)/protocol/$(ARCH): +- mkdir -p $@ +- +-.SECONDEXPANSION: +- +-$(INCDIRINSTALL)/%.h: %.h | $$(dir $$@) +- $(INSTALL) -m 644 $< $(dir $@) +- +-install: $(addprefix $(INCDIRINSTALL)/,$(HEADERS)) ++install: ++ mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi ++ mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol ++ mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH) ++ $(INSTALL) -m 644 *.h $(INSTALLROOT)$(PREFIX)/include/efi ++ $(INSTALL) -m 644 protocol/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol ++ $(INSTALL) -m 644 $(ARCH)/*.h $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH) ++ifeq ($(ARCH),ia64) ++ mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64 ++ $(INSTALL) -m 644 protocol/ia64/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64 ++endif + + include $(SRCDIR)/../Make.rules +-- +1.8.3.1 + diff --git a/gnu-efi.changes b/gnu-efi.changes index 1009b2b..ac8f4a3 100644 --- a/gnu-efi.changes +++ b/gnu-efi.changes @@ -1,3 +1,63 @@ +------------------------------------------------------------------- +Mon Sep 22 08:56:19 UTC 2014 - glin@suse.com + +- Update to gnu-efi 3.0w + + Add support for 64-bit ARM (AArch64) + + Add support for non-PE/COFF capable objcopy + + Add support for cross compilation + + Restrict GNU_EFI_USE_MS_ABI GCC version test to x86_64 + + Use Shell protocols to retrieve argc/argv, when available. + + document format of LoadedImage::LoadOptions data + + Use OpenProtocol instead of HandleProtocol + + move cmdline parser to its own file + + make cmdline parsing a 1st class citizen + + Avoid buffer overflow while parsing the cmdline args + + Fix cmdline parser + + inc/efistdarg.h: Use gcc builtins instead of stdarg.h or + broken stubs + + always observe EFIAPI calling convention when calling + STO.SetAttribute + + Add VPoolPrint Function + + Cleaned up compile warnings + + a patch for "DevicePathToStr()" to display device path + according to UEFI 2 specification + + Removed GPL code setjmp_ia32.S, setjmp_ia64.S, setjmp_x86_64.S + + Remove incumbent GPL 'debian' subdiretory + + Add support for the simple pointer and absolute pointer + protocols + + Trying to recurse into subdirectories of object files may lead + to an error if the directory doesn't exist. Even when cleaning + + Make install used to copy files unconditionnally to their + destination. However, if the destination is used by another + Makefile, it will always see modified files. "install" target + now only updates the files when they need to. + + Patch GNU-EFI to remove the ELILO code + + Initialize Status before calling GrowBuffer() + + These changes allow manually overridden SRCDIR (current source + directory) and TOPDIR (top of source tree) to separate the + build directory from the source tree. + + fix uninitialized variables warning + + Implement VSPrint function, prints a formatted unicode string + to a buffer + + Created lib/argify.c and inc/argify.h containing the function + argify. It contains verbatim copy of the comment at beginning + of file from elilo. + + The information needed is not really the host architecture as + given by the kernel arch. The information actually needed is + the default target of gcc. + + The information needed is not really the host architecture as + given by the kernel arch. The information actually needed is + the default target of gcc. + + Added support for SetVariable to store volatile variable, and + SetNVVariable to store non volatile variable. + + Atoi needs to have consistent declaration/definition. + + Be more pedantic when linking, don't allow duplicate symbols, + abort upon first error. + + Fix compilation on x86_64 without HAVE_USE_MS_ABI + + Fix typo when disabling mno-mmx +- Add gnu-efi-build-fix.patch to fix Makefile +- Enable AArch64 + ------------------------------------------------------------------- Wed Jul 17 09:18:03 UTC 2013 - glin@suse.com diff --git a/gnu-efi.spec b/gnu-efi.spec index 160d5c5..ea42235 100644 --- a/gnu-efi.spec +++ b/gnu-efi.spec @@ -1,7 +1,7 @@ # # spec file for package gnu-efi # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,17 +17,18 @@ Name: gnu-efi -Version: 3.0u +Version: 3.0w Release: 0 Summary: Library for EFI Applications License: BSD-3-Clause and GPL-2.0+ Group: Development/Libraries/Other Url: http://sourceforge.net/projects/gnu-efi -Source: http://downloads.sourceforge.net/gnu-efi/gnu-efi_3.0u.orig.tar.gz +Source: http://downloads.sourceforge.net/gnu-efi/gnu-efi_3.0w.orig.tar.gz Source1: %{name}-rpmlintrc +Patch1: %{name}-build-fix.patch BuildRequires: kernel-source BuildRoot: %{_tmppath}/%{name}-%{version}-build -ExclusiveArch: ia64 %ix86 x86_64 +ExclusiveArch: ia64 %ix86 x86_64 aarch64 %description Library to develop EFI applications for IA-64 (IPF), IA-32 (x86) and x86_64 @@ -41,6 +42,7 @@ Authors: %prep %setup -q -n gnu-efi-3.0 +%patch1 -p1 %build ########################## diff --git a/gnu-efi_3.0u.orig.tar.gz b/gnu-efi_3.0u.orig.tar.gz deleted file mode 100644 index 8bb673c..0000000 --- a/gnu-efi_3.0u.orig.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c0d450d5829204ca05dcb3b2aae772e52c379b7c7e09146759c6315606f934e -size 159662 diff --git a/gnu-efi_3.0w.orig.tar.gz b/gnu-efi_3.0w.orig.tar.gz new file mode 100644 index 0000000..4048593 --- /dev/null +++ b/gnu-efi_3.0w.orig.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5c5ca168d25bb54ea936a25175d7626778001f788bddc60dbed103874583621 +size 172913