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. Also ensure the generated unidata.c file is deterministic by sorting the keys of the dict. Upstream-Status: Pending Richard Purdie 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): Index: grub-2.04/util/import_unicode.py =================================================================== --- grub-2.04.orig/util/import_unicode.py +++ grub-2.04/util/import_unicode.py @@ -174,7 +174,7 @@ infile.close () outfile.write ("struct grub_unicode_arabic_shape grub_unicode_arabic_shapes[] = {\n ") -for x in arabicsubst: +for x in sorted(arabicsubst): try: if arabicsubst[x]['join'] == "DUAL": outfile.write ("{0x%x, 0x%x, 0x%x, 0x%x, 0x%x},\n " % (arabicsubst[x][0], arabicsubst[x][1], arabicsubst[x][2], arabicsubst[x][3], arabicsubst[x][4]))