From c56616968e180cd295ca2e2183f27b6a2faca4ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 10 Mar 2015 11:31:03 -0400 Subject: [PATCH] Update to 3.0.1 Signed-off-by: Peter Jones --- ...-Make-gnuefi-build-and-install-right.patch | 121 ------------------ ...es-work-with-FreeBSD-s-objcopy-versi.patch | 54 -------- 0003-Add-the-capsule-API.patch | 69 ---------- 0004-Add-the-QueryVariableInfo-API.patch | 41 ------ 0005-Add-current-OsIndications-values.patch | 31 ----- gnu-efi.spec | 21 +-- sources | 3 +- 7 files changed, 12 insertions(+), 328 deletions(-) delete mode 100644 0001-Make-gnuefi-build-and-install-right.patch delete mode 100644 0002-Make-command-lines-work-with-FreeBSD-s-objcopy-versi.patch delete mode 100644 0003-Add-the-capsule-API.patch delete mode 100644 0004-Add-the-QueryVariableInfo-API.patch delete mode 100644 0005-Add-current-OsIndications-values.patch diff --git a/0001-Make-gnuefi-build-and-install-right.patch b/0001-Make-gnuefi-build-and-install-right.patch deleted file mode 100644 index b179ffd..0000000 --- a/0001-Make-gnuefi-build-and-install-right.patch +++ /dev/null @@ -1,121 +0,0 @@ -From d5cf0561d87d755e28b03816964c432b5d943554 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 15 May 2014 21:29:25 -0400 -Subject: [PATCH 1/5] Make gnuefi/ build and install right. - -Right now we wind up trying to build gnuefi/.o from a source file that's -an empty string. This is caused by the macros trying to generate -install rules, but there's no real reason to have all that anyway. So -just have some static install rules that are simpler and don't generate -stuff on the fly. - -Signed-off-by: Peter Jones ---- - gnuefi/Makefile | 34 ++++++++++++---------------------- - inc/Makefile | 36 +++++++++++------------------------- - 2 files changed, 23 insertions(+), 47 deletions(-) - -diff --git a/gnuefi/Makefile b/gnuefi/Makefile -index 4717227..d234ac0 100644 ---- a/gnuefi/Makefile -+++ b/gnuefi/Makefile -@@ -52,19 +52,6 @@ reloc_aarch64.o: CFLAGS += -fno-jump-tables - - 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(%),$(OBJS)) - 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 --- -2.1.0 - diff --git a/0002-Make-command-lines-work-with-FreeBSD-s-objcopy-versi.patch b/0002-Make-command-lines-work-with-FreeBSD-s-objcopy-versi.patch deleted file mode 100644 index 1bf50eb..0000000 --- a/0002-Make-command-lines-work-with-FreeBSD-s-objcopy-versi.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 079c0b997c8011657e3baed6658fb77b969675b3 Mon Sep 17 00:00:00 2001 -From: Bill Paul -Date: Thu, 20 Nov 2014 14:29:29 -0500 -Subject: [PATCH 2/5] Make command lines work with FreeBSD's objcopy version. - -FreeBSD's binutils doesn't have "-j " support, so we need to -include non-globbed versions of .rel/.rela individually. - -Signed-off-by: Peter Jones -Signed-Off-By: Bill Paul ---- - Make.defaults | 7 +++++++ - Make.rules | 5 +++-- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/Make.defaults b/Make.defaults -index 807205d..169273d 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -133,8 +133,15 @@ endif - # Generic compilation flags - INCDIR += -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) \ - -I$(TOPDIR)/inc/protocol -+ -+ifeq (FreeBSD, $(findstring FreeBSD, $(OS))) -+CFLAGS += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \ -+ -ffreestanding -fno-stack-protector -+else - CFLAGS += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \ - -fno-merge-constants -ffreestanding -fno-stack-protector \ - -fno-stack-check -+endif -+ - ASFLAGS += $(ARCH3264) - LDFLAGS += -nostdlib --warn-common --no-undefined --fatal-warnings -diff --git a/Make.rules b/Make.rules -index 7113b3e..02c7088 100644 ---- a/Make.rules -+++ b/Make.rules -@@ -35,8 +35,9 @@ - # - - %.efi: %.so -- $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel* \ -- -j .rela* -j .reloc $(FORMAT) $*.so $@ -+ $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ -+ -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \ -+ -j .reloc $(FORMAT) $*.so $@ - - %.so: %.o - $(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES) --- -2.1.0 - diff --git a/0003-Add-the-capsule-API.patch b/0003-Add-the-capsule-API.patch deleted file mode 100644 index 649681d..0000000 --- a/0003-Add-the-capsule-API.patch +++ /dev/null @@ -1,69 +0,0 @@ -From ed71ce3a579279c6f60d10c8aecef42292504d5c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 20 Nov 2014 13:43:18 -0500 -Subject: [PATCH 3/5] Add the capsule API - -Signed-off-by: Peter Jones ---- - inc/efiapi.h | 38 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 38 insertions(+) - -diff --git a/inc/efiapi.h b/inc/efiapi.h -index 2ab9f1f..a3e3fd9 100644 ---- a/inc/efiapi.h -+++ b/inc/efiapi.h -@@ -585,6 +585,42 @@ EFI_STATUS - OUT UINT32 *HighCount - ); - -+typedef struct { -+ UINT64 Length; -+ union { -+ EFI_PHYSICAL_ADDRESS DataBlock; -+ EFI_PHYSICAL_ADDRESS ContinuationPointer; -+ } Union; -+} EFI_CAPSULE_BLOCK_DESCRIPTOR; -+ -+typedef struct { -+ EFI_GUID CapsuleGuid; -+ UINT32 HeaderSize; -+ UINT32 Flags; -+ UINT32 CapsuleImageSize; -+} EFI_CAPSULE_HEADER; -+ -+#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000 -+#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000 -+#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000 -+ -+typedef -+EFI_STATUS -+(EFIAPI *EFI_UPDATE_CAPSULE) ( -+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, -+ IN UINTN CapsuleCount, -+ IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL -+ ); -+ -+typedef -+EFI_STATUS -+(EFIAPI *EFI_QUERY_CAPSULE_CAPABILITIES) ( -+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, -+ IN UINTN CapsuleCount, -+ OUT UINT64 *MaximumCapsuleSize, -+ OUT EFI_RESET_TYPE *ResetType -+ ); -+ - // - // Protocol handler functions - // -@@ -720,6 +756,8 @@ typedef struct { - EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount; - EFI_RESET_SYSTEM ResetSystem; - -+ EFI_UPDATE_CAPSULE UpdateCapsule; -+ EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities; - } EFI_RUNTIME_SERVICES; - - --- -2.1.0 - diff --git a/0004-Add-the-QueryVariableInfo-API.patch b/0004-Add-the-QueryVariableInfo-API.patch deleted file mode 100644 index cdc3b83..0000000 --- a/0004-Add-the-QueryVariableInfo-API.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 99050251a94d1cf2179cc614e9a9b19277afea5f Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 20 Nov 2014 13:43:38 -0500 -Subject: [PATCH 4/5] Add the QueryVariableInfo() API. - -Signed-off-by: Peter Jones ---- - inc/efiapi.h | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/inc/efiapi.h b/inc/efiapi.h -index a3e3fd9..708c67f 100644 ---- a/inc/efiapi.h -+++ b/inc/efiapi.h -@@ -621,6 +621,15 @@ EFI_STATUS - OUT EFI_RESET_TYPE *ResetType - ); - -+typedef -+EFI_STATUS -+(EFIAPI *EFI_QUERY_VARIABLE_INFO) ( -+ IN UINT32 Attributes, -+ OUT UINT64 *MaximumVariableStorageSize, -+ OUT UINT64 *RemainingVariableStorageSize, -+ OUT UINT64 *MaximumVariableSize -+ ); -+ - // - // Protocol handler functions - // -@@ -758,6 +767,7 @@ typedef struct { - - EFI_UPDATE_CAPSULE UpdateCapsule; - EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities; -+ EFI_QUERY_VARIABLE_INFO QueryVariableInfo; - } EFI_RUNTIME_SERVICES; - - --- -2.1.0 - diff --git a/0005-Add-current-OsIndications-values.patch b/0005-Add-current-OsIndications-values.patch deleted file mode 100644 index 7a70e7f..0000000 --- a/0005-Add-current-OsIndications-values.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d06cdc04a15ba913d64d04d118486dc02ab8f190 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 20 Nov 2014 13:45:25 -0500 -Subject: [PATCH 5/5] Add current OsIndications values. - -Signed-off-by: Peter Jones ---- - inc/efidef.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/inc/efidef.h b/inc/efidef.h -index 666b193..8b70051 100644 ---- a/inc/efidef.h -+++ b/inc/efidef.h -@@ -208,4 +208,13 @@ typedef UINT8 ISO_639_2; - #define EFI_SIZE_TO_PAGES(a) \ - ( ((a) >> EFI_PAGE_SHIFT) + ((a) & EFI_PAGE_MASK ? 1 : 0) ) - -+#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001 -+#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002 -+#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED \ -+ 0x0000000000000004 -+#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED \ -+ 0x0000000000000008 -+#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED \ -+ 0x0000000000000010 -+ - #endif --- -2.1.0 - diff --git a/gnu-efi.spec b/gnu-efi.spec index ebf4e33..7121fbd 100644 --- a/gnu-efi.spec +++ b/gnu-efi.spec @@ -1,20 +1,15 @@ Summary: Development Libraries and headers for EFI Name: gnu-efi -Version: 3.0w -Release: 2%{?dist} +Version: 3.0.1 +Release: 1%{?dist} +Epoch: 1 Group: Development/System License: BSD URL: ftp://ftp.hpl.hp.com/pub/linux-ia64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} x86_64 ia64 aarch64 BuildRequires: git - -Source: ftp://ftp.hpl.hp.com/pub/linux-ia64/gnu-efi_%{version}.orig.tar.gz -Patch0001: 0001-Make-gnuefi-build-and-install-right.patch -Patch0002: 0002-Make-command-lines-work-with-FreeBSD-s-objcopy-versi.patch -Patch0003: 0003-Add-the-capsule-API.patch -Patch0004: 0004-Add-the-QueryVariableInfo-API.patch -Patch0005: 0005-Add-current-OsIndications-values.patch +Source: http://superb-dca2.dl.sourceforge.net/project/gnu-efi/gnu-efi-%{version}.tar.bz2 %define debug_package %{nil} @@ -47,13 +42,15 @@ Group: Applications/System This package contains utilties for debugging and developing EFI systems. %prep -%setup -q -n gnu-efi-3.0 +%setup -q -n gnu-efi-%{version} git init git config user.email "pjones@fedoraproject.org" git config user.name "Fedora Ninjas" git add . git commit -a -q -m "%{version} baseline." git am %{patches} - 3.0.1-1 +- Update to 3.0.1 +- New versioning scheme! + * Thu Nov 20 2014 Peter Jones - 3.0w-2 - Use patches upstream is going to take for the build fixes - Add some new protocol definitons. diff --git a/sources b/sources index 4dcef2b..bfd5013 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -d15d3c700e79a1e2938544d73edc572d gnu-efi_3.0u.orig.tar.gz -36d1c5e7b6edd4733700aaf749d9b80c gnu-efi_3.0w.orig.tar.gz +c4099c443b6b0c2b04dedc33e7814ec0 gnu-efi-3.0.1.tar.bz2