diff --git a/.gitignore b/.gitignore index 11fcecf5c..4d0dfb700 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ *.img *.log *.lst +!/grub-core/extra_deps.lst *.marker *.mod *.o diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index fc9fc6a90..a48ce37b4 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -454,8 +454,8 @@ crypto.lst: $(srcdir)/lib/libgcrypt-grub/cipher/crypto.lst platform_DATA += crypto.lst CLEANFILES += crypto.lst -syminfo.lst: gensyminfo.sh kernel_syms.lst $(MODULE_FILES) - cat kernel_syms.lst > $@.new +syminfo.lst: gensyminfo.sh kernel_syms.lst extra_deps.lst $(MODULE_FILES) + cat kernel_syms.lst extra_deps.lst > $@.new for m in $(MODULE_FILES); do \ sh $< $$m >> $@.new || exit 1; \ done diff --git a/grub-core/extra_deps.lst b/grub-core/extra_deps.lst new file mode 100644 index 000000000..e69de29bb diff --git a/grub-core/genmoddep.awk b/grub-core/genmoddep.awk index 247436392..cc987a53a 100644 --- a/grub-core/genmoddep.awk +++ b/grub-core/genmoddep.awk @@ -31,6 +31,10 @@ BEGIN { printf "%s in %s is not defined\n", $3, $2 >"/dev/stderr"; error++; } + } else if ($1 == "depends") { + for (i = 3; i <= NF; i++) { + modtab[$2] = modtab[$2] " " $i; + } } else { printf "error: %u: unrecognized input format\n", NR >"/dev/stderr";