Update to 3.0.7 (from git) and add some pending patches we need.
Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
parent
1c1dbe879d
commit
f458757d86
@ -1,33 +0,0 @@
|
|||||||
From f3d3ef07eb69072b8bd2b0c5d4e6243ea38ecec9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Thu, 2 Feb 2017 13:51:27 -0500
|
|
||||||
Subject: [PATCH 01/10] Mark our explicit fall through so -Wextra will work in
|
|
||||||
gcc 7
|
|
||||||
|
|
||||||
gcc 7 introduces detection of fall-through behavior in switch/case
|
|
||||||
statements, and will warn if -Wimplicit-fallthrough is present and there
|
|
||||||
is no comment stating that the fall-through is intentional. This is
|
|
||||||
also triggered by -Wextra, as it enables -Wimplicit-fallthrough=1.
|
|
||||||
|
|
||||||
This patch adds the comment in the one place we use fall-through.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
lib/print.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/lib/print.c b/lib/print.c
|
|
||||||
index b8a9d38..cb732f0 100644
|
|
||||||
--- a/lib/print.c
|
|
||||||
+++ b/lib/print.c
|
|
||||||
@@ -1131,6 +1131,7 @@ Returns:
|
|
||||||
case 'X':
|
|
||||||
Item.Width = Item.Long ? 16 : 8;
|
|
||||||
Item.Pad = '0';
|
|
||||||
+ /* falls through */
|
|
||||||
case 'x':
|
|
||||||
ValueToHex (
|
|
||||||
Item.Scratch,
|
|
||||||
--
|
|
||||||
2.9.3
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
|||||||
|
From 99d94682de590719f9333fcf091910a9581b44c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Thu, 13 Jul 2017 08:43:16 -0400
|
||||||
|
Subject: [PATCH 01/22] [PATCH] Disable AVX instruction set on IA32 and x86_64
|
||||||
|
platforms
|
||||||
|
|
||||||
|
If gnu-efi is compiled with "-march=native" on a host that supports AVX, both
|
||||||
|
gcc and clang will use AVX instructions freely which is currently not supported
|
||||||
|
and will result in a non-functional gnu-efi build (e.g. black screen, hangs).
|
||||||
|
|
||||||
|
For now, disable AVX on IA32 and x86_64 by checking first if the compiler does
|
||||||
|
actually support the appropriate flag (-mno-avx) and use it if possible.
|
||||||
|
|
||||||
|
Credit for the compiler command line to check if a flag is supported goes to
|
||||||
|
Gentoo's awesome flag-o-matic eclass, where it is taken from. Thanks.
|
||||||
|
|
||||||
|
Signed-off-by: Matthias Dahl <matthias.dahl@binary-island.eu>
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
Make.defaults | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Make.defaults b/Make.defaults
|
||||||
|
index 16f1fd21848..446e676dc14 100755
|
||||||
|
--- a/Make.defaults
|
||||||
|
+++ b/Make.defaults
|
||||||
|
@@ -120,6 +120,14 @@ ifeq ($(ARCH),x86_64)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
+ifneq (,$(filter $(ARCH),ia32 x86_64))
|
||||||
|
+ # Disable AVX, if the compiler supports that.
|
||||||
|
+ CC_CAN_DISABLE_AVX=$(shell $(CC) -Werror -c -o /dev/null -xc -mno-avx - </dev/null >/dev/null 2>&1 && echo 1)
|
||||||
|
+ ifeq ($(CC_CAN_DISABLE_AVX), 1)
|
||||||
|
+ CFLAGS += -mno-avx
|
||||||
|
+ endif
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
ifeq ($(ARCH),mips64el)
|
||||||
|
CFLAGS += -march=mips64r2
|
||||||
|
ARCH3264 = -mabi=64
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
From 6e32a714438f3938e1fb64cb380e7fa8b0c8789a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Thu, 24 Aug 2017 16:54:18 -0400
|
|
||||||
Subject: [PATCH] arm64: efi: remove pointless dummy .reloc section
|
|
||||||
|
|
||||||
The kernel's EFI PE/COFF header contains a dummy .reloc section, and
|
|
||||||
an explanatory comment that claims that this is required for the EFI
|
|
||||||
application loader to accept the Image as a relocatable image (i.e.,
|
|
||||||
one that can be loaded at any offset and fixed up in place)
|
|
||||||
|
|
||||||
This was inherited from the x86 implementation, which has elaborate host
|
|
||||||
tooling to mangle the PE/COFF header post-link time, and which populates
|
|
||||||
the .reloc section with a single dummy base relocation. On ARM, no such
|
|
||||||
tooling exists, and the .reloc section remains empty, and is never even
|
|
||||||
exposed via the BaseRelocationTable directory entry, which is where the
|
|
||||||
PE/COFF loader looks for it.
|
|
||||||
|
|
||||||
The PE/COFF spec is unclear about relocatable images that do not require
|
|
||||||
any fixups, but the EDK2 implementation, which is the de facto reference
|
|
||||||
for PE/COFF in the UEFI space, clearly does not care, and explicitly
|
|
||||||
mentions (in a comment) that relocatable images with no base relocations
|
|
||||||
are perfectly fine, as long as they don't have the RELOCS_STRIPPED
|
|
||||||
attribute set (which is not the case for our PE/COFF image)
|
|
||||||
|
|
||||||
So simply remove the .reloc section altogether.
|
|
||||||
|
|
||||||
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
|
||||||
Acked-by: Mark Rutland <mark.rutland@arm.com>
|
|
||||||
Acked-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
gnuefi/crt0-efi-aarch64.S | 22 +---------------------
|
|
||||||
1 file changed, 1 insertion(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gnuefi/crt0-efi-aarch64.S b/gnuefi/crt0-efi-aarch64.S
|
|
||||||
index 7a9e5c2..fef997b 100644
|
|
||||||
--- a/gnuefi/crt0-efi-aarch64.S
|
|
||||||
+++ b/gnuefi/crt0-efi-aarch64.S
|
|
||||||
@@ -31,7 +31,7 @@ pe_header:
|
|
||||||
.short 0
|
|
||||||
coff_header:
|
|
||||||
.short 0xaa64 // AArch64
|
|
||||||
- .short 2 // nr_sections
|
|
||||||
+ .short 1 // nr_sections
|
|
||||||
.long 0 // TimeDateStamp
|
|
||||||
.long 0 // PointerToSymbolTable
|
|
||||||
.long 1 // NumberOfSymbols
|
|
||||||
@@ -85,26 +85,6 @@ extra_header_fields:
|
|
||||||
|
|
||||||
// Section table
|
|
||||||
section_table:
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * The EFI application loader requires a relocation section
|
|
||||||
- * because EFI applications must be relocatable. This is a
|
|
||||||
- * dummy section as far as we are concerned.
|
|
||||||
- */
|
|
||||||
- .ascii ".reloc"
|
|
||||||
- .byte 0
|
|
||||||
- .byte 0 // end of 0 padding of section name
|
|
||||||
- .long 0
|
|
||||||
- .long 0
|
|
||||||
- .long 0 // SizeOfRawData
|
|
||||||
- .long 0 // PointerToRawData
|
|
||||||
- .long 0 // PointerToRelocations
|
|
||||||
- .long 0 // PointerToLineNumbers
|
|
||||||
- .short 0 // NumberOfRelocations
|
|
||||||
- .short 0 // NumberOfLineNumbers
|
|
||||||
- .long 0x42100040 // Characteristics (section flags)
|
|
||||||
-
|
|
||||||
-
|
|
||||||
.ascii ".text"
|
|
||||||
.byte 0
|
|
||||||
.byte 0
|
|
||||||
--
|
|
||||||
2.13.5
|
|
||||||
|
|
30
0002-Use-ARFLAGS-when-invoking-ar.patch
Normal file
30
0002-Use-ARFLAGS-when-invoking-ar.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 08a46615c70f5af195443fcf5d0fd425fa329096 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Mon, 7 Aug 2017 13:32:54 -0400
|
||||||
|
Subject: [PATCH 02/22] Use ARFLAGS when invoking ar.
|
||||||
|
|
||||||
|
The use of ARFLAGS makes these flags overridable.
|
||||||
|
The '-U' option is already added to ARFLAGS in Make.defaults.
|
||||||
|
|
||||||
|
Signed-off-by: Janosch Hildebrand <jnosh+git@jnosh.com>
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
lib/Makefile | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/Makefile b/lib/Makefile
|
||||||
|
index b8d1ce70d48..0e6410dac55 100644
|
||||||
|
--- a/lib/Makefile
|
||||||
|
+++ b/lib/Makefile
|
||||||
|
@@ -75,7 +75,7 @@ libsubdirs:
|
||||||
|
for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
|
||||||
|
|
||||||
|
libefi.a: $(OBJS)
|
||||||
|
- $(AR) rv -U $@ $^
|
||||||
|
+ $(AR) $(ARFLAGS) $@ $^
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f libefi.a *~ $(OBJS) */*.o
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
31
0003-Stripped-diff-for-makefile.patch
Normal file
31
0003-Stripped-diff-for-makefile.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 15bcddc996694c904b3848c83031da5cd3a4719e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Mon, 6 Nov 2017 09:06:31 -0500
|
||||||
|
Subject: [PATCH 03/22] Stripped diff for makefile
|
||||||
|
|
||||||
|
This patch allows one to run make outside the source tree
|
||||||
|
with make -f <makefile>.
|
||||||
|
|
||||||
|
Signed-off-by: wolfra <wolfra@users.sf.net>
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
Makefile | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 646de6f7044..37592bd6930 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -36,7 +36,8 @@
|
||||||
|
|
||||||
|
VERSION = 3.0.6
|
||||||
|
|
||||||
|
-SRCDIR = $(shell pwd)
|
||||||
|
+MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||||
|
+SRCDIR = $(dir $(MKFILE_PATH))
|
||||||
|
|
||||||
|
VPATH = $(SRCDIR)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,94 @@
|
|||||||
|
From 39ce220cb6fde14bedf2ef61695f3d20726e41ef Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Mon, 6 Nov 2017 09:26:05 -0500
|
||||||
|
Subject: [PATCH 04/22] Make sure stdint.h is always used with MSVC on
|
||||||
|
ARM/ARM64, since all the versions of Visual Studio that support ARM or ARM64
|
||||||
|
have that header. Without this, uint64_t would be defined to unsigned long,
|
||||||
|
which is 32-bits in the Microsoft world.
|
||||||
|
|
||||||
|
Also fix aarch64/initplat.c so that memset/memcpy only apply
|
||||||
|
to gcc. Otherwise MSVC throws an error for __SIZE_TYPE__.
|
||||||
|
|
||||||
|
Updating this patch to v2, since it turns out MSVC will also emit
|
||||||
|
memset and memcpy intrinsics that we can use an implementation for.
|
||||||
|
This is true for both ARM and ARM64.
|
||||||
|
To make this work, I'm defining __SIZE_TYPE__ to UINTN if not
|
||||||
|
already defined.
|
||||||
|
|
||||||
|
Signed-off-by: Pete Batard <pete@akeo.ie>
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
lib/aarch64/initplat.c | 4 ++++
|
||||||
|
lib/arm/initplat.c | 6 +++++-
|
||||||
|
inc/aarch64/efibind.h | 2 +-
|
||||||
|
inc/arm/efibind.h | 2 +-
|
||||||
|
4 files changed, 11 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/aarch64/initplat.c b/lib/aarch64/initplat.c
|
||||||
|
index 4b118656d7c..25207f42c8f 100644
|
||||||
|
--- a/lib/aarch64/initplat.c
|
||||||
|
+++ b/lib/aarch64/initplat.c
|
||||||
|
@@ -25,6 +25,10 @@ InitializeLibPlatform (
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef __SIZE_TYPE__
|
||||||
|
+#define __SIZE_TYPE__ UINTN
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Calls to these functions may be emitted implicitly by GCC even when
|
||||||
|
* -ffreestanding is in effect.
|
||||||
|
diff --git a/lib/arm/initplat.c b/lib/arm/initplat.c
|
||||||
|
index 09f06a9c871..c77d26d9045 100644
|
||||||
|
--- a/lib/arm/initplat.c
|
||||||
|
+++ b/lib/arm/initplat.c
|
||||||
|
@@ -25,7 +25,10 @@ InitializeLibPlatform (
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef __GNUC__
|
||||||
|
+#ifndef __SIZE_TYPE__
|
||||||
|
+#define __SIZE_TYPE__ UINTN
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Calls to these functions may be emitted implicitly by GCC even when
|
||||||
|
* -ffreestanding is in effect.
|
||||||
|
@@ -51,6 +54,7 @@ void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n)
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef __GNUC__
|
||||||
|
void __div0(void)
|
||||||
|
{
|
||||||
|
// TODO handle divide by zero fault
|
||||||
|
diff --git a/inc/aarch64/efibind.h b/inc/aarch64/efibind.h
|
||||||
|
index ef7148d5312..182a2109062 100644
|
||||||
|
--- a/inc/aarch64/efibind.h
|
||||||
|
+++ b/inc/aarch64/efibind.h
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
* either version 2 of the License, or (at your option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
|
||||||
|
+#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ))
|
||||||
|
|
||||||
|
// ANSI C 1999/2000 stdint.h integer width declarations
|
||||||
|
|
||||||
|
diff --git a/inc/arm/efibind.h b/inc/arm/efibind.h
|
||||||
|
index 06f6ea1aeb8..40a5a9cd428 100644
|
||||||
|
--- a/inc/arm/efibind.h
|
||||||
|
+++ b/inc/arm/efibind.h
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
* either version 2 of the License, or (at your option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L )
|
||||||
|
+#if !defined(_MSC_VER) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L ))
|
||||||
|
|
||||||
|
// ANSI C 1999/2000 stdint.h integer width declarations
|
||||||
|
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
44
0005-Add-EFI_DRIVER_ENTRY_POINT-support-for-MSVC-ARM64.patch
Normal file
44
0005-Add-EFI_DRIVER_ENTRY_POINT-support-for-MSVC-ARM64.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From 787b53a66cbbec6b10d47264b9eea9b24bc4e34c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Mon, 6 Nov 2017 09:34:14 -0500
|
||||||
|
Subject: [PATCH 05/22] Add EFI_DRIVER_ENTRY_POINT support for MSVC/ARM64
|
||||||
|
|
||||||
|
Similar to what we do for other MSVC architectures.
|
||||||
|
|
||||||
|
Signed-off-by: Pete Batard <pete@akeo.ie>
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
inc/aarch64/efibind.h | 9 +++++++--
|
||||||
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/inc/aarch64/efibind.h b/inc/aarch64/efibind.h
|
||||||
|
index 182a2109062..bdaa5238e84 100644
|
||||||
|
--- a/inc/aarch64/efibind.h
|
||||||
|
+++ b/inc/aarch64/efibind.h
|
||||||
|
@@ -115,9 +115,13 @@ typedef uint64_t UINTN;
|
||||||
|
|
||||||
|
//
|
||||||
|
// When build similiar to FW, then link everything together as
|
||||||
|
-// one big module.
|
||||||
|
+// one big module. For the MSVC toolchain, we simply tell the
|
||||||
|
+// linker what our driver init function is using /ENTRY.
|
||||||
|
//
|
||||||
|
-
|
||||||
|
+#if defined(_MSC_EXTENSIONS)
|
||||||
|
+#define EFI_DRIVER_ENTRY_POINT(InitFunction) \
|
||||||
|
+ __pragma(comment(linker, "/ENTRY:" # InitFunction))
|
||||||
|
+#else
|
||||||
|
#define EFI_DRIVER_ENTRY_POINT(InitFunction) \
|
||||||
|
UINTN \
|
||||||
|
InitializeDriver ( \
|
||||||
|
@@ -134,6 +138,7 @@ typedef uint64_t UINTN;
|
||||||
|
EFI_SYSTEM_TABLE *systab \
|
||||||
|
) __attribute__((weak, \
|
||||||
|
alias ("InitializeDriver")));
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \
|
||||||
|
(_if)->LoadInternal(type, name, entry)
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
215
0006-Move-memcpy-memset-definition-to-global-init.c.patch
Normal file
215
0006-Move-memcpy-memset-definition-to-global-init.c.patch
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
From b1d426ce67cbeaa1a8ec7d9b8d0d8071ae4563b4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Mon, 6 Nov 2017 09:38:38 -0500
|
||||||
|
Subject: [PATCH 06/22] Move memcpy/memset definition to global init.c
|
||||||
|
|
||||||
|
Following up on previous patch, I think we should move
|
||||||
|
memcpy/memset definitions to the global init.c, since MSVC does
|
||||||
|
also inserts calls to memset/memcpy for the x86_32 platform,
|
||||||
|
even when disabling standard libraries and intrinsics.
|
||||||
|
|
||||||
|
All in all, it looks like, for all platforms, we should assume
|
||||||
|
that a compiler may still insert these calls regardless.
|
||||||
|
|
||||||
|
Signed-off-by: Pete Batard <pete@akeo.ie>
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
lib/aarch64/initplat.c | 29 -----------------------------
|
||||||
|
lib/arm/initplat.c | 33 ++-------------------------------
|
||||||
|
lib/init.c | 47 ++++++++++++++++++++++++++++++++++++++---------
|
||||||
|
lib/mips64el/initplat.c | 25 -------------------------
|
||||||
|
4 files changed, 40 insertions(+), 94 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/aarch64/initplat.c b/lib/aarch64/initplat.c
|
||||||
|
index 25207f42c8f..6c5e1fa5217 100644
|
||||||
|
--- a/lib/aarch64/initplat.c
|
||||||
|
+++ b/lib/aarch64/initplat.c
|
||||||
|
@@ -24,32 +24,3 @@ InitializeLibPlatform (
|
||||||
|
)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-#ifndef __SIZE_TYPE__
|
||||||
|
-#define __SIZE_TYPE__ UINTN
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Calls to these functions may be emitted implicitly by GCC even when
|
||||||
|
- * -ffreestanding is in effect.
|
||||||
|
- */
|
||||||
|
-void *memset(void *s, int c, __SIZE_TYPE__ n)
|
||||||
|
-{
|
||||||
|
- unsigned char *p = s;
|
||||||
|
-
|
||||||
|
- while (n--)
|
||||||
|
- *p++ = c;
|
||||||
|
-
|
||||||
|
- return s;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n)
|
||||||
|
-{
|
||||||
|
- const unsigned char *q = src;
|
||||||
|
- unsigned char *p = dest;
|
||||||
|
-
|
||||||
|
- while (n--)
|
||||||
|
- *p++ = *q++;
|
||||||
|
-
|
||||||
|
- return dest;
|
||||||
|
-}
|
||||||
|
diff --git a/lib/arm/initplat.c b/lib/arm/initplat.c
|
||||||
|
index c77d26d9045..135a649210a 100644
|
||||||
|
--- a/lib/arm/initplat.c
|
||||||
|
+++ b/lib/arm/initplat.c
|
||||||
|
@@ -25,39 +25,10 @@ InitializeLibPlatform (
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifndef __SIZE_TYPE__
|
||||||
|
-#define __SIZE_TYPE__ UINTN
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Calls to these functions may be emitted implicitly by GCC even when
|
||||||
|
- * -ffreestanding is in effect.
|
||||||
|
- */
|
||||||
|
-void *memset(void *s, int c, __SIZE_TYPE__ n)
|
||||||
|
-{
|
||||||
|
- unsigned char *p = s;
|
||||||
|
-
|
||||||
|
- while (n--)
|
||||||
|
- *p++ = c;
|
||||||
|
-
|
||||||
|
- return s;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n)
|
||||||
|
-{
|
||||||
|
- unsigned char *p = dest;
|
||||||
|
- unsigned char const *q = src;
|
||||||
|
-
|
||||||
|
- while (n--)
|
||||||
|
- *p++ = *q++;
|
||||||
|
-
|
||||||
|
- return dest;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
#ifdef __GNUC__
|
||||||
|
void __div0(void)
|
||||||
|
{
|
||||||
|
- // TODO handle divide by zero fault
|
||||||
|
- while (1);
|
||||||
|
+ // TODO handle divide by zero fault
|
||||||
|
+ while (1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
diff --git a/lib/init.c b/lib/init.c
|
||||||
|
index 4225d314b7a..4f238c0a2cc 100644
|
||||||
|
--- a/lib/init.c
|
||||||
|
+++ b/lib/init.c
|
||||||
|
@@ -49,7 +49,7 @@ Returns:
|
||||||
|
if (!LibInitialized) {
|
||||||
|
LibInitialized = TRUE;
|
||||||
|
LibFwInstance = FALSE;
|
||||||
|
- LibImageHandle = ImageHandle;
|
||||||
|
+ LibImageHandle = ImageHandle;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
@@ -71,17 +71,16 @@ Returns:
|
||||||
|
|
||||||
|
if (ImageHandle) {
|
||||||
|
Status = uefi_call_wrapper(
|
||||||
|
- BS->HandleProtocol,
|
||||||
|
- 3,
|
||||||
|
- ImageHandle,
|
||||||
|
- &LoadedImageProtocol,
|
||||||
|
- (VOID*)&LoadedImage
|
||||||
|
- );
|
||||||
|
+ BS->HandleProtocol,
|
||||||
|
+ 3,
|
||||||
|
+ ImageHandle,
|
||||||
|
+ &LoadedImageProtocol,
|
||||||
|
+ (VOID*)&LoadedImage
|
||||||
|
+ );
|
||||||
|
|
||||||
|
if (!EFI_ERROR(Status)) {
|
||||||
|
PoolAllocationType = LoadedImage->ImageDataType;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
EFIDebugVariable ();
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -181,5 +180,35 @@ EFIDebugVariable (
|
||||||
|
Status = uefi_call_wrapper(RT->GetVariable, 5, L"EFIDebug", &EfiGlobalVariable, &Attributes, &DataSize, &NewEFIDebug);
|
||||||
|
if (!EFI_ERROR(Status)) {
|
||||||
|
EFIDebug = NewEFIDebug;
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Calls to memset/memcpy may be emitted implicitly by GCC or MSVC
|
||||||
|
+ * even when -ffreestanding or /NODEFAULTLIB are in effect.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#ifndef __SIZE_TYPE__
|
||||||
|
+#define __SIZE_TYPE__ UINTN
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+void *memset(void *s, int c, __SIZE_TYPE__ n)
|
||||||
|
+{
|
||||||
|
+ unsigned char *p = s;
|
||||||
|
+
|
||||||
|
+ while (n--)
|
||||||
|
+ *p++ = c;
|
||||||
|
+
|
||||||
|
+ return s;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n)
|
||||||
|
+{
|
||||||
|
+ const unsigned char *q = src;
|
||||||
|
+ unsigned char *p = dest;
|
||||||
|
+
|
||||||
|
+ while (n--)
|
||||||
|
+ *p++ = *q++;
|
||||||
|
+
|
||||||
|
+ return dest;
|
||||||
|
}
|
||||||
|
diff --git a/lib/mips64el/initplat.c b/lib/mips64el/initplat.c
|
||||||
|
index 4b118656d7c..6c5e1fa5217 100644
|
||||||
|
--- a/lib/mips64el/initplat.c
|
||||||
|
+++ b/lib/mips64el/initplat.c
|
||||||
|
@@ -24,28 +24,3 @@ InitializeLibPlatform (
|
||||||
|
)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * Calls to these functions may be emitted implicitly by GCC even when
|
||||||
|
- * -ffreestanding is in effect.
|
||||||
|
- */
|
||||||
|
-void *memset(void *s, int c, __SIZE_TYPE__ n)
|
||||||
|
-{
|
||||||
|
- unsigned char *p = s;
|
||||||
|
-
|
||||||
|
- while (n--)
|
||||||
|
- *p++ = c;
|
||||||
|
-
|
||||||
|
- return s;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n)
|
||||||
|
-{
|
||||||
|
- const unsigned char *q = src;
|
||||||
|
- unsigned char *p = dest;
|
||||||
|
-
|
||||||
|
- while (n--)
|
||||||
|
- *p++ = *q++;
|
||||||
|
-
|
||||||
|
- return dest;
|
||||||
|
-}
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
26
0007-Bump-revision-from-VERSION-3.0.6-to-VERSION-3.0.7.patch
Normal file
26
0007-Bump-revision-from-VERSION-3.0.6-to-VERSION-3.0.7.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From f99001cd7d4c27d1b365b70ac45b14f84ee46237 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
Date: Mon, 6 Nov 2017 09:44:21 -0500
|
||||||
|
Subject: [PATCH 07/22] Bump revision from VERSION = 3.0.6 to VERSION = 3.0.7
|
||||||
|
|
||||||
|
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||||
|
---
|
||||||
|
Makefile | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 37592bd6930..a9f7e134e14 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -34,7 +34,7 @@
|
||||||
|
# SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
-VERSION = 3.0.6
|
||||||
|
+VERSION = 3.0.7
|
||||||
|
|
||||||
|
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||||
|
SRCDIR = $(dir $(MKFILE_PATH))
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From bbd65152010e04275825736f203a4bf929927a7f Mon Sep 17 00:00:00 2001
|
From 3fa80d0d7b103975b765fa936c24d05544985805 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Thu, 2 Feb 2017 14:00:59 -0500
|
Date: Thu, 2 Feb 2017 14:00:59 -0500
|
||||||
Subject: [PATCH 02/10] Fix some types gcc doesn't like
|
Subject: [PATCH 08/22] Fix some types gcc doesn't like
|
||||||
|
|
||||||
Most of these come from building on i386 with -Wextra, but they're still
|
Most of these come from building on i386 with -Wextra, but they're still
|
||||||
incorrect everywhere else; they just happen to have identical typedefs
|
incorrect everywhere else; they just happen to have identical typedefs
|
||||||
@ -16,7 +16,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
|
|||||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/apps/AllocPages.c b/apps/AllocPages.c
|
diff --git a/apps/AllocPages.c b/apps/AllocPages.c
|
||||||
index 77a082e..bb81849 100644
|
index 77a082ec0a3..bb81849c26e 100644
|
||||||
--- a/apps/AllocPages.c
|
--- a/apps/AllocPages.c
|
||||||
+++ b/apps/AllocPages.c
|
+++ b/apps/AllocPages.c
|
||||||
@@ -116,7 +116,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
@@ -116,7 +116,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||||
@ -29,7 +29,7 @@ index 77a082e..bb81849 100644
|
|||||||
InitializeLib(image, systab);
|
InitializeLib(image, systab);
|
||||||
|
|
||||||
diff --git a/apps/FreePages.c b/apps/FreePages.c
|
diff --git a/apps/FreePages.c b/apps/FreePages.c
|
||||||
index bbf2f52..247c75d 100644
|
index bbf2f52b4cf..247c75dc2be 100644
|
||||||
--- a/apps/FreePages.c
|
--- a/apps/FreePages.c
|
||||||
+++ b/apps/FreePages.c
|
+++ b/apps/FreePages.c
|
||||||
@@ -89,7 +89,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
@@ -89,7 +89,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||||
@ -42,10 +42,10 @@ index bbf2f52..247c75d 100644
|
|||||||
InitializeLib(image, systab);
|
InitializeLib(image, systab);
|
||||||
|
|
||||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
diff --git a/apps/route80h.c b/apps/route80h.c
|
||||||
index b0b142f..723dd85 100644
|
index 8df860c1232..e1f62f06824 100644
|
||||||
--- a/apps/route80h.c
|
--- a/apps/route80h.c
|
||||||
+++ b/apps/route80h.c
|
+++ b/apps/route80h.c
|
||||||
@@ -138,7 +138,7 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
@@ -129,7 +129,7 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||||
lpcif.rcba &= ~1UL;
|
lpcif.rcba &= ~1UL;
|
||||||
|
|
||||||
Print(L"rcba: 0x%8x\n", lpcif.rcba, lpcif.rcba);
|
Print(L"rcba: 0x%8x\n", lpcif.rcba, lpcif.rcba);
|
||||||
@ -55,7 +55,7 @@ index b0b142f..723dd85 100644
|
|||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
diff --git a/inc/efilink.h b/inc/efilink.h
|
diff --git a/inc/efilink.h b/inc/efilink.h
|
||||||
index b2ff4fa..cc5aa2d 100644
|
index b2ff4fa2f87..cc5aa2dc57b 100644
|
||||||
--- a/inc/efilink.h
|
--- a/inc/efilink.h
|
||||||
+++ b/inc/efilink.h
|
+++ b/inc/efilink.h
|
||||||
@@ -142,7 +142,7 @@ typedef struct _LIST_ENTRY {
|
@@ -142,7 +142,7 @@ typedef struct _LIST_ENTRY {
|
||||||
@ -68,5 +68,5 @@ index b2ff4fa..cc5aa2d 100644
|
|||||||
//
|
//
|
||||||
// CONTAINING_RECORD - returns a pointer to the structure
|
// CONTAINING_RECORD - returns a pointer to the structure
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From fa85eb1b6ac4ceff1672c7152b6f842c2f2ff728 Mon Sep 17 00:00:00 2001
|
From 6082de48568bb85b4878fe7934ede76821114d34 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Thu, 2 Feb 2017 14:31:25 -0500
|
Date: Thu, 2 Feb 2017 14:31:25 -0500
|
||||||
Subject: [PATCH 03/10] Fix arm build paths in the makefile
|
Subject: [PATCH 09/22] Fix arm build paths in the makefile
|
||||||
|
|
||||||
Previous work was apparently done with arm-linux-gnueabi-gcc as a
|
Previous work was apparently done with arm-linux-gnueabi-gcc as a
|
||||||
cross-builder, but our armv7 builders have native gcc with the target as
|
cross-builder, but our armv7 builders have native gcc with the target as
|
||||||
@ -14,7 +14,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
|
|||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/Make.defaults b/Make.defaults
|
diff --git a/Make.defaults b/Make.defaults
|
||||||
index 51bd7d8..e4d2ac1 100755
|
index 446e676dc14..6d300fb0f24 100755
|
||||||
--- a/Make.defaults
|
--- a/Make.defaults
|
||||||
+++ b/Make.defaults
|
+++ b/Make.defaults
|
||||||
@@ -62,12 +62,12 @@ OBJCOPY := $(prefix)$(CROSS_COMPILE)objcopy
|
@@ -62,12 +62,12 @@ OBJCOPY := $(prefix)$(CROSS_COMPILE)objcopy
|
||||||
@ -33,5 +33,5 @@ index 51bd7d8..e4d2ac1 100755
|
|||||||
|
|
||||||
# FreeBSD (and possibly others) reports amd64 instead of x86_64
|
# FreeBSD (and possibly others) reports amd64 instead of x86_64
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From ba05cb606c6c3a4ec9f60c588abef52e355e5c1a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Fri, 10 Feb 2017 16:14:55 -0500
|
|
||||||
Subject: [PATCH 09/10] route80h: remove some dead code
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
apps/route80h.c | 9 ---------
|
|
||||||
1 file changed, 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
|
||||||
index bf550a1..5272dd3 100644
|
|
||||||
--- a/apps/route80h.c
|
|
||||||
+++ b/apps/route80h.c
|
|
||||||
@@ -40,15 +40,6 @@ static inline void set_bit(volatile uint32_t *flag, int bit, int value)
|
|
||||||
Print(L"new value is 0x%2x\n", val);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline int configspace_matches_ids(void *config, uint32_t vendor_id,
|
|
||||||
- uint32_t device_id)
|
|
||||||
-{
|
|
||||||
- uint32_t *cfg = config;
|
|
||||||
- if (cfg[0] == vendor_id && cfg[1] == device_id)
|
|
||||||
- return 1;
|
|
||||||
- return 0;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static int is_device(EFI_PCI_IO *pciio, uint16_t vendor_id, uint16_t device_id)
|
|
||||||
{
|
|
||||||
lpcif_t lpcif;
|
|
||||||
--
|
|
||||||
2.9.3
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
|||||||
From a94906bd487c1a2e6d7827f31d7eb46bc09f3b43 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Fri, 10 Feb 2017 16:18:14 -0500
|
|
||||||
Subject: [PATCH 10/10] Make clang not complain about the debughook's
|
|
||||||
optimization settings
|
|
||||||
|
|
||||||
... still won't work, of course, because nobody at clang takes compiler
|
|
||||||
compatibility seriously while they keep implying that you can pretend
|
|
||||||
it's gcc.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
Make.defaults | 3 ++-
|
|
||||||
apps/debughook.c | 5 +++--
|
|
||||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Make.defaults b/Make.defaults
|
|
||||||
index cc52195..a7778a7 100755
|
|
||||||
--- a/Make.defaults
|
|
||||||
+++ b/Make.defaults
|
|
||||||
@@ -161,7 +161,8 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
|
||||||
-fshort-wchar -fno-strict-aliasing \
|
|
||||||
-ffreestanding -fno-stack-protector \
|
|
||||||
-fno-stack-check \
|
|
||||||
- $(if $(findstring gcc,$(CC)),-fno-merge-constants,)
|
|
||||||
+ $(if $(findstring gcc,$(CC)),-fno-merge-constants,) \
|
|
||||||
+ $(if $(findstring clang,$(CC)),-Wno-unknown-pragmas,)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ARFLAGS += -U
|
|
||||||
diff --git a/apps/debughook.c b/apps/debughook.c
|
|
||||||
index e1d1c50..fa36f62 100644
|
|
||||||
--- a/apps/debughook.c
|
|
||||||
+++ b/apps/debughook.c
|
|
||||||
@@ -37,8 +37,9 @@ GetVariable(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner)
|
|
||||||
EFI_GUID DUMMY_GUID =
|
|
||||||
{0x55aad538, 0x8f82, 0x4e2a, {0xa4,0xf0,0xbe, 0x59, 0x13, 0xb6, 0x5f, 0x1e}};
|
|
||||||
|
|
||||||
+#pragma GCC push_options
|
|
||||||
+#pragma GCC optimize ("0")
|
|
||||||
static void
|
|
||||||
-__attribute__((__optimize__("0")))
|
|
||||||
DebugHook(void)
|
|
||||||
{
|
|
||||||
EFI_GUID guid = DUMMY_GUID;
|
|
||||||
@@ -81,7 +82,7 @@ DebugHook(void)
|
|
||||||
}
|
|
||||||
x = 1;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+#pragma GCC pop_options
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
|
||||||
--
|
|
||||||
2.9.3
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 6f5781e191cca6c20a75b82cc467c2256cbb5901 Mon Sep 17 00:00:00 2001
|
From d7e380f0ebf2292ddcd534c407483450b74a9f12 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Thu, 2 Feb 2017 15:23:55 -0500
|
Date: Thu, 2 Feb 2017 15:23:55 -0500
|
||||||
Subject: [PATCH 04/10] Work around -Werror=maybe-uninitialized not being very
|
Subject: [PATCH 10/22] Work around -Werror=maybe-uninitialized not being very
|
||||||
bright.
|
bright.
|
||||||
|
|
||||||
The compiler doesn't believe the loop always executes at least once,
|
The compiler doesn't believe the loop always executes at least once,
|
||||||
@ -14,10 +14,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
diff --git a/apps/route80h.c b/apps/route80h.c
|
||||||
index 723dd85..bf550a1 100644
|
index e1f62f06824..5272dd3cd44 100644
|
||||||
--- a/apps/route80h.c
|
--- a/apps/route80h.c
|
||||||
+++ b/apps/route80h.c
|
+++ b/apps/route80h.c
|
||||||
@@ -102,7 +102,7 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
@@ -93,7 +93,7 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||||
InitializeLib(image_handle, systab);
|
InitializeLib(image_handle, systab);
|
||||||
EFI_PCI_IO *pciio = NULL;
|
EFI_PCI_IO *pciio = NULL;
|
||||||
lpcif_t lpcif;
|
lpcif_t lpcif;
|
||||||
@ -27,5 +27,5 @@ index 723dd85..bf550a1 100644
|
|||||||
uint16_t vendor;
|
uint16_t vendor;
|
||||||
uint16_t device;
|
uint16_t device;
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 397b06ff74f7fd8fc71f5991bdfbfa6ef6da98fd Mon Sep 17 00:00:00 2001
|
From 2e07ce1876051106659a5a0d742ee26437806da9 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Thu, 2 Feb 2017 15:25:48 -0500
|
Date: Thu, 2 Feb 2017 15:25:48 -0500
|
||||||
Subject: [PATCH 05/10] Fix a sign error in the debughook example app
|
Subject: [PATCH 11/22] Fix a sign error in the debughook example app
|
||||||
|
|
||||||
On ISO C90 on i386 4294967294 is a signed integer, and so x can't be
|
On ISO C90 on i386 4294967294 is a signed integer, and so x can't be
|
||||||
greater (or equal) to that. Make it an unsigned and choose a better type
|
greater (or equal) to that. Make it an unsigned and choose a better type
|
||||||
@ -13,10 +13,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
|
|||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/apps/debughook.c b/apps/debughook.c
|
diff --git a/apps/debughook.c b/apps/debughook.c
|
||||||
index fb6cdad..e1d1c50 100644
|
index 93cd0cf7eb0..78e4a767b1d 100644
|
||||||
--- a/apps/debughook.c
|
--- a/apps/debughook.c
|
||||||
+++ b/apps/debughook.c
|
+++ b/apps/debughook.c
|
||||||
@@ -45,7 +45,7 @@ DebugHook(void)
|
@@ -50,7 +50,7 @@ DebugHook(void)
|
||||||
UINT8 *data = NULL;
|
UINT8 *data = NULL;
|
||||||
UINTN dataSize = 0;
|
UINTN dataSize = 0;
|
||||||
EFI_STATUS efi_status;
|
EFI_STATUS efi_status;
|
||||||
@ -25,7 +25,7 @@ index fb6cdad..e1d1c50 100644
|
|||||||
extern char _text, _data;
|
extern char _text, _data;
|
||||||
|
|
||||||
if (x)
|
if (x)
|
||||||
@@ -66,7 +66,7 @@ DebugHook(void)
|
@@ -71,7 +71,7 @@ DebugHook(void)
|
||||||
while (x++) {
|
while (x++) {
|
||||||
/* Make this so it can't /totally/ DoS us. */
|
/* Make this so it can't /totally/ DoS us. */
|
||||||
#if defined(__x86_64__) || defined(__i386__) || defined(__i686__)
|
#if defined(__x86_64__) || defined(__i386__) || defined(__i686__)
|
||||||
@ -35,5 +35,5 @@ index fb6cdad..e1d1c50 100644
|
|||||||
__asm__ __volatile__("pause");
|
__asm__ __volatile__("pause");
|
||||||
#elif defined(__aarch64__)
|
#elif defined(__aarch64__)
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From e4ca94374c7ece8ec0100075710af8638e42c203 Mon Sep 17 00:00:00 2001
|
From 44c9ce3c94d26ab4b8f778827bcaded30dc1fa22 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Wed, 8 Feb 2017 15:28:18 -0500
|
Date: Wed, 8 Feb 2017 15:28:18 -0500
|
||||||
Subject: [PATCH 06/10] Fix typedef of EFI_PXE_BASE_CODE
|
Subject: [PATCH 12/22] Fix typedef of EFI_PXE_BASE_CODE
|
||||||
|
|
||||||
Commit 751cbce3 fixed up a bunch of types to better match the edk2
|
Commit 751cbce3 fixed up a bunch of types to better match the edk2
|
||||||
definitions and the names in the UEFI Spec, but while doing so
|
definitions and the names in the UEFI Spec, but while doing so
|
||||||
@ -32,18 +32,18 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/inc/efipxebc.h b/inc/efipxebc.h
|
diff --git a/inc/efipxebc.h b/inc/efipxebc.h
|
||||||
index 580a6ef..3760c7c 100644
|
index 035a853a7ef..3760c7cbb78 100644
|
||||||
--- a/inc/efipxebc.h
|
--- a/inc/efipxebc.h
|
||||||
+++ b/inc/efipxebc.h
|
+++ b/inc/efipxebc.h
|
||||||
@@ -419,7 +419,7 @@ typedef struct _EFI_PXE_BASE_CODE_PROTOCOL {
|
@@ -419,7 +419,7 @@ typedef struct _EFI_PXE_BASE_CODE_PROTOCOL {
|
||||||
// Use 'EFI_PXE_BASE_CODE_PROTOCOL_GUID' instead.
|
// Use 'EFI_PXE_BASE_CODE_PROTOCOL_GUID' instead.
|
||||||
|
|
||||||
typedef struct _EFI_PXE_BASE_CODE_PROTOCOL _EFI_PXE_BASE_CODE;
|
typedef struct _EFI_PXE_BASE_CODE_PROTOCOL _EFI_PXE_BASE_CODE;
|
||||||
-typedef struct EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
-typedef EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
||||||
+typedef struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
+typedef struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Call Back Definitions
|
// Call Back Definitions
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,28 +1,28 @@
|
|||||||
From a01463c5035d2bacefc1ef7673b6ba2cc9815920 Mon Sep 17 00:00:00 2001
|
From 34365c8c021a32150935d0af3087195e3e99eef9 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Fri, 10 Feb 2017 15:16:42 -0500
|
Date: Fri, 10 Feb 2017 15:16:42 -0500
|
||||||
Subject: [PATCH 07/10] make clang not complain about -fno-merge-constants
|
Subject: [PATCH 13/22] make clang not complain about -fno-merge-all-constants
|
||||||
|
|
||||||
---
|
---
|
||||||
Make.defaults | 5 +++--
|
Make.defaults | 5 +++--
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/Make.defaults b/Make.defaults
|
diff --git a/Make.defaults b/Make.defaults
|
||||||
index e4d2ac1..cc52195 100755
|
index 6d300fb0f24..a457190aa3a 100755
|
||||||
--- a/Make.defaults
|
--- a/Make.defaults
|
||||||
+++ b/Make.defaults
|
+++ b/Make.defaults
|
||||||
@@ -159,8 +159,9 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
@@ -170,8 +170,9 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||||
else
|
else
|
||||||
CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||||
-fshort-wchar -fno-strict-aliasing \
|
-fshort-wchar -fno-strict-aliasing \
|
||||||
- -fno-merge-constants -ffreestanding -fno-stack-protector \
|
- -fno-merge-all-constants -ffreestanding -fno-stack-protector \
|
||||||
- -fno-stack-check
|
- -fno-stack-check
|
||||||
+ -ffreestanding -fno-stack-protector \
|
+ -ffreestanding -fno-stack-protector -fno-stack-check \
|
||||||
+ -fno-stack-check \
|
+ -fno-stack-check \
|
||||||
+ $(if $(findstring gcc,$(CC)),-fno-merge-constants,)
|
+ $(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ARFLAGS += -U
|
ARFLAGS += -U
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 0281df3c77fc4d8c67c0d23c656b4debed862989 Mon Sep 17 00:00:00 2001
|
From cc5794a36021be063f069529d99f63ecd8e66a18 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Fri, 10 Feb 2017 16:14:12 -0500
|
Date: Fri, 10 Feb 2017 16:14:12 -0500
|
||||||
Subject: [PATCH 08/10] Fix another place clang complains about
|
Subject: [PATCH 14/22] Fix another place clang complains about
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
---
|
---
|
||||||
@ -9,18 +9,18 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/lib/guid.c b/lib/guid.c
|
diff --git a/lib/guid.c b/lib/guid.c
|
||||||
index bd1f1a5..6498e90 100644
|
index 8daa505ed97..6498e9063cf 100644
|
||||||
--- a/lib/guid.c
|
--- a/lib/guid.c
|
||||||
+++ b/lib/guid.c
|
+++ b/lib/guid.c
|
||||||
@@ -97,7 +97,7 @@ static struct {
|
@@ -97,7 +97,7 @@ static struct {
|
||||||
{ &SMapId, L"ShellDevPathMap" },
|
{ &SMapId, L"ShellDevPathMap" },
|
||||||
{ &SAliasId, L"ShellAlias" },
|
{ &SAliasId, L"ShellAlias" },
|
||||||
|
|
||||||
- { NULL }
|
- { NULL, NULL }
|
||||||
+ { NULL, L"" }
|
+ { NULL, L"" }
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
344
0015-gnu-efi-add-some-more-common-string-functions.patch
Normal file
344
0015-gnu-efi-add-some-more-common-string-functions.patch
Normal file
@ -0,0 +1,344 @@
|
|||||||
|
From 4e69cb7426ae7bd9e8e27e4195d41e64b722da95 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Mon, 31 Jul 2017 15:01:02 -0400
|
||||||
|
Subject: [PATCH 15/22] gnu-efi: add some more common string functions.
|
||||||
|
|
||||||
|
This adds bounded string helper functions:
|
||||||
|
|
||||||
|
StrnLen()
|
||||||
|
StrnCpy()
|
||||||
|
StrnCat()
|
||||||
|
StpnCpy()
|
||||||
|
|
||||||
|
And the unbounded function StpCpy().
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
---
|
||||||
|
lib/runtime/rtstr.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
|
lib/str.c | 53 ++++++++++++++++++++++++++++++
|
||||||
|
inc/efilib.h | 33 +++++++++++++++++++
|
||||||
|
inc/efirtlib.h | 38 ++++++++++++++++++++++
|
||||||
|
4 files changed, 213 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/runtime/rtstr.c b/lib/runtime/rtstr.c
|
||||||
|
index e283c09582e..80ff4891199 100644
|
||||||
|
--- a/lib/runtime/rtstr.c
|
||||||
|
+++ b/lib/runtime/rtstr.c
|
||||||
|
@@ -57,6 +57,61 @@ RtStrCpy (
|
||||||
|
*Dest = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef __GNUC__
|
||||||
|
+#pragma RUNTIME_CODE(RtStrnCpy)
|
||||||
|
+#endif
|
||||||
|
+VOID
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStrnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ UINTN Size = RtStrnLen(Src, Len);
|
||||||
|
+ if (Size != Len)
|
||||||
|
+ RtSetMem(Dest + Len, '\0', (Len - Size) * sizeof(CHAR16));
|
||||||
|
+ RtCopyMem(Dest, Src, Size * sizeof(CHAR16));
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#ifndef __GNUC__
|
||||||
|
+#pragma RUNTIME_CODE(RtStrCpy)
|
||||||
|
+#endif
|
||||||
|
+CHAR16 *
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStpCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ while (*Src) {
|
||||||
|
+ *(Dest++) = *(Src++);
|
||||||
|
+ }
|
||||||
|
+ *Dest = 0;
|
||||||
|
+ return Dest;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#ifndef __GNUC__
|
||||||
|
+#pragma RUNTIME_CODE(RtStrnCpy)
|
||||||
|
+#endif
|
||||||
|
+CHAR16 *
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStpnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ UINTN Size = RtStrnLen(Src, Len);
|
||||||
|
+ if (Size != Len)
|
||||||
|
+ RtSetMem(Dest + Len, '\0', (Len - Size) * sizeof(CHAR16));
|
||||||
|
+ RtCopyMem(Dest, Src, Size * sizeof(CHAR16));
|
||||||
|
+ return Dest + Size;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#ifndef __GNUC__
|
||||||
|
#pragma RUNTIME_CODE(RtStrCat)
|
||||||
|
#endif
|
||||||
|
@@ -66,10 +121,24 @@ RtStrCat (
|
||||||
|
IN CHAR16 *Dest,
|
||||||
|
IN CONST CHAR16 *Src
|
||||||
|
)
|
||||||
|
-{
|
||||||
|
+{
|
||||||
|
RtStrCpy(Dest+StrLen(Dest), Src);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef __GNUC__
|
||||||
|
+#pragma RUNTIME_CODE(RtStrCat)
|
||||||
|
+#endif
|
||||||
|
+VOID
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStrnCat (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ RtStrnCpy(Dest+StrLen(Dest), Src, Len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#ifndef __GNUC__
|
||||||
|
#pragma RUNTIME_CODE(RtStrLen)
|
||||||
|
#endif
|
||||||
|
@@ -81,11 +150,28 @@ RtStrLen (
|
||||||
|
// string length
|
||||||
|
{
|
||||||
|
UINTN len;
|
||||||
|
-
|
||||||
|
+
|
||||||
|
for (len=0; *s1; s1+=1, len+=1) ;
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef __GNUC__
|
||||||
|
+#pragma RUNTIME_CODE(RtStrnLen)
|
||||||
|
+#endif
|
||||||
|
+UINTN
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStrnLen (
|
||||||
|
+ IN CONST CHAR16 *s1,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ UINTN i;
|
||||||
|
+ for (i = 0; *s1 && i < Len; i++)
|
||||||
|
+ s1++;
|
||||||
|
+ return i;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#ifndef __GNUC__
|
||||||
|
#pragma RUNTIME_CODE(RtStrSize)
|
||||||
|
#endif
|
||||||
|
@@ -97,7 +183,7 @@ RtStrSize (
|
||||||
|
// string size
|
||||||
|
{
|
||||||
|
UINTN len;
|
||||||
|
-
|
||||||
|
+
|
||||||
|
for (len=0; *s1; s1+=1, len+=1) ;
|
||||||
|
return (len + 1) * sizeof(CHAR16);
|
||||||
|
}
|
||||||
|
diff --git a/lib/str.c b/lib/str.c
|
||||||
|
index cf1495c1fc8..9a89f30ee55 100644
|
||||||
|
--- a/lib/str.c
|
||||||
|
+++ b/lib/str.c
|
||||||
|
@@ -113,6 +113,38 @@ StrCpy (
|
||||||
|
RtStrCpy (Dest, Src);
|
||||||
|
}
|
||||||
|
|
||||||
|
+VOID
|
||||||
|
+StrnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ RtStrnCpy (Dest, Src, Len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+CHAR16 *
|
||||||
|
+StpCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ return RtStpCpy (Dest, Src);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+CHAR16 *
|
||||||
|
+StpnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+// copy strings
|
||||||
|
+{
|
||||||
|
+ return RtStpnCpy (Dest, Src, Len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
VOID
|
||||||
|
StrCat (
|
||||||
|
IN CHAR16 *Dest,
|
||||||
|
@@ -122,6 +154,27 @@ StrCat (
|
||||||
|
RtStrCat(Dest, Src);
|
||||||
|
}
|
||||||
|
|
||||||
|
+VOID
|
||||||
|
+StrnCat (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ RtStrnCat(Dest, Src, Len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+UINTN
|
||||||
|
+StrnLen (
|
||||||
|
+ IN CONST CHAR16 *s1,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ )
|
||||||
|
+// string length
|
||||||
|
+{
|
||||||
|
+ return RtStrnLen(s1, Len);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
UINTN
|
||||||
|
StrLen (
|
||||||
|
IN CONST CHAR16 *s1
|
||||||
|
diff --git a/inc/efilib.h b/inc/efilib.h
|
||||||
|
index 22da65bbc27..8a507aff7cd 100644
|
||||||
|
--- a/inc/efilib.h
|
||||||
|
+++ b/inc/efilib.h
|
||||||
|
@@ -313,17 +313,50 @@ StrCpy (
|
||||||
|
IN CONST CHAR16 *Src
|
||||||
|
);
|
||||||
|
|
||||||
|
+VOID
|
||||||
|
+StrnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+CHAR16 *
|
||||||
|
+StpCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+CHAR16 *
|
||||||
|
+StpnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
VOID
|
||||||
|
StrCat (
|
||||||
|
IN CHAR16 *Dest,
|
||||||
|
IN CONST CHAR16 *Src
|
||||||
|
);
|
||||||
|
|
||||||
|
+VOID
|
||||||
|
+StrnCat (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
UINTN
|
||||||
|
StrLen (
|
||||||
|
IN CONST CHAR16 *s1
|
||||||
|
);
|
||||||
|
|
||||||
|
+UINTN
|
||||||
|
+StrnLen (
|
||||||
|
+ IN CONST CHAR16 *s1,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
UINTN
|
||||||
|
StrSize (
|
||||||
|
IN CONST CHAR16 *s1
|
||||||
|
diff --git a/inc/efirtlib.h b/inc/efirtlib.h
|
||||||
|
index c073ead97a7..49d0b4d3ae0 100644
|
||||||
|
--- a/inc/efirtlib.h
|
||||||
|
+++ b/inc/efirtlib.h
|
||||||
|
@@ -69,6 +69,29 @@ RtStrCpy (
|
||||||
|
IN CONST CHAR16 *Src
|
||||||
|
);
|
||||||
|
|
||||||
|
+VOID
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStrnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+CHAR16 *
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStpCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+CHAR16 *
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStpnCpy (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
VOID
|
||||||
|
RUNTIMEFUNCTION
|
||||||
|
RtStrCat (
|
||||||
|
@@ -76,12 +99,27 @@ RtStrCat (
|
||||||
|
IN CONST CHAR16 *Src
|
||||||
|
);
|
||||||
|
|
||||||
|
+VOID
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStrnCat (
|
||||||
|
+ IN CHAR16 *Dest,
|
||||||
|
+ IN CONST CHAR16 *Src,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
UINTN
|
||||||
|
RUNTIMEFUNCTION
|
||||||
|
RtStrLen (
|
||||||
|
IN CONST CHAR16 *s1
|
||||||
|
);
|
||||||
|
|
||||||
|
+UINTN
|
||||||
|
+RUNTIMEFUNCTION
|
||||||
|
+RtStrnLen (
|
||||||
|
+ IN CONST CHAR16 *s1,
|
||||||
|
+ IN UINTN Len
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
UINTN
|
||||||
|
RUNTIMEFUNCTION
|
||||||
|
RtStrSize (
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
44
0016-Add-D-to-print-device-paths.patch
Normal file
44
0016-Add-D-to-print-device-paths.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From ea1bc0d8cdb3005cdf1718083eb49075b60c8b97 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Mon, 31 Jul 2017 15:03:26 -0400
|
||||||
|
Subject: [PATCH 16/22] Add %D to print device paths
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
---
|
||||||
|
lib/print.c | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/print.c b/lib/print.c
|
||||||
|
index ed79c43825b..35e43c03db5 100644
|
||||||
|
--- a/lib/print.c
|
||||||
|
+++ b/lib/print.c
|
||||||
|
@@ -1005,6 +1005,7 @@ Routine Description:
|
||||||
|
t - EFI time structure
|
||||||
|
g - Pointer to GUID
|
||||||
|
r - EFI status code (result code)
|
||||||
|
+ D - pointer to Device Path with normal ending.
|
||||||
|
|
||||||
|
N - Set output attribute to normal
|
||||||
|
H - Set output attribute to highlight
|
||||||
|
@@ -1167,6 +1168,18 @@ Returns:
|
||||||
|
Item.Item.pw = Item.Scratch;
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case 'D':
|
||||||
|
+ {
|
||||||
|
+ EFI_DEVICE_PATH *dp = va_arg(ps->args, EFI_DEVICE_PATH *);
|
||||||
|
+ CHAR16 *dpstr = DevicePathToStr(dp);
|
||||||
|
+ StrnCpy(Item.Scratch, dpstr, PRINT_ITEM_BUFFER_LEN);
|
||||||
|
+ Item.Scratch[PRINT_ITEM_BUFFER_LEN-1] = L'\0';
|
||||||
|
+ FreePool(dpstr);
|
||||||
|
+
|
||||||
|
+ Item.Item.pw = Item.Scratch;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
case 'f':
|
||||||
|
FloatToString (
|
||||||
|
Item.Scratch,
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
28
0017-Make-ARCH-overrideable-on-the-command-line.patch
Normal file
28
0017-Make-ARCH-overrideable-on-the-command-line.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From 290e12e22869d3041816f8938b97a4fa849cdc3c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Fri, 22 Sep 2017 12:57:23 -0400
|
||||||
|
Subject: [PATCH 17/22] Make ARCH overrideable on the command line
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
---
|
||||||
|
Make.defaults | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Make.defaults b/Make.defaults
|
||||||
|
index a457190aa3a..4aa57ac5f7c 100755
|
||||||
|
--- a/Make.defaults
|
||||||
|
+++ b/Make.defaults
|
||||||
|
@@ -62,8 +62,8 @@ OBJCOPY := $(prefix)$(CROSS_COMPILE)objcopy
|
||||||
|
|
||||||
|
# Host/target identification
|
||||||
|
OS := $(shell uname -s)
|
||||||
|
-HOSTARCH := $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
|
||||||
|
-ARCH := $(HOSTARCH)
|
||||||
|
+HOSTARCH ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
|
||||||
|
+ARCH ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
|
||||||
|
|
||||||
|
# Get ARCH from the compiler if cross compiling
|
||||||
|
ifneq ($(CROSS_COMPILE),)
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
446
0018-apps-Add-bltgrid-and-lfbgrid-and-add-error-checks-to.patch
Normal file
446
0018-apps-Add-bltgrid-and-lfbgrid-and-add-error-checks-to.patch
Normal file
@ -0,0 +1,446 @@
|
|||||||
|
From f0a9b5d76db9842206faaf7e3d19b13c7e969f6c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Fri, 22 Sep 2017 15:26:05 -0400
|
||||||
|
Subject: [PATCH 18/22] apps: Add bltgrid and lfbgrid, and add error checks to
|
||||||
|
modelist
|
||||||
|
|
||||||
|
This adds bltgrid and lfbgrid, which draw checkerboards using GOP's
|
||||||
|
Blt() and linear framebuffer, respectively, and adds some error checks
|
||||||
|
to modelist.efi.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
---
|
||||||
|
apps/bltgrid.c | 131 +++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
apps/lfbgrid.c | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
apps/modelist.c | 56 +++++++++----------
|
||||||
|
apps/Makefile | 3 +-
|
||||||
|
4 files changed, 328 insertions(+), 32 deletions(-)
|
||||||
|
create mode 100644 apps/bltgrid.c
|
||||||
|
create mode 100644 apps/lfbgrid.c
|
||||||
|
|
||||||
|
diff --git a/apps/bltgrid.c b/apps/bltgrid.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..2adde6a3211
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/apps/bltgrid.c
|
||||||
|
@@ -0,0 +1,131 @@
|
||||||
|
+#include <efi.h>
|
||||||
|
+#include <efilib.h>
|
||||||
|
+
|
||||||
|
+extern EFI_GUID GraphicsOutputProtocol;
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+fill_boxes(UINT32 *PixelBuffer, UINT32 Width, UINT32 Height)
|
||||||
|
+{
|
||||||
|
+ UINT32 y, x = 0;
|
||||||
|
+ /*
|
||||||
|
+ * This assums BGRR, but it doesn't really matter; we pick red and
|
||||||
|
+ * green so it'll just be blue/green if the pixel format is backwards.
|
||||||
|
+ */
|
||||||
|
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Red = {0, 0, 0xff, 0},
|
||||||
|
+ Green = {0, 0xff, 0, 0},
|
||||||
|
+ *Color;
|
||||||
|
+
|
||||||
|
+ for (y = 0; y < Height; y++) {
|
||||||
|
+ Color = ((y / 32) % 2 == 0) ? &Red : &Green;
|
||||||
|
+ for (x = 0; x < Width; x++) {
|
||||||
|
+ if (x % 32 == 0 && x != 0)
|
||||||
|
+ Color = (Color == &Red) ? &Green : &Red;
|
||||||
|
+ PixelBuffer[y * Width + x] = *(UINT32 *)Color;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+draw_boxes(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop)
|
||||||
|
+{
|
||||||
|
+ int i, imax;
|
||||||
|
+ EFI_STATUS rc;
|
||||||
|
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *info;
|
||||||
|
+ UINTN NumPixels;
|
||||||
|
+ UINT32 *PixelBuffer;
|
||||||
|
+ UINT32 BufferSize;
|
||||||
|
+
|
||||||
|
+ if (gop->Mode) {
|
||||||
|
+ imax = gop->Mode->MaxMode;
|
||||||
|
+ } else {
|
||||||
|
+ Print(L"gop->Mode is NULL\n");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < imax; i++) {
|
||||||
|
+ UINTN SizeOfInfo;
|
||||||
|
+ rc = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &SizeOfInfo,
|
||||||
|
+ &info);
|
||||||
|
+ if (EFI_ERROR(rc) && rc == EFI_NOT_STARTED) {
|
||||||
|
+ Print(L"gop->QueryMode() returned %r\n", rc);
|
||||||
|
+ Print(L"Trying to start GOP with SetMode().\n");
|
||||||
|
+ rc = uefi_call_wrapper(gop->SetMode, 2, gop,
|
||||||
|
+ gop->Mode ? gop->Mode->Mode : 0);
|
||||||
|
+ rc = uefi_call_wrapper(gop->QueryMode, 4, gop, i,
|
||||||
|
+ &SizeOfInfo, &info);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ Print(L"%d: Bad response from QueryMode: %r (%d)\n",
|
||||||
|
+ i, rc, rc);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (CompareMem(info, gop->Mode->Info, sizeof (*info)))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ NumPixels = info->VerticalResolution * info->HorizontalResolution;
|
||||||
|
+ BufferSize = NumPixels * sizeof(UINT32);
|
||||||
|
+
|
||||||
|
+ PixelBuffer = AllocatePool(BufferSize);
|
||||||
|
+ if (!PixelBuffer) {
|
||||||
|
+ Print(L"Allocation of 0x%08lx bytes failed.\n",
|
||||||
|
+ sizeof(UINT32) * NumPixels);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ fill_boxes(PixelBuffer,
|
||||||
|
+ info->HorizontalResolution, info->VerticalResolution);
|
||||||
|
+
|
||||||
|
+ uefi_call_wrapper(gop->Blt, 10, gop,
|
||||||
|
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)PixelBuffer,
|
||||||
|
+ EfiBltBufferToVideo,
|
||||||
|
+ 0, 0, 0, 0,
|
||||||
|
+ info->HorizontalResolution,
|
||||||
|
+ info->VerticalResolution,
|
||||||
|
+ 0);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ Print(L"Never found the active video mode?\n");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static EFI_STATUS
|
||||||
|
+SetWatchdog(UINTN seconds)
|
||||||
|
+{
|
||||||
|
+ EFI_STATUS rc;
|
||||||
|
+ rc = uefi_call_wrapper(BS->SetWatchdogTimer, 4, seconds, 0x1ffff,
|
||||||
|
+ 0, NULL);
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ CHAR16 Buffer[64];
|
||||||
|
+ StatusToString(Buffer, rc);
|
||||||
|
+ Print(L"Bad response from QueryMode: %s (%d)\n", Buffer, rc);
|
||||||
|
+ }
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+EFI_STATUS
|
||||||
|
+efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||||
|
+{
|
||||||
|
+ EFI_STATUS rc;
|
||||||
|
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *gop;
|
||||||
|
+
|
||||||
|
+ InitializeLib(image_handle, systab);
|
||||||
|
+
|
||||||
|
+ SetWatchdog(10);
|
||||||
|
+
|
||||||
|
+ rc = LibLocateProtocol(&GraphicsOutputProtocol, (void **)&gop);
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ Print(L"Could not locate GOP: %r\n", rc);
|
||||||
|
+ return rc;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!gop) {
|
||||||
|
+ Print(L"LocateProtocol(GOP, &gop) returned %r but GOP is NULL\n", rc);
|
||||||
|
+ return EFI_UNSUPPORTED;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ draw_boxes(gop);
|
||||||
|
+
|
||||||
|
+ SetWatchdog(0);
|
||||||
|
+ return EFI_SUCCESS;
|
||||||
|
+}
|
||||||
|
diff --git a/apps/lfbgrid.c b/apps/lfbgrid.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..53a255afbb9
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/apps/lfbgrid.c
|
||||||
|
@@ -0,0 +1,170 @@
|
||||||
|
+#include <efi.h>
|
||||||
|
+#include <efilib.h>
|
||||||
|
+
|
||||||
|
+extern EFI_GUID GraphicsOutputProtocol;
|
||||||
|
+
|
||||||
|
+#define be32_to_cpu(x) __builtin_bswap32(x)
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+fill_boxes(UINT32 *PixelBuffer, UINT32 Width, UINT32 Height, UINT32 Pitch,
|
||||||
|
+ EFI_GRAPHICS_PIXEL_FORMAT Format, EFI_PIXEL_BITMASK Info )
|
||||||
|
+{
|
||||||
|
+ UINT32 Red, Green;
|
||||||
|
+ UINT32 y, x, color;
|
||||||
|
+
|
||||||
|
+ switch(Format) {
|
||||||
|
+ case PixelRedGreenBlueReserved8BitPerColor:
|
||||||
|
+ Red = be32_to_cpu(0xff000000);
|
||||||
|
+ Green = be32_to_cpu(0x00ff0000);
|
||||||
|
+ break;
|
||||||
|
+ case PixelBlueGreenRedReserved8BitPerColor:
|
||||||
|
+ Red = be32_to_cpu(0x0000ff00);
|
||||||
|
+ Green = be32_to_cpu(0x00ff0000);
|
||||||
|
+ break;
|
||||||
|
+ case PixelBitMask:
|
||||||
|
+ Red = Info.RedMask;
|
||||||
|
+ Green = Info.GreenMask;
|
||||||
|
+ break;
|
||||||
|
+ case PixelBltOnly:
|
||||||
|
+ return;
|
||||||
|
+ default:
|
||||||
|
+ Print(L"Invalid pixel format\n");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (y = 0; y < Height; y++) {
|
||||||
|
+ color = ((y / 32) % 2 == 0) ? Red : Green;
|
||||||
|
+ for (x = 0; x < Width; x++) {
|
||||||
|
+ if (x % 32 == 0 && x != 0)
|
||||||
|
+ color = (color == Red) ? Green : Red;
|
||||||
|
+ PixelBuffer[y * Pitch + x] = color;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+draw_boxes(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop)
|
||||||
|
+{
|
||||||
|
+ int i, imax;
|
||||||
|
+ EFI_STATUS rc;
|
||||||
|
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *info;
|
||||||
|
+ UINTN NumPixels;
|
||||||
|
+ UINT32 *PixelBuffer;
|
||||||
|
+ UINT32 CopySize, BufferSize;
|
||||||
|
+#if defined(__x86_64__) || defined(__aarch64__)
|
||||||
|
+ UINT64 FrameBufferAddr;
|
||||||
|
+#elif defined(__i386__) || defined(__arm__)
|
||||||
|
+ UINT32 FrameBufferAddr;
|
||||||
|
+#else
|
||||||
|
+#error YOUR ARCH HERE
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ if (gop->Mode) {
|
||||||
|
+ imax = gop->Mode->MaxMode;
|
||||||
|
+ } else {
|
||||||
|
+ Print(L"gop->Mode is NULL\n");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < imax; i++) {
|
||||||
|
+ UINTN SizeOfInfo;
|
||||||
|
+ rc = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &SizeOfInfo,
|
||||||
|
+ &info);
|
||||||
|
+ if (EFI_ERROR(rc) && rc == EFI_NOT_STARTED) {
|
||||||
|
+ Print(L"gop->QueryMode() returned %r\n", rc);
|
||||||
|
+ Print(L"Trying to start GOP with SetMode().\n");
|
||||||
|
+ rc = uefi_call_wrapper(gop->SetMode, 2, gop,
|
||||||
|
+ gop->Mode ? gop->Mode->Mode : 0);
|
||||||
|
+ rc = uefi_call_wrapper(gop->QueryMode, 4, gop, i,
|
||||||
|
+ &SizeOfInfo, &info);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ Print(L"%d: Bad response from QueryMode: %r (%d)\n",
|
||||||
|
+ i, rc, rc);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (CompareMem(info, gop->Mode->Info, sizeof (*info)))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ NumPixels = info->VerticalResolution * info->PixelsPerScanLine;
|
||||||
|
+ BufferSize = NumPixels * sizeof(UINT32);
|
||||||
|
+ if (BufferSize == gop->Mode->FrameBufferSize) {
|
||||||
|
+ CopySize = BufferSize;
|
||||||
|
+ } else {
|
||||||
|
+ CopySize = BufferSize < gop->Mode->FrameBufferSize ?
|
||||||
|
+ BufferSize : gop->Mode->FrameBufferSize;
|
||||||
|
+ Print(L"height * pitch * pixelsize = %lu buf fb size is %lu; using %lu\n",
|
||||||
|
+ BufferSize, gop->Mode->FrameBufferSize, CopySize);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ PixelBuffer = AllocatePool(BufferSize);
|
||||||
|
+ if (!PixelBuffer) {
|
||||||
|
+ Print(L"Allocation of 0x%08lx bytes failed.\n",
|
||||||
|
+ sizeof(UINT32) * NumPixels);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ fill_boxes(PixelBuffer, info->HorizontalResolution,
|
||||||
|
+ info->VerticalResolution, info->PixelsPerScanLine,
|
||||||
|
+ info->PixelFormat, info->PixelInformation);
|
||||||
|
+
|
||||||
|
+ if (info->PixelFormat == PixelBltOnly) {
|
||||||
|
+ Print(L"No linear framebuffer on this device.\n");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+#if defined(__x86_64__) || defined(__aarch64__)
|
||||||
|
+ FrameBufferAddr = (UINT64)gop->Mode->FrameBufferBase;
|
||||||
|
+#elif defined(__i386__) || defined(__arm__)
|
||||||
|
+ FrameBufferAddr = (UINT32)(UINT64)gop->Mode->FrameBufferBase;
|
||||||
|
+#else
|
||||||
|
+#error YOUR ARCH HERE
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ CopyMem((VOID *)FrameBufferAddr, PixelBuffer, CopySize);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ Print(L"Never found the active video mode?\n");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static EFI_STATUS
|
||||||
|
+SetWatchdog(UINTN seconds)
|
||||||
|
+{
|
||||||
|
+ EFI_STATUS rc;
|
||||||
|
+ rc = uefi_call_wrapper(BS->SetWatchdogTimer, 4, seconds, 0x1ffff,
|
||||||
|
+ 0, NULL);
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ CHAR16 Buffer[64];
|
||||||
|
+ StatusToString(Buffer, rc);
|
||||||
|
+ Print(L"Bad response from QueryMode: %s (%d)\n", Buffer, rc);
|
||||||
|
+ }
|
||||||
|
+ return rc;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+EFI_STATUS
|
||||||
|
+efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||||
|
+{
|
||||||
|
+ EFI_STATUS rc;
|
||||||
|
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *gop;
|
||||||
|
+
|
||||||
|
+ InitializeLib(image_handle, systab);
|
||||||
|
+
|
||||||
|
+ SetWatchdog(10);
|
||||||
|
+
|
||||||
|
+ rc = LibLocateProtocol(&GraphicsOutputProtocol, (void **)&gop);
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ Print(L"Could not locate GOP: %r\n", rc);
|
||||||
|
+ return rc;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!gop) {
|
||||||
|
+ Print(L"LocateProtocol(GOP, &gop) returned %r but GOP is NULL\n", rc);
|
||||||
|
+ return EFI_UNSUPPORTED;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ draw_boxes(gop);
|
||||||
|
+
|
||||||
|
+ SetWatchdog(0);
|
||||||
|
+ return EFI_SUCCESS;
|
||||||
|
+}
|
||||||
|
diff --git a/apps/modelist.c b/apps/modelist.c
|
||||||
|
index 8d816d1d9da..26892e1d5f5 100644
|
||||||
|
--- a/apps/modelist.c
|
||||||
|
+++ b/apps/modelist.c
|
||||||
|
@@ -3,57 +3,44 @@
|
||||||
|
|
||||||
|
extern EFI_GUID GraphicsOutputProtocol;
|
||||||
|
|
||||||
|
-static int memcmp(const void *s1, const void *s2, UINTN n)
|
||||||
|
-{
|
||||||
|
- const unsigned char *c1 = s1, *c2 = s2;
|
||||||
|
- int d = 0;
|
||||||
|
-
|
||||||
|
- if (!s1 && !s2)
|
||||||
|
- return 0;
|
||||||
|
- if (s1 && !s2)
|
||||||
|
- return 1;
|
||||||
|
- if (!s1 && s2)
|
||||||
|
- return -1;
|
||||||
|
-
|
||||||
|
- while (n--) {
|
||||||
|
- d = (int)*c1++ - (int)*c2++;
|
||||||
|
- if (d)
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- return d;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static void
|
||||||
|
print_modes(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop)
|
||||||
|
{
|
||||||
|
int i, imax;
|
||||||
|
EFI_STATUS rc;
|
||||||
|
|
||||||
|
- imax = gop->Mode->MaxMode;
|
||||||
|
+ if (gop->Mode) {
|
||||||
|
+ imax = gop->Mode->MaxMode;
|
||||||
|
+ Print(L"GOP reports MaxMode %d\n", imax);
|
||||||
|
+ } else {
|
||||||
|
+ Print(L"gop->Mode is NULL\n");
|
||||||
|
+ imax = 1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- Print(L"GOP reports MaxMode %d\n", imax);
|
||||||
|
for (i = 0; i < imax; i++) {
|
||||||
|
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *info;
|
||||||
|
UINTN SizeOfInfo;
|
||||||
|
rc = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &SizeOfInfo,
|
||||||
|
&info);
|
||||||
|
if (EFI_ERROR(rc) && rc == EFI_NOT_STARTED) {
|
||||||
|
+ Print(L"gop->QueryMode() returned %r\n", rc);
|
||||||
|
+ Print(L"Trying to start GOP with SetMode().\n");
|
||||||
|
rc = uefi_call_wrapper(gop->SetMode, 2, gop,
|
||||||
|
- gop->Mode->Mode);
|
||||||
|
+ gop->Mode ? gop->Mode->Mode : 0);
|
||||||
|
rc = uefi_call_wrapper(gop->QueryMode, 4, gop, i,
|
||||||
|
&SizeOfInfo, &info);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EFI_ERROR(rc)) {
|
||||||
|
- CHAR16 Buffer[64];
|
||||||
|
- StatusToString(Buffer, rc);
|
||||||
|
- Print(L"%d: Bad response from QueryMode: %s (%d)\n",
|
||||||
|
- i, Buffer, rc);
|
||||||
|
+ Print(L"%d: Bad response from QueryMode: %r (%d)\n",
|
||||||
|
+ i, rc, rc);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
- Print(L"%c%d: %dx%d ", memcmp(info,gop->Mode->Info,sizeof(*info)) == 0 ? '*' : ' ', i,
|
||||||
|
- info->HorizontalResolution,
|
||||||
|
- info->VerticalResolution);
|
||||||
|
+ Print(L"%c%d: %dx%d ",
|
||||||
|
+ (gop->Mode &&
|
||||||
|
+ CompareMem(info,gop->Mode->Info,sizeof(*info)) == 0
|
||||||
|
+ ) ? '*' : ' ',
|
||||||
|
+ i, info->HorizontalResolution, info->VerticalResolution);
|
||||||
|
switch(info->PixelFormat) {
|
||||||
|
case PixelRedGreenBlueReserved8BitPerColor:
|
||||||
|
Print(L"RGBR");
|
||||||
|
@@ -104,8 +91,15 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||||
|
SetWatchdog(10);
|
||||||
|
|
||||||
|
rc = LibLocateProtocol(&GraphicsOutputProtocol, (void **)&gop);
|
||||||
|
- if (EFI_ERROR(rc))
|
||||||
|
+ if (EFI_ERROR(rc)) {
|
||||||
|
+ Print(L"Could not locate GOP: %r\n", rc);
|
||||||
|
return rc;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!gop) {
|
||||||
|
+ Print(L"LocateProtocol(GOP, &gop) returned %r but GOP is NULL\n", rc);
|
||||||
|
+ return EFI_UNSUPPORTED;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
print_modes(gop);
|
||||||
|
|
||||||
|
diff --git a/apps/Makefile b/apps/Makefile
|
||||||
|
index 5fffd4254c8..4e26444c469 100644
|
||||||
|
--- a/apps/Makefile
|
||||||
|
+++ b/apps/Makefile
|
||||||
|
@@ -61,7 +61,8 @@ LOADLIBES += -T $(LDSCRIPT)
|
||||||
|
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 exit.efi \
|
||||||
|
- FreePages.efi setjmp.efi debughook.efi debughook.efi.debug
|
||||||
|
+ FreePages.efi setjmp.efi debughook.efi debughook.efi.debug \
|
||||||
|
+ bltgrid.efi lfbgrid.efi
|
||||||
|
TARGET_BSDRIVERS = drv0.efi
|
||||||
|
TARGET_RTDRIVERS =
|
||||||
|
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -1,14 +1,14 @@
|
|||||||
From 6671a712db5c4dfecd4e7026057a99d9b1c4fe5e Mon Sep 17 00:00:00 2001
|
From caef829abc431a694d6e231705eb013366658865 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Tue, 7 Mar 2017 10:11:19 -0500
|
Date: Tue, 7 Mar 2017 10:11:19 -0500
|
||||||
Subject: [PATCH] Nerf -Werror=pragma away
|
Subject: [PATCH 19/22] Nerf -Werror=pragma away
|
||||||
|
|
||||||
---
|
---
|
||||||
Make.defaults | 2 ++
|
Make.defaults | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/Make.defaults b/Make.defaults
|
diff --git a/Make.defaults b/Make.defaults
|
||||||
index a7778a7..8882701 100755
|
index 4aa57ac5f7c..ed4b60c2423 100755
|
||||||
--- a/Make.defaults
|
--- a/Make.defaults
|
||||||
+++ b/Make.defaults
|
+++ b/Make.defaults
|
||||||
@@ -87,6 +87,8 @@ OBJDIR := $(TOPDIR)/$(ARCH)
|
@@ -87,6 +87,8 @@ OBJDIR := $(TOPDIR)/$(ARCH)
|
||||||
@ -21,5 +21,5 @@ index a7778a7..8882701 100755
|
|||||||
CFLAGS += -mfixed-range=f32-f127
|
CFLAGS += -mfixed-range=f32-f127
|
||||||
endif
|
endif
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
@ -1,14 +1,14 @@
|
|||||||
From bbd1ee0379327a58e042d288e371f314b7df2d55 Mon Sep 17 00:00:00 2001
|
From 31fc2f9972aca147948a32ed6beba0d20e1e76e8 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Wed, 15 Mar 2017 17:33:39 -0400
|
Date: Wed, 15 Mar 2017 17:33:39 -0400
|
||||||
Subject: [PATCH] Make ia32 use our own div asm on gnu C as well.
|
Subject: [PATCH 20/22] Make ia32 use our own div asm on gnu C as well.
|
||||||
|
|
||||||
---
|
---
|
||||||
lib/ia32/math.c | 4 ++--
|
lib/ia32/math.c | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/lib/ia32/math.c b/lib/ia32/math.c
|
diff --git a/lib/ia32/math.c b/lib/ia32/math.c
|
||||||
index 81f51bf..fce7a8d 100644
|
index 81f51bf45e4..fce7a8d4875 100644
|
||||||
--- a/lib/ia32/math.c
|
--- a/lib/ia32/math.c
|
||||||
+++ b/lib/ia32/math.c
|
+++ b/lib/ia32/math.c
|
||||||
@@ -140,7 +140,7 @@ DivU64x32 (
|
@@ -140,7 +140,7 @@ DivU64x32 (
|
||||||
@ -30,5 +30,5 @@ index 81f51bf..fce7a8d 100644
|
|||||||
"shll $1, %0\n\t"
|
"shll $1, %0\n\t"
|
||||||
"rcll $1, 4%0\n\t"
|
"rcll $1, 4%0\n\t"
|
||||||
--
|
--
|
||||||
2.12.0
|
2.14.3
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 0e95c51225b01f0ca79dafd607ae6a3e404db6be Mon Sep 17 00:00:00 2001
|
From 5cbaa179424c239263cf460db1cd5e19db856df2 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Jones <pjones@redhat.com>
|
From: Peter Jones <pjones@redhat.com>
|
||||||
Date: Tue, 28 Mar 2017 17:59:55 -0400
|
Date: Tue, 28 Mar 2017 17:59:55 -0400
|
||||||
Subject: [PATCH 13/13] Call ar in deterministic mode.
|
Subject: [PATCH 21/22] Call ar in deterministic mode.
|
||||||
|
|
||||||
We need the x86_64 and i686 builds of .a's to be the same, and that
|
We need the x86_64 and i686 builds of .a's to be the same, and that
|
||||||
means we need to not have timestamps. Also force the timestamps on disk
|
means we need to not have timestamps. Also force the timestamps on disk
|
||||||
@ -51,14 +51,14 @@ Related: rhbz#1310782
|
|||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
---
|
---
|
||||||
Make.defaults | 2 +-
|
Make.defaults | 2 +-
|
||||||
1 files changed, 1 insertions(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Make.defaults b/Make.defaults
|
diff --git a/Make.defaults b/Make.defaults
|
||||||
index aa15c73..8f36365 100755
|
index ed4b60c2423..ba743f17893 100755
|
||||||
--- a/Make.defaults
|
--- a/Make.defaults
|
||||||
+++ b/Make.defaults
|
+++ b/Make.defaults
|
||||||
@@ -167,7 +167,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
@@ -177,7 +177,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||||
$(if $(findstring clang,$(CC)),-Wno-unknown-pragmas,)
|
$(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
-ARFLAGS += -U
|
-ARFLAGS += -U
|
||||||
@ -67,5 +67,5 @@ index aa15c73..8f36365 100755
|
|||||||
LDFLAGS += -nostdlib --warn-common --no-undefined --fatal-warnings \
|
LDFLAGS += -nostdlib --warn-common --no-undefined --fatal-warnings \
|
||||||
--build-id=sha1
|
--build-id=sha1
|
||||||
--
|
--
|
||||||
2.9.3
|
2.14.3
|
||||||
|
|
115
0022-Add-debug-helper-applications.patch
Normal file
115
0022-Add-debug-helper-applications.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
From 1d249b810b22c601c4b9e3a684443be841cd1b56 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Mon, 8 Jan 2018 16:50:34 -0500
|
||||||
|
Subject: [PATCH 22/22] Add debug helper applications
|
||||||
|
|
||||||
|
---
|
||||||
|
apps/setdbg.c | 37 +++++++++++++++++++++++++++++++++++++
|
||||||
|
apps/unsetdbg.c | 37 +++++++++++++++++++++++++++++++++++++
|
||||||
|
apps/Makefile | 2 +-
|
||||||
|
3 files changed, 75 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 apps/setdbg.c
|
||||||
|
create mode 100644 apps/unsetdbg.c
|
||||||
|
|
||||||
|
diff --git a/apps/setdbg.c b/apps/setdbg.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..897140ec342
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/apps/setdbg.c
|
||||||
|
@@ -0,0 +1,37 @@
|
||||||
|
+#include <efi.h>
|
||||||
|
+#include <efilib.h>
|
||||||
|
+
|
||||||
|
+EFI_GUID GRUB_EFI_GRUB_VARIABLE_GUID = {0x91376aff,0xcba6,0x42be,{0x94,0x9d,0x06,0xfd,0xe8,0x11,0x28,0xe8}};
|
||||||
|
+EFI_GUID SHIM_GUID = {0x605dab50,0xe046,0x4300,{0xab,0xb6,0x3d,0xd8,0x10,0xdd,0x8b,0x23}};
|
||||||
|
+
|
||||||
|
+char grubenv[] = "# GRUB Environment Block\n\
|
||||||
|
+debug=tcp,http,net\n\
|
||||||
|
+####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################";
|
||||||
|
+
|
||||||
|
+EFI_STATUS
|
||||||
|
+efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||||
|
+{
|
||||||
|
+ EFI_STATUS status;
|
||||||
|
+ InitializeLib(image, systab);
|
||||||
|
+#if 0
|
||||||
|
+ UINT8 data = 1;
|
||||||
|
+
|
||||||
|
+ status = RT->SetVariable(L"SHIM_DEBUG", &SHIM_GUID,
|
||||||
|
+ EFI_VARIABLE_NON_VOLATILE |
|
||||||
|
+ EFI_VARIABLE_BOOTSERVICE_ACCESS |
|
||||||
|
+ EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
|
+ sizeof(data), &data);
|
||||||
|
+ if (EFI_ERROR(status))
|
||||||
|
+ Print(L"SetVariable failed: %r\n", status);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ status = RT->SetVariable(L"GRUB_ENV", &SHIM_GUID,
|
||||||
|
+ EFI_VARIABLE_NON_VOLATILE |
|
||||||
|
+ EFI_VARIABLE_BOOTSERVICE_ACCESS |
|
||||||
|
+ EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
|
+ sizeof(grubenv)-1, grubenv);
|
||||||
|
+ if (EFI_ERROR(status))
|
||||||
|
+ Print(L"SetVariable(GRUB_ENV) failed: %r\n", status);
|
||||||
|
+
|
||||||
|
+ return EFI_SUCCESS;
|
||||||
|
+}
|
||||||
|
diff --git a/apps/unsetdbg.c b/apps/unsetdbg.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..731e09b1343
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/apps/unsetdbg.c
|
||||||
|
@@ -0,0 +1,37 @@
|
||||||
|
+#include <efi.h>
|
||||||
|
+#include <efilib.h>
|
||||||
|
+
|
||||||
|
+EFI_GUID GRUB_EFI_GRUB_VARIABLE_GUID = {0x91376aff,0xcba6,0x42be,{0x94,0x9d,0x06,0xfd,0xe8,0x11,0x28,0xe8}};
|
||||||
|
+EFI_GUID SHIM_GUID = {0x605dab50,0xe046,0x4300,{0xab,0xb6,0x3d,0xd8,0x10,0xdd,0x8b,0x23}};
|
||||||
|
+
|
||||||
|
+char grubenv[] = "# GRUB Environment Block\n\
|
||||||
|
+debug=all\n\
|
||||||
|
+#############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################";
|
||||||
|
+
|
||||||
|
+EFI_STATUS
|
||||||
|
+efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||||
|
+{
|
||||||
|
+ EFI_STATUS status;
|
||||||
|
+ UINT8 data = 1;
|
||||||
|
+ InitializeLib(image, systab);
|
||||||
|
+
|
||||||
|
+ status = RT->SetVariable(L"SHIM_DEBUG", &SHIM_GUID,
|
||||||
|
+ EFI_VARIABLE_NON_VOLATILE |
|
||||||
|
+ EFI_VARIABLE_BOOTSERVICE_ACCESS |
|
||||||
|
+ EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
|
+ 0, &data);
|
||||||
|
+ if (EFI_ERROR(status))
|
||||||
|
+ Print(L"SetVariable failed: %r\n", status);
|
||||||
|
+
|
||||||
|
+#if 0
|
||||||
|
+ status = RT->SetVariable(L"GRUB_ENV", &SHIM_GUID,
|
||||||
|
+ EFI_VARIABLE_NON_VOLATILE |
|
||||||
|
+ EFI_VARIABLE_BOOTSERVICE_ACCESS |
|
||||||
|
+ EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
|
+ sizeof(grubenv)-1, grubenv);
|
||||||
|
+ if (EFI_ERROR(status))
|
||||||
|
+ Print(L"SetVariable(GRUB_ENV) failed: %r\n", status);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ return EFI_SUCCESS;
|
||||||
|
+}
|
||||||
|
diff --git a/apps/Makefile b/apps/Makefile
|
||||||
|
index 4e26444c469..4e1b69a38c8 100644
|
||||||
|
--- a/apps/Makefile
|
||||||
|
+++ b/apps/Makefile
|
||||||
|
@@ -62,7 +62,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 exit.efi \
|
||||||
|
FreePages.efi setjmp.efi debughook.efi debughook.efi.debug \
|
||||||
|
- bltgrid.efi lfbgrid.efi
|
||||||
|
+ bltgrid.efi lfbgrid.efi setdbg.efi unsetdbg.efi
|
||||||
|
TARGET_BSDRIVERS = drv0.efi
|
||||||
|
TARGET_RTDRIVERS =
|
||||||
|
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
53
gnu-efi.spec
53
gnu-efi.spec
@ -1,7 +1,8 @@
|
|||||||
Summary: Development Libraries and headers for EFI
|
Summary: Development Libraries and headers for EFI
|
||||||
Name: gnu-efi
|
Name: gnu-efi
|
||||||
Version: 3.0.5
|
Version: 3.0.7
|
||||||
Release: 12%{?dist}%{?buildid}
|
%global tarball_version 3.0.6
|
||||||
|
Release: 1%{?dist}%{?buildid}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Group: Development/System
|
Group: Development/System
|
||||||
License: BSD
|
License: BSD
|
||||||
@ -9,28 +10,39 @@ URL: ftp://ftp.hpl.hp.com/pub/linux-ia64
|
|||||||
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
|
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
BuildRequires: glibc32
|
# So... in some build environments, glibc32 provides some headers. In
|
||||||
|
# others, glibc-devel.i686 does. They have no non-file provides in common.
|
||||||
|
#BuildRequires: glibc32
|
||||||
#BuildRequires: glibc-devel(x86-32)
|
#BuildRequires: glibc-devel(x86-32)
|
||||||
|
BuildRequires: /usr/include/gnu/stubs-32.h
|
||||||
%endif
|
%endif
|
||||||
Source: http://superb-dca2.dl.sourceforge.net/project/gnu-efi/gnu-efi-%{version}.tar.bz2
|
Source: http://superb-dca2.dl.sourceforge.net/project/gnu-efi/gnu-efi-%{tarball_version}.tar.bz2
|
||||||
|
|
||||||
# dammit, rpmlint, shut up.
|
# dammit, rpmlint, shut up.
|
||||||
%define lib %{nil}lib%{nil}
|
%define lib %{nil}lib%{nil}
|
||||||
|
|
||||||
Patch0001: 0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
|
Patch0001: 0001-PATCH-Disable-AVX-instruction-set-on-IA32-and-x86_64.patch
|
||||||
Patch0002: 0002-Fix-some-types-gcc-doesn-t-like.patch
|
Patch0002: 0002-Use-ARFLAGS-when-invoking-ar.patch
|
||||||
Patch0003: 0003-Fix-arm-build-paths-in-the-makefile.patch
|
Patch0003: 0003-Stripped-diff-for-makefile.patch
|
||||||
Patch0004: 0004-Work-around-Werror-maybe-uninitialized-not-being-ver.patch
|
Patch0004: 0004-Make-sure-stdint.h-is-always-used-with-MSVC-on-ARM-A.patch
|
||||||
Patch0005: 0005-Fix-a-sign-error-in-the-debughook-example-app.patch
|
Patch0005: 0005-Add-EFI_DRIVER_ENTRY_POINT-support-for-MSVC-ARM64.patch
|
||||||
Patch0006: 0006-Fix-typedef-of-EFI_PXE_BASE_CODE.patch
|
Patch0006: 0006-Move-memcpy-memset-definition-to-global-init.c.patch
|
||||||
Patch0007: 0007-make-clang-not-complain-about-fno-merge-constants.patch
|
Patch0007: 0007-Bump-revision-from-VERSION-3.0.6-to-VERSION-3.0.7.patch
|
||||||
Patch0008: 0008-Fix-another-place-clang-complains-about.patch
|
Patch0008: 0008-Fix-some-types-gcc-doesn-t-like.patch
|
||||||
Patch0009: 0009-route80h-remove-some-dead-code.patch
|
Patch0009: 0009-Fix-arm-build-paths-in-the-makefile.patch
|
||||||
Patch0010: 0010-Make-clang-not-complain-about-the-debughook-s-optimi.patch
|
Patch0010: 0010-Work-around-Werror-maybe-uninitialized-not-being-ver.patch
|
||||||
Patch0011: 0011-Nerf-Werror-pragma-away.patch
|
Patch0011: 0011-Fix-a-sign-error-in-the-debughook-example-app.patch
|
||||||
Patch0012: 0012-Make-ia32-use-our-own-div-asm-on-gnu-C-as-well.patch
|
Patch0012: 0012-Fix-typedef-of-EFI_PXE_BASE_CODE.patch
|
||||||
Patch0013: 0013-Call-ar-in-deterministic-mode.patch
|
Patch0013: 0013-make-clang-not-complain-about-fno-merge-all-constant.patch
|
||||||
Patch0014: 0001-arm64-efi-remove-pointless-dummy-.reloc-section.patch
|
Patch0014: 0014-Fix-another-place-clang-complains-about.patch
|
||||||
|
Patch0015: 0015-gnu-efi-add-some-more-common-string-functions.patch
|
||||||
|
Patch0016: 0016-Add-D-to-print-device-paths.patch
|
||||||
|
Patch0017: 0017-Make-ARCH-overrideable-on-the-command-line.patch
|
||||||
|
Patch0018: 0018-apps-Add-bltgrid-and-lfbgrid-and-add-error-checks-to.patch
|
||||||
|
Patch0019: 0019-Nerf-Werror-pragma-away.patch
|
||||||
|
Patch0020: 0020-Make-ia32-use-our-own-div-asm-on-gnu-C-as-well.patch
|
||||||
|
Patch0021: 0021-Call-ar-in-deterministic-mode.patch
|
||||||
|
Patch0022: 0022-Add-debug-helper-applications.patch
|
||||||
|
|
||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
@ -86,7 +98,7 @@ Group: Applications/System
|
|||||||
This package contains utilties for debugging and developing EFI systems.
|
This package contains utilties for debugging and developing EFI systems.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n gnu-efi-%{version}
|
%setup -q -n gnu-efi-%{tarball_version}
|
||||||
git init
|
git init
|
||||||
git config user.email "gnu-efi-owner@fedoraproject.org"
|
git config user.email "gnu-efi-owner@fedoraproject.org"
|
||||||
git config user.name "Fedora Ninjas"
|
git config user.name "Fedora Ninjas"
|
||||||
@ -137,6 +149,9 @@ mv ia32/apps/{route80h.efi,modelist.efi} %{buildroot}/boot/efi/EFI/%{efidir}/ia3
|
|||||||
%attr(0644,root,root) /boot/efi/EFI/%{efidir}/*/*.efi
|
%attr(0644,root,root) /boot/efi/EFI/%{efidir}/*/*.efi
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 13 2018 Peter Jones <pjones@redhat.com> - 3.0.7-1
|
||||||
|
- Update to 3.0.7 (from git) and add some pending patches we need.
|
||||||
|
|
||||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.0.5-12
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.0.5-12
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (gnu-efi-3.0.5.tar.bz2) = 848ea9b0a9b900a237d04c2fe95fbaaa08d786c8abe4cbfdca9b666a5cd955ad1097668561aa90899b654a606ff822509fb23b6aeafce69bc4407e5b4547fdcf
|
SHA512 (gnu-efi-3.0.6.tar.bz2) = f1b17766d8ae000c0177ea2126d87883f254ab01ac020e4bfaa9ad2d3d60a66d07b6237d9842e5989c4da3fd23152b5c592ef863fdc9806901f43c43582a2258
|
||||||
|
Loading…
Reference in New Issue
Block a user