Hello community,

here is the log from the commit of package gnu-efi for openSUSE:Factory checked 
in at 2015-09-08 17:36:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnu-efi (Old)
 and      /work/SRC/openSUSE:Factory/.gnu-efi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnu-efi"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnu-efi/gnu-efi.changes  2015-06-18 
06:36:32.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnu-efi.new/gnu-efi.changes     2015-09-08 
17:37:51.000000000 +0200
@@ -1,0 +2,12 @@
+Tue Aug 18 04:24:16 UTC 2015 - g...@suse.com
+
+- Update to gnu-efi 3.0.3
+  + Add URI Device Path
+  + Makes the symbols consistent between the linker scripts
+  + Added some missing error code descriptions
+  + Add setjump()/longjump()
+- Drop patches
+  + gnu-efi-setjmp.patch
+  + gnu-efi-missing-error-code.patch
+
+-------------------------------------------------------------------

Old:
----
  gnu-efi-3.0.2.tar.bz2
  gnu-efi-missing-error-code.patch
  gnu-efi-setjmp.patch

New:
----
  gnu-efi-3.0.3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnu-efi.spec ++++++
--- /var/tmp/diff_new_pack.vVSXd6/_old  2015-09-08 17:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.vVSXd6/_new  2015-09-08 17:37:52.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           gnu-efi
-Version:        3.0.2
+Version:        3.0.3
 Release:        0
 Summary:        Library for EFI Applications
 License:        BSD-3-Clause and GPL-2.0+
@@ -25,8 +25,6 @@
 Url:            http://sourceforge.net/projects/gnu-efi
 Source:         
http://sourceforge.net/projects/gnu-efi/files/gnu-efi-%{version}.tar.bz2
 Source1:        %{name}-rpmlintrc
-Patch1:         %{name}-setjmp.patch
-Patch2:         %{name}-missing-error-code.patch
 BuildRequires:  kernel-source
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 ExclusiveArch:  ia64 %ix86 x86_64 aarch64 %arm
@@ -38,8 +36,6 @@
 
 %prep
 %setup -q
-%patch1 -p1
-%patch2 -p1
 
 %build
 ##########################

++++++ gnu-efi-3.0.2.tar.bz2 -> gnu-efi-3.0.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/.gitignore new/gnu-efi-3.0.3/.gitignore
--- old/gnu-efi-3.0.2/.gitignore        2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/.gitignore        2015-08-17 22:06:47.000000000 +0200
@@ -1,4 +1,5 @@
 *.efi
+*.efi.debug
 *.o
 *.a
 *.tar.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/ChangeLog new/gnu-efi-3.0.3/ChangeLog
--- old/gnu-efi-3.0.2/ChangeLog 2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/ChangeLog 2015-08-17 22:06:47.000000000 +0200
@@ -1,3 +1,309 @@
+    Updated Changelog
+
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 37d7bee82a627999563069b090866076e055a871
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Thu May 14 12:38:39 2015 -0400
+
+    Added some missing error code descriptions
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit dae0b4b0b0d522caecf09123db2cf0250c37a169
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Thu May 14 12:20:51 2015 -0400
+
+    Turns out we actually need setjmp in one of gnu-efi's prominent
+    users, and it seems to make more sense to put it here than in
+    the application.
+    
+    All of these are derived from the Tiano code, but I re-wrote the
+    x86_64 one because we use the ELF psABI calling conventions instead
+    of the MS ABI calling conventions.  Which is to say you probably
+    shouldn't setjmp()/longjmp() between functions with EFIAPI (aka
+    __attribute__((ms_abi))) and those without.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit b5a8e93cec396381a6d2beee022abbf50100f2fd
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Fri Apr 10 08:49:50 2015 -0400
+
+    Bump version to 3.0.2
+    
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 01c9f11ed5ad55661e8fc8a3eee35c578564754b
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Fri Apr 10 08:46:40 2015 -0400
+
+    Fix ARM32 and AARCH64 builds
+    Without these added into SUBDIRS the initplat.c compilation will fail.
+    
+    Signed-off-by: Koen Kooi <koen.k...@linaro.org>
+    Acked-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit dada63fd3de148c6f8551d253355c113547cd5a0
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Mar 23 10:41:43 2015 -0400
+
+    [PATCH] _SPrint: fix NULL termination
+    
+    maxlen is the maximum string length not the buffer size.
+    
+    Signed-off-by: Jeremy Compostella <jeremy.composte...@intel.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit ce7098fb52e5fd4d16038964d029eb759f28eaaf
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Thu Feb 19 11:22:45 2015 -0500
+
+    Enable out-of-tree building
+    
+    This patch enables building gnu-efi outside of the source tree.
+    That in turn enables building for multiple architectures in parallel.
+    
+    The build directory is controlled by the OBJDIR make variable.  It
+    defaults to the value of ARCH, and can be overridden from the command
+    line.
+    
+    This patch also cleans up some doubled slashes between INSTALLROOT
+    and PREFIX.
+    
+    Signed-off-by: Jonathan Boeing <jonathan.n.boe...@gmail.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit f64cef26270bfbe04f038da33f95ae3f14c071bc
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Jan 6 15:49:50 2015 -0500
+
+    Since we're keeping this in git, it'd be nice not to see a bunch
+    of make targets in 'status'
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 322efb6b21ed0a5e42e8f124fd22bf0f8dbf01ae
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Jan 5 13:20:43 2015 -0500
+
+    version number changed from VERSION = 3.0u to VERSION = 3.0.1
+    
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 09027207f7c18af6caa45a744fc15c90b2a829db
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Jan 5 13:13:22 2015 -0500
+
+    From: Pete Batard <p...@akeo.ie>
+    Date: Wed, 10 Dec 2014 21:08:34 +0000
+    Subject: [PATCH] fixes for MSVC compilation
+    
+    These fixes are needed to address the following error and warnings when 
compiling the library part
+    using Visual Studio 2013 Community Edition (as in 
https://github.com/pbatard/uefi-simple):
+    * "lib\x86_64\math.c(49): error C4235: nonstandard extension used : '_asm' 
keyword not supported
+      on this architecture"
+    * "lib\print.c(98): error C2059: syntax error : '('" due to placement of 
EFIAPI macro
+    * "lib\cmdline.c(94): warning C4090: 'function' : different 'const' 
qualifiers"
+    * "lib\smbios.c(25): warning C4068: unknown pragma"
+    * Also update macro definitions in "inc\<arch>\efibind.h" for MSVC
+    
+    Signed-off-by: Pete Batard <p...@akeo.ie>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 15805ff38b83a72c2c7c96a24bd642ee1176d819
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Nov 25 14:23:21 2014 -0500
+
+    Add README.git file. Instructions on how to archive.
+    
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit b868aa75669723b7e32f46524822e17e388fe2ba
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Nov 25 13:26:45 2014 -0500
+
+    This patch makes generating releases from git a very simple process; you
+    simply edit the makefile's "VERSION" line to the new version, commit
+    that as its own commit, and do: "make test-archive".  That'll make a
+    file in the current directory gnu-efi-$VERSION.tar.bz2 , with its top
+    level directory gnu-efi-$VERSION/ and the source tree under that.
+    
+    Once you've tested that and you're sure it's what you want to release,
+    you do "make archive", which will tag a release in git and generate a
+    final tarball from it.  You then push to the archive, being sure to
+    include the tag:
+    
+    git push origin master:master --tags
+    
+    And upload the archive wherever it's supposed to go.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 530d68ba191850edafc6da22cb2df55bec0c5fa5
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Nov 25 10:09:50 2014 -0500
+
+    The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 00bd66ef46b59a1623a293491a8b2c65a6d61975
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Nov 24 14:33:09 2014 -0500
+
+    FreeBSD's binutils doesn't have "-j <glob>" support, so we need to
+    include non-globbed versions of .rel/.rela individually.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Bill Paul <wp...@windriver.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 56eb64d3c06854b9b68d61e3c2d3bdf6ff2a9853
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Nov 24 14:27:14 2014 -0500
+
+    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 <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 65e28a90a7be9e990b360286cea31e63319217fb
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Nov 24 12:17:45 2014 -0500
+
+    Add current OsIndications values.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com
+
+commit be231055ce14d17610f0d7b6133a87b99a22662b
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Nov 24 12:15:34 2014 -0500
+
+    Add the QueryVariableInfo() API.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 60efb7a2939b65a01e95aa8b535f1b756d984fba
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Nov 24 12:13:23 2014 -0500
+
+    Add the capsule API.
+    
+    Signed-off-by: Peter Jones <pjo...@redhat.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit ef08b655d1f8dfbd9a0f3a86d5685b24695ef12f
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Nov 17 16:05:42 2014 -0500
+
+    Fix Table Header misspelling. Change from EFI_TABLE_HEARDER to
+    EFI_TABLE_HEADER.
+    
+    Signed-Off-By: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 370cce41da3fff41ba38feb1262002aff2d85ffd
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Thu Nov 6 14:41:40 2014 -0500
+
+    If CROSS_COMPILE is set, ignore the ARCH value supplied on the
+    command line and use the target machine of the cross compiler.
+    
+    Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit d32fb845433ff6fb38e81ae0d9273454e7d18197
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Thu Nov 6 14:30:03 2014 -0500
+
+    Allow reuse of this file beyond GPL compatible software,
+    update the license of crt0-efi-aarch64.S to dual 2-clause BSD/GPLv2+.
+    
+    Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit aa1df67f48f3c035fa8891e1bb311ec21500d6d9
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Oct 21 11:08:47 2014 -0400
+
+    Add the missing Variable attributes
+    
+    From: Jeremy Compostella <jeremy.composte...@intel.com>
+    Date: Mon, 13 Oct 2014 17:50:50 +0200
+    Subject: [PATCH] Add the missing Variable attributes
+    
+    Signed-off-by: Jeremy Compostella <jeremy.composte...@intel.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 5706dff09364cbbec37f47e2fe1350747f631d74
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Aug 26 10:54:22 2014 -0400
+
+    From: David Decotigny <de...@googlers.com>
+    Date: Mon, 25 Aug 2014 13:28:49 -0700
+    Subject: [PATCH] document that binutils >= 2.24 needed.
+    
+    commit ac983081 "Add support for non-PE/COFF capable objcopy" depends
+    on objcopy accepting wildcards for the section names. This feature is
+    available only with binutils >= 2.24 (binutils 2e62b7218 "PR
+    binutils/15033").
+    
+    Signed-off-by: David Decotigny <de...@googlers.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 6c10e225bc759d69af520a551b9d7b37f3ae0a82
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Mon Aug 25 08:51:23 2014 -0400
+
+    From: David Decotigny <de...@googlers.com>
+    Date: Thu, 31 Jul 2014 18:19:16 -0700
+    Subject: [PATCH 5/5] allow to use external stdarg.h
+    
+    in cases we use gnu-efi together with other libs that define stdarg.h,
+    break the tie by telling gnu-efi to use that stdarg.h .
+    
+    Signed-off-by: David Decotigny <de...@googlers.com>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit 16d65c0669258c8044e3549b2d9eb0cf0eb08f5a
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Tue Aug 19 12:07:00 2014 -0400
+
+    From: Ard Biesheuvel <ard.biesheu...@linaro.org>
+    Date: Mon, 11 Aug 2014 15:39:16 +0200
+    Subject: [PATCH] Add support for 32-bit ARM
+    
+    This adds support for 32-bit ARM using an approach similar to the one used 
for
+    64-bit ARM (AArch64), i.e., it does not rely on an objcopy that is aware 
of EFI
+    or PE/COFF, but lays out the entire PE/COFF header using the assembler.
+    
+    In the 32-bit ARM case (which does not have a division instruction), some 
code
+    has been imported from the Linux kernel to perform the division operations 
in
+    software.
+    
+    Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
+commit b28143d4fb4f6969dc0c87c853d3527d889951d7
+Author: Nigel Croxon <nigel.cro...@hp.com>
+Date:   Fri Aug 8 15:54:19 2014 -0400
+
+    Updated Changelog
+    
+    Signed-off-by: Nigel Croxon <nigel.cro...@hp.com>
+
 commit 1525190354f5faac33015e17c9ba7ea2bb2be35b
 Author: Nigel Croxon <nigel.cro...@hp.com>
 Date:   Fri Aug 8 15:35:09 2014 -0400
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/Make.defaults 
new/gnu-efi-3.0.3/Make.defaults
--- old/gnu-efi-3.0.2/Make.defaults     2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/Make.defaults     2015-08-17 22:06:47.000000000 +0200
@@ -140,13 +140,14 @@
            -I$(TOPDIR)/inc/protocol
 
 ifeq (FreeBSD, $(findstring FreeBSD, $(OS)))
-CFLAGS  += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
+CFLAGS  += $(ARCH3264) -g -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
            -ffreestanding -fno-stack-protector
 else
-CFLAGS  += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
+CFLAGS  += $(ARCH3264) -g -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
+LDFLAGS        += -nostdlib --warn-common --no-undefined --fatal-warnings \
+          --build-id=sha1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/Make.rules new/gnu-efi-3.0.3/Make.rules
--- old/gnu-efi-3.0.2/Make.rules        2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/Make.rules        2015-08-17 22:06:47.000000000 +0200
@@ -39,6 +39,12 @@
                    -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
                    -j .reloc $(FORMAT) $*.so $@
 
+%.efi.debug: %.so
+       $(OBJCOPY) -j .debug_info -j .debug_abbrev -j .debug_aranges \
+               -j .debug_line -j .debug_str -j .debug_ranges \
+               -j .note.gnu.build-id \
+               $(FORMAT) $*.so $@
+
 %.so: %.o
        $(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/Makefile new/gnu-efi-3.0.3/Makefile
--- old/gnu-efi-3.0.2/Makefile  2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/Makefile  2015-08-17 22:06:47.000000000 +0200
@@ -34,7 +34,7 @@
 #    SUCH DAMAGE.
 #
 
-VERSION = 3.0.2
+VERSION = 3.0.3
 
 SRCDIR = $(shell pwd)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/apps/Makefile 
new/gnu-efi-3.0.3/apps/Makefile
--- old/gnu-efi-3.0.2/apps/Makefile     2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/apps/Makefile     2015-08-17 22:06:47.000000000 +0200
@@ -61,7 +61,7 @@
 TARGET_APPS = t.efi t2.efi t3.efi t4.efi t5.efi t6.efi \
              printenv.efi t7.efi t8.efi tcc.efi modelist.efi \
              route80h.efi drv0_use.efi AllocPages.efi \
-             FreePages.efi
+             FreePages.efi setjmp.efi debughook.efi debughook.efi.debug
 TARGET_BSDRIVERS = drv0.efi
 TARGET_RTDRIVERS =
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/apps/debughook.c 
new/gnu-efi-3.0.3/apps/debughook.c
--- old/gnu-efi-3.0.2/apps/debughook.c  1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/apps/debughook.c  2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,92 @@
+#include <efi.h>
+#include <efilib.h>
+
+EFI_STATUS
+GetVariableAttr(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner,
+                 UINT32 *attributes)
+{
+       EFI_STATUS efi_status;
+
+       *len = 0;
+
+       efi_status = uefi_call_wrapper(RT->GetVariable, 5, var, &owner,
+                                      NULL, len, NULL);
+       if (efi_status != EFI_BUFFER_TOO_SMALL)
+               return efi_status;
+
+       *data = AllocateZeroPool(*len);
+       if (!*data)
+               return EFI_OUT_OF_RESOURCES;
+
+       efi_status = uefi_call_wrapper(RT->GetVariable, 5, var, &owner,
+                                      attributes, len, *data);
+
+       if (efi_status != EFI_SUCCESS) {
+               FreePool(*data);
+               *data = NULL;
+       }
+       return efi_status;
+}
+
+EFI_STATUS
+GetVariable(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner)
+{
+       return GetVariableAttr(var, data, len, owner, NULL);
+}
+
+EFI_GUID DUMMY_GUID =
+{0x55aad538, 0x8f82, 0x4e2a, {0xa4,0xf0,0xbe, 0x59, 0x13, 0xb6, 0x5f, 0x1e}};
+
+static void
+__attribute__((__optimize__("0")))
+DebugHook(void)
+{
+       EFI_GUID guid = DUMMY_GUID;
+       UINT8 *data = NULL;
+       UINTN dataSize = 0;
+       EFI_STATUS efi_status;
+       volatile register UINTN x = 0;
+       extern char _text, _data;
+
+       if (x)
+               return;
+
+       efi_status = GetVariable(L"DUMMY_DEBUG", &data, &dataSize, guid);
+       if (EFI_ERROR(efi_status)) {
+               return;
+       }
+
+       Print(L"add-symbol-file /usr/lib/debug/boot/efi/debughook.debug "
+             L"0x%08x -s .data 0x%08x\n", &_text, &_data);
+
+       Print(L"Pausing for debugger attachment.\n");
+       Print(L"To disable this, remove the EFI variable DUMMY_DEBUG-%g .\n",
+             &guid);
+       x = 1;
+       while (x++) {
+               /* Make this so it can't /totally/ DoS us. */
+#if defined(__x86_64__) || defined(__i386__) || defined(__i686__)
+               if (x > 4294967294)
+                       break;
+               __asm__ __volatile__("pause");
+#elif defined(__aarch64__)
+               if (x > 1000)
+                       break;
+               __asm__ __volatile__("wfi");
+#else
+               if (x > 12000)
+                       break;
+               uefi_call_wrapper(BS->Stall, 1, 5000);
+#endif
+       }
+       x = 1;
+}
+
+
+EFI_STATUS
+efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
+{
+       InitializeLib(image, systab);
+       DebugHook();
+       return EFI_SUCCESS;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/apps/setjmp.c 
new/gnu-efi-3.0.3/apps/setjmp.c
--- old/gnu-efi-3.0.2/apps/setjmp.c     1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/apps/setjmp.c     2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,31 @@
+
+#include <efi.h>
+#include <efilib.h>
+
+EFI_STATUS
+efi_main(
+       EFI_HANDLE image_handle,
+       EFI_SYSTEM_TABLE *systab
+)
+{
+       jmp_buf env;
+       int rc;
+
+       InitializeLib(image_handle, systab);
+       rc = setjmp(&env);
+       Print(L"setjmp() = %d\n", rc);
+
+       if (rc == 3) {
+               Print(L"3 worked\n");
+               longjmp(&env, 0);
+               return 0;
+       }
+
+       if (rc == 1) {
+               Print(L"0 got to be one yay\n");
+               return 0;
+       }
+
+       longjmp(&env, 3);
+       return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_aarch64_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_aarch64_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_aarch64_efi.lds        2015-04-10 
14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_aarch64_efi.lds        2015-08-17 
22:06:47.000000000 +0200
@@ -4,6 +4,7 @@
 SECTIONS
 {
   .text 0x0 : {
+    _text = .;
     *(.text.head)
     *(.text)
     *(.text.*)
@@ -11,11 +12,13 @@
     *(.srodata)
     *(.rodata*)
     . = ALIGN(16);
-    _etext = .;
   }
+  _etext = .;
+  _text_size = . - _text;
   .dynamic  : { *(.dynamic) }
   .data :
   {
+   _data = .;
    *(.sdata)
    *(.data)
    *(.data1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_arm_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_arm_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_arm_efi.lds    2015-04-10 14:49:50.000000000 
+0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_arm_efi.lds    2015-08-17 22:06:47.000000000 
+0200
@@ -4,6 +4,7 @@
 SECTIONS
 {
   .text 0x0 : {
+    _text = .;
     *(.text.head)
     *(.text)
     *(.text.*)
@@ -11,11 +12,13 @@
     *(.srodata)
     *(.rodata*)
     . = ALIGN(16);
-    _etext = .;
   }
+  _etext = .;
+  _text_size = . - _text;
   .dynamic  : { *(.dynamic) }
   .data :
   {
+   _data = .;
    *(.sdata)
    *(.data)
    *(.data1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_ia32_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_ia32_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_ia32_efi.lds   2015-04-10 14:49:50.000000000 
+0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_ia32_efi.lds   2015-08-17 22:06:47.000000000 
+0200
@@ -9,13 +9,18 @@
   . = ALIGN(4096);
   .text :
   {
+   _text = .;
    *(.text)
    *(.text.*)
    *(.gnu.linkonce.t.*)
+   . = ALIGN(16);
   }
+  _etext = .;
+  _text_size = . - _text;
   . = ALIGN(4096);
   .sdata :
   {
+   _data = .;
    *(.got.plt)
    *(.got)
    *(.srodata)
@@ -55,6 +60,8 @@
     *(.data.rel.ro)
     *(.data.rel*)
   }
+  _edata = .;
+  _data_size = . - _etext;
   . = ALIGN(4096);
   .reloc :             /* This is the PECOFF .reloc section! */
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_ia32_fbsd_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_ia32_fbsd_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_ia32_fbsd_efi.lds      2015-04-10 
14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_ia32_fbsd_efi.lds      2015-08-17 
22:06:47.000000000 +0200
@@ -9,13 +9,18 @@
   . = ALIGN(4096);
   .text :
   {
+   _text = .;
    *(.text)
    *(.text.*)
    *(.gnu.linkonce.t.*)
+   . = ALIGN(16);
   }
+  _etext = .;
+  _text_size = . - _text;
   . = ALIGN(4096);
   .sdata :
   {
+   _data = .;
    *(.got.plt)
    *(.got)
    *(.srodata)
@@ -55,6 +60,8 @@
     *(.data.rel.ro)
     *(.data.rel*)
   }
+  _edata = .;
+  _data_size = . - _etext;
   . = ALIGN(4096);
   .reloc :             /* This is the PECOFF .reloc section! */
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_ia64_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_ia64_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_ia64_efi.lds   2015-04-10 14:49:50.000000000 
+0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_ia64_efi.lds   2015-08-17 22:06:47.000000000 
+0200
@@ -9,14 +9,19 @@
   . = ALIGN(4096);
   .text :
   {
+   _text = .;
    *(.text)
    *(.text.*)
    *(.gnu.linkonce.t.*)
+   . = ALIGN(16);
   }
+  _etext = .;
+  _text_size = . - _text;
   . = ALIGN(4096);
   __gp = ALIGN (8) + 0x200000;
   .sdata :
   {
+   _data = .;
    *(.got.plt)
    *(.got)
    *(.srodata)
@@ -51,6 +56,8 @@
     *(.rela.stab)
     *(.rela.ctors)
   }
+  _edata = .;
+  _data_size = . - _etext;
   . = ALIGN(4096);
   .reloc :             /* This is the PECOFF .reloc section! */
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_x86_64_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_x86_64_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_x86_64_efi.lds 2015-04-10 14:49:50.000000000 
+0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_x86_64_efi.lds 2015-08-17 22:06:47.000000000 
+0200
@@ -15,10 +15,14 @@
   . = ALIGN(4096);
   .text :
   {
+   _text = .;
    *(.text)
    *(.text.*)
    *(.gnu.linkonce.t.*)
+   . = ALIGN(16);
   }
+  _etext = .;
+  _text_size = . - _text;
   . = ALIGN(4096);
   .reloc :
   {
@@ -27,6 +31,7 @@
   . = ALIGN(4096);
   .data :
   {
+   _data = .;
    *(.rodata*)
    *(.got.plt)
    *(.got)
@@ -41,6 +46,8 @@
    *(COMMON)
    *(.rel.local)
   }
+  _edata = .;
+  _data_size = . - _etext;
   . = ALIGN(4096);
   .dynamic  : { *(.dynamic) }
   . = ALIGN(4096);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/gnuefi/elf_x86_64_fbsd_efi.lds 
new/gnu-efi-3.0.3/gnuefi/elf_x86_64_fbsd_efi.lds
--- old/gnu-efi-3.0.2/gnuefi/elf_x86_64_fbsd_efi.lds    2015-04-10 
14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/gnuefi/elf_x86_64_fbsd_efi.lds    2015-08-17 
22:06:47.000000000 +0200
@@ -15,8 +15,12 @@
   . = ALIGN(4096);
   .text :
   {
+   _text = .;
    *(.text)
+   . = ALIGN(16);
   }
+  _etext = .;
+  _text_size = . - _text;
   .reloc :
   {
    *(.reloc)
@@ -24,6 +28,7 @@
   . = ALIGN(4096);
   .data :
   {
+   _data = .;
    *(.rodata*)
    *(.got.plt)
    *(.got)
@@ -47,6 +52,8 @@
     *(.rela.got)
     *(.rela.stab)
   }
+  _edata = .;
+  _data_size = . - _etext;
   . = ALIGN(4096);
   .dynsym   : { *(.dynsym) }
   . = ALIGN(4096);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/aarch64/efisetjmp_arch.h 
new/gnu-efi-3.0.3/inc/aarch64/efisetjmp_arch.h
--- old/gnu-efi-3.0.2/inc/aarch64/efisetjmp_arch.h      1970-01-01 
01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/inc/aarch64/efisetjmp_arch.h      2015-08-17 
22:06:47.000000000 +0200
@@ -0,0 +1,31 @@
+#ifndef GNU_EFI_AARCH64_SETJMP_H
+#define GNU_EFI_AARCH64_SETJMP_H
+
+typedef struct {
+       /* GP regs */
+       UINT64  X19;
+       UINT64  X20;
+       UINT64  X21;
+       UINT64  X22;
+       UINT64  X23;
+       UINT64  X24;
+       UINT64  X25;
+       UINT64  X26;
+       UINT64  X27;
+       UINT64  X28;
+       UINT64  FP;
+       UINT64  LR;
+       UINT64  IP0;
+
+       /* FP regs */
+       UINT64  D8;
+       UINT64  D9;
+       UINT64  D10;
+       UINT64  D11;
+       UINT64  D12;
+       UINT64  D13;
+       UINT64  D14;
+       UINT64  D15;
+} __attribute__((__aligned__(8))) jmp_buf;
+
+#endif /* GNU_EFI_AARCH64_SETJMP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/arm/efisetjmp_arch.h 
new/gnu-efi-3.0.3/inc/arm/efisetjmp_arch.h
--- old/gnu-efi-3.0.2/inc/arm/efisetjmp_arch.h  1970-01-01 01:00:00.000000000 
+0100
+++ new/gnu-efi-3.0.3/inc/arm/efisetjmp_arch.h  2015-08-17 22:06:47.000000000 
+0200
@@ -0,0 +1,19 @@
+#ifndef GNU_EFI_ARM_SETJMP_H
+#define GNU_EFI_ARM_SETJMP_H
+
+typedef struct {
+       UINT32 R3; // A copy of R13
+       UINT32 R4;
+       UINT32 R5;
+       UINT32 R6;
+       UINT32 R7;
+       UINT32 R8;
+       UINT32 R9;
+       UINT32 R10;
+       UINT32 R11;
+       UINT32 R12;
+       UINT32 R13;
+       UINT32 R14;
+} __attribute__((__aligned__(4))) jmp_buf;
+
+#endif /* GNU_EFI_ARM_SETJMP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/efi.h new/gnu-efi-3.0.3/inc/efi.h
--- old/gnu-efi-3.0.2/inc/efi.h 2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/inc/efi.h 2015-08-17 22:06:47.000000000 +0200
@@ -50,5 +50,6 @@
 #include "efiudp.h"
 #include "efitcp.h"
 #include "efipoint.h"
+#include "efisetjmp.h"
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/efidevp.h 
new/gnu-efi-3.0.3/inc/efidevp.h
--- old/gnu-efi-3.0.2/inc/efidevp.h     2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/inc/efidevp.h     2015-08-17 22:06:47.000000000 +0200
@@ -298,6 +298,17 @@
         EFI_IPv6_ADDRESS                GatewayIpAddress ;
 } IPv6_DEVICE_PATH;
 
+
+/**
+ * Uniform Resource Identifiers SubType.
+ * UEFI 2.0 specification version 2.4C § 9.3.5.23.
+ */
+#define MSG_URI_DP                      24
+typedef struct _URI_DEVICE_PATH {
+        EFI_DEVICE_PATH                 Header;
+        CHAR8                           Uri[1];
+} URI_DEVICE_PATH;
+
 /**
  * Device Logical Unit SubType.
  * UEFI 2.0 specification version 2.4 § 9.3.5.8.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/efisetjmp.h 
new/gnu-efi-3.0.3/inc/efisetjmp.h
--- old/gnu-efi-3.0.2/inc/efisetjmp.h   1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/inc/efisetjmp.h   2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,9 @@
+#ifndef GNU_EFI_SETJMP_H
+#define GNU_EFI_SETJMP_H
+
+#include "efisetjmp_arch.h"
+
+extern UINTN setjmp(jmp_buf *env);
+extern VOID longjmp(jmp_buf *env, UINTN value);
+
+#endif /* GNU_EFI_SETJMP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/ia32/efisetjmp_arch.h 
new/gnu-efi-3.0.3/inc/ia32/efisetjmp_arch.h
--- old/gnu-efi-3.0.2/inc/ia32/efisetjmp_arch.h 1970-01-01 01:00:00.000000000 
+0100
+++ new/gnu-efi-3.0.3/inc/ia32/efisetjmp_arch.h 2015-08-17 22:06:47.000000000 
+0200
@@ -0,0 +1,15 @@
+#ifndef GNU_EFI_IA32_SETJMP_H
+#define GNU_EFI_IA32_SETJMP_H
+
+typedef struct {
+       UINT32  Ebx;
+       UINT32  Esi;
+       UINT32  Edi;
+       UINT32  Ebp;
+       UINT32  Esp;
+       UINT32  Eip;
+} __attribute__((__aligned__(4))) jmp_buf;
+
+#define JMPBUF_ALIGN 4
+
+#endif /* GNU_EFI_IA32_SETJMP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/ia64/efisetjmp_arch.h 
new/gnu-efi-3.0.3/inc/ia64/efisetjmp_arch.h
--- old/gnu-efi-3.0.2/inc/ia64/efisetjmp_arch.h 1970-01-01 01:00:00.000000000 
+0100
+++ new/gnu-efi-3.0.3/inc/ia64/efisetjmp_arch.h 2015-08-17 22:06:47.000000000 
+0200
@@ -0,0 +1,45 @@
+#ifndef GNU_EFI_IA64_SETJMP_H
+#define GNU_EFI_IA64_SETJMP_H
+
+typedef struct {
+       UINT64  F2[2];
+       UINT64  F3[2];
+       UINT64  F4[2];
+       UINT64  F5[2];
+       UINT64  F16[2];
+       UINT64  F17[2];
+       UINT64  F18[2];
+       UINT64  F19[2];
+       UINT64  F20[2];
+       UINT64  F21[2];
+       UINT64  F22[2];
+       UINT64  F23[2];
+       UINT64  F24[2];
+       UINT64  F25[2];
+       UINT64  F26[2];
+       UINT64  F27[2];
+       UINT64  F28[2];
+       UINT64  F29[2];
+       UINT64  F30[2];
+       UINT64  F31[2];
+       UINT64  R4;
+       UINT64  R5;
+       UINT64  R6;
+       UINT64  R7;
+       UINT64  SP;
+       UINT64  BR0;
+       UINT64  BR1;
+       UINT64  BR2;
+       UINT64  BR3;
+       UINT64  BR4;
+       UINT64  BR5;
+       UINT64  InitialUNAT;
+       UINT64  AfterSpillUNAT;
+       UINT64  PFS;
+       UINT64  BSP;
+       UINT64  Predicates;
+       UINT64  LoopCount;
+       UINT64  FPSR;
+} __attribute__((__aligned__(0x10))) jmp_buf;
+
+#endif /* GNU_EFI_IA64_SETJMP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/inc/x86_64/efisetjmp_arch.h 
new/gnu-efi-3.0.3/inc/x86_64/efisetjmp_arch.h
--- old/gnu-efi-3.0.2/inc/x86_64/efisetjmp_arch.h       1970-01-01 
01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/inc/x86_64/efisetjmp_arch.h       2015-08-17 
22:06:47.000000000 +0200
@@ -0,0 +1,20 @@
+#ifndef GNU_EFI_X86_64_SETJMP_H
+#define GNU_EFI_X86_64_SETJMP_H
+
+typedef struct {
+       UINT64  Rbx;
+       UINT64  Rsp;
+       UINT64  Rbp;
+
+       UINT64  Rdi;
+       UINT64  Rsi;
+       UINT64  R12;
+       UINT64  R13;
+       UINT64  R14;
+       UINT64  R15;
+       UINT64  Rip;
+       UINT64  MxCsr;
+       UINT8   XmmBuffer[160]; // XMM6 - XMM15
+} __attribute__((__aligned__(8))) jmp_buf;
+
+#endif /* GNU_EFI_X86_64_SETJMP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/Makefile 
new/gnu-efi-3.0.3/lib/Makefile
--- old/gnu-efi-3.0.2/lib/Makefile      2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/lib/Makefile      2015-08-17 22:06:47.000000000 +0200
@@ -47,7 +47,7 @@
         error event guid hand hw init lock   \
         misc print sread str cmdline \
        runtime/rtlock runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata 
 \
-       $(ARCH)/initplat $(ARCH)/math 
+       $(ARCH)/initplat $(ARCH)/math $(ARCH)/setjmp
 
 ifeq ($(ARCH),ia64)
 FILES += $(ARCH)/salpal $(ARCH)/palproc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/Makefile.orig 
new/gnu-efi-3.0.3/lib/Makefile.orig
--- old/gnu-efi-3.0.2/lib/Makefile.orig 1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/lib/Makefile.orig 2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,91 @@
+#
+#  Copyright (C) 1999-2001 Hewlett-Packard Co.
+#      Contributed by David Mosberger <dav...@hpl.hp.com>
+#      Contributed by Stephane Eranian <eran...@hpl.hp.com>
+#
+#    All rights reserved.
+#
+#    Redistribution and use in source and binary forms, with or without
+#    modification, are permitted provided that the following conditions
+#    are met:
+#
+#    * Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer in the documentation and/or other materials
+#      provided with the distribution.
+#    * Neither the name of Hewlett-Packard Co. nor the names of its
+#      contributors may be used to endorse or promote products derived
+#      from this software without specific prior written permission.
+#
+#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+#    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+#    THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+#    SUCH DAMAGE.
+#
+
+SRCDIR = .
+
+VPATH = $(SRCDIR)
+
+include $(SRCDIR)/../Make.defaults
+
+TOPDIR = $(SRCDIR)/..
+
+CDIR = $(TOPDIR)/..
+FILES = boxdraw smbios console crc data debug dpath  \
+        error event guid hand hw init lock   \
+        misc print sread str cmdline \
+       runtime/rtlock runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata 
 \
+       $(ARCH)/initplat $(ARCH)/math 
+
+ifeq ($(ARCH),ia64)
+FILES += $(ARCH)/salpal $(ARCH)/palproc
+endif
+
+ifeq ($(ARCH),x86_64)
+FILES += $(ARCH)/callwrap $(ARCH)/efi_stub
+endif
+
+ifeq ($(ARCH),arm)
+FILES += $(ARCH)/lib1funcs $(ARCH)/div64
+endif
+
+OBJS  = $(FILES:%=%.o)
+
+SUBDIRS = ia32 x86_64 ia64 aarch64 arm runtime
+
+LIBDIRINSTALL = $(INSTALLROOT)$(LIBDIR)
+
+all: libsubdirs libefi.a
+
+.PHONY: libsubdirs
+libsubdirs:
+       for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
+
+libefi.a: $(patsubst %,libefi.a(%),$(OBJS))
+
+clean:
+       rm -f libefi.a *~ $(OBJS) */*.o
+
+$(LIBDIRINSTALL):
+       mkdir -p $@
+
+$(LIBDIRINSTALL)/libefi.a: libefi.a | $(LIBDIRINSTALL)
+       $(INSTALL) -m 644 $< $(dir $@)
+
+install: $(LIBDIRINSTALL)/libefi.a
+
+include $(SRCDIR)/../Make.rules
+
+.PHONY: libsubdirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/aarch64/setjmp.S 
new/gnu-efi-3.0.3/lib/aarch64/setjmp.S
--- old/gnu-efi-3.0.2/lib/aarch64/setjmp.S      1970-01-01 01:00:00.000000000 
+0100
+++ new/gnu-efi-3.0.3/lib/aarch64/setjmp.S      2015-08-17 22:06:47.000000000 
+0200
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ * This program and the accompanying materials are licensed and made 
+available
+ * under the terms and conditions of the BSD License which accompanies 
+this
+ * distribution.  The full text of the license may be found at
+ * http://opensource.org/licenses/bsd-license.php.
+ *
+ * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" 
+BASIS,
+ * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED.
+ */
+       .text
+       .p2align 3
+
+#define GPR_LAYOUT                     \
+       REG_PAIR (x19, x20, 0);         \
+       REG_PAIR (x21, x22, 16);        \
+       REG_PAIR (x23, x24, 32);        \
+       REG_PAIR (x25, x26, 48);        \
+       REG_PAIR (x27, x28, 64);        \
+       REG_PAIR (x29, x30, 80);        \
+       REG_ONE (x16, 96)
+
+#define FPR_LAYOUT                     \
+       REG_PAIR(d8, d9, 112);          \
+       REG_PAIR(d10, d11, 128);        \
+       REG_PAIR(d12, d13, 144);        \
+       REG_PAIR(d14, d15, 160);
+
+#define REG_PAIR(REG1, REG2, OFFS)      stp REG1, REG2, [x0, OFFS]
+#define REG_ONE(REG1, OFFS)             str REG1, [x0, OFFS]
+
+       .globl  setjmp
+       .type   setjmp, @function
+setjmp:
+       mov     x16, sp
+       GPR_LAYOUT
+       FPR_LAYOUT
+       mov     w0, #0
+       ret
+
+#undef REG_PAIR
+#undef REG_ONE
+
+#define REG_PAIR(REG1, REG2, OFFS)      ldp REG1, REG2, [x0, OFFS]
+#define REG_ONE(REG1, OFFS)             ldr REG1, [x0, OFFS]
+
+       .globl  longjmp
+       .type   longjmp, @function
+longjmp:
+       GPR_LAYOUT
+       FPR_LAYOUT
+       mov     sp, x16
+       cmp     w1, #0
+       mov     w0, #1
+       csel    w0, w1, w0, ne
+       br      x30
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/arm/setjmp.S 
new/gnu-efi-3.0.3/lib/arm/setjmp.S
--- old/gnu-efi-3.0.2/lib/arm/setjmp.S  1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/lib/arm/setjmp.S  2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ * This program and the accompanying materials are licensed and made 
+available
+ * under the terms and conditions of the BSD License which accompanies 
+this
+ * distribution.  The full text of the license may be found at
+ * http://opensource.org/licenses/bsd-license.php.
+ *
+ * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" 
+BASIS,
+ * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED.
+ */
+       .text
+       .arm
+       .globl  setjmp
+       .type   setjmp, @function
+setjmp:
+       mov     r3, r13
+       stmia   r0, {r3-r12,r14}
+       eor     r0, r0, r0
+       bx      lr
+
+       .globl  longjmp
+       .type   longjmp, @function
+longjmp:
+       ldmia   r0, {r3-r12,r14}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/dpath.c 
new/gnu-efi-3.0.3/lib/dpath.c
--- old/gnu-efi-3.0.2/lib/dpath.c       2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/lib/dpath.c       2015-08-17 22:06:47.000000000 +0200
@@ -842,6 +842,19 @@
 }
 
 static VOID
+_DevPathUri (
+    IN OUT POOL_PRINT       *Str,
+    IN VOID                 *DevPath
+    )
+{
+    URI_DEVICE_PATH  *Uri;
+
+    Uri = DevPath;
+
+    CatPrint( Str, L"Uri(%a)", Uri->Uri );
+}
+
+static VOID
 _DevPathInfiniBand (
     IN OUT POOL_PRINT       *Str,
     IN VOID                 *DevPath
@@ -1088,6 +1101,7 @@
        { MESSAGING_DEVICE_PATH,  MSG_MAC_ADDR_DP,                  
_DevPathMacAddr},
        { MESSAGING_DEVICE_PATH,  MSG_IPv4_DP,                      
_DevPathIPv4},
        { MESSAGING_DEVICE_PATH,  MSG_IPv6_DP,                      
_DevPathIPv6},
+       { MESSAGING_DEVICE_PATH,  MSG_URI_DP,                       
_DevPathUri},
        { MESSAGING_DEVICE_PATH,  MSG_INFINIBAND_DP,                
_DevPathInfiniBand},
        { MESSAGING_DEVICE_PATH,  MSG_UART_DP,                      
_DevPathUart},
        { MESSAGING_DEVICE_PATH , MSG_SATA_DP ,                     
_DevPathSata } ,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/error.c 
new/gnu-efi-3.0.3/lib/error.c
--- old/gnu-efi-3.0.2/lib/error.c       2015-04-10 14:49:50.000000000 +0200
+++ new/gnu-efi-3.0.3/lib/error.c       2015-08-17 22:06:47.000000000 +0200
@@ -47,6 +47,13 @@
        {  EFI_ICMP_ERROR,             L"ICMP Error"},
        {  EFI_TFTP_ERROR,             L"TFTP Error"},
        {  EFI_PROTOCOL_ERROR,         L"Protocol Error"},
+       {  EFI_INCOMPATIBLE_VERSION,   L"Incompatible Version"},
+       {  EFI_SECURITY_VIOLATION,     L"Security Policy Violation"},
+       {  EFI_CRC_ERROR,              L"CRC Error"},
+       {  EFI_END_OF_MEDIA,           L"End of Media"},
+       {  EFI_END_OF_FILE,            L"End of File"},
+       {  EFI_INVALID_LANGUAGE,       L"Invalid Languages"},
+       {  EFI_COMPROMISED_DATA,       L"Compromised Data"},
 
        // warnings
        {  EFI_WARN_UNKOWN_GLYPH,      L"Warning Unknown Glyph"},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/ia32/setjmp.S 
new/gnu-efi-3.0.3/lib/ia32/setjmp.S
--- old/gnu-efi-3.0.2/lib/ia32/setjmp.S 1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/lib/ia32/setjmp.S 2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ * This program and the accompanying materials are licensed and made 
+available
+ * under the terms and conditions of the BSD License which accompanies 
+this
+ * distribution.  The full text of the license may be found at
+ * http://opensource.org/licenses/bsd-license.php.
+ *
+ * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" 
+BASIS,
+ * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED.
+ */
+       .text
+       .globl  setjmp
+       .type   setjmp, @function
+setjmp:
+       pop     %ecx
+       movl    (%esp), %edx
+       movl    %ebx, (%edx)
+       movl    %esi, 4(%edx)
+       movl    %edi, 8(%edx)
+       movl    %ebp, 12(%edx)
+       movl    %esp, 16(%edx)
+       xorl    %eax, %eax
+       jmp     *%ecx
+
+       .globl  longjmp
+       .type   longjmp, @function
+longjmp:
+       pop     %eax
+       pop     %edx
+       pop     %eax
+       movl    (%edx), %ebx
+       movl    4(%edx), %esi
+       movl    8(%edx), %edi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/ia64/setjmp.S 
new/gnu-efi-3.0.3/lib/ia64/setjmp.S
--- old/gnu-efi-3.0.2/lib/ia64/setjmp.S 1970-01-01 01:00:00.000000000 +0100
+++ new/gnu-efi-3.0.3/lib/ia64/setjmp.S 2015-08-17 22:06:47.000000000 +0200
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ * This program and the accompanying materials are licensed and made 
+available
+ * under the terms and conditions of the BSD License which accompanies 
+this
+ * distribution.  The full text of the license may be found at
+ * http://opensource.org/licenses/bsd-license.php.
+ *
+ * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" 
+BASIS,
+ * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED.
+ */
+       .text
+       .globl  setjmp
+       .type   setjmp, @function
+setjmp:
+       alloc   loc = ar.pfs, 1, 2, 1, 0
+       ;;
+       mov     r14 = ar.unat
+       mov     r15 = ar.bsp
+       add     r10 = 0x10 * 20, in0
+       ;;
+       stf.spill.nta   [in0] = f2, 0x10 
+       st8.spill.nta   [r10] = r4, 8
+       mov             r21 = b1
+       ;;
+       stf.spill.nta   [in0] = f3, 0x10 
+       st8.spill.nta   [r10] = r5, 8
+       mov             r22 = b2
+       ;;
+       stf.spill.nta   [in0] = f4, 0x10 
+       st8.spill.nta   [r10] = r6, 8
+       mov             r23 = b3
+       ;;
+       stf.spill.nta   [in0] = f5, 0x10 
+       st8.spill.nta   [r10] = r7, 8
+       mov             r24 = b4
+       ;;
+       stf.spill.nta   [in0] = f16, 0x10 
+       st8.spill.nta   [r10] = sp, 8
+       mov             r25 = b5
+       ;;
+       stf.spill.nta   [in0] = f17, 0x10 
+       st8.nta         [r10] = loc1, 8
+       mov             r16 = pr
+       ;;
+       stf.spill.nta   [in0] = f18, 0x10 
+       st8.nta         [r10] = r21, 8
+       mov             r17 = ar.lc
+       ;;
+       stf.spill.nta   [in0] = f19, 0x10 
+       st8.nta         [r10] = r22, 8
+       ;;
+       stf.spill.nta   [in0] = f20, 0x10 
+       st8.nta         [r10] = r23, 8
+       ;;
+       stf.spill.nta   [in0] = f21, 0x10 
+       st8.nta         [r10] = r24, 8
+       ;;
+       stf.spill.nta   [in0] = f22, 0x10 
+       st8.nta         [r10] = r25, 8
+       ;;
+       stf.spill.nta   [in0] = f23, 0x10 
+       mov             r18 = ar.unat
+       ;;
+       stf.spill.nta   [in0] = f24, 0x10 
+       st8.nta         [r10] = r14, 8
+       ;;
+       stf.spill.nta   [in0] = f25, 0x10 
+       st8.nta         [r10] = r18, 8
+       ;;
+       stf.spill.nta   [in0] = f26, 0x10 
+       st8.nta         [r10] = loc0, 8
+       ;;
+       stf.spill.nta   [in0] = f27, 0x10 
+       st8.nta         [r10] = r15, 8
+       mov             r8 = 0
+       ;;
+       stf.spill.nta   [in0] = f28, 0x10 
+       mov             r19 = ar.fpsr
+       ;;
+       stf.spill.nta   [in0] = f29, 0x10 
+       st8.nta         [r10] = r16, 8
+       mov             ar.pfs = loc0
+       ;;
+       stf.spill.nta   [in0] = f30, 0x10 
+       st8.nta         [r10] = r17, 8
+       mov             b0 = loc1
+       ;;
+       stf.spill.nta   [in0] = f31, 0x10 
+       st8.nta         [r10] = r19
+       ;;
+       mov             ar.unat = r14
+       br.ret.sptk     b0
+       ;;
+
+       .globl  longjmp
+       .type   longjmp, @function
+       .regstk
+longjmp:
+       add             r10 = 0x10 * 20 + 8*14, in0
+       movl            r2 = ~(((1<<14) - 1) << 16) | 3)
+       ;;
+       ld8.nt1         r14 = [r10], -8*2
+       mov             r15 = ar.bspstore
+       ;;
+       ld8.nt1         r17 = [r10], -8
+       mov             r16 = ar.rsc
+       cmp.leu         p6 = r14, r15
+       ;;
+       ld8.nt1         r18 = [r10], -8
+       ld8.nt1         r25 = [r10], -8
+       and             r2 = r16, r2
+       ;;
+       ldf.fill.nt1    f2 = [in0], 0x10
+       ld8.nt1         r24 = [r10], -8
+       mov             b5 = r25
+       ;;
+       mov             ar.rsc = r2
+       ld8.nt1         r23 = [r10], -8
+       mov             b5 = r25
+       ;;
+       mov             ar.rsc = r2
+       ld8.nt1         r23 = [r10], -8
+       mov             b4 = r24
+       ;;
+       ldf.fill.nt1    f3 = [in0], 0x10
+       mov             ar.unat = r17
+(p6)   br.spnt.many    _skip_flushrs
+       ;;
+       flushrs
+       mov             r15 = ar.bsp
+       ;;
+_skip_flushrs:
+       mov             r31 = ar.rnat
+       loadrs
+       ;;
+       ldf.fill.nt1    f4 = [in0], 0x10
+       ld8.nt1         r22 = [r10], -8
+       dep             r2 = -1, r14, 3, 6
+       ;;
+       ldf.fill.nt1    f5 = [in0], 0x10
+       ld8.nt1         f21 = [r10], -8
+       cmp             p6 = r2, r15
+       ;;
+       ld8.nt1         r20 = [r10], -0x10
+(p6)   ld8.nta         r31 = [r2]
+       mov             b3 = r23
+       ;;
+       ldf.fill.nt1    f16 = [in0], 0x10
+       ld8.fill.nt1    r7 = [r10], -8
+       mov             b2 = r22
+       ;;
+       ldf.fill.nt1    f17 = [in0], 0x10
+       ld8.fill.nt1    r6 = [r10], -8
+       mov             b1 = r21
+       ;;
+       ldf.fill.nt1    f18 = [in0], 0x10
+       ld8.fill.nt1    r5 = [r10], -8
+       mov             b0 = r20
+       ;;
+       ldf.fill.nt1    f19 = [in0], 0x10
+       ld8.fill.nt1    r4 = [r10], 8*13
+       ;;
+       ldf.fill.nt1    f20 = [in0], 0x10
+       ld8.nt1         r19 = [r10], 0x10
+       ;;
+       ldf.fill.nt1    f21 = [in0], 0x10
+       ldf.nt1         f26 = [r10], 8
+       mov             ar.pfs = r19
+       ;;
+       ldf.fill.nt1    f22 = [in0], 0x10
+       ld8.nt1         r27 = [r10], 8
+       mov             pr = r26, -1
+       ;;
+       ldf.fill.nt1    r23 = [in0], 0x10
+       ld8.nt1         r28 = [r10], -17*8 - 0x10
+       mov             ar.lc = r27
+       ;;
+       ldf.fill.nt1    f24 = [in0], 0x10
+       ldf.fill.nt1    f25 = [in0], 0x10
+       mov             r8 = in1
+       ;;
+       ldf.fill.nt1    f26 = [in0], 0x10
+       ldf.fill.nt1    f31 = [r10], -0x10
+       ;;
+       ldf.fill.nt1    f27 = [in0], 0x10
+       ldf.fill.nt1    f30 = [r10], -0x10
+       ;;
+       ldf.fill.nt1    f28 = [in0]
+       ldf.fill.nt1    f29 = [r10], 0x10*3 + 8*4
+       ;;
+       ld8.fill.nt1    sp = [r10]
+       mov             ar.unat = r18
+       ;;
+       mov             ar.bspstore = r14
+       mov             ar.rnat = r31
+       ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnu-efi-3.0.2/lib/x86_64/setjmp.S 
new/gnu-efi-3.0.3/lib/x86_64/setjmp.S
--- old/gnu-efi-3.0.2/lib/x86_64/setjmp.S       1970-01-01 01:00:00.000000000 
+0100
+++ new/gnu-efi-3.0.3/lib/x86_64/setjmp.S       2015-08-17 22:06:47.000000000 
+0200
@@ -0,0 +1,33 @@
+       .text
+       .globl  setjmp
+       .type   setjmp, @function
+setjmp:
+       pop     %rsi
+       movq    %rbx,0x00(%rdi)
+       movq    %rsp,0x08(%rdi)
+       push    %rsi
+       movq    %rbp,0x10(%rdi)
+       movq    %r12,0x18(%rdi)
+       movq    %r13,0x20(%rdi)
+       movq    %r14,0x28(%rdi)
+       movq    %r15,0x30(%rdi)
+       movq    %rsi,0x38(%rdi)
+       xor     %rax,%rax
+       ret
+
+       .globl  longjmp
+       .type   longjmp, @function
+longjmp:
+       movl    %esi, %eax
+       movq    0x00(%rdi), %rbx
+       movq    0x08(%rdi), %rsp
+       movq    0x10(%rdi), %rbp
+       movq    0x18(%rdi), %r12
+       movq    0x20(%rdi), %r13
+       movq    0x28(%rdi), %r14
+       movq    0x30(%rdi), %r15
+       xor     %rdx,%rdx
+       mov     $1,%rcx
+       cmp     %rax,%rdx
+       cmove   %rcx,%rax
+       jmp     *0x38(%rdi)


Reply via email to