gnu-efi package update
Signed-off-by: basebuilder_pel7x64builder0 <basebuilder@powerel.org>master
parent
12118581b6
commit
44fb971b39
|
@ -0,0 +1,33 @@
|
|||
From f3d3ef07eb69072b8bd2b0c5d4e6243ea38ecec9 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Thu, 2 Feb 2017 13:51:27 -0500
|
||||
Subject: [PATCH 01/10] Mark our explicit fall through so -Wextra will work in
|
||||
gcc 7
|
||||
|
||||
gcc 7 introduces detection of fall-through behavior in switch/case
|
||||
statements, and will warn if -Wimplicit-fallthrough is present and there
|
||||
is no comment stating that the fall-through is intentional. This is
|
||||
also triggered by -Wextra, as it enables -Wimplicit-fallthrough=1.
|
||||
|
||||
This patch adds the comment in the one place we use fall-through.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
lib/print.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/lib/print.c b/lib/print.c
|
||||
index b8a9d38..cb732f0 100644
|
||||
--- a/lib/print.c
|
||||
+++ b/lib/print.c
|
||||
@@ -1131,6 +1131,7 @@ Returns:
|
||||
case 'X':
|
||||
Item.Width = Item.Long ? 16 : 8;
|
||||
Item.Pad = '0';
|
||||
+ /* falls through */
|
||||
case 'x':
|
||||
ValueToHex (
|
||||
Item.Scratch,
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
From fa85eb1b6ac4ceff1672c7152b6f842c2f2ff728 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Thu, 2 Feb 2017 14:31:25 -0500
|
||||
Subject: [PATCH 03/10] 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>
|
||||
---
|
||||
Make.defaults | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index 51bd7d8..e4d2ac1 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.9.3
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 6f5781e191cca6c20a75b82cc467c2256cbb5901 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Thu, 2 Feb 2017 15:23:55 -0500
|
||||
Subject: [PATCH 04/10] 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>
|
||||
---
|
||||
apps/route80h.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
||||
index 723dd85..bf550a1 100644
|
||||
--- a/apps/route80h.c
|
||||
+++ b/apps/route80h.c
|
||||
@@ -102,7 +102,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.9.3
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From 397b06ff74f7fd8fc71f5991bdfbfa6ef6da98fd Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Thu, 2 Feb 2017 15:25:48 -0500
|
||||
Subject: [PATCH 05/10] 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>
|
||||
---
|
||||
apps/debughook.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/apps/debughook.c b/apps/debughook.c
|
||||
index fb6cdad..e1d1c50 100644
|
||||
--- a/apps/debughook.c
|
||||
+++ b/apps/debughook.c
|
||||
@@ -45,7 +45,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)
|
||||
@@ -66,7 +66,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.9.3
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
From e4ca94374c7ece8ec0100075710af8638e42c203 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Wed, 8 Feb 2017 15:28:18 -0500
|
||||
Subject: [PATCH 06/10] 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>
|
||||
---
|
||||
inc/efipxebc.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/inc/efipxebc.h b/inc/efipxebc.h
|
||||
index 580a6ef..3760c7c 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 struct EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
||||
+typedef struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;
|
||||
|
||||
//
|
||||
// Call Back Definitions
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
From a01463c5035d2bacefc1ef7673b6ba2cc9815920 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Fri, 10 Feb 2017 15:16:42 -0500
|
||||
Subject: [PATCH 07/10] make clang not complain about -fno-merge-constants
|
||||
|
||||
---
|
||||
Make.defaults | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index e4d2ac1..cc52195 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -159,8 +159,9 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
else
|
||||
CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
-fshort-wchar -fno-strict-aliasing \
|
||||
- -fno-merge-constants -ffreestanding -fno-stack-protector \
|
||||
- -fno-stack-check
|
||||
+ -ffreestanding -fno-stack-protector \
|
||||
+ -fno-stack-check \
|
||||
+ $(if $(findstring gcc,$(CC)),-fno-merge-constants,)
|
||||
endif
|
||||
|
||||
ARFLAGS += -U
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From 0281df3c77fc4d8c67c0d23c656b4debed862989 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Fri, 10 Feb 2017 16:14:12 -0500
|
||||
Subject: [PATCH 08/10] Fix another place clang complains about
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
lib/guid.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/guid.c b/lib/guid.c
|
||||
index bd1f1a5..6498e90 100644
|
||||
--- a/lib/guid.c
|
||||
+++ b/lib/guid.c
|
||||
@@ -97,7 +97,7 @@ static struct {
|
||||
{ &SMapId, L"ShellDevPathMap" },
|
||||
{ &SAliasId, L"ShellAlias" },
|
||||
|
||||
- { NULL }
|
||||
+ { NULL, L"" }
|
||||
};
|
||||
|
||||
//
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From ba05cb606c6c3a4ec9f60c588abef52e355e5c1a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Fri, 10 Feb 2017 16:14:55 -0500
|
||||
Subject: [PATCH 09/10] route80h: remove some dead code
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
apps/route80h.c | 9 ---------
|
||||
1 file changed, 9 deletions(-)
|
||||
|
||||
diff --git a/apps/route80h.c b/apps/route80h.c
|
||||
index bf550a1..5272dd3 100644
|
||||
--- a/apps/route80h.c
|
||||
+++ b/apps/route80h.c
|
||||
@@ -40,15 +40,6 @@ static inline void set_bit(volatile uint32_t *flag, int bit, int value)
|
||||
Print(L"new value is 0x%2x\n", val);
|
||||
}
|
||||
|
||||
-static inline int configspace_matches_ids(void *config, uint32_t vendor_id,
|
||||
- uint32_t device_id)
|
||||
-{
|
||||
- uint32_t *cfg = config;
|
||||
- if (cfg[0] == vendor_id && cfg[1] == device_id)
|
||||
- return 1;
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
static int is_device(EFI_PCI_IO *pciio, uint16_t vendor_id, uint16_t device_id)
|
||||
{
|
||||
lpcif_t lpcif;
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
From a94906bd487c1a2e6d7827f31d7eb46bc09f3b43 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Fri, 10 Feb 2017 16:18:14 -0500
|
||||
Subject: [PATCH 10/10] Make clang not complain about the debughook's
|
||||
optimization settings
|
||||
|
||||
... still won't work, of course, because nobody at clang takes compiler
|
||||
compatibility seriously while they keep implying that you can pretend
|
||||
it's gcc.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
Make.defaults | 3 ++-
|
||||
apps/debughook.c | 5 +++--
|
||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index cc52195..a7778a7 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -161,7 +161,8 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
-fshort-wchar -fno-strict-aliasing \
|
||||
-ffreestanding -fno-stack-protector \
|
||||
-fno-stack-check \
|
||||
- $(if $(findstring gcc,$(CC)),-fno-merge-constants,)
|
||||
+ $(if $(findstring gcc,$(CC)),-fno-merge-constants,) \
|
||||
+ $(if $(findstring clang,$(CC)),-Wno-unknown-pragmas,)
|
||||
endif
|
||||
|
||||
ARFLAGS += -U
|
||||
diff --git a/apps/debughook.c b/apps/debughook.c
|
||||
index e1d1c50..fa36f62 100644
|
||||
--- a/apps/debughook.c
|
||||
+++ b/apps/debughook.c
|
||||
@@ -37,8 +37,9 @@ GetVariable(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner)
|
||||
EFI_GUID DUMMY_GUID =
|
||||
{0x55aad538, 0x8f82, 0x4e2a, {0xa4,0xf0,0xbe, 0x59, 0x13, 0xb6, 0x5f, 0x1e}};
|
||||
|
||||
+#pragma GCC push_options
|
||||
+#pragma GCC optimize ("0")
|
||||
static void
|
||||
-__attribute__((__optimize__("0")))
|
||||
DebugHook(void)
|
||||
{
|
||||
EFI_GUID guid = DUMMY_GUID;
|
||||
@@ -81,7 +82,7 @@ DebugHook(void)
|
||||
}
|
||||
x = 1;
|
||||
}
|
||||
-
|
||||
+#pragma GCC pop_options
|
||||
|
||||
EFI_STATUS
|
||||
efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *systab)
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
From 6671a712db5c4dfecd4e7026057a99d9b1c4fe5e Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 7 Mar 2017 10:11:19 -0500
|
||||
Subject: [PATCH] Nerf -Werror=pragma away
|
||||
|
||||
---
|
||||
Make.defaults | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index a7778a7..8882701 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.9.3
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
From bbd1ee0379327a58e042d288e371f314b7df2d55 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Wed, 15 Mar 2017 17:33:39 -0400
|
||||
Subject: [PATCH] Make ia32 use our own div asm on gnu C as well.
|
||||
|
||||
---
|
||||
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 81f51bf..fce7a8d 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.12.0
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
From 0e95c51225b01f0ca79dafd607ae6a3e404db6be Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 28 Mar 2017 17:59:55 -0400
|
||||
Subject: [PATCH 13/13] 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>
|
||||
---
|
||||
Make.defaults | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index aa15c73..8f36365 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -167,7 +167,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
$(if $(findstring clang,$(CC)),-Wno-unknown-pragmas,)
|
||||
endif
|
||||
|
||||
-ARFLAGS += -U
|
||||
+ARFLAGS := rDv
|
||||
ASFLAGS += $(ARCH3264)
|
||||
LDFLAGS += -nostdlib --warn-common --no-undefined --fatal-warnings \
|
||||
--build-id=sha1
|
||||
--
|
||||
2.9.3
|
||||
|
|
@ -0,0 +1,415 @@
|
|||
Summary: Development Libraries and headers for EFI
|
||||
Name: gnu-efi
|
||||
Version: 3.0.5
|
||||
Release: 9%{?dist}%{?buildid}
|
||||
Epoch: 1
|
||||
Group: Development/System
|
||||
License: BSD
|
||||
URL: ftp://ftp.hpl.hp.com/pub/linux-ia64
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
BuildRequires: git
|
||||
%ifarch x86_64
|
||||
#BuildRequires: glibc32
|
||||
BuildRequires: glibc-devel(x86-32)
|
||||
%endif
|
||||
Source: http://superb-dca2.dl.sourceforge.net/project/gnu-efi/gnu-efi-%{version}.tar.bz2
|
||||
|
||||
Patch0001: 0001-Mark-our-explicit-fall-through-so-Wextra-will-work-i.patch
|
||||
Patch0002: 0002-Fix-some-types-gcc-doesn-t-like.patch
|
||||
Patch0003: 0003-Fix-arm-build-paths-in-the-makefile.patch
|
||||
Patch0004: 0004-Work-around-Werror-maybe-uninitialized-not-being-ver.patch
|
||||
Patch0005: 0005-Fix-a-sign-error-in-the-debughook-example-app.patch
|
||||
Patch0006: 0006-Fix-typedef-of-EFI_PXE_BASE_CODE.patch
|
||||
Patch0007: 0007-make-clang-not-complain-about-fno-merge-constants.patch
|
||||
Patch0008: 0008-Fix-another-place-clang-complains-about.patch
|
||||
Patch0009: 0009-route80h-remove-some-dead-code.patch
|
||||
Patch0010: 0010-Make-clang-not-complain-about-the-debughook-s-optimi.patch
|
||||
Patch0011: 0011-Nerf-Werror-pragma-away.patch
|
||||
Patch0012: 0012-Make-ia32-use-our-own-div-asm-on-gnu-C-as-well.patch
|
||||
Patch0013: 0013-Call-ar-in-deterministic-mode.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 %{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-%{version}
|
||||
git init
|
||||
git config user.email "gnu-efi-owner@redhat.com"
|
||||
git config user.name "RHEL Ninjas"
|
||||
git config sendemail.to "gnu-efi-owner@fedoraproject.org"
|
||||
git add .
|
||||
git commit -a -q -m "%{version} baseline."
|
||||
git am %{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
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%{_prefix}/lib*/*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%doc README.* ChangeLog
|
||||
%{_includedir}/efi
|
||||
|
||||
%files utils
|
||||
%dir /boot/efi/EFI/%{efidir}/
|
||||
%attr(0644,root,root) /boot/efi/EFI/%{efidir}/*/*.efi
|
||||
|
||||
%changelog
|
||||
* Thu Mar 30 2017 Peter Jones <pjones@redhat.com> - 3.0.5-9
|
||||
- Just don't build the .i686 package at all. After a scratch build, it's
|
||||
clear that "strip -p" is not good enough, because our different builders
|
||||
have non-matching UIDs for the build process, and -p adds uid/gid to the
|
||||
archive. So there's no way to fix the multiarch conflict here without
|
||||
either fixing that or fixing strip(1) with:
|
||||
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=patch;h=7a093a78
|
||||
We don't strictly need the .i686 package anyway, since we've moved to
|
||||
making the dependent binaries all build the ia32 bits on x86_64 for
|
||||
other reasons. Related: rhbz#1310782
|
||||
|
||||
* Thu Mar 30 2017 Peter Jones <pjones@redhat.com> - 3.0.5-9
|
||||
- One more attempt at nerfing timestamps. It's surprising how broken this
|
||||
can be.
|
||||
|
||||
"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
|
||||
|
||||
* Tue Mar 28 2017 Peter Jones <pjones@redhat.com> - 3.0.5-8
|
||||
- Nerf the timestamps on our .o files while building, because RHEL's ar(1) is
|
||||
horrible and silently ignores the 'D' option. It's fine, I probably didn't
|
||||
put it there for any reason.
|
||||
Related: rhbz#1310782
|
||||
|
||||
* Tue Mar 28 2017 Peter Jones <pjones@redhat.com> - 3.0.5-7
|
||||
- Call ar(1) in deterministic mode so our .a's are multipath clean.
|
||||
Related: rhbz#1310782
|
||||
|
||||
* Mon Mar 20 2017 Peter Jones <pjones@redhat.com> - 3.0.5-6
|
||||
- Also build the ia32 bits in a separate 32-bit package for other consumers.
|
||||
Related: rhbz#1310782
|
||||
|
||||
* Wed Mar 15 2017 Peter Jones <pjones@redhat.com> - 3.0.5-5
|
||||
- Fix a codegin bug that makes it want libgcc_s (but not know it) on ia32.
|
||||
Related: rhbz#1310782
|
||||
|
||||
* Mon Mar 13 2017 Peter Jones <pjones@redhat.com> - 3.0.5-4
|
||||
- Package the ia32 bits somewhat better.
|
||||
Related: rhbz#1310782
|
||||
|
||||
* Mon Mar 13 2017 Peter Jones <pjones@redhat.com> - 3.0.5-3
|
||||
- Include ia32 bits in the x86_64 packages instead of making a separate
|
||||
32-bit package
|
||||
Resolves: rhbz#1310782
|
||||
|
||||
* Mon Mar 06 2017 Peter Jones <pjones@redhat.com> - 3.0.5-2
|
||||
- Fix some bugs in the 3.0.5 release.
|
||||
Related: rhbz#1310782
|
||||
|
||||
* Thu Feb 02 2017 Peter Jones <pjones@redhat.com> - 3.0.5-1
|
||||
- Update to 3.0.5
|
||||
- Re-enable ia32 builds for the most hilarious changelog series...
|
||||
Resolves: rhbz#1310782
|
||||
|
||||
* Mon Jun 15 2015 Peter Jones <pjones@redhat.com> - 3.0.2-2
|
||||
- Fix .spec mismerge from upstream that causes ia32 to build.
|
||||
Related: rhbz#1190191
|
||||
Related: rhbz#1115843
|
||||
Related: rhbz#1100048
|
||||
|
||||
* Mon Jun 15 2015 Peter Jones <pjones@redhat.com> - 3.0.2-1
|
||||
- Update to 3.0.2
|
||||
Related: rhbz#1190191
|
||||
Related: rhbz#1115843
|
||||
Related: rhbz#1100048
|
||||
- Fix base package requirement on subpackages
|
||||
|
||||
* 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
|
||||
|
||||
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.0u-2
|
||||
- Mass rebuild 2013-12-27
|
||||
|
||||
* Fri Oct 25 2013 Peter Jones <pjones@redhat.com> - 3.0u-1
|
||||
- Reflect that we're not supporting this on anything but x86_64.
|
||||
Related: rhbz#1017861
|
||||
|
||||
* Tue Sep 24 2013 Peter Jones <pjones@redhat.com> - 3.0u-0.1
|
||||
- Update to 3.0u
|
||||
Related: rhbz#996863
|
||||
- Split out subpackages so -devel can be multilib
|
||||
- Fix path in apps subpackage to vary by distro.
|
||||
|
||||
* Thu Jul 25 2013 Peter Jones <pjones@redhat.com> - 3.0q-3
|
||||
- Revert to 3.0q
|
||||
Related: rhbz#978766
|
||||
|
||||
* 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