Files
poky/meta/recipes-bsp/grub/files/determinism.patch
Richard Purdie 5e2092323a grub: Add second fix for determinism issue
There is a second list sorting problem in a generator script within grub,
add a sort() of a list to resolve this.

(From OE-Core rev: fcb5fbb2e326e48236e03cc0d0540b6b0e7a287e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cb5e96e05930eaff4d679166416d6c84d6e3236b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-01 11:55:34 +00:00

41 lines
1.5 KiB
Diff

The output in moddep.lst generated from syminfo.lst using genmoddep.awk is
not deterministic since the order of the dependencies on each line can vary
depending on how awk sorts the values in the array.
Be deterministic in the output by sorting the dependencies on each line.
Also, the output of the SOURCES lines in grub-core/Makefile.core.am, generated
from grub-core/Makefile.core.def with gentpl.py is not deterministic due to
missing sorting of the list used to generate it. Add such a sort.
Upstream-Status: Pending
Richard Purdie <richard.purdie@linuxfoundation.org>
Index: grub-2.04/grub-core/genmoddep.awk
===================================================================
--- grub-2.04.orig/grub-core/genmoddep.awk
+++ grub-2.04/grub-core/genmoddep.awk
@@ -59,7 +59,9 @@ END {
}
modlist = ""
depcount[mod] = 0
- for (depmod in uniqmods) {
+ n = asorti(uniqmods, w)
+ for (i = 1; i <= n; i++) {
+ depmod = w[i]
modlist = modlist " " depmod;
inverse_dependencies[depmod] = inverse_dependencies[depmod] " " mod
depcount[mod]++
Index: grub-2.04/gentpl.py
===================================================================
--- grub-2.04.orig/gentpl.py
+++ grub-2.04/gentpl.py
@@ -568,6 +568,7 @@ def foreach_platform_value(defn, platfor
for group in RMAP[platform]:
for value in defn.find_all(group + suffix):
r.append(closure(value))
+ r.sort()
return ''.join(r)
def platform_conditional(platform, closure):