diff --git a/0001-Set-0-properly-in-StrnCpy.patch b/0001-Set-0-properly-in-StrnCpy.patch index eb11030..f90d1a5 100644 --- a/0001-Set-0-properly-in-StrnCpy.patch +++ b/0001-Set-0-properly-in-StrnCpy.patch @@ -1,7 +1,7 @@ -From 5bb5032fdacf183d53b1e0154d281a223d684eea Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gary Lin Date: Tue, 9 Oct 2018 18:35:21 +0800 -Subject: [PATCH 01/45] Set '\0' properly in StrnCpy() +Subject: [PATCH] Set '\0' properly in StrnCpy() The arguments to SetMem() were wrong. Besides, SetMem() should start at "Dest + Size" since "Size" will be smaller than "Len" if they are not @@ -26,6 +26,3 @@ index 129c9f21ad5..73965cae192 100644 RtCopyMem(Dest, Src, Size * sizeof(CHAR16)); } --- -2.24.1 - diff --git a/0002-Fix-typeo-in-efierr.h-EFI_WARN_UNKNOWN_GLYPH-definit.patch b/0002-Fix-typeo-in-efierr.h-EFI_WARN_UNKNOWN_GLYPH-definit.patch index 64de32f..dce5471 100644 --- a/0002-Fix-typeo-in-efierr.h-EFI_WARN_UNKNOWN_GLYPH-definit.patch +++ b/0002-Fix-typeo-in-efierr.h-EFI_WARN_UNKNOWN_GLYPH-definit.patch @@ -1,8 +1,7 @@ -From 5d0d538c2574dfe32e87e87ff977f2830ae2990c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Tue, 8 Jan 2019 11:19:25 -0500 -Subject: [PATCH 02/45] Fix typeo in efierr.h EFI_WARN_UNKNOWN_GLYPH - definition. +Subject: [PATCH] Fix typeo in efierr.h EFI_WARN_UNKNOWN_GLYPH definition. Signed-off-by: Nigel Croxon Signed-off-by: manison @@ -23,6 +22,3 @@ index dfd3d3cf486..d351c1ca225 100644 #define EFI_WARN_DELETE_FAILURE EFIWARN(2) #define EFI_WARN_WRITE_FAILURE EFIWARN(3) #define EFI_WARN_BUFFER_TOO_SMALL EFIWARN(4) --- -2.24.1 - diff --git a/0003-Fixed-typeo-lib-error.c-EFI_WARN_UNKNOWN_GLYPH-defin.patch b/0003-Fixed-typeo-lib-error.c-EFI_WARN_UNKNOWN_GLYPH-defin.patch index 6c843bd..d111ee2 100644 --- a/0003-Fixed-typeo-lib-error.c-EFI_WARN_UNKNOWN_GLYPH-defin.patch +++ b/0003-Fixed-typeo-lib-error.c-EFI_WARN_UNKNOWN_GLYPH-defin.patch @@ -1,14 +1,14 @@ -From d34132e62f666904158c7ec2f1eef5a9d5281c36 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Wed, 9 Jan 2019 07:03:46 -0500 -Subject: [PATCH 03/45] * Fixed typeo lib/error.c EFI_WARN_UNKNOWN_GLYPH - definition. On couple of locations in runtime string library (rtstr.c) there - are calls to non-runtime variant of StrLen function. * Another issue is with - formatting 1394 paths. The F1394_DEVICE_PATH::Guid is formatted as %g, but - 1394 GUID is 8 byte integer, not EFI_GUID and therefore should be formatted - as e.g. %016lx (as edk2 does). * Beyond what's mentioned above, changed the - format of the harddrive path, so it's in line with edk2 format and spec (2.7 - errata A, chapter 10.6.1.6, table 102). +Subject: [PATCH] * Fixed typeo lib/error.c EFI_WARN_UNKNOWN_GLYPH definition. + On couple of locations in runtime string library (rtstr.c) there are calls to + non-runtime variant of StrLen function. * Another issue is with formatting + 1394 paths. The F1394_DEVICE_PATH::Guid is formatted as %g, but 1394 GUID is + 8 byte integer, not EFI_GUID and therefore should be formatted as e.g. %016lx + (as edk2 does). * Beyond what's mentioned above, changed the format of the + harddrive path, so it's in line with edk2 format and spec (2.7 errata A, + chapter 10.6.1.6, table 102). Signed-off-by: Nigel Croxon Signed-off-by: manison @@ -183,6 +183,3 @@ index 73965cae192..802e7f43309 100644 return i; } --- -2.24.1 - diff --git a/0004-efilink-fix-build-with-gcc-4.8.patch b/0004-efilink-fix-build-with-gcc-4.8.patch index fdf26ca..a3ccbaf 100644 --- a/0004-efilink-fix-build-with-gcc-4.8.patch +++ b/0004-efilink-fix-build-with-gcc-4.8.patch @@ -1,7 +1,7 @@ -From 6335e5c697c57d8b5854b8202de3733bcb151ca6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Fri, 18 Jan 2019 22:05:37 +0100 -Subject: [PATCH 04/45] efilink: fix build with gcc 4.8 +Subject: [PATCH] efilink: fix build with gcc 4.8 intptr_t is undefined without an include on stdint.h @@ -28,6 +28,3 @@ index cc5aa2dc57b..b69a6fd5cf5 100644 /*++ Copyright (c) 1998 Intel Corporation --- -2.24.1 - diff --git a/0005-Fix-for-problem-with-undeclared-intptr_t-type.patch b/0005-Fix-for-problem-with-undeclared-intptr_t-type.patch index 509287a..d67889e 100644 --- a/0005-Fix-for-problem-with-undeclared-intptr_t-type.patch +++ b/0005-Fix-for-problem-with-undeclared-intptr_t-type.patch @@ -1,7 +1,7 @@ -From 1a53d8f88a452847b25f9689f9a08dbcf82c86e4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Esben Haabendal Date: Fri, 15 Mar 2019 11:57:51 +0100 -Subject: [PATCH 05/45] Fix for problem with undeclared intptr_t type +Subject: [PATCH] Fix for problem with undeclared intptr_t type When building gnu-efi with old compilers with pre C90 compilers: @@ -106,6 +106,3 @@ index 4309f9f0e17..ae40595be0b 100644 #elif defined(__GNUC__) #include #endif --- -2.24.1 - diff --git a/0006-Redefine-jmp_buf-to-comply-with-C-calling-convention.patch b/0006-Redefine-jmp_buf-to-comply-with-C-calling-convention.patch index 311cc3c..fbd8e10 100644 --- a/0006-Redefine-jmp_buf-to-comply-with-C-calling-convention.patch +++ b/0006-Redefine-jmp_buf-to-comply-with-C-calling-convention.patch @@ -1,7 +1,7 @@ -From 5b74db0e154ffd2fba4bcc254069844f21913988 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Fri, 15 Mar 2019 09:32:06 -0400 -Subject: [PATCH 06/45] Redefine jmp_buf to comply with C calling convention. +Subject: [PATCH] Redefine jmp_buf to comply with C calling convention. Signed-off-by: Joakim Tjernlund Signed-off-by: Nigel Croxon @@ -129,6 +129,3 @@ index a489993c174..b1ad1fe3087 100644 +} ALIGN(JMPBUF_ALIGN) jmp_buf[1]; #endif /* GNU_EFI_X86_64_SETJMP_H */ --- -2.24.1 - diff --git a/0007-Make.rules-incomplete-wrong-make-r-failure.patch b/0007-Make.rules-incomplete-wrong-make-r-failure.patch index 012a490..ee1b7b7 100644 --- a/0007-Make.rules-incomplete-wrong-make-r-failure.patch +++ b/0007-Make.rules-incomplete-wrong-make-r-failure.patch @@ -1,7 +1,7 @@ -From de4e5e4e3b6faaf05b0b9a9a7ead882269078dc3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Fri, 15 Mar 2019 09:48:10 -0400 -Subject: [PATCH 07/45] Make.rules incomplete/wrong; make -r failure +Subject: [PATCH] Make.rules incomplete/wrong; make -r failure Make.rules is not complete; in particular it lacks a %.o: %.S rule. This happens to work due to the builtin make rule to that effect. but @@ -46,6 +46,3 @@ index 5b1c2862e1b..8cb93b0a039 100644 + +%.s: %.S $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ --- -2.24.1 - diff --git a/0008-gnuefi-Makefile-uses-a-strange-rule-to-create-libgnu.patch b/0008-gnuefi-Makefile-uses-a-strange-rule-to-create-libgnu.patch index 10255f7..327e62c 100644 --- a/0008-gnuefi-Makefile-uses-a-strange-rule-to-create-libgnu.patch +++ b/0008-gnuefi-Makefile-uses-a-strange-rule-to-create-libgnu.patch @@ -1,9 +1,9 @@ -From 230c36c6aa4fcb1db61ce177264e224c26314da1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Tue, 2 Apr 2019 09:47:24 -0400 -Subject: [PATCH 08/45] gnuefi/Makefile uses a strange rule to create - libgnuefi.a, which only works because of a "make" builtin rule. This breaks - make -r, and it is an inefficient way to build, at least for multiple files. +Subject: [PATCH] gnuefi/Makefile uses a strange rule to create libgnuefi.a, + which only works because of a "make" builtin rule. This breaks make -r, and + it is an inefficient way to build, at least for multiple files. I have made a git tree which includes a patch for this problem, and also forces -r by adding it to MAKEFLAGS: @@ -31,6 +31,3 @@ index 2a61699ac25..10d4e7addd0 100644 clean: rm -f $(TARGETS) *~ *.o $(OBJS) --- -2.24.1 - diff --git a/0009-efiapi.h-fix-EventGroup-parameter-of-EFI_CREATE_EVEN.patch b/0009-efiapi.h-fix-EventGroup-parameter-of-EFI_CREATE_EVEN.patch index c40755c..48f8b9a 100644 --- a/0009-efiapi.h-fix-EventGroup-parameter-of-EFI_CREATE_EVEN.patch +++ b/0009-efiapi.h-fix-EventGroup-parameter-of-EFI_CREATE_EVEN.patch @@ -1,8 +1,8 @@ -From 238358c6df96923c4510f5e2793a9976c3afdd44 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 14 May 2019 07:44:28 +0200 -Subject: [PATCH 09/45] efiapi.h: fix EventGroup parameter of - EFI_CREATE_EVENT_EX prototype +Subject: [PATCH] efiapi.h: fix EventGroup parameter of EFI_CREATE_EVENT_EX + prototype From UEFI specifications, this parameter is a pointer, see https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf @@ -26,6 +26,3 @@ index e7d2abd79de..bdf5de26a3f 100644 OUT EFI_EVENT *Event ); --- -2.24.1 - diff --git a/0010-Do-not-include-efisetjmp.h-on-efi.h.patch b/0010-Do-not-include-efisetjmp.h-on-efi.h.patch index eabc255..a081e33 100644 --- a/0010-Do-not-include-efisetjmp.h-on-efi.h.patch +++ b/0010-Do-not-include-efisetjmp.h-on-efi.h.patch @@ -1,7 +1,7 @@ -From 486ba3c3bdd147b7d98159b9e650be60bce0f027 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 15 May 2019 05:32:21 +0200 -Subject: [PATCH 10/45] Do not include efisetjmp.h on efi.h +Subject: [PATCH] Do not include efisetjmp.h on efi.h People than really want to use efisetjmp implementation can include the header on their own. @@ -35,6 +35,3 @@ index 9cbc22dc370..2ddd53e0d95 100644 -#include "efisetjmp.h" #endif --- -2.24.1 - diff --git a/0011-Bump-revision-to-VERSION-3.0.10.patch b/0011-Bump-revision-to-VERSION-3.0.10.patch index 01b4842..e1413ba 100644 --- a/0011-Bump-revision-to-VERSION-3.0.10.patch +++ b/0011-Bump-revision-to-VERSION-3.0.10.patch @@ -1,7 +1,7 @@ -From 9b14e7dab0abf0ef062db60666b677b33e10c627 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Thu, 3 Oct 2019 12:05:00 -0400 -Subject: [PATCH 11/45] Bump revision to VERSION = 3.0.10 +Subject: [PATCH] Bump revision to VERSION = 3.0.10 --- Makefile | 2 +- @@ -20,6 +20,3 @@ index 01d1a01369e..a15513dcbba 100644 MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) SRCDIR = $(dir $(MKFILE_PATH)) --- -2.24.1 - diff --git a/0012-Revert-efilink-fix-build-with-gcc-4.8.patch b/0012-Revert-efilink-fix-build-with-gcc-4.8.patch index 910d0b7..6b98d29 100644 --- a/0012-Revert-efilink-fix-build-with-gcc-4.8.patch +++ b/0012-Revert-efilink-fix-build-with-gcc-4.8.patch @@ -1,7 +1,7 @@ -From 8b2da2c2247af28bd681a9c8e3231559964c80a6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Mon, 28 Oct 2019 07:45:38 -0400 -Subject: [PATCH 12/45] Revert "efilink: fix build with gcc 4.8" +Subject: [PATCH] Revert "efilink: fix build with gcc 4.8" Breaks gcc builds with '-nostdinc' flag. @@ -29,6 +29,3 @@ index b69a6fd5cf5..cc5aa2dc57b 100644 /*++ Copyright (c) 1998 Intel Corporation --- -2.24.1 - diff --git a/0013-Bump-revision-to-VERSION-3.0.11.patch b/0013-Bump-revision-to-VERSION-3.0.11.patch index ff750a5..d487fbf 100644 --- a/0013-Bump-revision-to-VERSION-3.0.11.patch +++ b/0013-Bump-revision-to-VERSION-3.0.11.patch @@ -1,7 +1,7 @@ -From 2ab1abfd26ea0a87a4fdf3d3c532544a65ae6954 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Mon, 28 Oct 2019 07:48:52 -0400 -Subject: [PATCH 13/45] Bump revision to VERSION = 3.0.11 +Subject: [PATCH] Bump revision to VERSION = 3.0.11 --- Makefile | 2 +- @@ -20,6 +20,3 @@ index a15513dcbba..84f07d33a48 100644 MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) SRCDIR = $(dir $(MKFILE_PATH)) --- -2.24.1 - diff --git a/0014-efibind-Fix-usage-of-efi-headers-from-C-code.patch b/0014-efibind-Fix-usage-of-efi-headers-from-C-code.patch index c9df844..de2fa86 100644 --- a/0014-efibind-Fix-usage-of-efi-headers-from-C-code.patch +++ b/0014-efibind-Fix-usage-of-efi-headers-from-C-code.patch @@ -1,7 +1,7 @@ -From 6685cd000223f6b7d667e2854cd3d622d078d147 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Wed, 27 Nov 2019 17:03:42 -0600 -Subject: [PATCH 14/45] efibind: Fix usage of efi headers from C++ code +Subject: [PATCH] efibind: Fix usage of efi headers from C++ code * __STDC_VERSION__ is undefined when headers are called from C++ code resulting in not using stdint.h and efibind.h @@ -106,6 +106,3 @@ index ae40595be0b..31e9e119d74 100644 #include #endif --- -2.24.1 - diff --git a/0015-Fix-ARCH-on-ARMv6.patch b/0015-Fix-ARCH-on-ARMv6.patch index 9355443..6bbb80e 100644 --- a/0015-Fix-ARCH-on-ARMv6.patch +++ b/0015-Fix-ARCH-on-ARMv6.patch @@ -1,7 +1,7 @@ -From 44267b59d892041048c70e1f8fa17be0829d0978 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Tue, 5 Nov 2019 00:09:12 -0500 -Subject: [PATCH 15/45] Fix ARCH on ARMv6. +Subject: [PATCH] Fix ARCH on ARMv6. Extends the armv7 ARCH sed expression to work correctly on armv6. @@ -30,6 +30,3 @@ index ba743f17893..5695b2ac1ab 100755 endif # FreeBSD (and possibly others) reports amd64 instead of x86_64 --- -2.24.1 - diff --git a/0016-Re-add-back-the-original-symbol-typeo.patch b/0016-Re-add-back-the-original-symbol-typeo.patch index 2b47905..83fb095 100644 --- a/0016-Re-add-back-the-original-symbol-typeo.patch +++ b/0016-Re-add-back-the-original-symbol-typeo.patch @@ -1,7 +1,7 @@ -From 9b63de7db6850b2415bb46fa28e0d62fa2f2f50e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nigel Croxon Date: Thu, 16 Jan 2020 14:35:56 -0500 -Subject: [PATCH 16/45] Re-add back the original symbol, typeo. +Subject: [PATCH] Re-add back the original symbol, typeo. Fix breaking code by restoring original typeo in efierr.h EFI_WARN_UNKOWN_GLYPH definition. @@ -25,6 +25,3 @@ index d351c1ca225..5a66e1a0676 100644 #define EFI_WARN_UNKNOWN_GLYPH EFIWARN(1) #define EFI_WARN_DELETE_FAILURE EFIWARN(2) #define EFI_WARN_WRITE_FAILURE EFIWARN(3) --- -2.24.1 - diff --git a/0017-Add-elf.h-for-cross-building-without-a-system-libelf.patch b/0017-Add-elf.h-for-cross-building-without-a-system-libelf.patch index 421ffec..0533452 100644 --- a/0017-Add-elf.h-for-cross-building-without-a-system-libelf.patch +++ b/0017-Add-elf.h-for-cross-building-without-a-system-libelf.patch @@ -1,11 +1,11 @@ -From 26dcc62ec7d67dc3dc18faedbd8cb99b28e4fc69 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Soop Date: Thu, 17 Dec 2015 01:21:45 -0300 -Subject: [PATCH 17/45] Add elf.h for cross-building without a system libelf +Subject: [PATCH] Add elf.h for cross-building without a system libelf installed. --- - inc/elf.h | 4023 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + inc/elf.h | 4023 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4023 insertions(+) create mode 100644 inc/elf.h @@ -4038,6 +4038,3 @@ index 00000000000..d39b8f8b440 +#define R_NDS32_TLS_DESC 119 + +#endif /* elf.h */ --- -2.24.1 - diff --git a/0018-make-parameter-to-compile-apps-add-example-output-di.patch b/0018-make-parameter-to-compile-apps-add-example-output-di.patch index 471d0aa..515b208 100644 --- a/0018-make-parameter-to-compile-apps-add-example-output-di.patch +++ b/0018-make-parameter-to-compile-apps-add-example-output-di.patch @@ -1,8 +1,7 @@ -From 643f7e5d01fb6a5633b24c811c098b38a1b60d89 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: sgerwk Date: Thu, 2 May 2019 12:57:16 +0200 -Subject: [PATCH 18/45] make parameter to compile apps + add example output - directory +Subject: [PATCH] make parameter to compile apps + add example output directory --- README.gnuefi | 4 ++-- @@ -25,6 +24,3 @@ index 512698c28b4..a65e5f9042a 100644 ** Running --- -2.24.1 - diff --git a/0019-Support-for-building-on-macOS-systems.patch b/0019-Support-for-building-on-macOS-systems.patch index 44b4ab8..3909d7e 100644 --- a/0019-Support-for-building-on-macOS-systems.patch +++ b/0019-Support-for-building-on-macOS-systems.patch @@ -1,7 +1,7 @@ -From ba53984ceeba5309c2769b0cfb34328fe10ee6ca Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Rick Mark Date: Fri, 27 Oct 2017 14:05:39 -0700 -Subject: [PATCH 19/45] Support for building on macOS systems +Subject: [PATCH] Support for building on macOS systems --- Make.defaults | 12 ++++++++++-- @@ -84,6 +84,3 @@ index e870aef703a..e3e51959719 100644 longjmp: movl %esi, %eax movq 0x00(%rdi), %rbx --- -2.24.1 - diff --git a/0020-Make-apps-link-against-the-local-gnuefi-and-crt-obje.patch b/0020-Make-apps-link-against-the-local-gnuefi-and-crt-obje.patch index 4aaf97b..98c3d17 100644 --- a/0020-Make-apps-link-against-the-local-gnuefi-and-crt-obje.patch +++ b/0020-Make-apps-link-against-the-local-gnuefi-and-crt-obje.patch @@ -1,7 +1,7 @@ -From 8858302ab24885e96e4094cbd604e8781a7a4bf3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Soop Date: Wed, 16 Dec 2015 22:33:33 -0300 -Subject: [PATCH 20/45] Make apps link against the local gnuefi and crt objects +Subject: [PATCH] Make apps link against the local gnuefi and crt objects --- apps/Makefile | 4 ++-- @@ -28,6 +28,3 @@ index 4e1b69a38c8..310c6fdb5fc 100644 LOADLIBES += -lefi -lgnuefi LOADLIBES += $(LIBGCC) --- -2.24.1 - diff --git a/0021-Add-.travis.yml.patch b/0021-Add-.travis.yml.patch index b4726bc..cf38161 100644 --- a/0021-Add-.travis.yml.patch +++ b/0021-Add-.travis.yml.patch @@ -1,7 +1,7 @@ -From 87cbb23de321f4fbc3d795ed5e40bcbeb833deaf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 16:49:36 -0400 -Subject: [PATCH 21/45] Add .travis.yml +Subject: [PATCH] Add .travis.yml Signed-off-by: Peter Jones --- @@ -32,6 +32,3 @@ index 00000000000..eb9be1e46f2 + +script: + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run vathpela/efi-ci-rawhide:v0 /bin/sh -c "cd /root/ && ./build.sh --branch \"$TRAVIS_BRANCH\" --commit \"$TRAVIS_COMMIT\" --commit-range \"$TRAVIS_COMMIT_RANGE\" --event-type \"$TRAVIS_EVENT_TYPE\" --pull-request \"$TRAVIS_PULL_REQUEST\" --pr-branch \"$TRAVIS_PULL_REQUEST_BRANCH\" --pr-sha \"$TRAVIS_PULL_REQUEST_SHA\" --remote \"$TRAVIS_PULL_REQUEST_SLUG\" --repo \"$TRAVIS_REPO_SLUG\" --test-subject gnu-efi" ; fi --- -2.24.1 - diff --git a/0022-Use-EFI-canonical-names-everywhere-the-compiler-does.patch b/0022-Use-EFI-canonical-names-everywhere-the-compiler-does.patch index df737ee..efecf53 100644 --- a/0022-Use-EFI-canonical-names-everywhere-the-compiler-does.patch +++ b/0022-Use-EFI-canonical-names-everywhere-the-compiler-does.patch @@ -1,8 +1,7 @@ -From 452e6edc834fcbc8eb033b85b48e27ff199058ec Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 1 May 2018 14:12:01 -0400 -Subject: [PATCH 22/45] Use EFI canonical names everywhere the compiler doesn't - care. +Subject: [PATCH] Use EFI canonical names everywhere the compiler doesn't care. Always use x64/X64 and aa64/AA64 unless the toolchain cares about "x86_64" or whatnot. @@ -12,36 +11,36 @@ defined in the UEFI specs. Signed-off-by: Peter Jones --- - Make.defaults | 39 +++++++++++++------ - README.gnuefi | 6 +-- - apps/Makefile | 6 +-- - gnuefi/Makefile | 6 +-- - .../{crt0-efi-aarch64.S => crt0-efi-aa64.S} | 2 +- - gnuefi/{crt0-efi-x86_64.S => crt0-efi-x64.S} | 2 +- - .../{elf_aarch64_efi.lds => elf_aa64_efi.lds} | 0 - .../{elf_x86_64_efi.lds => elf_x64_efi.lds} | 2 +- - ...6_64_fbsd_efi.lds => elf_x64_fbsd_efi.lds} | 2 +- - gnuefi/{reloc_aarch64.c => reloc_aa64.c} | 2 +- - gnuefi/{reloc_x86_64.c => reloc_x64.c} | 2 +- - inc/{aarch64 => aa64}/efibind.h | 3 ++ - inc/{aarch64 => aa64}/efilibplat.h | 0 - inc/{aarch64 => aa64}/efisetjmp_arch.h | 6 +-- - inc/efiapi.h | 5 ++- - inc/efidebug.h | 2 +- - inc/{x86_64 => x64}/efibind.h | 4 +- - inc/{x86_64 => x64}/efilibplat.h | 0 - inc/{x86_64 => x64}/efisetjmp_arch.h | 6 +-- - inc/{x86_64 => x64}/pe.h | 0 - lib/Makefile | 4 +- - lib/{aarch64 => aa64}/efi_stub.S | 0 - lib/{aarch64 => aa64}/initplat.c | 0 - lib/{aarch64 => aa64}/math.c | 0 - lib/{aarch64 => aa64}/setjmp.S | 0 - lib/{x86_64 => x64}/callwrap.c | 0 - lib/{x86_64 => x64}/efi_stub.S | 0 - lib/{x86_64 => x64}/initplat.c | 0 - lib/{x86_64 => x64}/math.c | 0 - lib/{x86_64 => x64}/setjmp.S | 0 + Make.defaults | 39 +++++++++++++++------- + README.gnuefi | 6 ++-- + apps/Makefile | 6 ++-- + gnuefi/Makefile | 6 ++-- + gnuefi/{crt0-efi-aarch64.S => crt0-efi-aa64.S} | 2 +- + gnuefi/{crt0-efi-x86_64.S => crt0-efi-x64.S} | 2 +- + gnuefi/{elf_aarch64_efi.lds => elf_aa64_efi.lds} | 0 + gnuefi/{elf_x86_64_efi.lds => elf_x64_efi.lds} | 2 +- + ...lf_x86_64_fbsd_efi.lds => elf_x64_fbsd_efi.lds} | 2 +- + gnuefi/{reloc_aarch64.c => reloc_aa64.c} | 2 +- + gnuefi/{reloc_x86_64.c => reloc_x64.c} | 2 +- + inc/{aarch64 => aa64}/efibind.h | 3 ++ + inc/{aarch64 => aa64}/efilibplat.h | 0 + inc/{aarch64 => aa64}/efisetjmp_arch.h | 6 ++-- + inc/efiapi.h | 5 ++- + inc/efidebug.h | 2 +- + inc/{x86_64 => x64}/efibind.h | 4 +-- + inc/{x86_64 => x64}/efilibplat.h | 0 + inc/{x86_64 => x64}/efisetjmp_arch.h | 6 ++-- + inc/{x86_64 => x64}/pe.h | 0 + lib/Makefile | 4 +-- + lib/{aarch64 => aa64}/efi_stub.S | 0 + lib/{aarch64 => aa64}/initplat.c | 0 + lib/{aarch64 => aa64}/math.c | 0 + lib/{aarch64 => aa64}/setjmp.S | 0 + lib/{x86_64 => x64}/callwrap.c | 0 + lib/{x86_64 => x64}/efi_stub.S | 0 + lib/{x86_64 => x64}/initplat.c | 0 + lib/{x86_64 => x64}/math.c | 0 + lib/{x86_64 => x64}/setjmp.S | 0 30 files changed, 60 insertions(+), 39 deletions(-) rename gnuefi/{crt0-efi-aarch64.S => crt0-efi-aa64.S} (98%) rename gnuefi/{crt0-efi-x86_64.S => crt0-efi-x64.S} (97%) @@ -481,6 +480,3 @@ diff --git a/lib/x86_64/setjmp.S b/lib/x64/setjmp.S similarity index 100% rename from lib/x86_64/setjmp.S rename to lib/x64/setjmp.S --- -2.24.1 - diff --git a/0023-Fix-a-minor-coverity-complaint-in-some-apps.patch b/0023-Fix-a-minor-coverity-complaint-in-some-apps.patch index 85795fb..0ef0000 100644 --- a/0023-Fix-a-minor-coverity-complaint-in-some-apps.patch +++ b/0023-Fix-a-minor-coverity-complaint-in-some-apps.patch @@ -1,7 +1,7 @@ -From 3219b3e5201a3dd207839c6cc234252b79be6caf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jun 2018 13:41:05 -0400 -Subject: [PATCH 23/45] Fix a minor coverity complaint in some apps +Subject: [PATCH] Fix a minor coverity complaint in some apps Coverity added a new kind of check, and it noticed some minor errors with some types in two of the apps here, both of the same form: @@ -54,6 +54,3 @@ index 53a255afbb9..ac50f4eafa9 100644 BufferSize = NumPixels * sizeof(UINT32); if (BufferSize == gop->Mode->FrameBufferSize) { CopySize = BufferSize; --- -2.24.1 - diff --git a/0030-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch b/0024-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch similarity index 69% rename from 0030-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch rename to 0024-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch index 5566808..816618d 100644 --- a/0030-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch +++ b/0024-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch @@ -1,7 +1,7 @@ -From 5139f7315ef5fee331ced3e851a8833f30aac656 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 Oct 2019 15:45:38 -0400 -Subject: [PATCH 30/45] Add stuff that's got weird characters to .gitattributes +Subject: [PATCH] Add stuff that's got weird characters to .gitattributes Some of these files will be removed in a later patch, but they need to stay in .gitattributes until after the next release, because they make @@ -9,22 +9,20 @@ patch application break in weird ways. Signed-off-by: Peter Jones --- - .gitattributes | 6 ++++++ - 1 file changed, 6 insertions(+) + .gitattributes | 7 +++++++ + 1 file changed, 7 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 -index 00000000000..d3a9be78dfa +index 00000000000..b9c1467125b --- /dev/null +++ b/.gitattributes -@@ -0,0 +1,6 @@ +@@ -0,0 +1,7 @@ +inc/inc.mak binary +inc/make.inf binary +inc/makefile.hdr binary ++inc/protocol/efidbg.h binary +inc/protocol/ia64/eficontext.h binary +inc/protocol/make.inf binary +inc/protocol/makefile.hdr binary --- -2.24.1 - diff --git a/0024-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch b/0024-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch deleted file mode 100644 index 6083caa..0000000 --- a/0024-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch +++ /dev/null @@ -1,312 +0,0 @@ -From 060258e1de84d1de3a5975bebe27575114220cdc Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 19 Jul 2018 13:12:44 -0400 -Subject: [PATCH 24/45] 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 ---- - inc/Makefile | 4 - - inc/protocol/efidbg.h | 210 --------------------------------- - inc/protocol/ia64/eficontext.h | Bin 5111 -> 0 bytes - inc/protocol/makefile.hdr | Bin 640 -> 0 bytes - 4 files changed, 214 deletions(-) - delete mode 100644 inc/protocol/efidbg.h - delete mode 100644 inc/protocol/ia64/eficontext.h - delete mode 100644 inc/protocol/makefile.hdr - -diff --git a/inc/Makefile b/inc/Makefile -index 273d30307ae..dd36bb0103d 100644 ---- a/inc/Makefile -+++ b/inc/Makefile -@@ -19,9 +19,5 @@ install: - $(INSTALL) -m 644 $(SRCDIR)/*.h $(INSTALLROOT)$(PREFIX)/include/efi - $(INSTALL) -m 644 $(SRCDIR)/protocol/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol - $(INSTALL) -m 644 $(SRCDIR)/$(ARCH)/*.h $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH) --ifeq ($(ARCH),ia64) -- mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64 -- $(INSTALL) -m 644 $(SRCDIR)/protocol/ia64/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64 --endif - - include $(SRCDIR)/../Make.rules -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 1a39a6db1e45c8bdf96348e5e2fa82567e61df89..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 5111 -zcmcIoU2mgE7JcqW`46|X4>R3zCjqB3lkF#L;{**c9>ATBRx1x5MH-C_2yimdYXAG3 -zTlll6);_IUO1myqr_MR|UMPI|@%)TF(zvYN>iqe8OFt(c$hf_|9gul-btNx4MJraA -zQdeaiwRu@w$gs6qkzCVIEgDh3h_t&Pulgd*o3_s54X>c6NNLju$_r}BO`QlCiSr_= -z-zY2Vbu*yXy!}pPE&ne!t%O;ZX`bbY+;%`wEvORpI&WK%QdO5Pd5SOX_o&4m0ie~Y -ze9enzO3EV5dFMvL@WQod|0xIZk8we#6dNkD9k--RF@MvvP}WA^%-~U6z6bzsosuX- -zRFrL=hykYL4XvP=aSq!{ou}MjOtOmdwWyE$GW&e6?~y?}K2V)*;NSm=5@!g|J9TN9 -zY}TS^Wdc~sB@$F(LQU(a6?Go1nnNOF2ASA#?vF$cFNmuqN?%0X<_#z6fWq4#VI0gv -z)NW8zTn$_`a8%mclv(?VT<+M(6k)Gw6}?GA4h0Y;e-`EIN~F(%fsZneoQ0gL&d3&m -zlhr20W;=9B#fw;#6)G!!qh9s13p)aN+i*hMPO&3Jw3a&haL}m2 -zz?C_*_1Q?om -zA-T?j6JlEE4Jf>~C0c(ec~g3@{qa4JtdZk7;gh5^b;23%H^qh)%`HE4#tYZ-X}$pW -zpo3$96DJtEmh)gwE(kQRHQ8V7SxCXX<+>Wd06ft<>abkL8o742AM{Qf-yVl7?C@<2 -z7s1jUP%yX04u7$~*>J=1p9XM7N(6Rb|GvOPOrVMNVBOgP{ro=+LXO4@-+o}?-c$kw -zi%}3d;Ucu@&hsYH`oQ+TI%7NdLaxWjn9?G!2iPUFm;k35#^Ex)j~0Q$7IwxX@4mm7 -zbIL!^z4r)@;Dd$boZkt_N_gT#dHxdvvmY`Y1A4r-5l7-@JB6Wdu{i;%X3Ux1PsP3{ -zqVPyB&FnkZxwB_un^}2`^ymck2Z?3*4p`oC;<(BlE$of@!Ty-X;<~R#6%EgkUUH^n -zO}+vL)H}a;0V*SKwp9d-U@^Ymrr^-!m*;2v?;m+qq#~oGJ$1Mq>~G=neu+4Oc_Dgn -zUUP}HmzO9r>(k9O_i-Yc2K^}hN<<}}neAI8@c811J0RS<>~G_FxU}4GISJhn0{hRk -zX5Iu@L*p!ur+(JV8~L{N+uTD-@8JwXGY`sae`dK$Zhlz=?+jBj4>?+bsXag7nL2(m -zD_nAwFCJt$@#f}@25(}I7I&wJ=B;Ml0^FRt85CP%)OG;8Ax<$p|EBZh)LOU)c9^Hr -zfqAIU`Q8-98*1=E>o+JK;U0!6={`f9&s?Ccy+ls-m_z9OaXIkQMf}y`{*FqLCmQLUxrm0DIs2VpXgf1?)SMcfn -z?kE^vPRFJ)9xCH&W&Bwg-zei>l<}|1_*NMkS870IXs8qom7}4OG*p&`O4Cqz8Y)pk -zWooKSO_iysGBs7ErpnY*nVKq7Q)OzZOih*PP-QyYF+ItBX8z0k_o@5Yupheahd%d1 -zH~r8r{m`%d&}~0tTxnv4CZ-W!XcQP435G_4p%GzdR2Ui=hDL{}(P3(Im>M0XMu(}< -zVQO@k8XcxahpEwFYIF=WI)+C&PO7S^w33-@2VK -AYXATM - -diff --git a/inc/protocol/makefile.hdr b/inc/protocol/makefile.hdr -deleted file mode 100644 -index 118d6ba3a08df254b3cf4eeecce923bdac063f3a..0000000000000000000000000000000000000000 -GIT binary patch -literal 0 -HcmV?d00001 - -literal 640 -zcmb7>PiurQ5XJ9;-(l){&_fschtfTGDC(BbMHlrbNYtpIF_CDO_1iaTcS}n_FyxS7 -z=J)3DVj3IM*g)3N5!A)daKub80cp^14lo7avAciQ;APi8Z33Xn7M#@>w_xPP` -z$(j6XH&XOUSam6HE?r*?v!rb|fm69~x7$4fAU+WWzL0}ZtEu2>)-+55MSc;4#}quU -zoonGjZW`K#?WDn5fub~fIUI@rC2mf6#Xf41lZNJl6qBd~)5QtPZMT+Vq{Y=-3Nfu` -zPYPvt9M_Y|ZC$qCoX+3|?ZL90V-oven#PH1f#-pR@WZ{el+YI&MgiLE*MiQ| +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 +--- + inc/Makefile | 4 ---- + inc/protocol/efidbg.h | Bin 6634 -> 0 bytes + inc/protocol/ia64/eficontext.h | Bin 5111 -> 0 bytes + inc/protocol/makefile.hdr | Bin 640 -> 0 bytes + 4 files changed, 4 deletions(-) + delete mode 100644 inc/protocol/efidbg.h + delete mode 100644 inc/protocol/ia64/eficontext.h + delete mode 100644 inc/protocol/makefile.hdr + +diff --git a/inc/Makefile b/inc/Makefile +index 273d30307ae..dd36bb0103d 100644 +--- a/inc/Makefile ++++ b/inc/Makefile +@@ -19,9 +19,5 @@ install: + $(INSTALL) -m 644 $(SRCDIR)/*.h $(INSTALLROOT)$(PREFIX)/include/efi + $(INSTALL) -m 644 $(SRCDIR)/protocol/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol + $(INSTALL) -m 644 $(SRCDIR)/$(ARCH)/*.h $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH) +-ifeq ($(ARCH),ia64) +- mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64 +- $(INSTALL) -m 644 $(SRCDIR)/protocol/ia64/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64 +-endif + + include $(SRCDIR)/../Make.rules +diff --git a/inc/protocol/efidbg.h b/inc/protocol/efidbg.h +deleted file mode 100644 +index 1f95a70bb42f7b2669fa362f80bc50fe2663aaa8..0000000000000000000000000000000000000000 +GIT binary patch +literal 0 +HcmV?d00001 + +literal 6634 +zcmcIpS##P*7k!3b(KUIPgaR95AZGH^NDWpEMvNr9RDD&9j2cH3j3`NXnNgUoeT~`2`6qVL>-Fla)oeEDo3V=J5)$D$2;JBZ +zR!7vzmrJI4L@bn%3?HPY+Uc7mJwJ*=|8_&-%w2hG6G`T;SQKo+xl}E;{>lxX*&+z< +zqdI%^A>DX` +zI-(MwQb8=b}hyB|lC;iRyGFv`7bAF;7S0V6^biIsb=JlGpJ2YC2$Y_%VvN7&24o1{dWSRuY7#N#P!4yw#`h785fh00W`o{eC!y)t^-yZO?6{DtTUjn +zvFWgpabY+RbIdwS5(Kv2lbHi{AuR12K)i2^4Ch9v92m}+)D57IvkA8xLz|Ac#U@i& +zZYwnMPB(0A#ElD~A2ApK#Y|j^vBT_hJ{leH7I<6E_7&8~;Qf(Ew82^3u!QE2SH+u# +z2*Souo!Jwi8T2Bq1wz5Cn>xZm{sGw*e@!8W?@Z?xd?;-8@r~dhJ=)X~7i6|MARK$z +zw;jWoI)V*NQ&&;9g>`9Y!v4ZWCgowkrnaaP(fu4W-DmZU~oxp)yftSLXulNclK*&#^cK#zwVhl;T_xT2VYs +z$yqiQ!;vu*V@;4vCIMX;w)jL)+%jO|kWxm~b;Y3>bp!1XBhQl8QXwPUNGvl3jO&+x +zf#E7vB#(-)jkJ0IVNbR5H2T@7KCV`)ANshziqc;j-<9~{0yoACML+uJZ3Xp^ru4%EoXMp?R1(mRK&m-&L~UldzGdd +zx~3R~r>#nIO@c7yo(H~+zHCW!+llm{d*9u77Wg~qQAq%I1Oac!xdgoo{6(P4b^P@W +zaR>7mxMtgovmMy-&xs2fdVasW?#6B(r1}0Hb{wpe9u-o2(9z7Iibi}MEHB*XTcM$E +znj^u-X|%04(&9+0+}ox6QmGstGs^*gX^x%D2EnrWgT0c)FK_2u7c@|36YiXsa*m=y +zbrfGRqqFC^bTJncX1`)Xg&bY@cNEPp2h1(0DVe)j(emxPDzUeWA)|EpFmbbz*|nym +zB6EOE-7qa3MAh{?wvvyG28ddedGdC1hec;hQ#2M^Yz^>;rbo3lP}UtC9c{S-Eh>!g +zqI!Ice=rIt%-*aO5@yjjmGYafqdPd&8tvAAH+q7%8~n7-JMB|V=dI2U +z!pMib@@QsHCu+2UJsndsN9=#q@2vTh!PW6ji1ci?7A`$|VBO{uZ>#$$-TPqR=2J(t +zB(l0{X?55SSe|hN)$SORh9(pl&zzfyDDqRiG!4D_u~vM?oT!h4^@)9~R=|_R2kOYg +z(;OojDRmIxy2>hq>>Jw=7eqUbxOQ00evV>!PvZhCri4C~R8kq(4tJ(@^&{T-#9%dQ +zv&7HIv(jDrbEaWF?Q`u^^KY8FT;5_K`14lpDJj`Zs(!(4>b3_Ad)qKJZ^8|m*qT=5Z=!B47<#nKA +zCVRk+BUmK_`Bsra{0_S~Dx{riI?%t!N?MajUD7{KMw-r|`&PhJ1d3b5SX1>np*zP6 +z{e!&{#2so=wB`r2KS-HP^m$vH>8-};S?8?LJ`q}jx6V!)t#12spZB`mrrtcjY>L$k +zbGA)v*BKfJ>zV-RNtpEHExMnb(7n}FUp~`a(c5)TwRD@*qBlWoEYEY5{5!-W#jF8K +zuze6tsWSJ9BQv=~9u>tNc~z!N`d)opFR7#Kysa`(m=9W7lP0uXBsYJnRBHXrVj)A@ +z|0iW&k|!R|Wp-ckKELMEm4z+UPdl~4!9VL1nEoey%9ho6-S4Hg%pLDyjy;5QCG#e6 +z9AJ)}vgEp28(LU^6~lW=MulAoU17bOF1q)eQw5$vMG{M)(!k#{|IoOfa?4TMhHNQX +zqJeJfOz_@kFo4$THrm~0r_tA%tp;zmc)Qo_oqX2ymuMizRqF!F9PP3~2Cl|D@YNG4 +z)aX~-pr}Eud9GWuwz+QOOtE?0RreD`6S}TQ0gJRTPB{L+K@EF>Rr+dI3ZJGfk$;#&%M +zhF+;8JGWepY=3d1SIM?*x%htC2pP4XZP(sSZ$*G9Gg*+S8vgU#yd3Ow-}nng5C21> +z%X3f0(J$FtsqNZ)m~)HpW}(gN_tz-+6~Om0aY2ecAL1_z`w +zr>I_(d>WNK;oUr;R);b!qzk&=JGVhq*Dmm13Hy9rSf1ID2RE5WXi$`QocZp*I43Hd +aHI!CssuET24>&yb7wouJI-_E>R3zCjqB3lkF#L;{**c9>ATBRx1x5MH-C_2yimdYXAG3 +zTlll6);_IUO1myqr_MR|UMPI|@%)TF(zvYN>iqe8OFt(c$hf_|9gul-btNx4MJraA +zQdeaiwRu@w$gs6qkzCVIEgDh3h_t&Pulgd*o3_s54X>c6NNLju$_r}BO`QlCiSr_= +z-zY2Vbu*yXy!}pPE&ne!t%O;ZX`bbY+;%`wEvORpI&WK%QdO5Pd5SOX_o&4m0ie~Y +ze9enzO3EV5dFMvL@WQod|0xIZk8we#6dNkD9k--RF@MvvP}WA^%-~U6z6bzsosuX- +zRFrL=hykYL4XvP=aSq!{ou}MjOtOmdwWyE$GW&e6?~y?}K2V)*;NSm=5@!g|J9TN9 +zY}TS^Wdc~sB@$F(LQU(a6?Go1nnNOF2ASA#?vF$cFNmuqN?%0X<_#z6fWq4#VI0gv +z)NW8zTn$_`a8%mclv(?VT<+M(6k)Gw6}?GA4h0Y;e-`EIN~F(%fsZneoQ0gL&d3&m +zlhr20W;=9B#fw;#6)G!!qh9s13p)aN+i*hMPO&3Jw3a&haL}m2 +zz?C_*_1Q?om +zA-T?j6JlEE4Jf>~C0c(ec~g3@{qa4JtdZk7;gh5^b;23%H^qh)%`HE4#tYZ-X}$pW +zpo3$96DJtEmh)gwE(kQRHQ8V7SxCXX<+>Wd06ft<>abkL8o742AM{Qf-yVl7?C@<2 +z7s1jUP%yX04u7$~*>J=1p9XM7N(6Rb|GvOPOrVMNVBOgP{ro=+LXO4@-+o}?-c$kw +zi%}3d;Ucu@&hsYH`oQ+TI%7NdLaxWjn9?G!2iPUFm;k35#^Ex)j~0Q$7IwxX@4mm7 +zbIL!^z4r)@;Dd$boZkt_N_gT#dHxdvvmY`Y1A4r-5l7-@JB6Wdu{i;%X3Ux1PsP3{ +zqVPyB&FnkZxwB_un^}2`^ymck2Z?3*4p`oC;<(BlE$of@!Ty-X;<~R#6%EgkUUH^n +zO}+vL)H}a;0V*SKwp9d-U@^Ymrr^-!m*;2v?;m+qq#~oGJ$1Mq>~G=neu+4Oc_Dgn +zUUP}HmzO9r>(k9O_i-Yc2K^}hN<<}}neAI8@c811J0RS<>~G_FxU}4GISJhn0{hRk +zX5Iu@L*p!ur+(JV8~L{N+uTD-@8JwXGY`sae`dK$Zhlz=?+jBj4>?+bsXag7nL2(m +zD_nAwFCJt$@#f}@25(}I7I&wJ=B;Ml0^FRt85CP%)OG;8Ax<$p|EBZh)LOU)c9^Hr +zfqAIU`Q8-98*1=E>o+JK;U0!6={`f9&s?Ccy+ls-m_z9OaXIkQMf}y`{*FqLCmQLUxrm0DIs2VpXgf1?)SMcfn +z?kE^vPRFJ)9xCH&W&Bwg-zei>l<}|1_*NMkS870IXs8qom7}4OG*p&`O4Cqz8Y)pk +zWooKSO_iysGBs7ErpnY*nVKq7Q)OzZOih*PP-QyYF+ItBX8z0k_o@5Yupheahd%d1 +zH~r8r{m`%d&}~0tTxnv4CZ-W!XcQP435G_4p%GzdR2Ui=hDL{}(P3(Im>M0XMu(}< +zVQO@k8XcxahpEwFYIF=WI)+C&PO7S^w33-@2VK +AYXATM + +diff --git a/inc/protocol/makefile.hdr b/inc/protocol/makefile.hdr +deleted file mode 100644 +index 118d6ba3a08df254b3cf4eeecce923bdac063f3a..0000000000000000000000000000000000000000 +GIT binary patch +literal 0 +HcmV?d00001 + +literal 640 +zcmb7>PiurQ5XJ9;-(l){&_fschtfTGDC(BbMHlrbNYtpIF_CDO_1iaTcS}n_FyxS7 +z=J)3DVj3IM*g)3N5!A)daKub80cp^14lo7avAciQ;APi8Z33Xn7M#@>w_xPP` +z$(j6XH&XOUSam6HE?r*?v!rb|fm69~x7$4fAU+WWzL0}ZtEu2>)-+55MSc;4#}quU +zoonGjZW`K#?WDn5fub~fIUI@rC2mf6#Xf41lZNJl6qBd~)5QtPZMT+Vq{Y=-3Nfu` +zPYPvt9M_Y|ZC$qCoX+3|?ZL90V-oven#PH1f#-pR@WZ{el+YI&MgiLE*MiQ| Date: Fri, 25 Oct 2019 15:37:17 -0400 -Subject: [PATCH 31/45] Get rid of unused make-like files from yore. +Subject: [PATCH] Get rid of unused make-like files from yore. These files are all edk2-like makefile snippets, and we don't use any of them for anything. They've also got DOS line endings and things like @@ -73,6 +73,3 @@ literal 113 zcmY%9JgqO;1d&Ov=wM0dvFB6P Date: Fri, 23 Aug 2019 16:23:21 -0400 -Subject: [PATCH 25/45] Make ELF constructors and destructors work. +Subject: [PATCH] Make ELF constructors and destructors work. This makes setup and teardown functions defined with __attribute__((__constructor__) and __attribute__((__destructor__)) work @@ -25,33 +25,45 @@ A couple of notes: - No attempt is made to handle any constructor or destructor with a prototype other than "void func(void);", but note that InitializeLib has been called, so LibImageHandle, ST, BS, and RT are set. +- The init_array/ctor/dtor/fini_array lists aren't the using the GNU + "CONSTRUCTOR" output section command, so they don't start with a size. +- The lists are individually sorted during the link stage via + SORT_BY_NAME() in the linker script. +- The default (empty) init_array/ctor/dtor/fini_array lists are padded + out to 8-byte alignment with ".p2align 3, 0", and each list always has + at least one ".long 0" at the end of it (even if it's completely + empty). As a result, they can have NULLs that need to be skipped. + The sections they're in are mergeable, so the NULLs don't have to be + exclusively at the end. - The ia64 and mips64el arches have not been tested. Signed-off-by: Peter Jones --- apps/Makefile | 5 ++- - apps/ctors_fns.c | 26 ++++++++++++ - apps/ctors_test.c | 20 +++++++++ + apps/ctors_fns.c | 26 +++++++++++++ + apps/ctors_test.c | 20 ++++++++++ gnuefi/crt0-efi-aa64.S | 2 +- gnuefi/crt0-efi-arm.S | 2 +- gnuefi/crt0-efi-ia32.S | 8 ++-- gnuefi/crt0-efi-ia64.S | 2 +- gnuefi/crt0-efi-mips64el.S | 4 +- gnuefi/crt0-efi-x64.S | 2 +- - gnuefi/elf_aa64_efi.lds | 15 +++++++ - gnuefi/elf_arm_efi.lds | 14 ++++++ - gnuefi/elf_ia32_efi.lds | 15 +++++++ - gnuefi/elf_ia32_fbsd_efi.lds | 15 +++++++ - gnuefi/elf_ia64_efi.lds | 15 +++++++ - gnuefi/elf_mips64el_efi.lds | 14 ++++++ - gnuefi/elf_x64_efi.lds | 16 +++++++ - gnuefi/elf_x64_fbsd_efi.lds | 15 +++++++ - lib/Makefile | 4 +- - lib/entry.c | 58 +++++++++++++++++++++++++ - lib/init.c | 82 ++++++++++++++++++------------------ - 20 files changed, 281 insertions(+), 53 deletions(-) + gnuefi/elf_aa64_efi.lds | 21 +++++++++++ + gnuefi/elf_arm_efi.lds | 20 ++++++++++ + gnuefi/elf_ia32_efi.lds | 21 +++++++++++ + gnuefi/elf_ia32_fbsd_efi.lds | 21 +++++++++++ + gnuefi/elf_ia64_efi.lds | 21 +++++++++++ + gnuefi/elf_mips64el_efi.lds | 20 ++++++++++ + gnuefi/elf_x64_efi.lds | 22 +++++++++++ + gnuefi/elf_x64_fbsd_efi.lds | 21 +++++++++++ + lib/Makefile | 6 +-- + lib/ctors.S | 43 ++++++++++++++++++++++ + lib/entry.c | 67 ++++++++++++++++++++++++++++++++++ + lib/init.c | 87 +++++++++++++++++++++----------------------- + 21 files changed, 381 insertions(+), 60 deletions(-) create mode 100644 apps/ctors_fns.c create mode 100644 apps/ctors_test.c + create mode 100644 lib/ctors.S create mode 100644 lib/entry.c diff --git a/apps/Makefile b/apps/Makefile @@ -225,13 +237,19 @@ index 6533af7461f..3fe361b7ffd 100644 .exit: diff --git a/gnuefi/elf_aa64_efi.lds b/gnuefi/elf_aa64_efi.lds -index 836d98255d8..7220636e40c 100644 +index 836d98255d8..161f5fc5641 100644 --- a/gnuefi/elf_aa64_efi.lds +++ b/gnuefi/elf_aa64_efi.lds -@@ -26,6 +26,20 @@ SECTIONS +@@ -26,6 +26,26 @@ SECTIONS *(.got.plt) *(.got) ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -249,7 +267,7 @@ index 836d98255d8..7220636e40c 100644 /* the EFI loader doesn't seem to like a .bss section, so we stick it all into .data: */ . = ALIGN(16); -@@ -36,6 +50,7 @@ SECTIONS +@@ -36,6 +56,7 @@ SECTIONS *(.bss) *(COMMON) . = ALIGN(16); @@ -258,13 +276,19 @@ index 836d98255d8..7220636e40c 100644 } diff --git a/gnuefi/elf_arm_efi.lds b/gnuefi/elf_arm_efi.lds -index 665bbdbf065..f891921e58f 100644 +index 665bbdbf065..f93f39bc384 100644 --- a/gnuefi/elf_arm_efi.lds +++ b/gnuefi/elf_arm_efi.lds -@@ -26,6 +26,20 @@ SECTIONS +@@ -26,6 +26,26 @@ SECTIONS *(.got.plt) *(.got) ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -283,14 +307,20 @@ index 665bbdbf065..f891921e58f 100644 it all into .data: */ . = ALIGN(16); diff --git a/gnuefi/elf_ia32_efi.lds b/gnuefi/elf_ia32_efi.lds -index f27fe5fc6e6..739c370c9eb 100644 +index f27fe5fc6e6..4b7e3f1df39 100644 --- a/gnuefi/elf_ia32_efi.lds +++ b/gnuefi/elf_ia32_efi.lds -@@ -40,6 +40,21 @@ SECTIONS +@@ -40,6 +40,27 @@ SECTIONS *(.sdata) *(.got.plt) *(.got) + ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -309,14 +339,20 @@ index f27fe5fc6e6..739c370c9eb 100644 it all into .data: */ *(.sbss) diff --git a/gnuefi/elf_ia32_fbsd_efi.lds b/gnuefi/elf_ia32_fbsd_efi.lds -index cd309e24f7f..33c38a0b2d0 100644 +index cd309e24f7f..9e9baec2aca 100644 --- a/gnuefi/elf_ia32_fbsd_efi.lds +++ b/gnuefi/elf_ia32_fbsd_efi.lds -@@ -40,6 +40,21 @@ SECTIONS +@@ -40,6 +40,27 @@ SECTIONS *(.sdata) *(.got.plt) *(.got) + ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -335,14 +371,20 @@ index cd309e24f7f..33c38a0b2d0 100644 it all into .data: */ *(.sbss) diff --git a/gnuefi/elf_ia64_efi.lds b/gnuefi/elf_ia64_efi.lds -index 190792a0c94..5afd6443722 100644 +index 190792a0c94..2cda0dd97c7 100644 --- a/gnuefi/elf_ia64_efi.lds +++ b/gnuefi/elf_ia64_efi.lds -@@ -39,6 +39,21 @@ SECTIONS +@@ -39,6 +39,27 @@ SECTIONS *(.data*) *(.gnu.linkonce.d*) *(.plabel) /* data whose relocs we want to ignore */ + ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -361,13 +403,19 @@ index 190792a0c94..5afd6443722 100644 it all into .data: */ *(.dynbss) diff --git a/gnuefi/elf_mips64el_efi.lds b/gnuefi/elf_mips64el_efi.lds -index 4d1a077d8f8..cc0eee3bdcd 100644 +index 4d1a077d8f8..0e68084d103 100644 --- a/gnuefi/elf_mips64el_efi.lds +++ b/gnuefi/elf_mips64el_efi.lds -@@ -27,6 +27,20 @@ SECTIONS +@@ -27,6 +27,26 @@ SECTIONS HIDDEN (_gp = ALIGN (16) + 0x7ff0); *(.got) ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -386,7 +434,7 @@ index 4d1a077d8f8..cc0eee3bdcd 100644 it all into .data: */ . = ALIGN(16); diff --git a/gnuefi/elf_x64_efi.lds b/gnuefi/elf_x64_efi.lds -index c7a105898c8..356e63bb8a7 100644 +index c7a105898c8..cb2e3dc00aa 100644 --- a/gnuefi/elf_x64_efi.lds +++ b/gnuefi/elf_x64_efi.lds @@ -30,6 +30,7 @@ SECTIONS @@ -397,11 +445,17 @@ index c7a105898c8..356e63bb8a7 100644 . = ALIGN(4096); .data : { -@@ -39,6 +40,21 @@ SECTIONS +@@ -39,6 +40,27 @@ SECTIONS *(.got) *(.data*) *(.sdata) + ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -420,14 +474,20 @@ index c7a105898c8..356e63bb8a7 100644 it all into .data: */ *(.sbss) diff --git a/gnuefi/elf_x64_fbsd_efi.lds b/gnuefi/elf_x64_fbsd_efi.lds -index 705719bf68b..e371e5b784f 100644 +index 705719bf68b..192aa065d8c 100644 --- a/gnuefi/elf_x64_fbsd_efi.lds +++ b/gnuefi/elf_x64_fbsd_efi.lds -@@ -36,6 +36,21 @@ SECTIONS +@@ -36,6 +36,27 @@ SECTIONS *(.got) *(.data*) *(.sdata) + ++ /* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ + . = ALIGN(16); + _init_array = .; + *(SORT_BY_NAME(.init_array)) @@ -446,7 +506,7 @@ index 705719bf68b..e371e5b784f 100644 it all into .data: */ *(.sbss) diff --git a/lib/Makefile b/lib/Makefile -index 8bf94000e33..1c2ff1db89a 100644 +index 8bf94000e33..e7eafc01f1e 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -43,8 +43,8 @@ include $(SRCDIR)/../Make.defaults @@ -460,12 +520,70 @@ index 8bf94000e33..1c2ff1db89a 100644 misc print sread str cmdline \ runtime/rtlock runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata \ $(ARCH)/initplat $(ARCH)/math $(ARCH)/setjmp +@@ -62,7 +62,7 @@ FILES += $(ARCH)/uldiv $(ARCH)/ldivmod $(ARCH)/div $(ARCH)/llsl $(ARCH)/llsr \ + $(ARCH)/mullu + endif + +-OBJS = $(FILES:%=%.o) ++OBJS = $(FILES:%=%.o) ctors.o + + SUBDIRS = ia32 x64 ia64 aa64 arm mips64el runtime + +diff --git a/lib/ctors.S b/lib/ctors.S +new file mode 100644 +index 00000000000..522d31b90d2 +--- /dev/null ++++ b/lib/ctors.S +@@ -0,0 +1,43 @@ ++/* ++ * Try to define the minimal empty init/ctor/dtor/fini_arrays so building with ++ * older or out-of-tree linker scripts will still work. ++ */ ++/* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ ++ .section .init_array, "aM", @init_array ++ .p2align 3, 0 ++ .globl _init_array ++_init_array: ++ .p2align 3, 0 ++ .globl _init_array_end ++_init_array_end: ++ .long 0 ++ .section .ctors, "aM", @init_array ++ .p2align 3, 0 ++ .globl __CTOR_LIST__ ++__CTOR_LIST__: ++ .p2align 3, 0 ++ .globl __CTOR_END__ ++__CTOR_END__: ++ .long 0 ++ .section .dtors, "aM", @fini_array ++ .p2align 3, 0 ++ .globl __DTOR_LIST__ ++__DTOR_LIST__: ++ .p2align 3, 0 ++ .globl __DTOR_END__ ++__DTOR_END__: ++ .long 0 ++ .section .fini_array, "aM", @fini_array ++ .p2align 3, 0 ++ .globl _fini_array ++_fini_array: ++ .p2align 3, 0 ++ .globl _fini_array_end ++_fini_array_end: ++ .long 0 ++ diff --git a/lib/entry.c b/lib/entry.c new file mode 100644 -index 00000000000..79d00025eda +index 00000000000..d8526084602 --- /dev/null +++ b/lib/entry.c -@@ -0,0 +1,58 @@ +@@ -0,0 +1,67 @@ +/* + * ctors.c + * Copyright 2019 Peter Jones @@ -475,6 +593,12 @@ index 00000000000..79d00025eda +#include +#include + ++/* ++ * Note that these aren't the using the GNU "CONSTRUCTOR" output section ++ * command, so they don't start with a size. Because of p2align and the ++ * end/END definitions, and the fact that they're mergeable, they can also ++ * have NULLs which aren't guaranteed to be at the end. ++ */ +extern UINTN _init_array, _init_array_end; +extern UINTN __CTOR_LIST__, __CTOR_END__; +extern UINTN _fini_array, _fini_array_end; @@ -486,26 +610,29 @@ index 00000000000..79d00025eda +{ + for (funcp *location = (void *)&_init_array; location < (funcp *)&_init_array_end; location++) { + funcp func = *location; -+ func(); ++ if (location != NULL) ++ func(); + } + + for (funcp *location = (void *)&__CTOR_LIST__; location < (funcp *)&__CTOR_END__; location++) { + funcp func = *location; -+ func(); ++ if (location != NULL) ++ func(); + } -+ +} + +static void dtors(void) +{ + for (funcp *location = (void *)&__DTOR_LIST__; location < (funcp *)&__DTOR_END__; location++) { + funcp func = *location; -+ func(); ++ if (location != NULL) ++ func(); + } + + for (funcp *location = (void *)&_fini_array; location < (funcp *)&_fini_array_end; location++) { + funcp func = *location; -+ func(); ++ if (location != NULL) ++ func(); + } +} + @@ -525,10 +652,10 @@ index 00000000000..79d00025eda + +// vim:fenc=utf-8:tw=75:noet diff --git a/lib/init.c b/lib/init.c -index 4f238c0a2cc..c3df3ee8879 100644 +index 4f238c0a2cc..726e493919a 100644 --- a/lib/init.c +++ b/lib/init.c -@@ -46,57 +46,59 @@ Returns: +@@ -46,57 +46,52 @@ Returns: EFI_STATUS Status; CHAR8 *LangCode; @@ -536,42 +663,21 @@ index 4f238c0a2cc..c3df3ee8879 100644 - LibInitialized = TRUE; - LibFwInstance = FALSE; - LibImageHandle = ImageHandle; -+ if (LibInitialized) -+ return; - -+ LibInitialized = TRUE; -+ LibFwInstance = FALSE; -+ LibImageHandle = ImageHandle; - +- +- - // - // Set up global pointer to the system table, boot services table, - // and runtime services table - // -+ // -+ // Set up global pointer to the system table, boot services table, -+ // and runtime services table -+ // - +- - ST = SystemTable; - BS = SystemTable->BootServices; - RT = SystemTable->RuntimeServices; -// ASSERT (CheckCrc(0, &ST->Hdr)); -// ASSERT (CheckCrc(0, &BS->Hdr)); -// ASSERT (CheckCrc(0, &RT->Hdr)); -+ ST = SystemTable; -+ BS = SystemTable->BootServices; -+ RT = SystemTable->RuntimeServices; -+ // ASSERT (CheckCrc(0, &ST->Hdr)); -+ // ASSERT (CheckCrc(0, &BS->Hdr)); -+ // ASSERT (CheckCrc(0, &RT->Hdr)); - -+ ST = SystemTable; -+ BS = SystemTable->BootServices; -+ RT = SystemTable->RuntimeServices; -+ // ASSERT (CheckCrc(0, &ST->Hdr)); -+ // ASSERT (CheckCrc(0, &BS->Hdr)); -+ // ASSERT (CheckCrc(0, &RT->Hdr)); - +- +- - // - // Initialize pool allocation type - // @@ -596,11 +702,31 @@ index 4f238c0a2cc..c3df3ee8879 100644 - // - - InitializeGuid(); +- +- InitializeLibPlatform(ImageHandle,SystemTable); ++ if (LibInitialized) ++ return; ++ ++ LibInitialized = TRUE; ++ LibFwInstance = FALSE; ++ LibImageHandle = ImageHandle; ++ ++ // ++ // Set up global pointer to the system table, boot services table, ++ // and runtime services table ++ // ++ ++ ST = SystemTable; ++ BS = SystemTable->BootServices; ++ RT = SystemTable->RuntimeServices; ++ // ASSERT (CheckCrc(0, &ST->Hdr)); ++ // ASSERT (CheckCrc(0, &BS->Hdr)); ++ // ASSERT (CheckCrc(0, &RT->Hdr)); ++ + // + // Initialize pool allocation type + // - -- InitializeLibPlatform(ImageHandle,SystemTable); ++ + if (ImageHandle) { + Status = uefi_call_wrapper( + BS->HandleProtocol, @@ -628,6 +754,3 @@ index 4f238c0a2cc..c3df3ee8879 100644 if (ImageHandle && UnicodeInterface == &LibStubUnicodeInterface) { LangCode = LibGetVariable (VarLanguage, &EfiGlobalVariable); InitializeUnicodeSupport (LangCode); --- -2.24.1 - diff --git a/0026-Remove-the-accidental-lib-Makefile.orig.patch b/0028-Remove-the-accidental-lib-Makefile.orig.patch similarity index 95% rename from 0026-Remove-the-accidental-lib-Makefile.orig.patch rename to 0028-Remove-the-accidental-lib-Makefile.orig.patch index 95004bb..4fbd451 100644 --- a/0026-Remove-the-accidental-lib-Makefile.orig.patch +++ b/0028-Remove-the-accidental-lib-Makefile.orig.patch @@ -1,11 +1,11 @@ -From 5695f90080b20ff4911a5a18f4c4a7dcd4e2b237 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 14 Nov 2019 10:08:08 -0500 -Subject: [PATCH 26/45] Remove the accidental lib/Makefile.orig +Subject: [PATCH] Remove the accidental lib/Makefile.orig Signed-off-by: Peter Jones --- - lib/Makefile.orig | 91 ----------------------------------------------- + lib/Makefile.orig | 91 ------------------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 lib/Makefile.orig @@ -106,6 +106,3 @@ index 65aa8ca5df2..00000000000 -include $(SRCDIR)/../Make.rules - -.PHONY: libsubdirs --- -2.24.1 - diff --git a/0027-gitignore-add-our-build-directories.patch b/0029-gitignore-add-our-build-directories.patch similarity index 73% rename from 0027-gitignore-add-our-build-directories.patch rename to 0029-gitignore-add-our-build-directories.patch index bba4478..e9e3771 100644 --- a/0027-gitignore-add-our-build-directories.patch +++ b/0029-gitignore-add-our-build-directories.patch @@ -1,7 +1,7 @@ -From 217acd337cbdfd466978124049e42fa973edf6f4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 13 Nov 2019 13:38:20 -0500 -Subject: [PATCH 27/45] gitignore: add our build directories. +Subject: [PATCH] gitignore: add our build directories. Signed-off-by: Peter Jones --- @@ -22,6 +22,3 @@ index 970b638e0c0..014f7d02f46 100644 +ia64 +mips64el +x64 --- -2.24.1 - diff --git a/0028-make-Fix-shell-exit-status-handling.patch b/0030-make-Fix-shell-exit-status-handling.patch similarity index 88% rename from 0028-make-Fix-shell-exit-status-handling.patch rename to 0030-make-Fix-shell-exit-status-handling.patch index 48a6f20..236eebf 100644 --- a/0028-make-Fix-shell-exit-status-handling.patch +++ b/0030-make-Fix-shell-exit-status-handling.patch @@ -1,7 +1,7 @@ -From 3b79571d75d46b5c7101ee0ae508a4eac6378103 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 14 Nov 2019 09:54:39 -0500 -Subject: [PATCH 28/45] make: Fix shell exit status handling. +Subject: [PATCH] make: Fix shell exit status handling. Right now whenever we have shell commands with loops, errors in the middle are accidentally ignored, and make continues to process commands. @@ -36,7 +36,7 @@ index 84f07d33a48..a461a5c3483 100644 $(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d install; done diff --git a/lib/Makefile b/lib/Makefile -index 1c2ff1db89a..4847f4d7a86 100644 +index e7eafc01f1e..6fd472ad1ac 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -72,7 +72,7 @@ all: libsubdirs libefi.a @@ -48,6 +48,3 @@ index 1c2ff1db89a..4847f4d7a86 100644 libefi.a: $(OBJS) $(AR) $(ARFLAGS) $@ $^ --- -2.24.1 - diff --git a/0029-make-Make-make-clean-use-and-rm-v-everywhere.patch b/0031-make-Make-make-clean-use-and-rm-v-everywhere.patch similarity index 91% rename from 0029-make-Make-make-clean-use-and-rm-v-everywhere.patch rename to 0031-make-Make-make-clean-use-and-rm-v-everywhere.patch index ffac0a6..2742d93 100644 --- a/0029-make-Make-make-clean-use-and-rm-v-everywhere.patch +++ b/0031-make-Make-make-clean-use-and-rm-v-everywhere.patch @@ -1,7 +1,7 @@ -From ad5579d29986631c34f36c633dd202b3dea9d448 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 14 Nov 2019 09:55:07 -0500 -Subject: [PATCH 29/45] make: Make "make clean" use @ and rm -v everywhere +Subject: [PATCH] make: Make "make clean" use @ and rm -v everywhere This makes our "make clean" commands show what they've /removed/, rather than what the shell code that will be run is. @@ -71,12 +71,12 @@ index df67ee83911..09b40cc421e 100644 install: mkdir -p $(INSTALLROOT)$(LIBDIR) diff --git a/lib/Makefile b/lib/Makefile -index 4847f4d7a86..0e950db9c0c 100644 +index 6fd472ad1ac..4a7619aaacf 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -64,7 +64,7 @@ endif - OBJS = $(FILES:%=%.o) + OBJS = $(FILES:%=%.o) ctors.o -SUBDIRS = ia32 x64 ia64 aa64 arm mips64el runtime +SUBDIRS = $(ARCHES) runtime @@ -92,6 +92,3 @@ index 4847f4d7a86..0e950db9c0c 100644 $(LIBDIRINSTALL): mkdir -p $@ --- -2.24.1 - diff --git a/0032-Make-our-dummy-.reloc-sections-not-depend-on-section.patch b/0032-Make-our-dummy-.reloc-sections-not-depend-on-section.patch index 78227c3..d7f7072 100644 --- a/0032-Make-our-dummy-.reloc-sections-not-depend-on-section.patch +++ b/0032-Make-our-dummy-.reloc-sections-not-depend-on-section.patch @@ -1,8 +1,7 @@ -From 6eb63b104e77f9244a31d183cbe34e929afe1975 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 30 Sep 2019 14:29:45 -0400 -Subject: [PATCH 32/45] Make our dummy .reloc sections not depend on section - order. +Subject: [PATCH] Make our dummy .reloc sections not depend on section order. Currently on x64 we manually build a dummy .reloc table entry by using a symbol in .text and subtracting its address from another symbol that's @@ -78,6 +77,3 @@ index 3fe361b7ffd..5c86cde12e8 100644 + .long 10 // Block Size (2*4+2) .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy --- -2.24.1 - diff --git a/0033-Make-CHAR8-and-similar-be-defined-the-same-way-edk2-.patch b/0033-Make-CHAR8-and-similar-be-defined-the-same-way-edk2-.patch index 26b63fc..8768787 100644 --- a/0033-Make-CHAR8-and-similar-be-defined-the-same-way-edk2-.patch +++ b/0033-Make-CHAR8-and-similar-be-defined-the-same-way-edk2-.patch @@ -1,8 +1,7 @@ -From 75e454f76846808e6b81c39c273d85b70afb330b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Aug 2019 13:44:15 -0400 -Subject: [PATCH 33/45] Make CHAR8 and similar be defined the same way edk2 - does it. +Subject: [PATCH] Make CHAR8 and similar be defined the same way edk2 does it. Signed-off-by: Peter Jones --- @@ -128,7 +127,7 @@ diff --git a/inc/ia64/efibind.h b/inc/ia64/efibind.h index 3ace8d59190..ebe8cac3e94 100644 --- a/inc/ia64/efibind.h +++ b/inc/ia64/efibind.h -@@ -74,18 +74,25 @@ Revision History +@@ -74,19 +74,26 @@ Revision History #ifndef __WCHAR_TYPE__ # define __WCHAR_TYPE__ short #endif @@ -150,12 +149,13 @@ index 3ace8d59190..ebe8cac3e94 100644 typedef uint8_t UINT8; +typedef char CHAR8; typedef int8_t INT8; --typedef __WCHAR_TYPE__ WCHAR; - -+typedef __WCHAR_TYPE__ WCHAR; ++ + typedef __WCHAR_TYPE__ WCHAR; +- #undef VOID #define VOID void + diff --git a/inc/mips64el/efibind.h b/inc/mips64el/efibind.h index 1f08cd346d0..e26c51904ee 100644 --- a/inc/mips64el/efibind.h @@ -202,6 +202,3 @@ index 2750ab9be7d..e7feed9dbe4 100644 typedef __WCHAR_TYPE__ WCHAR; #undef VOID --- -2.24.1 - diff --git a/0034-Make-make-TOPDIR-actually-work-and-get-rid-of-unused.patch b/0034-Make-make-TOPDIR-actually-work-and-get-rid-of-unused.patch index df40b85..f5d3c8f 100644 --- a/0034-Make-make-TOPDIR-actually-work-and-get-rid-of-unused.patch +++ b/0034-Make-make-TOPDIR-actually-work-and-get-rid-of-unused.patch @@ -1,17 +1,16 @@ -From ecf4e093f27902ef42d56b48db3fd583e9a0c62a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 Oct 2019 15:36:18 -0400 -Subject: [PATCH 34/45] Make: make TOPDIR actually work and get rid of unused - CDIR +Subject: [PATCH] Make: make TOPDIR actually work and get rid of unused CDIR Signed-off-by: Peter Jones --- Make.defaults | 2 +- - apps/Makefile | 4 +--- - gnuefi/Makefile | 4 +--- + apps/Makefile | 6 ++---- + gnuefi/Makefile | 6 ++---- inc/Makefile | 5 +---- lib/Makefile | 2 +- - 5 files changed, 5 insertions(+), 12 deletions(-) + 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/Make.defaults b/Make.defaults index b8a3e07b681..696028dd6c2 100755 @@ -34,13 +33,14 @@ index 04cf251cb2f..3b96f153a23 100644 SRCDIR = . VPATH = $(SRCDIR) -+TOPDIR = $(SRCDIR)/.. - - include $(SRCDIR)/../Make.defaults - --TOPDIR = $(SRCDIR)/.. - +-include $(SRCDIR)/../Make.defaults +- + TOPDIR = $(SRCDIR)/.. + -CDIR=$(TOPDIR)/.. ++include $(SRCDIR)/../Make.defaults ++ LINUX_HEADERS = /usr/src/sys/build CPPFLAGS += -D__KERNEL__ -I$(LINUX_HEADERS)/include CRTOBJS = $(TOPDIR)/$(ARCH)/gnuefi/crt0-efi-$(ARCH).o @@ -52,13 +52,14 @@ index 09b40cc421e..bea629b0b29 100644 SRCDIR = . VPATH = $(SRCDIR) -+TOPDIR = $(SRCDIR)/.. - - include $(SRCDIR)/../Make.defaults - --TOPDIR = $(SRCDIR)/.. - +-include $(SRCDIR)/../Make.defaults +- + TOPDIR = $(SRCDIR)/.. + -CDIR=$(TOPDIR)/.. ++include $(SRCDIR)/../Make.defaults ++ FILES = reloc_$(ARCH) OBJS = $(FILES:%=%.o) @@ -81,7 +82,7 @@ index dd36bb0103d..13022fd6ae1 100644 all: diff --git a/lib/Makefile b/lib/Makefile -index 0e950db9c0c..9a2b611cab7 100644 +index 4a7619aaacf..6dca2cf1398 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -37,12 +37,12 @@ @@ -98,6 +99,3 @@ index 0e950db9c0c..9a2b611cab7 100644 FILES = boxdraw smbios console crc data debug dpath \ entry error event exit guid hand hw init lock \ misc print sread str cmdline \ --- -2.24.1 - diff --git a/0035-Make-make-make-DESTDIR-.-foo-install-work-right.patch b/0035-Make-make-make-DESTDIR-.-foo-install-work-right.patch index 6af2331..37096a8 100644 --- a/0035-Make-make-make-DESTDIR-.-foo-install-work-right.patch +++ b/0035-Make-make-make-DESTDIR-.-foo-install-work-right.patch @@ -1,7 +1,7 @@ -From 9e329624639e5c3a6d16c61dfaa0304806709fc4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 Oct 2019 15:39:35 -0400 -Subject: [PATCH 35/45] Make: make "make DESTDIR=../foo install" work right. +Subject: [PATCH] Make: make "make DESTDIR=../foo install" work right. This makes the normal DESTDIR= variable work on the command line, and makes relative paths always relative to the top-level directory. @@ -36,6 +36,3 @@ index 696028dd6c2..157559d20ee 100755 PREFIX := /usr/local LIBDIR := $(PREFIX)/lib INSTALL := install --- -2.24.1 - diff --git a/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch b/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch index 83b133b..75705ec 100644 --- a/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch +++ b/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch @@ -1,7 +1,7 @@ -From d81377adca4b2085ad3ab5714851899e4d4cd541 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 Oct 2019 15:41:16 -0400 -Subject: [PATCH 36/45] Install our libraries in $(LIBDIR)/gnuefi/$(ARCH) +Subject: [PATCH] Install our libraries in $(LIBDIR)/gnuefi/$(ARCH) This makes it possible to install all the output on the same machine for cross-builds. This also adds "install_compat", which uses the previous @@ -110,10 +110,10 @@ index 13022fd6ae1..445d340f0fa 100644 + include $(SRCDIR)/../Make.rules diff --git a/lib/Makefile b/lib/Makefile -index 9a2b611cab7..0ec04b4e59d 100644 +index 6dca2cf1398..f0d7b9b08e6 100644 --- a/lib/Makefile +++ b/lib/Makefile -@@ -66,7 +66,7 @@ OBJS = $(FILES:%=%.o) +@@ -66,7 +66,7 @@ OBJS = $(FILES:%=%.o) ctors.o SUBDIRS = $(ARCHES) runtime @@ -132,6 +132,3 @@ index 9a2b611cab7..0ec04b4e59d 100644 include $(SRCDIR)/../Make.rules .PHONY: libsubdirs --- -2.24.1 - diff --git a/0037-Install-all-headers-for-all-arches.patch b/0037-Install-all-headers-for-all-arches.patch index 95aa22f..d1b2299 100644 --- a/0037-Install-all-headers-for-all-arches.patch +++ b/0037-Install-all-headers-for-all-arches.patch @@ -1,7 +1,7 @@ -From 16d17b0d947b66ce76f79749123431b678f998df Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 Oct 2019 15:42:10 -0400 -Subject: [PATCH 37/45] Install all headers for all arches. +Subject: [PATCH] Install all headers for all arches. This further enables cross-builds by installing all the arches headers. @@ -40,6 +40,3 @@ index 445d340f0fa..e8123fd3115 100644 + @if [ ! -h $(DEST)/aarch64 ]; then $(SYMLINK) aa64/ $(DEST)/aarch64 ; fi include $(SRCDIR)/../Make.rules --- -2.24.1 - diff --git a/0038-Rename-our-installed-.o-and-linker-scripts.patch b/0038-Rename-our-installed-.o-and-linker-scripts.patch index 7a7d9e6..f59ff1d 100644 --- a/0038-Rename-our-installed-.o-and-linker-scripts.patch +++ b/0038-Rename-our-installed-.o-and-linker-scripts.patch @@ -1,7 +1,7 @@ -From 6318d6eddeb905a01e81add07d4ab6fc35268ac8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 13 Nov 2019 15:24:27 -0500 -Subject: [PATCH 38/45] Rename our installed .o and linker scripts. +Subject: [PATCH] Rename our installed .o and linker scripts. Since crt0 and our linker scripts are now in a subdirectory, there's no need to make them named differently in the installed machine. This @@ -61,6 +61,3 @@ index 7652669a7cc..86760f55578 100644 endif include $(SRCDIR)/../Make.rules --- -2.24.1 - diff --git a/0039-Supply-makefile-templates.patch b/0039-Supply-makefile-templates.patch index 545a70c..9043e9c 100644 --- a/0039-Supply-makefile-templates.patch +++ b/0039-Supply-makefile-templates.patch @@ -1,7 +1,7 @@ -From 456fb32b345ba87565bd3b99291c6009f499c22f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 13 Nov 2019 15:24:41 -0500 -Subject: [PATCH 39/45] Supply makefile templates. +Subject: [PATCH] Supply makefile templates. This supplies template makefiles for applications consuming gnu-efi to use as: @@ -12,15 +12,15 @@ Signed-off-by: Peter Jones --- Make.defaults | 6 +- inc/.gitignore | 2 + - inc/Makefile | 25 ++++++- - inc/aa64.mk | 21 ++++++ - inc/arm.mk | 21 ++++++ - inc/efi.mk.3.in | 171 ++++++++++++++++++++++++++++++++++++++++++++++++ - inc/efi.mk.in | 126 +++++++++++++++++++++++++++++++++++ - inc/ia32.mk | 30 +++++++++ - inc/ia64.mk | 19 ++++++ - inc/mips64el.mk | 22 +++++++ - inc/x64.mk | 31 +++++++++ + inc/Makefile | 25 ++++++++- + inc/aa64.mk | 21 +++++++ + inc/arm.mk | 21 +++++++ + inc/efi.mk.3.in | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + inc/efi.mk.in | 126 +++++++++++++++++++++++++++++++++++++++++ + inc/ia32.mk | 30 ++++++++++ + inc/ia64.mk | 19 +++++++ + inc/mips64el.mk | 22 ++++++++ + inc/x64.mk | 31 ++++++++++ 11 files changed, 470 insertions(+), 4 deletions(-) create mode 100644 inc/.gitignore create mode 100644 inc/aa64.mk @@ -612,6 +612,3 @@ index 00000000000..bc1093988b3 +export EFI_ARCH_TIMESTAMP_LOCATION EFI_ARCH_3264 +export EFI_ARCH_CLANG_BUGS EFI_ARCH_CAN_DISABLE_AVX +endif --- -2.24.1 - diff --git a/0040-Semi-asciibetize-_Print-s-formatters.patch b/0040-Semi-asciibetize-_Print-s-formatters.patch index 8672812..9624b75 100644 --- a/0040-Semi-asciibetize-_Print-s-formatters.patch +++ b/0040-Semi-asciibetize-_Print-s-formatters.patch @@ -1,52 +1,58 @@ -From 212920a4c3dedc6fc119fb371be798dfc971a749 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 18 Nov 2019 13:05:15 -0500 -Subject: [PATCH 40/45] Semi-asciibetize _Print()'s formatters. +Subject: [PATCH] Semi-asciibetize _Print()'s formatters. This is ascii order but with upper and lower case letters mixed, so things like 'X' and 'x' that use fallthrough still stay together. Signed-off-by: Peter Jones --- - lib/print.c | 132 ++++++++++++++++++++++++++-------------------------- - 1 file changed, 65 insertions(+), 67 deletions(-) + lib/print.c | 148 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 73 insertions(+), 75 deletions(-) diff --git a/lib/print.c b/lib/print.c index 35e43c03db5..0b823481347 100644 --- a/lib/print.c +++ b/lib/print.c -@@ -1067,24 +1067,24 @@ Returns: +@@ -1067,26 +1067,26 @@ Returns: Item.Item.pw = Item.Scratch; break; - case '0': - Item.Pad = '0'; -+ case ',': -+ Item.Comma = TRUE; +- break; +- +- case '-': +- Item.PadBefore = FALSE; +- break; +- + case ',': + Item.Comma = TRUE; break; - case '-': - Item.PadBefore = FALSE; +- case '.': +- Item.WidthParse = &Item.FieldWidth; ++ case '-': ++ Item.PadBefore = FALSE; break; -- case ',': -- Item.Comma = TRUE; -+ case '*': -+ *Item.WidthParse = va_arg(ps->args, UINTN); + case '*': + *Item.WidthParse = va_arg(ps->args, UINTN); break; - case '.': - Item.WidthParse = &Item.FieldWidth; - break; - -- case '*': -- *Item.WidthParse = va_arg(ps->args, UINTN); ++ case '.': ++ Item.WidthParse = &Item.FieldWidth; ++ break; ++ + case '0': + Item.Pad = '0'; - break; - ++ break; ++ case '1': -@@ -1112,52 +1112,23 @@ Returns: + case '2': + case '3': +@@ -1112,62 +1112,12 @@ Returns: } break; @@ -82,14 +88,7 @@ index 35e43c03db5..0b823481347 100644 - - 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); - +- - case 'g': - GuidToString (Item.Scratch, va_arg(ps->args, EFI_GUID *)); - Item.Item.pw = Item.Scratch; @@ -101,51 +100,61 @@ index 35e43c03db5..0b823481347 100644 - Item.Comma, - Item.Long ? va_arg(ps->args, UINT64) : va_arg(ps->args, UINT32) - ); - Item.Item.pw = Item.Scratch; +- Item.Item.pw = Item.Scratch; +- break; +- +- case 'd': +- ValueToString ( +- Item.Scratch, +- Item.Comma, +- Item.Long ? va_arg(ps->args, INT64) : va_arg(ps->args, INT32) +- ); +- Item.Item.pw = Item.Scratch; +- break; +- + case 'D': + { + EFI_DEVICE_PATH *dp = va_arg(ps->args, EFI_DEVICE_PATH *); +@@ -1180,6 +1130,23 @@ Returns: break; -+ } + } - case 'd': - ValueToString ( -@@ -1168,17 +1139,13 @@ 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); ++ case 'd': ++ ValueToString ( ++ Item.Scratch, ++ Item.Comma, ++ Item.Long ? va_arg(ps->args, INT64) : va_arg(ps->args, INT32) ++ ); ++ Item.Item.pw = Item.Scratch; ++ break; ++ + case 'E': + Attr = ps->AttrError; + break; - -- Item.Item.pw = Item.Scratch; ++ + case 'e': + PSETATTR(ps, ps->AttrError); - break; -- } - ++ break; ++ case 'f': FloatToString ( + Item.Scratch, @@ -1189,38 +1156,69 @@ Returns: Item.Item.pw = Item.Scratch; break; - case 't': - TimeToString (Item.Scratch, va_arg(ps->args, EFI_TIME *)); -- Item.Item.pw = Item.Scratch; -- break; -- -- case 'r': -- StatusToString (Item.Scratch, va_arg(ps->args, EFI_STATUS)); + case 'g': + GuidToString (Item.Scratch, va_arg(ps->args, EFI_GUID *)); Item.Item.pw = Item.Scratch; break; +- case 'r': +- StatusToString (Item.Scratch, va_arg(ps->args, EFI_STATUS)); +- Item.Item.pw = Item.Scratch; +- break; +- - case 'n': - PSETATTR(ps, ps->AttrNorm); + case 'H': @@ -215,6 +224,3 @@ index 35e43c03db5..0b823481347 100644 break; default: --- -2.24.1 - diff --git a/0041-Implement-Print-L-p-ptr.patch b/0041-Implement-Print-L-p-ptr.patch index 6a88343..d6ff3eb 100644 --- a/0041-Implement-Print-L-p-ptr.patch +++ b/0041-Implement-Print-L-p-ptr.patch @@ -1,7 +1,7 @@ -From 58c33b63da0e8def2fab43b79ae73403f5ccc23d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 18 Nov 2019 13:06:23 -0500 -Subject: [PATCH 41/45] Implement Print(L"%p", ptr); +Subject: [PATCH] Implement Print(L"%p", ptr); Signed-off-by: Peter Jones --- @@ -33,6 +33,3 @@ index 0b823481347..8fdba6ee166 100644 case 'r': StatusToString (Item.Scratch, va_arg(ps->args, EFI_STATUS)); Item.Item.pw = Item.Scratch; --- -2.24.1 - diff --git a/0042-Switch-to-fPIE.patch b/0042-Switch-to-fPIE.patch index 07e7856..f1444a7 100644 --- a/0042-Switch-to-fPIE.patch +++ b/0042-Switch-to-fPIE.patch @@ -1,7 +1,7 @@ -From 55ea0b4b8ce651bf9d1048754e7a2981624509a2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 19 Nov 2019 13:23:14 -0500 -Subject: [PATCH 42/45] Switch to -fPIE +Subject: [PATCH] Switch to -fPIE Signed-off-by: Peter Jones --- @@ -25,6 +25,3 @@ index 01269660ab8..15af35e6e26 100755 endif IS_FREEBSD = $(findstring FreeBSD, $(OS)) --- -2.24.1 - diff --git a/0043-lfbgrid-Make-pointer-size-testing-not-arch-name-depe.patch b/0043-lfbgrid-Make-pointer-size-testing-not-arch-name-depe.patch index 2e820a6..985213f 100644 --- a/0043-lfbgrid-Make-pointer-size-testing-not-arch-name-depe.patch +++ b/0043-lfbgrid-Make-pointer-size-testing-not-arch-name-depe.patch @@ -1,8 +1,7 @@ -From dba7d5eeb75c3e8526eaf6b898e3ba808dde5ac4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2020 10:13:30 -0500 -Subject: [PATCH 43/45] lfbgrid: Make pointer size testing not arch name - dependent. +Subject: [PATCH] lfbgrid: Make pointer size testing not arch name dependent. Signed-off-by: Peter Jones --- @@ -37,6 +36,3 @@ index ac50f4eafa9..e9fef957d94 100644 FrameBufferAddr = (UINT32)(UINT64)gop->Mode->FrameBufferBase; #else #error YOUR ARCH HERE --- -2.24.1 - diff --git a/0044-Fix-the-arch-subdirs-in-.gitignore.patch b/0044-Fix-the-arch-subdirs-in-.gitignore.patch index a212c7a..483b6ec 100644 --- a/0044-Fix-the-arch-subdirs-in-.gitignore.patch +++ b/0044-Fix-the-arch-subdirs-in-.gitignore.patch @@ -1,7 +1,7 @@ -From e483e9bd6e900c2e9a637165149f60b44bba109e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 15 Jan 2020 13:07:49 -0500 -Subject: [PATCH 44/45] Fix the arch subdirs in .gitignore. +Subject: [PATCH] Fix the arch subdirs in .gitignore. Currently they'll exclude e.g. inc/x64/ by accident; this makes it only apply to the top level. @@ -37,6 +37,3 @@ index 014f7d02f46..3e96a65bb43 100644 +/ia64/ +/mips64el/ +/x64/ --- -2.24.1 - diff --git a/0045-Use-CFLAGS-with-gcc-print-libgcc-file-name-to-get-th.patch b/0045-Use-CFLAGS-with-gcc-print-libgcc-file-name-to-get-th.patch index ed8c360..3935e2e 100644 --- a/0045-Use-CFLAGS-with-gcc-print-libgcc-file-name-to-get-th.patch +++ b/0045-Use-CFLAGS-with-gcc-print-libgcc-file-name-to-get-th.patch @@ -1,8 +1,8 @@ -From 926725b8704472ee2565e6c3fbd1a2012732f9de Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 15 Jan 2020 13:10:11 -0500 -Subject: [PATCH 45/45] Use CFLAGS with "gcc -print-libgcc-file-name" to get - the right one. +Subject: [PATCH] Use CFLAGS with "gcc -print-libgcc-file-name" to get the + right one. This makes us use CFLAGS when trying to find libgcc, so we don't get the one with the wrong endian or float ABI. @@ -35,6 +35,3 @@ index 15af35e6e26..de88bcd0231 100755 +ifneq ($(ARCH),arm) +export LIBGCC=$(shell $(CC) $(CFLAGS) $(ARCH3264) -print-libgcc-file-name) +endif --- -2.24.1 - diff --git a/0046-CFLAGS-add-Wno-pointer-sign.patch b/0046-CFLAGS-add-Wno-pointer-sign.patch new file mode 100644 index 0000000..a74b95b --- /dev/null +++ b/0046-CFLAGS-add-Wno-pointer-sign.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 21 Jan 2020 15:05:19 -0500 +Subject: [PATCH] CFLAGS: add -Wno-pointer-sign + +Signed-off-by: Peter Jones +--- + Make.defaults | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Make.defaults b/Make.defaults +index de88bcd0231..cc8beec4600 100755 +--- a/Make.defaults ++++ b/Make.defaults +@@ -203,7 +203,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \ + -fshort-wchar -fno-strict-aliasing \ + -ffreestanding -fno-stack-protector + else +-CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \ ++CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign -Werror \ + -fshort-wchar -fno-strict-aliasing \ + -ffreestanding -fno-stack-protector -fno-stack-check \ + -fno-stack-check \ diff --git a/gnu-efi.patches b/gnu-efi.patches index ca076de..ac379c0 100644 --- a/gnu-efi.patches +++ b/gnu-efi.patches @@ -21,14 +21,14 @@ Patch0020: 0020-Make-apps-link-against-the-local-gnuefi-and-crt-obje.patch Patch0021: 0021-Add-.travis.yml.patch Patch0022: 0022-Use-EFI-canonical-names-everywhere-the-compiler-does.patch Patch0023: 0023-Fix-a-minor-coverity-complaint-in-some-apps.patch -Patch0024: 0024-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch -Patch0025: 0025-Make-ELF-constructors-and-destructors-work.patch -Patch0026: 0026-Remove-the-accidental-lib-Makefile.orig.patch -Patch0027: 0027-gitignore-add-our-build-directories.patch -Patch0028: 0028-make-Fix-shell-exit-status-handling.patch -Patch0029: 0029-make-Make-make-clean-use-and-rm-v-everywhere.patch -Patch0030: 0030-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch -Patch0031: 0031-Get-rid-of-unused-make-like-files-from-yore.patch +Patch0024: 0024-Add-stuff-that-s-got-weird-characters-to-.gitattribu.patch +Patch0025: 0025-Get-rid-of-some-unused-junk-that-has-the-BSD-4-claus.patch +Patch0026: 0026-Get-rid-of-unused-make-like-files-from-yore.patch +Patch0027: 0027-Make-ELF-constructors-and-destructors-work.patch +Patch0028: 0028-Remove-the-accidental-lib-Makefile.orig.patch +Patch0029: 0029-gitignore-add-our-build-directories.patch +Patch0030: 0030-make-Fix-shell-exit-status-handling.patch +Patch0031: 0031-make-Make-make-clean-use-and-rm-v-everywhere.patch Patch0032: 0032-Make-our-dummy-.reloc-sections-not-depend-on-section.patch Patch0033: 0033-Make-CHAR8-and-similar-be-defined-the-same-way-edk2-.patch Patch0034: 0034-Make-make-TOPDIR-actually-work-and-get-rid-of-unused.patch @@ -43,3 +43,4 @@ Patch0042: 0042-Switch-to-fPIE.patch Patch0043: 0043-lfbgrid-Make-pointer-size-testing-not-arch-name-depe.patch Patch0044: 0044-Fix-the-arch-subdirs-in-.gitignore.patch Patch0045: 0045-Use-CFLAGS-with-gcc-print-libgcc-file-name-to-get-th.patch +Patch0046: 0046-CFLAGS-add-Wno-pointer-sign.patch diff --git a/gnu-efi.spec b/gnu-efi.spec index cd06c23..b3c650c 100644 --- a/gnu-efi.spec +++ b/gnu-efi.spec @@ -2,7 +2,7 @@ Name: gnu-efi Epoch: 1 Version: 3.0.11 %global tarball_version 3.0.9 -Release: 3%{?dist}%{?buildid} +Release: 4%{?dist}%{?buildid} Summary: Development Libraries and headers for EFI License: BSD URL: https://sourceforge.net/projects/gnu-efi/ @@ -16,7 +16,9 @@ BuildRequires: binutils BuildRequires: efi-srpm-macros >= 3-2 BuildRequires: gcc BuildRequires: git-core -BuildRequires: glibc-headers +# We're explicitly *not* requiring glibc-headers, because it gets us +# cross-arch dependency problems in "fedpkg mockbuild" from x86_64. +# BuildRequires: glibc-headers %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. @@ -90,7 +92,7 @@ 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} compat.lst %files @@ -172,6 +177,9 @@ find %{buildroot}/%{_prefix}/ -type l | sed 's,%{buildroot}/\+,/,' > compat.lst %endif %changelog +* Tue Jan 28 2020 Peter Jones - 3.0.11-4 +- Fix a mistake building -compat + * Tue Jan 28 2020 Fedora Release Engineering - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild