Auto sync2gitlab import of gnu-efi-3.0.8-4.el8.src.rpm
This commit is contained in:
parent
ae15467c9d
commit
f955f3f60e
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/gnu-efi-3.0.6.tar.bz2
|
@ -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/25] [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.15.0
|
||||
|
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/25] 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.15.0
|
||||
|
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/25] 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.15.0
|
||||
|
@ -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/25] 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.15.0
|
||||
|
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/25] 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.15.0
|
||||
|
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/25] 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.15.0
|
||||
|
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/25] 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.15.0
|
||||
|
@ -0,0 +1,38 @@
|
||||
From d039cd620b8a270d9b231691c9b31d6824f18c08 Mon Sep 17 00:00:00 2001
|
||||
From: Nigel Croxon <ncroxon@redhat.com>
|
||||
Date: Wed, 10 Jan 2018 10:28:36 -0500
|
||||
Subject: [PATCH 08/25] Currently we have DivU64x32 on ia32, but it tries to
|
||||
call __umoddi3 and __udivdi3 from libgcc, which we don't have. This fixes it
|
||||
to use our implementation in that case.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
lib/ia32/math.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lib/ia32/math.c b/lib/ia32/math.c
|
||||
index 81f51bf45e4..fce7a8d4875 100644
|
||||
--- a/lib/ia32/math.c
|
||||
+++ b/lib/ia32/math.c
|
||||
@@ -140,7 +140,7 @@ DivU64x32 (
|
||||
// divide 64bit by 32bit and get a 64bit result
|
||||
// N.B. only works for 31bit divisors!!
|
||||
{
|
||||
-#if defined(__GNUC__) && !defined(__MINGW32__)
|
||||
+#if 0 && defined(__GNUC__) && !defined(__MINGW32__)
|
||||
if (Remainder)
|
||||
*Remainder = Dividend % Divisor;
|
||||
return Dividend / Divisor;
|
||||
@@ -157,7 +157,7 @@ DivU64x32 (
|
||||
|
||||
Rem = 0;
|
||||
for (bit=0; bit < 64; bit++) {
|
||||
-#ifdef __MINGW32__
|
||||
+#if defined(__GNUC__) || defined(__MINGW32__)
|
||||
asm (
|
||||
"shll $1, %0\n\t"
|
||||
"rcll $1, 4%0\n\t"
|
||||
--
|
||||
2.15.0
|
||||
|
148
0009-gnuefi-preserve-.gnu.hash-sections-unbreaks-elilo-on.patch
Normal file
148
0009-gnuefi-preserve-.gnu.hash-sections-unbreaks-elilo-on.patch
Normal file
@ -0,0 +1,148 @@
|
||||
From 2cc0b085fb82e80d43cc08c8376dff9f9532a72d Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <slyfox@gentoo.org>
|
||||
Date: Sat, 27 Jan 2018 20:29:05 +0000
|
||||
Subject: [PATCH 09/25] gnuefi: preserve .gnu.hash sections (unbreaks elilo on
|
||||
IA-64)
|
||||
|
||||
Gentoo has slightly modified linker defaults: --hash-style=gnu
|
||||
This means all ELF files in system have '.gnu.hash' section
|
||||
but no '.hash' section.
|
||||
|
||||
gnuefi's ldscript did not account for it and as a result
|
||||
one symbol 'ImageBase' did not resolve locally for elilo.so
|
||||
and caused 'elilo' to fail to load by ia64 EFI:
|
||||
Loading.: Gentoo (try new elilo)
|
||||
ImageAddress: pointer is outside of image
|
||||
ImageAddress: pointer is outside of image
|
||||
|
||||
Those two relocations come from crt0-efi-ia64.S PE32 entry point
|
||||
fdescr:
|
||||
|
||||
```
|
||||
#define IMAGE_REL_BASED_DIR64<->10
|
||||
.section .reloc, "a"
|
||||
data4 _start_plabel // Page RVA
|
||||
data4 12 // Block Size (2*4+2*2)
|
||||
data2 (IMAGE_REL_BASED_DIR64<<12) + 0 // reloc for plabel's entry point
|
||||
data2 (IMAGE_REL_BASED_DIR64<<12) + 8 // reloc for plabel's global pointer
|
||||
```
|
||||
|
||||
These refer ImageBase.
|
||||
|
||||
The change adds '.gnu.hash' collection (follows existing '.hash'
|
||||
collection).
|
||||
|
||||
Tested on IA-64 by successfully booting elilo-3.16.
|
||||
|
||||
Bug: https://bugs.gentoo.org/575300
|
||||
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
||||
---
|
||||
README.gnuefi | 8 +++++++-
|
||||
gnuefi/elf_ia32_efi.lds | 4 +++-
|
||||
gnuefi/elf_ia32_fbsd_efi.lds | 4 +++-
|
||||
gnuefi/elf_ia64_efi.lds | 4 +++-
|
||||
gnuefi/elf_x86_64_efi.lds | 4 +++-
|
||||
gnuefi/elf_x86_64_fbsd_efi.lds | 4 +++-
|
||||
6 files changed, 22 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/README.gnuefi b/README.gnuefi
|
||||
index a7feec0ba28..512698c28b4 100644
|
||||
--- a/README.gnuefi
|
||||
+++ b/README.gnuefi
|
||||
@@ -231,11 +231,17 @@ and page sized.These eight sections are used to group together the much
|
||||
greater number of sections that are typically present in ELF object files.
|
||||
Specifically:
|
||||
|
||||
- .hash
|
||||
+ .hash (and/or .gnu.hash)
|
||||
Collects the ELF .hash info (this section _must_ be the first
|
||||
section in order to build a shared object file; the section is
|
||||
not actually loaded or used at runtime).
|
||||
|
||||
+ GNU binutils provides a mechanism to generate different hash info
|
||||
+ via --hash-style=<sysv|gnu|both> option. In this case output
|
||||
+ shared object will contain .hash section, .gnu.hash section or
|
||||
+ both. In order to generate correct output linker script preserves
|
||||
+ both types of hash sections.
|
||||
+
|
||||
.text
|
||||
Collects all sections containing executable code.
|
||||
|
||||
diff --git a/gnuefi/elf_ia32_efi.lds b/gnuefi/elf_ia32_efi.lds
|
||||
index 6cc4ce1b8c7..f27fe5fc6e6 100644
|
||||
--- a/gnuefi/elf_ia32_efi.lds
|
||||
+++ b/gnuefi/elf_ia32_efi.lds
|
||||
@@ -5,7 +5,9 @@ SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
ImageBase = .;
|
||||
- .hash : { *(.hash) } /* this MUST come first! */
|
||||
+ /* .hash and/or .gnu.hash MUST come first! */
|
||||
+ .hash : { *(.hash) }
|
||||
+ .gnu.hash : { *(.gnu.hash) }
|
||||
. = ALIGN(4096);
|
||||
.text :
|
||||
{
|
||||
diff --git a/gnuefi/elf_ia32_fbsd_efi.lds b/gnuefi/elf_ia32_fbsd_efi.lds
|
||||
index 77d6fade1a5..cd309e24f7f 100644
|
||||
--- a/gnuefi/elf_ia32_fbsd_efi.lds
|
||||
+++ b/gnuefi/elf_ia32_fbsd_efi.lds
|
||||
@@ -5,7 +5,9 @@ SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
ImageBase = .;
|
||||
- .hash : { *(.hash) } /* this MUST come first! */
|
||||
+ /* .hash and/or .gnu.hash MUST come first! */
|
||||
+ .hash : { *(.hash) }
|
||||
+ .gnu.hash : { *(.gnu.hash) }
|
||||
. = ALIGN(4096);
|
||||
.text :
|
||||
{
|
||||
diff --git a/gnuefi/elf_ia64_efi.lds b/gnuefi/elf_ia64_efi.lds
|
||||
index baca9623b57..190792a0c94 100644
|
||||
--- a/gnuefi/elf_ia64_efi.lds
|
||||
+++ b/gnuefi/elf_ia64_efi.lds
|
||||
@@ -5,7 +5,9 @@ SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
ImageBase = .;
|
||||
- .hash : { *(.hash) } /* this MUST come first! */
|
||||
+ /* .hash and/or .gnu.hash MUST come first! */
|
||||
+ .hash : { *(.hash) }
|
||||
+ .gnu.hash : { *(.gnu.hash) }
|
||||
. = ALIGN(4096);
|
||||
.text :
|
||||
{
|
||||
diff --git a/gnuefi/elf_x86_64_efi.lds b/gnuefi/elf_x86_64_efi.lds
|
||||
index 942d1f3eff7..7be59023510 100644
|
||||
--- a/gnuefi/elf_x86_64_efi.lds
|
||||
+++ b/gnuefi/elf_x86_64_efi.lds
|
||||
@@ -6,7 +6,9 @@ SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
ImageBase = .;
|
||||
- .hash : { *(.hash) } /* this MUST come first! */
|
||||
+ /* .hash and/or .gnu.hash MUST come first! */
|
||||
+ .hash : { *(.hash) }
|
||||
+ .gnu.hash : { *(.gnu.hash) }
|
||||
. = ALIGN(4096);
|
||||
.eh_frame :
|
||||
{
|
||||
diff --git a/gnuefi/elf_x86_64_fbsd_efi.lds b/gnuefi/elf_x86_64_fbsd_efi.lds
|
||||
index 6fd2031c13b..fe1f3342cae 100644
|
||||
--- a/gnuefi/elf_x86_64_fbsd_efi.lds
|
||||
+++ b/gnuefi/elf_x86_64_fbsd_efi.lds
|
||||
@@ -6,7 +6,9 @@ SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
ImageBase = .;
|
||||
- .hash : { *(.hash) } /* this MUST come first! */
|
||||
+ /* .hash and/or .gnu.hash MUST come first! */
|
||||
+ .hash : { *(.hash) }
|
||||
+ .gnu.hash : { *(.gnu.hash) }
|
||||
. = ALIGN(4096);
|
||||
.eh_frame :
|
||||
{
|
||||
--
|
||||
2.15.0
|
||||
|
161
0010-gnu-efi-fix-lib-ia64-setjmp.S-IA-64-build-failure.patch
Normal file
161
0010-gnu-efi-fix-lib-ia64-setjmp.S-IA-64-build-failure.patch
Normal file
@ -0,0 +1,161 @@
|
||||
From 0e6995a96b0f5867c8d85fbd251cfbc295a3fc4d Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <slyfox@gentoo.org>
|
||||
Date: Sun, 28 Jan 2018 16:44:21 +0000
|
||||
Subject: [PATCH 10/25] gnu-efi: fix lib/ia64/setjmp.S IA-64 build failure
|
||||
|
||||
The build failed as:
|
||||
lib/ia64/setjmp.S:171: Error: Unknown opcode `ldf.nt1 f26=[r10],8'
|
||||
lib/ia64/setjmp.S:178: Error: Operand 1 of `ldf.fill.nt1' should be a floating-point register
|
||||
|
||||
The change syncs longjmp definition with
|
||||
edk2/EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/BaseLib/Ipf/setjmp.s
|
||||
pulling in:
|
||||
- branch in the end of function
|
||||
- registers used wrong instruction for float restore
|
||||
|
||||
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
||||
---
|
||||
lib/ia64/setjmp.S | 61 +++++++++++++++++++++++++++----------------------------
|
||||
1 file changed, 30 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/lib/ia64/setjmp.S b/lib/ia64/setjmp.S
|
||||
index c806fbc82b6..bbb29d8b8f5 100644
|
||||
--- a/lib/ia64/setjmp.S
|
||||
+++ b/lib/ia64/setjmp.S
|
||||
@@ -16,11 +16,11 @@ BASIS,
|
||||
.globl setjmp
|
||||
.type setjmp, @function
|
||||
setjmp:
|
||||
- alloc loc = ar.pfs, 1, 2, 1, 0
|
||||
+ alloc loc0 = ar.pfs, 1, 2, 1, 0
|
||||
;;
|
||||
mov r14 = ar.unat
|
||||
mov r15 = ar.bsp
|
||||
- add r10 = 0x10 * 20, in0
|
||||
+ add r10 = 0x10*20, in0
|
||||
;;
|
||||
stf.spill.nta [in0] = f2, 0x10
|
||||
st8.spill.nta [r10] = r4, 8
|
||||
@@ -98,29 +98,25 @@ setjmp:
|
||||
|
||||
.globl longjmp
|
||||
.type longjmp, @function
|
||||
- .regstk
|
||||
+ .regstk 2, 0, 0, 0
|
||||
longjmp:
|
||||
- add r10 = 0x10 * 20 + 8*14, in0
|
||||
- movl r2 = ~(((1<<14) - 1) << 16) | 3)
|
||||
+ 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
|
||||
+ cmp.leu p6 = r14, r15
|
||||
;;
|
||||
ld8.nt1 r18 = [r10], -8
|
||||
ld8.nt1 r25 = [r10], -8
|
||||
- and r2 = r16, r2
|
||||
+ and r2 = r16, r2
|
||||
;;
|
||||
- ldf.fill.nt1 f2 = [in0], 0x10
|
||||
+ 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 b5 = r25
|
||||
;;
|
||||
mov ar.rsc = r2
|
||||
ld8.nt1 r23 = [r10], -8
|
||||
@@ -137,51 +133,51 @@ _skip_flushrs:
|
||||
mov r31 = ar.rnat
|
||||
loadrs
|
||||
;;
|
||||
- ldf.fill.nt1 f4 = [in0], 0x10
|
||||
+ ldf.fill.nt1 f4 = [in0], 0x10
|
||||
ld8.nt1 r22 = [r10], -8
|
||||
- dep r2 = -1, r14, 3, 6
|
||||
+ dep r2 = -1, r14, 3, 6
|
||||
;;
|
||||
- ldf.fill.nt1 f5 = [in0], 0x10
|
||||
- ld8.nt1 f21 = [r10], -8
|
||||
- cmp p6 = r2, r15
|
||||
+ ldf.fill.nt1 f5 = [in0], 0x10
|
||||
+ ld8.nt1 r21 = [r10], -8
|
||||
+ cmp.ltu p6 = r2, r15
|
||||
;;
|
||||
ld8.nt1 r20 = [r10], -0x10
|
||||
(p6) ld8.nta r31 = [r2]
|
||||
- mov b3 = r23
|
||||
+ mov b3 = r23
|
||||
;;
|
||||
ldf.fill.nt1 f16 = [in0], 0x10
|
||||
- ld8.fill.nt1 r7 = [r10], -8
|
||||
- mov b2 = r22
|
||||
+ ld8.fill.nt1 r7 = [r10], -8
|
||||
+ mov b2 = r22
|
||||
;;
|
||||
ldf.fill.nt1 f17 = [in0], 0x10
|
||||
- ld8.fill.nt1 r6 = [r10], -8
|
||||
- mov b1 = r21
|
||||
+ ld8.fill.nt1 r6 = [r10], -8
|
||||
+ mov b1 = r21
|
||||
;;
|
||||
ldf.fill.nt1 f18 = [in0], 0x10
|
||||
- ld8.fill.nt1 r5 = [r10], -8
|
||||
- mov b0 = r20
|
||||
+ ld8.fill.nt1 r5 = [r10], -8
|
||||
+ mov b0 = r20
|
||||
;;
|
||||
ldf.fill.nt1 f19 = [in0], 0x10
|
||||
- ld8.fill.nt1 r4 = [r10], 8*13
|
||||
+ 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
|
||||
+ ld8.nt1 r26 = [r10], 8
|
||||
mov ar.pfs = r19
|
||||
;;
|
||||
ldf.fill.nt1 f22 = [in0], 0x10
|
||||
ld8.nt1 r27 = [r10], 8
|
||||
- mov pr = r26, -1
|
||||
+ mov pr = r26, -1
|
||||
;;
|
||||
- ldf.fill.nt1 r23 = [in0], 0x10
|
||||
+ ldf.fill.nt1 f23 = [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
|
||||
+ mov r8 = in1
|
||||
;;
|
||||
ldf.fill.nt1 f26 = [in0], 0x10
|
||||
ldf.fill.nt1 f31 = [r10], -0x10
|
||||
@@ -192,9 +188,12 @@ _skip_flushrs:
|
||||
ldf.fill.nt1 f28 = [in0]
|
||||
ldf.fill.nt1 f29 = [r10], 0x10*3 + 8*4
|
||||
;;
|
||||
- ld8.fill.nt1 sp = [r10]
|
||||
+ ld8.fill.nt1 sp = [r10]
|
||||
mov ar.unat = r18
|
||||
;;
|
||||
mov ar.bspstore = r14
|
||||
mov ar.rnat = r31
|
||||
;;
|
||||
+ invala
|
||||
+ mov ar.rsc = r16
|
||||
+ br.ret.sptk b0
|
||||
--
|
||||
2.15.0
|
||||
|
73
0011-Fix-some-types-gcc-doesn-t-like.patch
Normal file
73
0011-Fix-some-types-gcc-doesn-t-like.patch
Normal file
@ -0,0 +1,73 @@
|
||||
From a46a62b12b58139c31d4288384808365c4053bf2 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:21 -0400
|
||||
Subject: [PATCH 11/25] Fix some types gcc doesn't like
|
||||
|
||||
Most of these come from building on i386 with -Wextra, but they're still
|
||||
incorrect everywhere else; they just happen to have identical typedefs
|
||||
at other places, so the compiler doesn't care.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
apps/AllocPages.c | 2 +-
|
||||
apps/FreePages.c | 2 +-
|
||||
apps/route80h.c | 2 +-
|
||||
inc/efilink.h | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/apps/AllocPages.c b/apps/AllocPages.c
|
||||
index 77a082ec0a3..bb81849c26e 100644
|
||||
--- a/apps/AllocPages.c
|
||||
+++ b/apps/AllocPages.c
|
||||
@@ -116,7 +116,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||
INTN AllocType = -1;
|
||||
INTN MemType = -1;
|
||||
INTN NumPages = -1;
|
||||
- UINTN Addr = 0;
|
||||
+ EFI_PHYSICAL_ADDRESS Addr = 0;
|
||||
|
||||
InitializeLib(image, systab);
|
||||
|
||||
diff --git a/apps/FreePages.c b/apps/FreePages.c
|
||||
index bbf2f52b4cf..247c75dc2be 100644
|
||||
--- a/apps/FreePages.c
|
||||
+++ b/apps/FreePages.c
|
||||
@@ -89,7 +89,7 @@ efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||
INTN err = 0;
|
||||
|
||||
INTN PgCnt = -1;
|
||||
- UINTN PhysAddr = 0;
|
||||
+ EFI_PHYSICAL_ADDRESS PhysAddr = 0;
|
||||
|
||||
InitializeLib(image, systab);
|
||||
|
||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
||||
index 8df860c1232..e1f62f06824 100644
|
||||
--- a/apps/route80h.c
|
||||
+++ b/apps/route80h.c
|
||||
@@ -129,7 +129,7 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||
lpcif.rcba &= ~1UL;
|
||||
|
||||
Print(L"rcba: 0x%8x\n", lpcif.rcba, lpcif.rcba);
|
||||
- set_bit((uint32_t *)(uint64_t)(lpcif.rcba + GCS_OFFSET_ADDR),
|
||||
+ set_bit((uint32_t *)(intptr_t)(lpcif.rcba + GCS_OFFSET_ADDR),
|
||||
GCS_RPR_SHIFT, GCS_RPR_PCI);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
diff --git a/inc/efilink.h b/inc/efilink.h
|
||||
index b2ff4fa2f87..cc5aa2dc57b 100644
|
||||
--- a/inc/efilink.h
|
||||
+++ b/inc/efilink.h
|
||||
@@ -142,7 +142,7 @@ typedef struct _LIST_ENTRY {
|
||||
// EFI_FIELD_OFFSET - returns the byte offset to a field within a structure
|
||||
//
|
||||
|
||||
-#define EFI_FIELD_OFFSET(TYPE,Field) ((UINTN)(&(((TYPE *) 0)->Field)))
|
||||
+#define EFI_FIELD_OFFSET(TYPE,Field) ((UINTN)(intptr_t)(&(((TYPE *) 0)->Field)))
|
||||
|
||||
//
|
||||
// CONTAINING_RECORD - returns a pointer to the structure
|
||||
--
|
||||
2.15.0
|
||||
|
38
0012-Fix-arm-build-paths-in-the-makefile.patch
Normal file
38
0012-Fix-arm-build-paths-in-the-makefile.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 5fa13d4609ae6187f68928c6e0834cdf716442f9 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:22 -0400
|
||||
Subject: [PATCH 12/25] Fix arm build paths in the makefile
|
||||
|
||||
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
|
||||
armv7hl-linux-gnueabi, so we need to munge the arch there to get our arm
|
||||
path.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
Make.defaults | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index 446e676dc14..6d300fb0f24 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -62,12 +62,12 @@ OBJCOPY := $(prefix)$(CROSS_COMPILE)objcopy
|
||||
|
||||
# Host/target identification
|
||||
OS := $(shell uname -s)
|
||||
-HOSTARCH := $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed s,i[3456789]86,ia32,)
|
||||
+HOSTARCH := $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
|
||||
ARCH := $(HOSTARCH)
|
||||
|
||||
# Get ARCH from the compiler if cross compiling
|
||||
ifneq ($(CROSS_COMPILE),)
|
||||
- override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed s,i[3456789]86,ia32,)
|
||||
+ override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
|
||||
endif
|
||||
|
||||
# FreeBSD (and possibly others) reports amd64 instead of x86_64
|
||||
--
|
||||
2.15.0
|
||||
|
@ -0,0 +1,32 @@
|
||||
From e861bb3861cca6c6d7b4d42fa915e9e9fa3dc9fc Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:23 -0400
|
||||
Subject: [PATCH 13/25] Work around -Werror=maybe-uninitialized not being very
|
||||
bright.
|
||||
|
||||
The compiler doesn't believe the loop always executes at least once,
|
||||
even though the data in the first array entry doesn't satisfy the exit
|
||||
condition. So just initialize the thing to shut it up.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
apps/route80h.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
||||
index e1f62f06824..5272dd3cd44 100644
|
||||
--- a/apps/route80h.c
|
||||
+++ b/apps/route80h.c
|
||||
@@ -93,7 +93,7 @@ efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
|
||||
InitializeLib(image_handle, systab);
|
||||
EFI_PCI_IO *pciio = NULL;
|
||||
lpcif_t lpcif;
|
||||
- EFI_STATUS rc;
|
||||
+ EFI_STATUS rc = EFI_SUCCESS;
|
||||
struct {
|
||||
uint16_t vendor;
|
||||
uint16_t device;
|
||||
--
|
||||
2.15.0
|
||||
|
40
0014-Fix-a-sign-error-in-the-debughook-example-app.patch
Normal file
40
0014-Fix-a-sign-error-in-the-debughook-example-app.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From 25cebcee2ae0b92829841321220ec9837479c118 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:24 -0400
|
||||
Subject: [PATCH 14/25] 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
|
||||
greater (or equal) to that. Make it an unsigned and choose a better type
|
||||
for the variable.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
apps/debughook.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/apps/debughook.c b/apps/debughook.c
|
||||
index 93cd0cf7eb0..78e4a767b1d 100644
|
||||
--- a/apps/debughook.c
|
||||
+++ b/apps/debughook.c
|
||||
@@ -50,7 +50,7 @@ DebugHook(void)
|
||||
UINT8 *data = NULL;
|
||||
UINTN dataSize = 0;
|
||||
EFI_STATUS efi_status;
|
||||
- register volatile UINTN x = 0;
|
||||
+ register volatile unsigned long long x = 0;
|
||||
extern char _text, _data;
|
||||
|
||||
if (x)
|
||||
@@ -71,7 +71,7 @@ DebugHook(void)
|
||||
while (x++) {
|
||||
/* Make this so it can't /totally/ DoS us. */
|
||||
#if defined(__x86_64__) || defined(__i386__) || defined(__i686__)
|
||||
- if (x > 4294967294)
|
||||
+ if (x > 4294967294ULL)
|
||||
break;
|
||||
__asm__ __volatile__("pause");
|
||||
#elif defined(__aarch64__)
|
||||
--
|
||||
2.15.0
|
||||
|
50
0015-Fix-typedef-of-EFI_PXE_BASE_CODE.patch
Normal file
50
0015-Fix-typedef-of-EFI_PXE_BASE_CODE.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 28b487d1ae66c7311e13c07c802276ea26f026e9 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:25 -0400
|
||||
Subject: [PATCH 15/25] Fix typedef of EFI_PXE_BASE_CODE
|
||||
|
||||
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
|
||||
inadvertantly defined things thusly:
|
||||
|
||||
INTERFACE_DECL(_EFI_PXE_BASE_CODE_PROTOCOL);
|
||||
...
|
||||
typedef struct _EFI_PXE_BASE_CODE_PROTOCOL {
|
||||
...
|
||||
} EFI_PXE_BASE_CODE_PROTOCOL;
|
||||
...
|
||||
typedef struct _EFI_PXE_BASE_CODE_PROTOCOL _EFI_PXE_BASE_CODE;
|
||||
typedef struct EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
||||
|
||||
Because EFI_BASE_CODE_PROTOCOL is declared with a typedef, and is
|
||||
therefore in the type namespace rather than the struct namespace, this
|
||||
results in EFI_PXE_BASE_CODE being a forward declaration of an
|
||||
incomplete type. The net result is that code which dereferences any
|
||||
field in the struct, even with the correct names, will not correctly
|
||||
build.
|
||||
|
||||
This patch changes both _EFI_PXE_BASE_CODE and EFI_PXE_BASE_CODE
|
||||
typedefs to inherit from struct _EFI_PXE_BASE_CODE_PROTOCOL.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
inc/efipxebc.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/inc/efipxebc.h b/inc/efipxebc.h
|
||||
index 035a853a7ef..3760c7cbb78 100644
|
||||
--- a/inc/efipxebc.h
|
||||
+++ b/inc/efipxebc.h
|
||||
@@ -419,7 +419,7 @@ typedef struct _EFI_PXE_BASE_CODE_PROTOCOL {
|
||||
// Use 'EFI_PXE_BASE_CODE_PROTOCOL_GUID' instead.
|
||||
|
||||
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;
|
||||
|
||||
//
|
||||
// Call Back Definitions
|
||||
--
|
||||
2.15.0
|
||||
|
@ -0,0 +1,32 @@
|
||||
From f0bf464a37d740a9539e8356a2e8611da63455df Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:26 -0400
|
||||
Subject: [PATCH 16/25] make clang not complain about -fno-merge-all-constants
|
||||
|
||||
Make clang not complain about -fno-merge-all-constants
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
Make.defaults | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index 6d300fb0f24..a457190aa3a 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -170,8 +170,9 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
else
|
||||
CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
-fshort-wchar -fno-strict-aliasing \
|
||||
- -fno-merge-all-constants -ffreestanding -fno-stack-protector \
|
||||
- -fno-stack-check
|
||||
+ -ffreestanding -fno-stack-protector -fno-stack-check \
|
||||
+ -fno-stack-check \
|
||||
+ $(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
|
||||
endif
|
||||
|
||||
ARFLAGS += -U
|
||||
--
|
||||
2.15.0
|
||||
|
29
0017-Fix-another-place-clang-complains-about.patch
Normal file
29
0017-Fix-another-place-clang-complains-about.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 5abc3858a25fa6774c6e2d89cc5d1d14a9c9f7cb Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:27 -0400
|
||||
Subject: [PATCH 17/25] Fix another place clang complains about
|
||||
|
||||
Fix another place clang complains about.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
lib/guid.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/guid.c b/lib/guid.c
|
||||
index 8daa505ed97..6498e9063cf 100644
|
||||
--- a/lib/guid.c
|
||||
+++ b/lib/guid.c
|
||||
@@ -97,7 +97,7 @@ static struct {
|
||||
{ &SMapId, L"ShellDevPathMap" },
|
||||
{ &SAliasId, L"ShellAlias" },
|
||||
|
||||
- { NULL, NULL }
|
||||
+ { NULL, L"" }
|
||||
};
|
||||
|
||||
//
|
||||
--
|
||||
2.15.0
|
||||
|
345
0018-gnu-efi-add-some-more-common-string-functions.patch
Normal file
345
0018-gnu-efi-add-some-more-common-string-functions.patch
Normal file
@ -0,0 +1,345 @@
|
||||
From 9485c65f6d28b71ff697849c1c8d47fd077ccd07 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:28 -0400
|
||||
Subject: [PATCH 18/25] 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>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@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.15.0
|
||||
|
47
0019-Add-D-to-print-device-paths.patch
Normal file
47
0019-Add-D-to-print-device-paths.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From 28793041d7f26a6771837967c495f3ae7ba1134a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:29 -0400
|
||||
Subject: [PATCH 19/25] Add %D to print device paths
|
||||
|
||||
Add %D to print device paths.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@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.15.0
|
||||
|
31
0020-Make-ARCH-overrideable-on-the-command-line.patch
Normal file
31
0020-Make-ARCH-overrideable-on-the-command-line.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 2c624c22fe873099d398e86b9f09cffcae9f0af8 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:30 -0400
|
||||
Subject: [PATCH 20/25] Make ARCH overrideable on the command line
|
||||
|
||||
Make ARCH overrideable on the command line.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@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.15.0
|
||||
|
447
0021-apps-Add-bltgrid-and-lfbgrid-and-add-error-checks-to.patch
Normal file
447
0021-apps-Add-bltgrid-and-lfbgrid-and-add-error-checks-to.patch
Normal file
@ -0,0 +1,447 @@
|
||||
From 5ec879ace760faacfa940a1933e0339e8f3811bd Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:31 -0400
|
||||
Subject: [PATCH 21/25] 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>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@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.15.0
|
||||
|
29
0022-Nerf-Werror-pragma-away.patch
Normal file
29
0022-Nerf-Werror-pragma-away.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From be57aadba6092027d21c04d4ededb2e83abe9016 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:32 -0400
|
||||
Subject: [PATCH 22/25] Nerf -Werror=pragma away
|
||||
|
||||
Nerf -Werror=-pragma away
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
Make.defaults | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index 4aa57ac5f7c..ed4b60c2423 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -87,6 +87,8 @@ OBJDIR := $(TOPDIR)/$(ARCH)
|
||||
# Arch-specific compilation flags
|
||||
CPPFLAGS += -DCONFIG_$(ARCH)
|
||||
|
||||
+CFLAGS += -Wno-error=pragmas
|
||||
+
|
||||
ifeq ($(ARCH),ia64)
|
||||
CFLAGS += -mfixed-range=f32-f127
|
||||
endif
|
||||
--
|
||||
2.15.0
|
||||
|
72
0023-Call-ar-in-deterministic-mode.patch
Normal file
72
0023-Call-ar-in-deterministic-mode.patch
Normal file
@ -0,0 +1,72 @@
|
||||
From 656e495d515b0fc1f01add164aa4bba9a49ceb31 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:34 -0400
|
||||
Subject: [PATCH 23/25] Call ar in deterministic mode.
|
||||
|
||||
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
|
||||
just in case that doesn't work, because RHEL's ar /silently ignores -D/.
|
||||
|
||||
v2: use "ar rvD" not "ar rv -D".
|
||||
|
||||
It's a wonder anybody ever gets these command line options right, if
|
||||
"ar rv -D libfoo.a foo.o" doesn't use deterministic mode (or
|
||||
complain), but "ar rvD libfoo.a foo.o" does.
|
||||
|
||||
v3: Add a bunch of junk to try to set timestamps to 0 manually
|
||||
|
||||
For some reason I'm still getting timestamps in the .a even though ar seems to
|
||||
be invoked correctly. When I do "mock -r rhel-7-build --shell" and run make
|
||||
manually, they're fine. Very strange.
|
||||
|
||||
v4: go back to v2, the problem isn't in the make process.
|
||||
|
||||
"ar rDv" works just fine, but /usr/lib/rpm/redhat/brp-strip-static-archive is
|
||||
calling "%{__strip} -g $for_each.a", and it's rewriting our binary from
|
||||
ts/uid/gid of 0/0/0 to $epoch/$UID/$GID. Awesomely /usr/bin/strip it seems to
|
||||
have 3 modes of operation:
|
||||
-U: the default, which adds $epoch/$UID/$GID to your binary archive
|
||||
instead of just removing stuff. Clearly the Principle of Least
|
||||
Surprise is strong here.
|
||||
-p: preserve the timestamp from the original .a, but add UID and GID,
|
||||
because this is 1980 and people use ar(1) for archiving stuff they
|
||||
might want that out of.
|
||||
-D: Condescend at you in a command line error and explain that -D both
|
||||
is and is not a valid option:
|
||||
/usr/bin/strip: invalid option -- 'D'
|
||||
Usage: /usr/bin/strip <option(s)> in-file(s)
|
||||
Removes symbols and sections from files
|
||||
The options are:
|
||||
...
|
||||
-D --enable-deterministic-archives
|
||||
Produce deterministic output when stripping archives
|
||||
So I agree that it's invalid, but I think we may be pronouncing that
|
||||
second vowel differently. They say in-VAL-id, I say IN-vuh-lid.
|
||||
|
||||
Nobody should ever have to run "strace -ttt -v -f -o make.strace make all",
|
||||
just to discover the problem isn't even in there.
|
||||
|
||||
Related: rhbz#1310782
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
Make.defaults | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index ed4b60c2423..ba743f17893 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -177,7 +177,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
$(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
|
||||
endif
|
||||
|
||||
-ARFLAGS += -U
|
||||
+ARFLAGS := rDv
|
||||
ASFLAGS += $(ARCH3264)
|
||||
LDFLAGS += -nostdlib --warn-common --no-undefined --fatal-warnings \
|
||||
--build-id=sha1
|
||||
--
|
||||
2.15.0
|
||||
|
119
0024-Add-debug-helper-applications.patch
Normal file
119
0024-Add-debug-helper-applications.patch
Normal file
@ -0,0 +1,119 @@
|
||||
From b030bfce35fe4b9a4eec88442e2027e4d6ec60de Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 13 Mar 2018 15:20:35 -0400
|
||||
Subject: [PATCH 24/25] Add debug helper applications
|
||||
|
||||
Add debug helper applications.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
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.15.0
|
||||
|
26
0025-Bump-revision-from-VERSION-3.0.7-to-VERSION-3.0.8.patch
Normal file
26
0025-Bump-revision-from-VERSION-3.0.7-to-VERSION-3.0.8.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From fc5af9e47fb63fbadf6acd218abc60352ce41e31 Mon Sep 17 00:00:00 2001
|
||||
From: Nigel Croxon <ncroxon@redhat.com>
|
||||
Date: Wed, 14 Mar 2018 14:54:51 -0400
|
||||
Subject: [PATCH 25/25] Bump revision from VERSION = 3.0.7 to VERSION = 3.0.8
|
||||
|
||||
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a9f7e134e14..4e58e029e7f 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -34,7 +34,7 @@
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
|
||||
-VERSION = 3.0.7
|
||||
+VERSION = 3.0.8
|
||||
|
||||
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
SRCDIR = $(dir $(MKFILE_PATH))
|
||||
--
|
||||
2.15.0
|
||||
|
472
0026-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch
Normal file
472
0026-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch
Normal file
@ -0,0 +1,472 @@
|
||||
From 1dac05a1674c42def54d77f17ca2ba73b31beaf8 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Thu, 19 Jul 2018 13:12:44 -0400
|
||||
Subject: [PATCH] Get rid of some unused junk that has the BSD 4-clause
|
||||
license.
|
||||
|
||||
We don't need any of this, and its license is not GPL compatible.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
inc/protocol/efidbg.h | 210 ---------------------------------
|
||||
inc/protocol/ia64/eficontext.h | 208 --------------------------------
|
||||
inc/protocol/makefile.hdr | 4 +-
|
||||
3 files changed, 1 insertion(+), 421 deletions(-)
|
||||
delete mode 100644 inc/protocol/efidbg.h
|
||||
delete mode 100644 inc/protocol/ia64/eficontext.h
|
||||
|
||||
diff --git a/inc/protocol/efidbg.h b/inc/protocol/efidbg.h
|
||||
deleted file mode 100644
|
||||
index 1f95a70bb42..00000000000
|
||||
--- a/inc/protocol/efidbg.h
|
||||
+++ /dev/null
|
||||
@@ -1,210 +0,0 @@
|
||||
-/*
|
||||
- * Copyright (c) 1999, 2000
|
||||
- * Intel Corporation.
|
||||
- * All rights reserved.
|
||||
- *
|
||||
- * Redistribution and use in source and binary forms, with or without
|
||||
- * modification, are permitted provided that the following conditions
|
||||
- * are met:
|
||||
- *
|
||||
- * 1. Redistributions of source code must retain the above copyright
|
||||
- * notice, this list of conditions and the following disclaimer.
|
||||
- *
|
||||
- * 2. 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.
|
||||
- *
|
||||
- * 3. All advertising materials mentioning features or use of this software
|
||||
- * must display the following acknowledgement:
|
||||
- *
|
||||
- * This product includes software developed by Intel Corporation and
|
||||
- * its contributors.
|
||||
- *
|
||||
- * 4. Neither the name of Intel Corporation or its contributors may be
|
||||
- * used to endorse or promote products derived from this software
|
||||
- * without specific prior written permission.
|
||||
- *
|
||||
- * THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION 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 INTEL CORPORATION OR CONTRIBUTORS BE
|
||||
- * LIABLE FOR ANY DIRECT, 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.
|
||||
- *
|
||||
- */
|
||||
-
|
||||
-
|
||||
-#ifndef _EFIDBG_H_
|
||||
-#define _EFIDBG_H_
|
||||
-
|
||||
-#include "eficontext.h"
|
||||
-#include "efiser.h"
|
||||
-
|
||||
-typedef struct _DEBUGPORT_16550_CONFIG_DATA {
|
||||
- UINT32 PortAddress;
|
||||
- UINT64 BaudRate;
|
||||
- UINT32 ReceiveFifoDepth;
|
||||
- UINT32 Timeout;
|
||||
- UINT8 Parity;
|
||||
- UINT8 DataBits;
|
||||
- UINT8 StopBits;
|
||||
- UINT32 ControlMask;
|
||||
- BOOLEAN RtsCtsEnable; // RTS, CTS control
|
||||
-} DEBUGPORT_16550_CONFIG_DATA;
|
||||
-
|
||||
-typedef struct _DEBUGPORT_16550_DEVICE_PATH {
|
||||
- EFI_DEVICE_PATH Header;
|
||||
- DEBUGPORT_16550_CONFIG_DATA ConfigData;
|
||||
-} DEBUGPORT_16550_DEVICE_PATH;
|
||||
-
|
||||
-typedef union {
|
||||
- EFI_DEVICE_PATH DevPath;
|
||||
- DEBUGPORT_16550_DEVICE_PATH Uart;
|
||||
- // add new types of debugport device paths to this union...
|
||||
-} DEBUGPORT_DEV_PATH;
|
||||
-
|
||||
-
|
||||
-//
|
||||
-// Debug Support protocol {2755590C-6F3C-42FA-9EA4-A3BA543CDA25}
|
||||
-//
|
||||
-
|
||||
-#define DEBUG_SUPPORT_PROTOCOL \
|
||||
-{ 0x2755590C, 0x6F3C, 0x42fa, 0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 }
|
||||
-
|
||||
-
|
||||
-typedef UINTN EXCEPTION_TYPE;
|
||||
-
|
||||
-typedef
|
||||
-VOID
|
||||
-(*EXCEPTION_HANDLER) (
|
||||
- IN EXCEPTION_TYPE ExceptionType,
|
||||
- IN SYSTEM_CONTEXT *SystemContext
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_REGISTER_TIMER_TICK_CALLBACK) (
|
||||
- IN struct _EFI_DEBUG_SUPPORT_INTERFACE *This,
|
||||
- IN EXCEPTION_HANDLER TimerTickCallback
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_REGISTER_EXCEPTION_HANDLER) (
|
||||
- IN struct _EFI_DEBUG_SUPPORT_INTERFACE *This,
|
||||
- IN EXCEPTION_HANDLER ExceptionHandler,
|
||||
- IN EXCEPTION_TYPE ExceptionType
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_IP_CALL_TRACE) (
|
||||
- IN struct _EFI_DEBUG_SUPPORT_INTERFACE *This
|
||||
- );
|
||||
-
|
||||
-
|
||||
-#define EFI_DEBUG_SUPPORT_INTERFACE_REVISION 0x00010000
|
||||
-
|
||||
-typedef struct _EFI_DEBUG_SUPPORT_INTERFACE {
|
||||
- UINT32 Revision;
|
||||
- EFI_REGISTER_TIMER_TICK_CALLBACK RegisterTimerTickCallback;
|
||||
- EFI_REGISTER_EXCEPTION_HANDLER RegisterExceptionHandler;
|
||||
- EFI_IP_CALL_TRACE IpCallTrace;
|
||||
-} EFI_DEBUG_SUPPORT_INTERFACE;
|
||||
-
|
||||
-
|
||||
-//
|
||||
-// Debugport io protocol {EBA4E8D2-3858-41EC-A281-2647BA9660D0}
|
||||
-//
|
||||
-
|
||||
-#define DEBUGPORT_IO_PROTOCOL \
|
||||
-{ 0XEBA4E8D2, 0X3858, 0X41EC, 0XA2, 0X81, 0X26, 0X47, 0XBA, 0X96, 0X60, 0XD0 }
|
||||
-
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_DEBUGPORT_IO_RESET) (
|
||||
- IN struct _EFI_DEBUGPORT_IO_INTERFACE *This
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_DEBUGPORT_IO_READ) (
|
||||
- IN struct _EFI_DEBUGPORT_IO_INTERFACE *This,
|
||||
- IN OUT UINTN *BufferSize,
|
||||
- OUT VOID *Buffer
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_DEBUGPORT_IO_WRITE) (
|
||||
- IN struct _EFI_DEBUGPORT_IO_INTERFACE *This,
|
||||
- IN OUT UINTN *BufferSize,
|
||||
- IN VOID *Buffer
|
||||
- );
|
||||
-
|
||||
-#define EFI_DEBUGPORT_IO_INTERFACE_REVISION 0x00010000
|
||||
-
|
||||
-typedef struct _EFI_DEBUGPORT_IO_INTERFACE {
|
||||
- UINT32 Revision;
|
||||
- EFI_DEBUGPORT_IO_READ Read;
|
||||
- EFI_DEBUGPORT_IO_WRITE Write;
|
||||
- EFI_DEBUGPORT_IO_RESET Reset;
|
||||
-} EFI_DEBUGPORT_IO_INTERFACE;
|
||||
-
|
||||
-
|
||||
-//
|
||||
-// Debugport UART16550 control protocol {628EA978-4C26-4605-BC02-A42A496917DD}
|
||||
-//
|
||||
-
|
||||
-#define DEBUGPORT_UART16550_CONTROL_PROTOCOL \
|
||||
-{ 0X628EA978, 0X4C26, 0X4605, 0XBC, 0X2, 0XA4, 0X2A, 0X49, 0X69, 0X17, 0XDD }
|
||||
-
|
||||
-// Note: The definitions for EFI_PARITY_TYPE, EFI_STOP_BITS_TYPE, and
|
||||
-// SERIAL_IO_MODE are included from efiser.h
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_UART16550_SET_ATTRIBUTES) (
|
||||
- IN struct _EFI_DEBUGPORT_UART16550_CONTROL_INTERFACE *This,
|
||||
- IN UINT64 BaudRate,
|
||||
- IN UINT32 ReceiveFifoDepth,
|
||||
- IN UINT32 Timeout,
|
||||
- IN EFI_PARITY_TYPE Parity,
|
||||
- IN UINT8 DataBits,
|
||||
- IN EFI_STOP_BITS_TYPE StopBits
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_UART16550_SET_CONTROL_BITS) (
|
||||
- IN struct _EFI_DEBUGPORT_UART16550_CONTROL_INTERFACE *This,
|
||||
- IN UINT32 Control
|
||||
- );
|
||||
-
|
||||
-typedef
|
||||
-EFI_STATUS
|
||||
-(EFIAPI *EFI_UART16550_GET_CONTROL_BITS) (
|
||||
- IN struct _EFI_DEBUGPORT_UART16550_CONTROL_INTERFACE *This,
|
||||
- OUT UINT32 *Control
|
||||
- );
|
||||
-
|
||||
-#define EFI_DEBUGPORT_UART16550_CONTROL_INTERFACE_REVISION 0x00010000
|
||||
-
|
||||
-typedef struct _EFI_DEBUGPORT_UART16550_CONTROL_INTERFACE {
|
||||
- UINT32 Revision;
|
||||
- EFI_UART16550_SET_ATTRIBUTES SetAttributes;
|
||||
- EFI_UART16550_SET_CONTROL_BITS SetControl;
|
||||
- EFI_UART16550_GET_CONTROL_BITS GetControl;
|
||||
- DEBUGPORT_16550_CONFIG_DATA *Mode;
|
||||
-} EFI_DEBUGPORT_UART16550_CONTROL_INTERFACE;
|
||||
-
|
||||
-
|
||||
-#define DEVICE_PATH_DEBUGPORT DEBUGPORT_IO_PROTOCOL
|
||||
-
|
||||
-#endif /* _EFIDBG_H_ */
|
||||
diff --git a/inc/protocol/ia64/eficontext.h b/inc/protocol/ia64/eficontext.h
|
||||
deleted file mode 100644
|
||||
index 1a39a6db1e4..00000000000
|
||||
--- a/inc/protocol/ia64/eficontext.h
|
||||
+++ /dev/null
|
||||
@@ -1,208 +0,0 @@
|
||||
-/*
|
||||
- * Copyright (c) 1999, 2000
|
||||
- * Intel Corporation.
|
||||
- * All rights reserved.
|
||||
- *
|
||||
- * Redistribution and use in source and binary forms, with or without
|
||||
- * modification, are permitted provided that the following conditions
|
||||
- * are met:
|
||||
- *
|
||||
- * 1. Redistributions of source code must retain the above copyright
|
||||
- * notice, this list of conditions and the following disclaimer.
|
||||
- *
|
||||
- * 2. 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.
|
||||
- *
|
||||
- * 3. All advertising materials mentioning features or use of this software
|
||||
- * must display the following acknowledgement:
|
||||
- *
|
||||
- * This product includes software developed by Intel Corporation and
|
||||
- * its contributors.
|
||||
- *
|
||||
- * 4. Neither the name of Intel Corporation or its contributors may be
|
||||
- * used to endorse or promote products derived from this software
|
||||
- * without specific prior written permission.
|
||||
- *
|
||||
- * THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION 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 INTEL CORPORATION OR CONTRIBUTORS BE
|
||||
- * LIABLE FOR ANY DIRECT, 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.
|
||||
- *
|
||||
- */
|
||||
-
|
||||
-
|
||||
-#ifndef _EFICONTEXT_H_
|
||||
-#define _EFICONTEXT_H_
|
||||
-
|
||||
-
|
||||
-//
|
||||
-// IA-64 processor exception types
|
||||
-//
|
||||
-#define EXCPT_ALT_DTLB 4
|
||||
-#define EXCPT_DNESTED_TLB 5
|
||||
-#define EXCPT_BREAKPOINT 11
|
||||
-#define EXCPT_EXTERNAL_INTERRUPT 12
|
||||
-#define EXCPT_GEN_EXCEPT 24
|
||||
-#define EXCPT_NAT_CONSUMPTION 26
|
||||
-#define EXCPT_DEBUG_EXCEPT 29
|
||||
-#define EXCPT_UNALIGNED_ACCESS 30
|
||||
-#define EXCPT_FP_FAULT 32
|
||||
-#define EXCPT_FP_TRAP 33
|
||||
-#define EXCPT_TAKEN_BRANCH 35
|
||||
-#define EXCPT_SINGLE_STEP 36
|
||||
-
|
||||
-//
|
||||
-// IA-64 processor context definition - must be 512 byte aligned!!!
|
||||
-//
|
||||
-typedef
|
||||
-struct {
|
||||
- UINT64 reserved; // necessary to preserve alignment for the correct bits in UNAT and to insure F2 is 16 byte aligned...
|
||||
-
|
||||
- UINT64 r1;
|
||||
- UINT64 r2;
|
||||
- UINT64 r3;
|
||||
- UINT64 r4;
|
||||
- UINT64 r5;
|
||||
- UINT64 r6;
|
||||
- UINT64 r7;
|
||||
- UINT64 r8;
|
||||
- UINT64 r9;
|
||||
- UINT64 r10;
|
||||
- UINT64 r11;
|
||||
- UINT64 r12;
|
||||
- UINT64 r13;
|
||||
- UINT64 r14;
|
||||
- UINT64 r15;
|
||||
- UINT64 r16;
|
||||
- UINT64 r17;
|
||||
- UINT64 r18;
|
||||
- UINT64 r19;
|
||||
- UINT64 r20;
|
||||
- UINT64 r21;
|
||||
- UINT64 r22;
|
||||
- UINT64 r23;
|
||||
- UINT64 r24;
|
||||
- UINT64 r25;
|
||||
- UINT64 r26;
|
||||
- UINT64 r27;
|
||||
- UINT64 r28;
|
||||
- UINT64 r29;
|
||||
- UINT64 r30;
|
||||
- UINT64 r31;
|
||||
-
|
||||
- UINT64 f2[2];
|
||||
- UINT64 f3[2];
|
||||
- UINT64 f4[2];
|
||||
- UINT64 f5[2];
|
||||
- UINT64 f6[2];
|
||||
- UINT64 f7[2];
|
||||
- UINT64 f8[2];
|
||||
- UINT64 f9[2];
|
||||
- UINT64 f10[2];
|
||||
- UINT64 f11[2];
|
||||
- UINT64 f12[2];
|
||||
- UINT64 f13[2];
|
||||
- UINT64 f14[2];
|
||||
- UINT64 f15[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 pr;
|
||||
-
|
||||
- UINT64 b0;
|
||||
- UINT64 b1;
|
||||
- UINT64 b2;
|
||||
- UINT64 b3;
|
||||
- UINT64 b4;
|
||||
- UINT64 b5;
|
||||
- UINT64 b6;
|
||||
- UINT64 b7;
|
||||
-
|
||||
- // application registers
|
||||
- UINT64 ar_rsc;
|
||||
- UINT64 ar_bsp;
|
||||
- UINT64 ar_bspstore;
|
||||
- UINT64 ar_rnat;
|
||||
-
|
||||
- UINT64 ar_fcr;
|
||||
-
|
||||
- UINT64 ar_eflag;
|
||||
- UINT64 ar_csd;
|
||||
- UINT64 ar_ssd;
|
||||
- UINT64 ar_cflg;
|
||||
- UINT64 ar_fsr;
|
||||
- UINT64 ar_fir;
|
||||
- UINT64 ar_fdr;
|
||||
-
|
||||
- UINT64 ar_ccv;
|
||||
-
|
||||
- UINT64 ar_unat;
|
||||
-
|
||||
- UINT64 ar_fpsr;
|
||||
-
|
||||
- UINT64 ar_pfs;
|
||||
- UINT64 ar_lc;
|
||||
- UINT64 ar_ec;
|
||||
-
|
||||
- // control registers
|
||||
- UINT64 cr_dcr;
|
||||
- UINT64 cr_itm;
|
||||
- UINT64 cr_iva;
|
||||
- UINT64 cr_pta;
|
||||
- UINT64 cr_ipsr;
|
||||
- UINT64 cr_isr;
|
||||
- UINT64 cr_iip;
|
||||
- UINT64 cr_ifa;
|
||||
- UINT64 cr_itir;
|
||||
- UINT64 cr_iipa;
|
||||
- UINT64 cr_ifs;
|
||||
- UINT64 cr_iim;
|
||||
- UINT64 cr_iha;
|
||||
-
|
||||
- // debug registers
|
||||
- UINT64 dbr0;
|
||||
- UINT64 dbr1;
|
||||
- UINT64 dbr2;
|
||||
- UINT64 dbr3;
|
||||
- UINT64 dbr4;
|
||||
- UINT64 dbr5;
|
||||
- UINT64 dbr6;
|
||||
- UINT64 dbr7;
|
||||
-
|
||||
- UINT64 ibr0;
|
||||
- UINT64 ibr1;
|
||||
- UINT64 ibr2;
|
||||
- UINT64 ibr3;
|
||||
- UINT64 ibr4;
|
||||
- UINT64 ibr5;
|
||||
- UINT64 ibr6;
|
||||
- UINT64 ibr7;
|
||||
-
|
||||
- // virtual registers
|
||||
- UINT64 int_nat; // nat bits for R1-R31
|
||||
-
|
||||
-} SYSTEM_CONTEXT;
|
||||
-
|
||||
-#endif /* _EFI_CONTEXT_H_ */
|
||||
diff --git a/inc/protocol/makefile.hdr b/inc/protocol/makefile.hdr
|
||||
index 118d6ba3a08..e66e67889c2 100644
|
||||
--- a/inc/protocol/makefile.hdr
|
||||
+++ b/inc/protocol/makefile.hdr
|
||||
@@ -9,8 +9,7 @@
|
||||
INC_DEPS = $(INC_DEPS) \
|
||||
$(SDK_INSTALL_DIR)\include\efi\protocol\efivar.h \
|
||||
$(SDK_INSTALL_DIR)\include\efi\protocol\legacyboot.h \
|
||||
- $(SDK_INSTALL_DIR)\include\efi\protocol\vgaclass.h \
|
||||
- $(SDK_INSTALL_DIR)\include\efi\protocol\efidbg.h \
|
||||
+ $(SDK_INSTALL_DIR)\include\efi\protocol\vgaclass.h
|
||||
|
||||
|
||||
!IF "$(PROCESSOR)" == "Ia32"
|
||||
@@ -22,7 +21,6 @@ INC_DEPS = $(INC_DEPS) \
|
||||
|
||||
!IF "$(PROCESSOR)" == "Ia64"
|
||||
INC_DEPS = $(INC_DEPS) \
|
||||
- $(SDK_INSTALL_DIR)\include\efi\protocol\$(PROCESSOR)\eficontext.h \
|
||||
|
||||
|
||||
!ENDIF
|
||||
--
|
||||
2.17.1
|
||||
|
421
gnu-efi.spec
Normal file
421
gnu-efi.spec
Normal file
@ -0,0 +1,421 @@
|
||||
Summary: Development Libraries and headers for EFI
|
||||
Name: gnu-efi
|
||||
Version: 3.0.8
|
||||
%global tarball_version 3.0.6
|
||||
Release: 4%{?dist}%{?buildid}
|
||||
Epoch: 1
|
||||
Group: Development/System
|
||||
License: BSD
|
||||
URL: ftp://ftp.hpl.hp.com/pub/linux-ia64
|
||||
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
|
||||
BuildRequires: git
|
||||
%ifarch x86_64
|
||||
# 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: /usr/include/gnu/stubs-32.h
|
||||
%endif
|
||||
Source: http://superb-dca2.dl.sourceforge.net/project/gnu-efi/gnu-efi-%{tarball_version}.tar.bz2
|
||||
|
||||
# dammit, rpmlint, shut up.
|
||||
%define lib %{nil}lib%{nil}
|
||||
|
||||
Patch0001: 0001-PATCH-Disable-AVX-instruction-set-on-IA32-and-x86_64.patch
|
||||
Patch0002: 0002-Use-ARFLAGS-when-invoking-ar.patch
|
||||
Patch0003: 0003-Stripped-diff-for-makefile.patch
|
||||
Patch0004: 0004-Make-sure-stdint.h-is-always-used-with-MSVC-on-ARM-A.patch
|
||||
Patch0005: 0005-Add-EFI_DRIVER_ENTRY_POINT-support-for-MSVC-ARM64.patch
|
||||
Patch0006: 0006-Move-memcpy-memset-definition-to-global-init.c.patch
|
||||
Patch0007: 0007-Bump-revision-from-VERSION-3.0.6-to-VERSION-3.0.7.patch
|
||||
Patch0008: 0008-Currently-we-have-DivU64x32-on-ia32-but-it-tries-to-.patch
|
||||
Patch0009: 0009-gnuefi-preserve-.gnu.hash-sections-unbreaks-elilo-on.patch
|
||||
Patch0010: 0010-gnu-efi-fix-lib-ia64-setjmp.S-IA-64-build-failure.patch
|
||||
Patch0011: 0011-Fix-some-types-gcc-doesn-t-like.patch
|
||||
Patch0012: 0012-Fix-arm-build-paths-in-the-makefile.patch
|
||||
Patch0013: 0013-Work-around-Werror-maybe-uninitialized-not-being-ver.patch
|
||||
Patch0014: 0014-Fix-a-sign-error-in-the-debughook-example-app.patch
|
||||
Patch0015: 0015-Fix-typedef-of-EFI_PXE_BASE_CODE.patch
|
||||
Patch0016: 0016-make-clang-not-complain-about-fno-merge-all-constant.patch
|
||||
Patch0017: 0017-Fix-another-place-clang-complains-about.patch
|
||||
Patch0018: 0018-gnu-efi-add-some-more-common-string-functions.patch
|
||||
Patch0019: 0019-Add-D-to-print-device-paths.patch
|
||||
Patch0020: 0020-Make-ARCH-overrideable-on-the-command-line.patch
|
||||
Patch0021: 0021-apps-Add-bltgrid-and-lfbgrid-and-add-error-checks-to.patch
|
||||
Patch0022: 0022-Nerf-Werror-pragma-away.patch
|
||||
Patch0023: 0023-Call-ar-in-deterministic-mode.patch
|
||||
Patch0024: 0024-Add-debug-helper-applications.patch
|
||||
Patch0025: 0025-Bump-revision-from-VERSION-3.0.7-to-VERSION-3.0.8.patch
|
||||
Patch0026: 0026-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch
|
||||
|
||||
%define debug_package %{nil}
|
||||
|
||||
# brp-strip-static-archive will senselessly /add/ timestamps and uid/gid
|
||||
# data to our .a and make them not multilib clean if we don't have this.
|
||||
# Note that if we don't have the shell quotes there, -p becomes $2 on its
|
||||
# invocation, and so it completely ignores it.
|
||||
#
|
||||
# Also note that if we try to use -D as we should (so it doesn't add
|
||||
# uid/gid), strip(1) from binutils-2.25.1-22.base.el7.x86_64 throws a
|
||||
# syntax error.
|
||||
#
|
||||
# True story.
|
||||
#
|
||||
%global __strip "%{__strip} -p"
|
||||
|
||||
# Figure out the right file path to use
|
||||
%global efidir %(eval echo $(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/'))
|
||||
|
||||
%ifarch x86_64
|
||||
%global efiarch x86_64
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
%global efiarch aarch64
|
||||
%endif
|
||||
%ifarch %{arm}
|
||||
%global efiarch arm
|
||||
%endif
|
||||
|
||||
%ifarch %{ix86}
|
||||
%global efiarch ia32
|
||||
%endif
|
||||
|
||||
%description
|
||||
This package contains development headers and libraries for developing
|
||||
applications that run under EFI (Extensible Firmware Interface).
|
||||
|
||||
%package devel
|
||||
Summary: Development Libraries and headers for EFI
|
||||
Group: Development/System
|
||||
Obsoletes: gnu-efi < 1:3.0.2-1
|
||||
Requires: gnu-efi
|
||||
|
||||
%description devel
|
||||
This package contains development headers and libraries for developing
|
||||
applications that run under EFI (Extensible Firmware Interface).
|
||||
|
||||
%package utils
|
||||
Summary: Utilities for EFI systems
|
||||
Group: Applications/System
|
||||
|
||||
%description utils
|
||||
This package contains utilties for debugging and developing EFI systems.
|
||||
|
||||
%prep
|
||||
%setup -q -n gnu-efi-%{tarball_version}
|
||||
git init
|
||||
git config user.email "gnu-efi-owner@fedoraproject.org"
|
||||
git config user.name "Fedora Ninjas"
|
||||
git config sendemail.to "gnu-efi-owner@fedoraproject.org"
|
||||
git add .
|
||||
git commit -a -q -m "%{version} baseline."
|
||||
git am --ignore-whitespace %{patches} </dev/null
|
||||
git config --unset user.email
|
||||
git config --unset user.name
|
||||
|
||||
%build
|
||||
# Package cannot build with %{?_smp_mflags}.
|
||||
make
|
||||
make apps
|
||||
%ifarch x86_64
|
||||
setarch linux32 -B make ARCH=ia32 PREFIX=%{_prefix} LIBDIR=%{_prefix}/%{lib}
|
||||
setarch linux32 -B make ARCH=ia32 PREFIX=%{_prefix} LIBDIR=%{_prefix}/%{lib} apps
|
||||
%endif
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
|
||||
mkdir -p %{buildroot}/%{_libdir}/gnuefi
|
||||
mkdir -p %{buildroot}/boot/efi/EFI/%{efidir}/%{efiarch}
|
||||
make PREFIX=%{_prefix} LIBDIR=%{_libdir} INSTALLROOT=%{buildroot} install
|
||||
mv %{buildroot}/%{_libdir}/*.lds %{buildroot}/%{_libdir}/*.o %{buildroot}/%{_libdir}/gnuefi
|
||||
mv %{efiarch}/apps/{route80h.efi,modelist.efi} %{buildroot}/boot/efi/EFI/%{efidir}/%{efiarch}/
|
||||
|
||||
%ifarch x86_64
|
||||
mkdir -p %{buildroot}/%{_prefix}/%{lib}/gnuefi
|
||||
mkdir -p %{buildroot}/boot/efi/EFI/%{efidir}/ia32
|
||||
|
||||
setarch linux32 -B make PREFIX=%{_prefix} LIBDIR=%{_prefix}/%{lib} INSTALLROOT=%{buildroot} ARCH=ia32 install
|
||||
mv %{buildroot}/%{_prefix}/%{lib}/*.{lds,o} %{buildroot}/%{_prefix}/%{lib}/gnuefi/
|
||||
mv ia32/apps/{route80h.efi,modelist.efi} %{buildroot}/boot/efi/EFI/%{efidir}/ia32/
|
||||
%endif
|
||||
|
||||
%files
|
||||
%{_prefix}/%{lib}*/*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%doc README.* ChangeLog
|
||||
%{_includedir}/efi
|
||||
|
||||
%files utils
|
||||
%dir %attr(0700,root,root) /boot/efi/EFI/%{efidir}/
|
||||
%attr(0700,root,root) /boot/efi/EFI/%{efidir}/*/*.efi
|
||||
|
||||
%changelog
|
||||
* Tue Jul 02 2019 Javier Martinez Canillas <javierm@redhat.com> - 3.0.8-4
|
||||
- Add a gating.yaml file so the package can be properly gated.
|
||||
Related: rhbz#1681788
|
||||
|
||||
* Mon Jul 01 2019 Javier Martinez Canillas <javierm@redhat.com> - 3.0.8-3
|
||||
- Change mode attribute for files in /boot/efi to prevent conflicts.
|
||||
Resolves: rhbz#1724562
|
||||
|
||||
* Thu Jul 19 2018 Peter Jones <pjones@redhat.com> - 3.0.8-2
|
||||
- Get rid of some stuff we don't want.
|
||||
|
||||
* Tue Mar 20 2018 Peter Jones <pjones@redhat.com> - 3.0.8-1
|
||||
- Update to 3.0.8 (from git).
|
||||
|
||||
* 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
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Aug 24 2017 Peter Jones <pjones@redhat.com> - 3.0.5-11
|
||||
- Don't make .reloc sections on Aarch64 binaries.
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.0.5-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.0.5-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Tue Jun 13 2017 Peter Jones <pjones@redhat.com> - 3.0.5-8
|
||||
- Update this to try to get determanistic builds.
|
||||
|
||||
* Mon Mar 20 2017 Peter Jones <pjones@redhat.com> - 3.0.5-7
|
||||
- Also build the ia32 bits in a separate 32-bit package for other consumers.
|
||||
|
||||
* Mon Mar 13 2017 Peter Jones <pjones@redhat.com> - 3.0.5-6
|
||||
- Include ia32 bits in the x86_64 packages instead of making a separate
|
||||
32-bit package
|
||||
|
||||
* Tue Feb 28 2017 Peter Jones <pjones@redhat.com> - 3.0.5-5
|
||||
- Fix some bugs from the 3.0.5 release...
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.0.5-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Feb 02 2017 Peter Jones <pjones@redhat.com> - 3.0.5-3
|
||||
- Update to 3.0.5
|
||||
|
||||
* Tue Feb 23 2016 Peter Jones <pjones@redhat.com> - 3.0.3-3
|
||||
- Include patches from upstream that are after 3.0.3 This should fix the arm
|
||||
and aarch64 builds.
|
||||
|
||||
* Tue Feb 23 2016 Peter Jones <pjones@redhat.com> - 3.0.3-2
|
||||
- We still need build-id patches in some places.
|
||||
|
||||
* Mon Feb 22 2016 Peter Jones <pjones@redhat.com> - 3.0.3-1
|
||||
- Rebase to 3.0.3
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.0.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Jan 29 2016 Dan Horák <dan[at]danny.cz> - 1:3.0.2-3
|
||||
- use safer method to evaluate %%efidir
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.0.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Wed May 13 2015 Peter Jones <pjones@redhat.com> - 3.0.2-1
|
||||
- Update to 3.0.2
|
||||
- Fix base package requirement on subpackages
|
||||
- Add setjmp, because this is my life.
|
||||
|
||||
* Tue Mar 10 2015 Peter Jones <pjones@redhat.com> - 3.0.1-1
|
||||
- Update to 3.0.1
|
||||
- New versioning scheme!
|
||||
|
||||
* Thu Nov 20 2014 Peter Jones <pjones@redhat.com> - 3.0w-2
|
||||
- Use patches upstream is going to take for the build fixes
|
||||
- Add some new protocol definitons.
|
||||
|
||||
* Fri Aug 22 2014 Kyle McMartin <kyle@fedoraproject.org> - 3.0w-0.1
|
||||
- New upstream version 3.0w
|
||||
- Add pjones' build fixes patch from that other distro.
|
||||
- Enable AArch64
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0u-0.4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0u-0.3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Tue Sep 24 2013 Peter Jones <pjones@redhat.com> - 3.0u-0.1
|
||||
- Update to 3.0u
|
||||
- Split out subpackages so -devel can be multilib
|
||||
- Fix path in apps subpackage to vary by distro.
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0t-0.2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Fri Jun 07 2013 Peter Jones <pjones@redhat.com> - 3.0t-0.1
|
||||
- Update to 3.0t
|
||||
- Don't allow use of mmx or sse registers.
|
||||
|
||||
* Thu May 16 2013 Peter Jones <pjones@redhat.com> - 3.0s-2
|
||||
- Update to 3.0s
|
||||
Related: rhbz#963359
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0q-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Fri Jul 27 2012 Matthew Garrett <mjg@redhat.com> - 3.0q-1
|
||||
- Update to current upstream
|
||||
- License change - GPLv2+ to BSD
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0e-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Wed Apr 25 2012 Peter Jones <pjones@redhat.com> - 3.0e-17
|
||||
- Align .reloc section as well to make secureboot work (mfleming)
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0e-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Thu Aug 11 2011 Peter Jones <pjones@redhat.com> - 3.0e-15
|
||||
- Correctly pad the stack when doing uefi calls
|
||||
Related: rhbz#677468
|
||||
- Add ability to write UEFI callbacks and drivers
|
||||
- Add test harness for ABI Calling Conventions
|
||||
|
||||
* Thu Jun 16 2011 Peter Jones <pjones@redhat.com> - 3.0e-14
|
||||
- Handle uninitialized GOP driver gracefully.
|
||||
|
||||
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0e-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Fri Sep 10 2010 Peter Jones <pjones@redhat.com> - 3.0e-12
|
||||
- Add "modelist.efi" test utility in apps/
|
||||
|
||||
* Mon Jul 26 2010 Peter Jones <pjones@redhat.com> - 3.0e-11
|
||||
- Add PciIo headers.
|
||||
|
||||
* Fri Jul 23 2010 Peter Jones <pjones@redhat.com> - 3.0e-10
|
||||
- Add UEFI 2.x boot services.
|
||||
|
||||
* Tue Aug 11 2009 Peter Jones <pjones@redhat.com> - 3.0e-9
|
||||
- Change ExclusiveArch to reflect arch changes in repos.
|
||||
|
||||
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0e-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
* Fri Apr 03 2009 Peter Jones <pjones@redhat.com> - 3.0e-7
|
||||
- Use nickc's workaround for #492183
|
||||
|
||||
* Tue Mar 31 2009 Peter Jones <pjones@redhat.com> - 3.0e-6.1
|
||||
- Make a test package for nickc.
|
||||
|
||||
* Thu Mar 12 2009 Chris Lumens <clumens@redhat.com> 3.0e-6
|
||||
- Add IA64 back into the list of build arches (#489544).
|
||||
|
||||
* Mon Mar 02 2009 Peter Jones <pjones@redhat.com> - 3.0e-5
|
||||
- Switch to i586 from i386.
|
||||
|
||||
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0e-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||
|
||||
* Fri Feb 13 2009 Peter Jones <pjones@redhat.com> - 3.0e-3
|
||||
- Pad sections out in the provided linker scripts to make sure they all of
|
||||
some content.
|
||||
|
||||
* Fri Oct 03 2008 Peter Jones <pjones@redhat.com> - 3.0e-2
|
||||
- Fix install paths on x86_64.
|
||||
|
||||
* Thu Oct 02 2008 Peter Jones <pjones@redhat.com> - 3.0e-1
|
||||
- Update to 3.0e
|
||||
- Fix relocation bug in 3.0e
|
||||
|
||||
* Tue Jul 29 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 3.0d-6
|
||||
- fix license tag
|
||||
|
||||
* Mon Jul 28 2008 Peter Jones <pjones@redhat.com> - 3.0d-5
|
||||
- Remove ia64 palproc code since its license isn't usable.
|
||||
- Remove ia64 from ExclusiveArch since it can't build...
|
||||
|
||||
* Thu Mar 27 2008 Peter Jones <pjones@redhat.com> - 3.0d-4
|
||||
- Fix uefi_call_wrapper(x, 10, ...) .
|
||||
- Add efi_main wrappers and EFI_CALL() macro so drivers are possible.
|
||||
|
||||
* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.0d-3
|
||||
- Autorebuild for GCC 4.3
|
||||
|
||||
* Fri Jan 11 2008 Peter Jones <pjones@redhat.com> - 3.0d-2
|
||||
- Get rid of a bogus #ifdef .
|
||||
|
||||
* Wed Dec 19 2007 Peter Jones <pjones@redhat.com> - 3.0d-1
|
||||
- Update to 3.0d
|
||||
|
||||
* Tue Jun 12 2007 Chris Lumens <clumens@redhat.com> - 3.0c-2
|
||||
- Fixes for package review (#225846).
|
||||
|
||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 3.0c-1.1
|
||||
- rebuild
|
||||
|
||||
* Thu Apr 27 2006 Chris Lumens <clumens@redhat.com> 3.0c-1
|
||||
- Upgrade to gnu-efi-3.0c.
|
||||
- Enable build on i386.
|
||||
|
||||
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 3.0a-7.2
|
||||
- rebuilt for new gcc4.1 snapshot and glibc changes
|
||||
|
||||
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Thu Mar 3 2005 Jeremy Katz <katzj@redhat.com> - 3.0a-7
|
||||
- rebuild with gcc 4
|
||||
|
||||
* Tue Sep 21 2004 Jeremy Katz <katzj@redhat.com> - 3.0a-6
|
||||
- add fix from Jesse Barnes for newer binutils (#129197)
|
||||
|
||||
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Wed Apr 21 2004 Jeremy Katz <katzj@redhat.com> - 3.0a-4
|
||||
- actually add the patch
|
||||
|
||||
* Tue Apr 20 2004 Bill Nottingham <notting@redhat.com> 3.0a-3
|
||||
- add patch to coalesce some relocations (#120080, <erikj@sgi.com>)
|
||||
|
||||
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Fri Oct 4 2002 Jeremy Katz <katzj@redhat.com>
|
||||
- rebuild in new environment
|
||||
|
||||
* Sun Jul 8 2001 Bill Nottingham <notting@redhat.com>
|
||||
- update to 3.0
|
||||
|
||||
* Tue Jun 5 2001 Bill Nottingham <notting@redhat.com>
|
||||
- add fix for invocations from the boot manager menu (#42222)
|
||||
|
||||
* Tue May 22 2001 Bill Nottingham <notting@redhat.com>
|
||||
- add bugfix for efibootmgr (<schwab@suse.de>)
|
||||
|
||||
* Mon May 21 2001 Bill Nottingham <notting@redhat.com>
|
||||
- update to 2.5
|
||||
- add in efibootmgr from Dell (<Matt_Domsch@dell.com>)
|
||||
|
||||
* Thu May 3 2001 Bill Nottingham <notting@redhat.com>
|
||||
- fix booting of kernels with extra arguments (#37711)
|
||||
|
||||
* Wed Apr 25 2001 Bill Nottingham <notting@redhat.com>
|
||||
- take out Stephane's initrd patch
|
||||
|
||||
* Fri Apr 20 2001 Bill Nottingham <notting@redhat.com>
|
||||
- fix the verbosity patch to not break passing arguments to images
|
||||
|
||||
* Wed Apr 18 2001 Bill Nottingham <notting@redhat.com>
|
||||
- update to 2.0, build elilo, obsolete eli
|
||||
|
||||
* Tue Dec 5 2000 Bill Nottingham <notting@redhat.com>
|
||||
- update to 1.1
|
||||
|
||||
* Thu Oct 26 2000 Bill Nottingham <notting@redhat.com>
|
||||
- add patch for new toolchain, update to 1.0
|
||||
|
||||
* Thu Aug 17 2000 Bill Nottingham <notting@redhat.com>
|
||||
- update to 0.9
|
Loading…
Reference in New Issue
Block a user