1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-07 03:04:04 +00:00

qemu: Determinism fixes

Add a patch to address two determinism issues and allow reproducible
builds.

Also strip full paths we don't need out of some ptest files,
we can use the installed binaries.

(From OE-Core rev: 14e7cc6c6040b983024bec56fbd32d9101507ff0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2021-03-01 13:00:47 +00:00
parent e3ef99a911
commit 0dee498104
3 changed files with 45 additions and 1 deletions
@@ -41,7 +41,6 @@ exclude_packages = [
'ovmf-shell-efi',
'perf',
'python3-cython',
'qemu',
'ruby-ri-docs'
]
+4
View File
@@ -28,6 +28,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://mingwfix.patch \
file://mmap.patch \
file://mmap2.patch \
file://determinism.patch \
file://0001-tests-meson.build-use-relative-path-to-refer-to-file.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -57,6 +58,9 @@ do_install_ptest() {
sed -i -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
${D}/${PTEST_PATH}/tests/qemu-iotests/common.env
sed -i -e "1s,#!/usr/bin/bash,#!${base_bindir}/bash," ${D}${PTEST_PATH}/tests/data/acpi/disassemle-aml.sh
# Strip the paths from the QEMU variable, we can use PATH
sed -i -e "s#^QEMU=.*/qemu-#QEMU=qemu-#g" ${D}${PTEST_PATH}/tests/tcg/*.mak
}
# QEMU_TARGETS is overridable variable
@@ -0,0 +1,41 @@
When sources are included within debug information, a couple of areas of the
qemu build are not reproducible due to either full buildpaths or timestamps.
Replace the full paths with relative ones. I couldn't figure out how to get
meson to pass relative paths but we can fix that in the script.
For the keymaps, omit the timestamps as they don't matter to us.
Upstream-Status: Pending [some version of all/part of this may be accepted]
RP 2021/3/1
Index: qemu-5.2.0/scripts/decodetree.py
===================================================================
--- qemu-5.2.0.orig/scripts/decodetree.py
+++ qemu-5.2.0/scripts/decodetree.py
@@ -1303,8 +1303,8 @@ def main():
toppat = ExcMultiPattern(0)
for filename in args:
- input_file = filename
- f = open(filename, 'r')
+ input_file = os.path.relpath(filename)
+ f = open(input_file, 'r')
parse_file(f, toppat)
f.close()
Index: qemu-5.2.0/ui/keycodemapdb/tools/keymap-gen
===================================================================
--- qemu-5.2.0.orig/ui/keycodemapdb/tools/keymap-gen
+++ qemu-5.2.0/ui/keycodemapdb/tools/keymap-gen
@@ -317,9 +317,8 @@ class LanguageGenerator(object):
raise NotImplementedError()
def generate_header(self, database, args):
- today = time.strftime("%Y-%m-%d %H:%M")
self._boilerplate([
- "This file is auto-generated from keymaps.csv on %s" % today,
+ "This file is auto-generated from keymaps.csv",
"Database checksum sha256(%s)" % database.mapchecksum,
"To re-generate, run:",
" %s" % args,