| 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 <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): |
| 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])) |