aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2021-06-15 10:12:17 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-06-17 00:02:50 +0100
commit796f5a422a1bb9059ca8045b5aa199aa02b0e46a (patch)
treece8d21668b2d98f53e28f13750ddb92071a3e659 /meta/recipes-core
parent5b9a2d698bfae8919678073970b951b746158d34 (diff)
downloadopenembedded-core-contrib-796f5a422a1bb9059ca8045b5aa199aa02b0e46a.tar.gz
openembedded-core-contrib-796f5a422a1bb9059ca8045b5aa199aa02b0e46a.tar.bz2
openembedded-core-contrib-796f5a422a1bb9059ca8045b5aa199aa02b0e46a.zip
ovmf: update 2021.02 -> 2021.05
Reformat patches using git, so that rebasing them to newer versions is easier. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch7
-rw-r--r--meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch11
-rw-r--r--meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch (renamed from meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch)13
-rw-r--r--meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch32
-rw-r--r--meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch (renamed from meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch)43
-rw-r--r--meta/recipes-core/ovmf/ovmf/0006-reproducible.patch (renamed from meta/recipes-core/ovmf/ovmf/reproducible.patch)153
-rw-r--r--meta/recipes-core/ovmf/ovmf/zero.patch84
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb12
8 files changed, 163 insertions, 192 deletions
diff --git a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
index c32963a807..89d9ffab5e 100644
--- a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
+++ b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
@@ -1,7 +1,7 @@
-From 200ff35c6545b4ab85f5ea7a6096fbaec3d82f6d Mon Sep 17 00:00:00 2001
+From 1125f5a02c2f327aeffe2d6b66a9d816ad2eeec0 Mon Sep 17 00:00:00 2001
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date: Thu, 9 Jun 2016 02:23:01 -0700
-Subject: [PATCH 1/4] ovmf: update path to native BaseTools
+Subject: [PATCH 1/6] ovmf: update path to native BaseTools
BaseTools is a set of utilities to build EDK-based firmware. These utilities
are used during the build process. Thus, they need to be built natively.
@@ -11,7 +11,6 @@ with the appropriate location before building.
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Upstream-Status: Pending
-
---
OvmfPkg/build.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -30,5 +29,5 @@ index 91b1442ade..1858dae31a 100755
source edksetup.sh BaseTools
else
--
-2.28.0
+2.32.0
diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
index c61a08f022..f6141c8af5 100644
--- a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
+++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
@@ -1,23 +1,22 @@
-From 667c0cf97dadc4f5994d26ec3984f559a05ec406 Mon Sep 17 00:00:00 2001
+From 19d4c7f9812062a683b3ba60b35aac0461190456 Mon Sep 17 00:00:00 2001
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date: Fri, 26 Jul 2019 17:34:26 -0400
-Subject: [PATCH 2/4] BaseTools: makefile: adjust to build in under bitbake
+Subject: [PATCH 2/6] BaseTools: makefile: adjust to build in under bitbake
Prepend the build flags with those of bitbake. This is to build
using the bitbake native sysroot include and library directories.
Signed-off-by: Ricardo Neri <ricardo.neri@linux.intel.com>
Upstream-Status: Pending
-
---
BaseTools/Source/C/Makefiles/header.makefile | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
-index 1c105ee7d4..d5eea3864e 100644
+index 0df728f327..1299d47c87 100644
--- a/BaseTools/Source/C/Makefiles/header.makefile
+++ b/BaseTools/Source/C/Makefiles/header.makefile
-@@ -69,35 +69,36 @@ $(error Bad HOST_ARCH)
+@@ -75,35 +75,36 @@ $(error Bad HOST_ARCH)
endif
INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
@@ -63,5 +62,5 @@ index 1c105ee7d4..d5eea3864e 100644
#
# Snow Leopard is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults
--
-2.28.0
+2.32.0
diff --git a/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch b/meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch
index 128438b201..d710429899 100644
--- a/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch
+++ b/meta/recipes-core/ovmf/ovmf/0003-ovmf-Update-to-latest.patch
@@ -1,7 +1,7 @@
-From ad06fcf1e08736e79221cd6863ff2e3c9254f261 Mon Sep 17 00:00:00 2001
+From 67267d8cc31df16a3608cad1a17c5f1470ef8bbd Mon Sep 17 00:00:00 2001
From: Steve Langasek <steve.langasek@ubuntu.com>
Date: Sat, 10 Jun 2017 01:39:36 -0700
-Subject: [PATCH 4/4] ovmf: Update to latest
+Subject: [PATCH 3/6] ovmf: Update to latest
Description: pass -fno-stack-protector to all GCC toolchains
The upstream build rules inexplicably pass -fno-stack-protector only
@@ -9,16 +9,15 @@ Description: pass -fno-stack-protector to all GCC toolchains
generic rules for gcc 4.4 and later.
Last-Updated: 2016-04-12
Upstream-Status: Pending
-
---
BaseTools/Conf/tools_def.template | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index 933b3160fd..c2fbbf0c38 100755
+index 498696e583..36241b6ede 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
-@@ -1952,10 +1952,10 @@ DEFINE GCC_RISCV64_RC_FLAGS = -I binary -O elf64-littleriscv -B riscv
+@@ -1897,10 +1897,10 @@ DEFINE GCC_RISCV64_RC_FLAGS = -I binary -O elf64-littleriscv -B riscv
# GCC Build Flag for included header file list generation
DEFINE GCC_DEPS_FLAGS = -MMD -MF $@.deps
@@ -32,7 +31,7 @@ index 933b3160fd..c2fbbf0c38 100755
DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)
-@@ -1964,7 +1964,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF
+@@ -1909,7 +1909,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF
DEFINE GCC48_ASM_FLAGS = DEF(GCC_ASM_FLAGS)
DEFINE GCC48_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
DEFINE GCC48_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
@@ -42,5 +41,5 @@ index 933b3160fd..c2fbbf0c38 100755
DEFINE GCC48_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS)
DEFINE GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS)
--
-2.28.0
+2.32.0
diff --git a/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch b/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch
new file mode 100644
index 0000000000..dfb8a73398
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0004-Strip-build-paths.patch
@@ -0,0 +1,32 @@
+From b7cfe97895e0586d14403ba98e62a0cd9373da96 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 14 Jun 2021 19:55:08 +0200
+Subject: [PATCH 4/6] Strip build paths
+
+Pass --zero to GenFw in release builds so that the sections that link back to
+the intermediate binaries (containing build paths) are removed.
+
+Upstream-Status: Pending (discussion at https://bugzilla.tianocore.org/show_bug.cgi?id=3256)
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ OvmfPkg/OvmfPkgIa32.dsc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
+index 33fbd76790..06c6d5ce60 100644
+--- a/OvmfPkg/OvmfPkgIa32.dsc
++++ b/OvmfPkg/OvmfPkgIa32.dsc
+@@ -91,6 +91,8 @@
+
+ !include NetworkPkg/NetworkBuildOptions.dsc.inc
+
++ RELEASE_*_*_GENFW_FLAGS = --zero
++
+ [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
+ GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
+ XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
+--
+2.32.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch b/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
index 0165fae7ce..e467d6f152 100644
--- a/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch
+++ b/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
@@ -1,23 +1,31 @@
+From 860bb1979f3578bb83257076fe0f3bd33f9d68bf Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 14 Jun 2021 19:56:28 +0200
+Subject: [PATCH 5/6] debug prefix map
+
We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in
--debug-prefix-map to nasm (we carry a patch to nasm for this). The
tools definitions file is built by ovmf-native so we need to pass this in
at target build time when we know the right values so we use the environment.
-By using determininistc file paths during the ovmf build, it removes the
-opportunitity for gcc/ld to change the output binaries due to path lengths
-overflowing section sizes and causing small changes in the binary output.
+By using determininistc file paths during the ovmf build, it removes the
+opportunitity for gcc/ld to change the output binaries due to path lengths
+overflowing section sizes and causing small changes in the binary output.
Previously we relied on the stripped output being the same which isn't always
the case if the size of the debug symbols varies.
Upstream-Status: Pending [gcc parts may be upstreamable, nasm patch isn't upstream yet]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ BaseTools/Conf/tools_def.template | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
-
-Index: git/BaseTools/Conf/tools_def.template
-===================================================================
---- git.orig/BaseTools/Conf/tools_def.template
-+++ git/BaseTools/Conf/tools_def.template
-@@ -1918,7 +1918,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --a
+diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
+index 36241b6ede..947fbf2e8d 100755
+--- a/BaseTools/Conf/tools_def.template
++++ b/BaseTools/Conf/tools_def.template
+@@ -1863,7 +1863,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_N
*_*_*_DTCPP_PATH = DEF(DTCPP_BIN)
*_*_*_DTC_PATH = DEF(DTC_BIN)
@@ -26,7 +34,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe
DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe
DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie
-@@ -1936,8 +1936,8 @@ DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = -fu
+@@ -1881,8 +1881,8 @@ DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _Ref
DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
@@ -37,7 +45,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h
DEFINE GCC_ASLCC_FLAGS = -x c
-@@ -2082,7 +2082,7 @@ DEFINE GCC_PP_FLAGS
+@@ -2027,7 +2027,7 @@ DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include A
*_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS)
*_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
*_GCC48_IA32_OBJCOPY_FLAGS =
@@ -46,7 +54,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os
RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable
-@@ -2110,7 +2110,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF(
+@@ -2055,7 +2055,7 @@ RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but
*_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS)
*_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC48_X64_OBJCOPY_FLAGS =
@@ -55,7 +63,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os
RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable
-@@ -2222,7 +2222,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(G
+@@ -2167,7 +2167,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
*_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS)
*_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
*_GCC49_IA32_OBJCOPY_FLAGS =
@@ -64,7 +72,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os
RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable
-@@ -2250,7 +2250,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF(
+@@ -2195,7 +2195,7 @@ RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but
*_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS)
*_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC49_X64_OBJCOPY_FLAGS =
@@ -73,7 +81,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os
RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable
-@@ -2368,7 +2368,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -
+@@ -2313,7 +2313,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
*_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie
*_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
*_GCC5_IA32_OBJCOPY_FLAGS =
@@ -82,7 +90,7 @@ Index: git/BaseTools/Conf/tools_def.template
DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os
DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386
-@@ -2400,7 +2400,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(G
+@@ -2345,7 +2345,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
*_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS)
*_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC5_X64_OBJCOPY_FLAGS =
@@ -91,3 +99,6 @@ Index: git/BaseTools/Conf/tools_def.template
DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os
DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
+--
+2.32.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/reproducible.patch b/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
index 5d2aeaacfe..343c21b541 100644
--- a/meta/recipes-core/ovmf/ovmf/reproducible.patch
+++ b/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
@@ -1,3 +1,8 @@
+From 27ed9962f5cb3afcc44d6c96c53277132a999712 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 14 Jun 2021 19:57:30 +0200
+Subject: [PATCH 6/6] reproducible
+
This patch fixes various things which make the build more reproducible. Some changes
here only change intermediate artefacts but that means when you have two build trees
giving differing results, the differences can be isolated more easily. The issues here
@@ -11,22 +16,83 @@ TMPDIR = "${TOPDIR}/tmp-inital-mylongpath-mylongpath-mylongpath-mylongpath-mylon
The patch specifically:
* Sorts output in GNUmakefile
- * Always generates indirect flags files used to avoid pathlength issues else the
+ * Always generates indirect flags files used to avoid pathlength issues else the
compile commands suddenly change when using longer paths
* Sorts the AutoGenTimeStamp file contents
* Makes the TargetDescBlock objects from BuildEngine sortable to allow the makefile fix
- * Fix ElfConvert within GenFw so that only the basename of the binary being converted
+ * Fix ElfConvert within GenFw so that only the basename of the binary being converted
is used, else the output from "GenFw XXX.bin" differs from "GenFw /long/path/XXX.bin"
with sufficiently long paths
Upstream-Status: Pending [At least some of this might be interesting to upstream]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ BaseTools/Source/C/GenFw/Elf64Convert.c | 8 ++++---
+ .../Source/Python/AutoGen/BuildEngine.py | 3 +++
+ BaseTools/Source/Python/AutoGen/GenMake.py | 24 +++++++++----------
+ .../Source/Python/AutoGen/ModuleAutoGen.py | 5 +++-
+ 4 files changed, 24 insertions(+), 16 deletions(-)
-Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
-===================================================================
---- git.orig/BaseTools/Source/Python/AutoGen/GenMake.py
-+++ git/BaseTools/Source/Python/AutoGen/GenMake.py
-@@ -571,7 +571,7 @@ cleanlib:
+diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
+index d097db8632..a87ae6f3d0 100644
+--- a/BaseTools/Source/C/GenFw/Elf64Convert.c
++++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
+@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
+ #ifndef __GNUC__
+ #include <windows.h>
+ #include <io.h>
++#else
++#define _GNU_SOURCE
+ #endif
+ #include <assert.h>
+ #include <stdio.h>
+@@ -769,7 +771,7 @@ ScanSections64 (
+ }
+ mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) +
+ sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) +
+- strlen(mInImageName) + 1;
++ strlen(basename(mInImageName)) + 1;
+
+ mCoffOffset = CoffAlign(mCoffOffset);
+ if (SectionCount == 0) {
+@@ -1608,7 +1610,7 @@ WriteDebug64 (
+ EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir;
+ EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;
+
+- Len = strlen(mInImageName) + 1;
++ Len = strlen(basename(mInImageName)) + 1;
+
+ Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset);
+ Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;
+@@ -1618,7 +1620,7 @@ WriteDebug64 (
+
+ Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
+ Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
+- strcpy ((char *)(Nb10 + 1), mInImageName);
++ strcpy ((char *)(Nb10 + 1), basename(mInImageName));
+
+
+ NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py b/BaseTools/Source/Python/AutoGen/BuildEngine.py
+index 722fead75a..8f1c236970 100644
+--- a/BaseTools/Source/Python/AutoGen/BuildEngine.py
++++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py
+@@ -70,6 +70,9 @@ class TargetDescBlock(object):
+ else:
+ return str(Other) == self.Target.Path
+
++ def __lt__(self, other):
++ return str(self) < str(other)
++
+ def AddInput(self, Input):
+ if Input not in self.Inputs:
+ self.Inputs.append(Input)
+diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
+index 961b2ab1c3..23c1592025 100755
+--- a/BaseTools/Source/Python/AutoGen/GenMake.py
++++ b/BaseTools/Source/Python/AutoGen/GenMake.py
+@@ -575,7 +575,7 @@ cleanlib:
os.remove(RespFileList)
# convert source files and binary files to build targets
@@ -35,7 +101,7 @@ Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0:
EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build",
ExtraData="[%s]" % str(MyAgo))
-@@ -722,7 +722,7 @@ cleanlib:
+@@ -726,7 +726,7 @@ cleanlib:
OutputFile = ''
DepsFileList = []
@@ -44,7 +110,7 @@ Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
if Cmd[2]:
for CopyCmd in Cmd[2]:
Src, Dst = CopyCmd
-@@ -755,7 +755,7 @@ cleanlib:
+@@ -759,7 +759,7 @@ cleanlib:
self.BuildTargetList.append('\t%s' % CmdString)
self.ParseSecCmd(DepsFileList, Cmd[1])
@@ -53,7 +119,7 @@ Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile)))
self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd))
self.FfsOutputFileList = []
-@@ -794,13 +794,13 @@ cleanlib:
+@@ -798,13 +798,13 @@ cleanlib:
def CommandExceedLimit(self):
FlagDict = {
@@ -74,7 +140,7 @@ Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
}
RespDict = {}
-@@ -1003,9 +1003,9 @@ cleanlib:
+@@ -1007,9 +1007,9 @@ cleanlib:
if not self.ObjTargetDict.get(T.Target.SubDir):
self.ObjTargetDict[T.Target.SubDir] = set()
self.ObjTargetDict[T.Target.SubDir].add(NewFile)
@@ -86,10 +152,10 @@ Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
# Generate related macros if needed
if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros:
self.FileListMacros[T.FileListMacro] = []
-Index: git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
-===================================================================
---- git.orig/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
-+++ git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
+diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
+index d70b0d7ae8..25dca9a6df 100755
+--- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
++++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
@@ -1484,6 +1484,9 @@ class ModuleAutoGen(AutoGen):
for File in Files:
if File.lower().endswith('.pdb'):
@@ -109,57 +175,6 @@ Index: git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
# Ignore generating makefile when it is a binary module
if self.IsBinaryModule:
-Index: git/BaseTools/Source/Python/AutoGen/BuildEngine.py
-===================================================================
---- git.orig/BaseTools/Source/Python/AutoGen/BuildEngine.py
-+++ git/BaseTools/Source/Python/AutoGen/BuildEngine.py
-@@ -70,6 +70,9 @@ class TargetDescBlock(object):
- else:
- return str(Other) == self.Target.Path
-
-+ def __lt__(self, other):
-+ return str(self) < str(other)
-+
- def AddInput(self, Input):
- if Input not in self.Inputs:
- self.Inputs.append(Input)
-Index: git/BaseTools/Source/C/GenFw/Elf64Convert.c
-===================================================================
---- git.orig/BaseTools/Source/C/GenFw/Elf64Convert.c
-+++ git/BaseTools/Source/C/GenFw/Elf64Convert.c
-@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Pa
- #ifndef __GNUC__
- #include <windows.h>
- #include <io.h>
-+#else
-+#define _GNU_SOURCE
- #endif
- #include <assert.h>
- #include <stdio.h>
-@@ -770,7 +772,7 @@ ScanSections64 (
- }
- mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) +
- sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) +
-- strlen(mInImageName) + 1;
-+ strlen(basename(mInImageName)) + 1;
-
- mCoffOffset = CoffAlign(mCoffOffset);
- if (SectionCount == 0) {
-@@ -1609,7 +1611,7 @@ WriteDebug64 (
- EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir;
- EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;
-
-- Len = strlen(mInImageName) + 1;
-+ Len = strlen(basename(mInImageName)) + 1;
-
- Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset);
- Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;
-@@ -1619,7 +1621,7 @@ WriteDebug64 (
-
- Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
- Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
-- strcpy ((char *)(Nb10 + 1), mInImageName);
-+ strcpy ((char *)(Nb10 + 1), basename(mInImageName));
-
-
- NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
+--
+2.32.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/zero.patch b/meta/recipes-core/ovmf/ovmf/zero.patch
deleted file mode 100644
index af7a9d31f6..0000000000
--- a/meta/recipes-core/ovmf/ovmf/zero.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-Pass --zero to GenFw in release builds so that the sections that link back to
-the intermediate binaries (containing build paths) are removed.
-
-Upstream-Status: Pending (discussion at https://bugzilla.tianocore.org/show_bug.cgi?id=3256)
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 6303b065802c9427c718fda129360189b79316e7 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Tue, 16 Mar 2021 16:49:49 +0000
-Subject: [PATCH] Strip build paths
-
----
- OvmfPkg/AmdSev/AmdSevX64.dsc | 1 +
- OvmfPkg/Bhyve/BhyveX64.dsc | 1 +
- OvmfPkg/OvmfPkgIa32.dsc | 2 ++
- OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
- OvmfPkg/OvmfPkgX64.dsc | 1 +
- OvmfPkg/OvmfXen.dsc | 1 +
- 6 files changed, 7 insertions(+)
-
-diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc
-index 4a1cdf5aca..132f55cf69 100644
---- a/OvmfPkg/Bhyve/BhyveX64.dsc
-+++ b/OvmfPkg/Bhyve/BhyveX64.dsc
-@@ -76,6 +76,7 @@
- GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- !endif
-+ RELEASE_*_*_GENFW_FLAGS = --zero
-
- #
- # Disable deprecated APIs.
-diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
-index 1eaf3e99c6..ce20f09df8 100644
---- a/OvmfPkg/OvmfPkgIa32.dsc
-+++ b/OvmfPkg/OvmfPkgIa32.dsc
-@@ -90,6 +90,8 @@
-
- !include NetworkPkg/NetworkBuildOptions.dsc.inc
-
-+ RELEASE_*_*_GENFW_FLAGS = --zero
-+
- [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
- GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
- XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
-diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
-index 4a5a430147..97cc438250 100644
---- a/OvmfPkg/OvmfPkgIa32X64.dsc
-+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
-@@ -84,6 +84,7 @@
- GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- !endif
-+ RELEASE_*_*_GENFW_FLAGS = --zero
-
- #
- # Disable deprecated APIs.
-diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
-index d4d601b444..f544fb04bf 100644
---- a/OvmfPkg/OvmfPkgX64.dsc
-+++ b/OvmfPkg/OvmfPkgX64.dsc
-@@ -84,6 +84,7 @@
- GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- !endif
-+ RELEASE_*_*_GENFW_FLAGS = --zero
-
- #
- # Disable deprecated APIs.
-diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc
-index 507029404f..fcaa35acf1 100644
---- a/OvmfPkg/OvmfXen.dsc
-+++ b/OvmfPkg/OvmfXen.dsc
-@@ -74,6 +74,7 @@
- GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
- !endif
-+ RELEASE_*_*_GENFW_FLAGS = --zero
-
- #
- # Disable deprecated APIs.
---
-2.25.1
-
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 888ea082ec..90dae2aed0 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -15,15 +15,15 @@ PACKAGECONFIG[secureboot] = ",,,"
SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
file://0001-ovmf-update-path-to-native-BaseTools.patch \
file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
- file://0004-ovmf-Update-to-latest.patch \
- file://zero.patch \
- file://debug_prefix_map.patch \
- file://reproducible.patch \
+ file://0003-ovmf-Update-to-latest.patch \
+ file://0004-Strip-build-paths.patch \
+ file://0005-debug-prefix-map.patch \
+ file://0006-reproducible.patch \
file://0001-Fix-VLA-parameter-warning.patch \
"
-PV = "edk2-stable202102"
-SRCREV = "ef91b07388e1c0a50c604e5350eeda98428ccea6"
+PV = "edk2-stable202105"
+SRCREV = "e1999b264f1f9d7230edf2448f757c73da567832"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
inherit deploy