]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Eliminate blacklist of modules w/o init
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 7 Feb 2010 02:58:14 +0000 (03:58 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 7 Feb 2010 02:58:14 +0000 (03:58 +0100)
conf/any-emu.rmk
genemuinit.sh
genemuinitheader.sh

index 7ed5fa74b5accc4de6b1deb783858f6f993d802c..3e92cbe73e8d1bc39ee23d9dd7c3c29aafafcb30 100644 (file)
@@ -84,11 +84,11 @@ endif
 
 
 grub_emu_init.h: genemuinitheader.sh
-       rm -f $@; echo $(pkglib_MODULES) |sh $(srcdir)/genemuinitheader.sh  > $@
+       rm -f $@; echo $(pkglib_MODULES) | sh $(srcdir)/genemuinitheader.sh $(NM)  > $@
 DISTCLEANFILES += grub_emu_init.h
 
-grub_emu_init.c: genemuinit.sh
-       rm -f $@; echo $(pkglib_MODULES) |sed 's,elf.mod,,;s,extcmd.mod,,;s,gzio.mod,,;s,fshelp.mod,,;s,bufio.mod,,;s,setjmp.mod,,;s,crypto.mod,,;s,pbkdf2.mod,,;s,trig.mod,,;s,bitmap_scale.mod,,;s,charset.mod,,;'|sh $(srcdir)/genemuinit.sh > $@
+grub_emu_init.c: genemuinit.sh $(pkglib_MODULES)
+       rm -f $@; echo $(pkglib_MODULES) | sh $(srcdir)/genemuinit.sh $(NM) > $@
 DISTCLEANFILES += grub_emu_init.c
 
 include $(srcdir)/conf/common.mk
index e40a683af52765be308c96030a9fa6154cd87a37..45c15ecb9f4dbc450ffc51a729e21d70ba2e6b57 100644 (file)
@@ -11,7 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-lst="$1"
+nm="$1"
 shift
 
 cat <<EOF
@@ -46,7 +46,9 @@ EOF
 
 read mods
 for line in $mods; do
-  echo "grub_${line}_init ();" | sed 's,\.mod,,g;'
+  if ${nm} --defined-only -P -p ${line} | grep grub_mod_init > /dev/null; then
+      echo "grub_${line}_init ();" | sed 's,\.mod,,g;'
+  fi
 done
 
 cat <<EOF
@@ -60,7 +62,9 @@ grub_fini_all (void)
 EOF
 
 for line in $mods; do
-  echo "grub_${line}_fini ();" | sed 's,\.mod,,g;'
+  if ${nm} --defined-only -P -p ${line} | grep grub_mod_fini > /dev/null; then
+      echo "grub_${line}_fini ();" | sed 's,\.mod,,g;'
+  fi
 done
 
 cat <<EOF
index eac86fc827bc0fe1a9dcdd0870bb507930d09614..6b83f5993178933df9abba16fc1391867c7661dc 100644 (file)
@@ -11,7 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-lst="$1"
+nm="$1"
 shift
 
 cat <<EOF
@@ -43,6 +43,10 @@ EOF
 
 read mods
 for line in $mods; do
-  echo "void grub_${line}_init (void);" | sed 's,\.mod,,g;'
-  echo "void grub_${line}_fini (void);" | sed 's,\.mod,,g;'
+  if ${nm} --defined-only -P -p ${line} | grep grub_mod_init > /dev/null; then
+      echo "void grub_${line}_init (void);" | sed 's,\.mod,,g;'
+  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;'
+  fi
 done