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:
@@ -41,7 +41,6 @@ exclude_packages = [
|
||||
'ovmf-shell-efi',
|
||||
'perf',
|
||||
'python3-cython',
|
||||
'qemu',
|
||||
'ruby-ri-docs'
|
||||
]
|
||||
|
||||
|
||||
@@ -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,
|
||||
Reference in New Issue
Block a user