MinGW native nm does not support ELF binaries. While on it, pass detected nm arguments instead of hardcoding them.
--- grub-core/Makefile.am | 6 +++--- grub-core/genemuinit.sh | 9 +++++---- grub-core/genemuinitheader.sh | 9 +++++---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index 13b7979..704ae90 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -292,12 +292,12 @@ grub_emu-grub_emu_init.$(OBJEXT):grub_emu_init.h kern/emu/grub_emu_dyn-main.$(OBJEXT):grub_emu_init.h grub_emu_dyn-grub_emu_init.$(OBJEXT):grub_emu_init.h -grub_emu_init.h: genemuinitheader.sh $(MOD_FILES) - rm -f $@; echo $(MOD_FILES) | sh $(srcdir)/genemuinitheader.sh $(TARGET_NM) > $@ +grub_emu_init.h: genemuinitheader.sh $(MODULE_FILES) + rm -f $@; echo $(MODULE_FILES) | sh $(srcdir)/genemuinitheader.sh $(TARGET_NM) $(TARGET_NMFLAGS_MINUS_P) $(TARGET_NMFLAGS_DEFINED_ONLY) > $@ CLEANFILES += grub_emu_init.h grub_emu_init.c: grub_emu_init.h genemuinit.sh $(MOD_FILES) - rm -f $@; echo $(MOD_FILES) | sh $(srcdir)/genemuinit.sh $(TARGET_NM) > $@ + rm -f $@; echo $(MODULE_FILES) | sh $(srcdir)/genemuinit.sh $(TARGET_NM) $(TARGET_NMFLAGS_MINUS_P) $(TARGET_NMFLAGS_DEFINED_ONLY) > $@ CLEANFILES += grub_emu_init.c endif diff --git a/grub-core/genemuinit.sh b/grub-core/genemuinit.sh index 45c15ec..58fb604 100644 --- a/grub-core/genemuinit.sh +++ b/grub-core/genemuinit.sh @@ -13,6 +13,7 @@ nm="$1" shift +nmargs="$*" cat <<EOF /* This file is automatically generated by geninit.sh. DO NOT EDIT! */ @@ -46,8 +47,8 @@ EOF read mods for line in $mods; do - if ${nm} --defined-only -P -p ${line} | grep grub_mod_init > /dev/null; then - echo "grub_${line}_init ();" | sed 's,\.mod,,g;' + if ${nm} ${nmargs} -p ${line} | grep grub_mod_init > /dev/null; then + echo "grub_${line%%.*}_init ();" fi done @@ -62,8 +63,8 @@ grub_fini_all (void) EOF for line in $mods; do - if ${nm} --defined-only -P -p ${line} | grep grub_mod_fini > /dev/null; then - echo "grub_${line}_fini ();" | sed 's,\.mod,,g;' + if ${nm} ${nmargs} -p ${line} | grep grub_mod_fini > /dev/null; then + echo "grub_${line%%.*}_fini ();" fi done diff --git a/grub-core/genemuinitheader.sh b/grub-core/genemuinitheader.sh index 6b83f59..8631157 100644 --- a/grub-core/genemuinitheader.sh +++ b/grub-core/genemuinitheader.sh @@ -13,6 +13,7 @@ nm="$1" shift +nmargs="$*" cat <<EOF /* This file is automatically generated by gensymlist.sh. DO NOT EDIT! */ @@ -43,10 +44,10 @@ EOF read mods for line in $mods; do - if ${nm} --defined-only -P -p ${line} | grep grub_mod_init > /dev/null; then - echo "void grub_${line}_init (void);" | sed 's,\.mod,,g;' + if ${nm} ${nmargs} -p ${line} | grep grub_mod_init > /dev/null; then + echo "void grub_${line%%.*}_init (void);" fi - if ${nm} --defined-only -P -p ${line} | grep grub_mod_fini > /dev/null; then - echo "void grub_${line}_fini (void);" | sed 's,\.mod,,g;' + if ${nm} ${nmargs} -p ${line} | grep grub_mod_fini > /dev/null; then + echo "void grub_${line%%.*}_fini (void);" fi done -- tg: (5ef569d..) u/mingw/use_MODULE_FILES_for_genemu (depends on: master) _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel