# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: address@hidden # target_branch: ../mainline/ # testament_sha1: ca215b856a9f29c2fd30f660799fe36adfbd97bf # timestamp: 2010-08-29 17:32:48 +0530 # base_revision_id: address@hidden # # Begin patch === modified file 'conf/Makefile.common' --- conf/Makefile.common 2010-08-23 07:53:56 +0000 +++ conf/Makefile.common 2010-08-29 05:47:30 +0000 @@ -85,18 +85,10 @@ # Define these variables to calm down automake -FS_FILES = -DEF_FILES = -UND_FILES = +PP_FILES = IMG_FILES = MOD_FILES = -VIDEO_FILES = MODULE_FILES = -HANDLER_FILES = -PARTMAP_FILES = -COMMAND_FILES = -PARTTOOL_FILES = -TERMINAL_FILES = KERNEL_HEADER_FILES = man_MANS = === modified file 'conf/Makefile.extra-dist' --- conf/Makefile.extra-dist 2010-08-21 04:18:27 +0000 +++ conf/Makefile.extra-dist 2010-08-29 11:28:43 +0000 @@ -14,20 +14,13 @@ EXTRA_DIST += grub-core/Makefile.gcry.def EXTRA_DIST += grub-core/genmoddep.awk -EXTRA_DIST += grub-core/genmodsrc.sh -EXTRA_DIST += grub-core/genfslist.sh -EXTRA_DIST += grub-core/gencmdlist.sh +EXTRA_DIST += grub-core/genmod.sh.in +EXTRA_DIST += grub-core/gensyminfo.sh.in EXTRA_DIST += grub-core/gensymlist.sh EXTRA_DIST += grub-core/genemuinit.sh -EXTRA_DIST += grub-core/genvideolist.sh -EXTRA_DIST += grub-core/genhandlerlist.sh -EXTRA_DIST += grub-core/genpartmaplist.sh -EXTRA_DIST += grub-core/genterminallist.sh -EXTRA_DIST += grub-core/genparttoollist.sh EXTRA_DIST += grub-core/genemuinitheader.sh EXTRA_DIST += $(shell find $(top_srcdir)/include -name '*.h') +EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/lib -name '*.h') EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/gnulib -name '*.h') EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/efiemu -name '*.h') -EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/lib/posix_wrap -name '*.h') -EXTRA_DIST += $(shell find $(top_srcdir)/grub-core/lib/libgcrypt_wrap -name '*.h') === modified file 'gentpl.py' --- gentpl.py 2010-08-23 08:37:29 +0000 +++ gentpl.py 2010-08-29 11:13:07 +0000 @@ -284,75 +284,12 @@ r += gvar_add("BUILT_SOURCES", "$(nodist_" + cname() + "_SOURCES)") r += gvar_add("CLEANFILES", "$(nodist_" + cname() + "_SOURCES)") - r += gvar_add("DEF_FILES", "def-[+ name +].lst") - r += gvar_add("UND_FILES", "und-[+ name +].lst") r += gvar_add("MOD_FILES", "[+ name +].mod") - r += gvar_add("platform_DATA", "[+ name +].mod") - r += gvar_add("CLEANFILES", "def-[+ name +].lst und-[+ name +].lst mod-[+ name +].c mod-[+ name +].o [+ name +].mod") - - r += gvar_add("COMMAND_FILES", "command-[+ name +].lst") - r += gvar_add("FS_FILES", "fs-[+ name +].lst") - r += gvar_add("VIDEO_FILES", "video-[+ name +].lst") - r += gvar_add("PARTMAP_FILES", "partmap-[+ name +].lst") - r += gvar_add("HANDLER_FILES", "handler-[+ name +].lst") - r += gvar_add("PARTTOOL_FILES", "parttool-[+ name +].lst") - r += gvar_add("TERMINAL_FILES", "terminal-[+ name +].lst") - r += gvar_add("CLEANFILES", "command-[+ name +].lst fs-[+ name +].lst") - r += gvar_add("CLEANFILES", "handler-[+ name +].lst terminal-[+ name +].lst") - r += gvar_add("CLEANFILES", "video-[+ name +].lst partmap-[+ name +].lst parttool-[+ name +].lst") - + r += gvar_add("PP_FILES", "[+ name +].pp") r += gvar_add("CLEANFILES", "[+ name +].pp") r += """ [+ name +].pp: $(""" + cname() + """_SOURCES) $(nodist_""" + cname() + """_SOURCES) $(TARGET_CPP) -DGRUB_LST_GENERATOR $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(""" + cname() + """_CPPFLAGS) $(CPPFLAGS) $^ > $@ || (rm -f $@; exit 1) - -def-[+ name +].lst: [+ name +].module$(EXEEXT) - if test x$(USE_APPLE_CC_FIXES) = xyes; then \ - $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed "s/^\\([^ ]*\\).*/\\1 [+ name +]/" >> $@; \ - else \ - $(NM) -g --defined-only -P -p $< | sed "s/^\\([^ ]*\\).*/\\1 [+ name +]/" >> $@; \ - fi - -und-[+ name +].lst: [+ name +].module$(EXEEXT) - $(NM) -u -P -p $< | sed "s/^\\([^ ]*\\).*/\\1 [+ name +]/" >> $@ - -mod-[+ name +].c: [+ name +].module$(EXEEXT) moddep.lst genmodsrc.sh - sh $(srcdir)/genmodsrc.sh [+ name +] moddep.lst > $@ || (rm -f $@; exit 1) - -mod-[+ name +].o: mod-[+ name +].c - $(TARGET_CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(""" + cname() + """_CPPFLAGS) $(CPPFLAGS) $(""" + cname() + """_CFLAGS) $(CFLAGS) -c -o $@ $< - -[+ name +].mod: [+ name +].module$(EXEEXT) mod-[+ name +].o - if test x$(USE_APPLE_CC_FIXES) = xyes; then \ - $(CCLD) $(""" + cname() + """_LDFLAGS) $(LDFLAGS) -o address@hidden $^; \ - $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -nu -nd address@hidden $@; \ - rm -f address@hidden; \ - else \ - $(CCLD) -o $@ $(""" + cname() + """_LDFLAGS) $(LDFLAGS) $^; \ - if test ! -z '$(TARGET_OBJ2ELF)'; then $(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi; \ - $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; \ - fi - -command-[+ name +].lst: [+ name +].pp $(srcdir)/gencmdlist.sh - cat $< | sh $(srcdir)/gencmdlist.sh [+ name +] > $@ || (rm -f $@; exit 1) - -fs-[+ name +].lst: [+ name +].pp $(srcdir)/genfslist.sh - cat $< | sh $(srcdir)/genfslist.sh [+ name +] > $@ || (rm -f $@; exit 1) - -video-[+ name +].lst: [+ name +].pp $(srcdir)/genvideolist.sh - cat $< | sh $(srcdir)/genvideolist.sh [+ name +] > $@ || (rm -f $@; exit 1) - -partmap-[+ name +].lst: [+ name +].pp $(srcdir)/genpartmaplist.sh - cat $< | sh $(srcdir)/genpartmaplist.sh [+ name +] > $@ || (rm -f $@; exit 1) - -parttool-[+ name +].lst: [+ name +].pp $(srcdir)/genparttoollist.sh - cat $< | sh $(srcdir)/genparttoollist.sh [+ name +] > $@ || (rm -f $@; exit 1) - -handler-[+ name +].lst: [+ name +].pp $(srcdir)/genhandlerlist.sh - cat $< | sh $(srcdir)/genhandlerlist.sh [+ name +] > $@ || (rm -f $@; exit 1) - -terminal-[+ name +].lst: [+ name +].pp $(srcdir)/genterminallist.sh - cat $< | sh $(srcdir)/genterminallist.sh [+ name +] > $@ || (rm -f $@; exit 1) """ return r @@ -479,9 +416,8 @@ r += "[+ IF mansection +]" + manpage() + "[+ ENDIF +]" r += "[+ ENDIF +]" - r += rule("[+ name +]", "$(top_builddir)/config.status " + platform_sources(platform), """ -$(top_builddir)/config.status --file=-:""" + platform_sources(platform) + """ \ - | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + r += rule("[+ name +]", platform_sources(platform) + " $(top_builddir)/config.status", """ +$(top_builddir)/config.status --file=-:$< | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ chmod a+x [+ name +] """) === modified file 'grub-core/Makefile.am' --- grub-core/Makefile.am 2010-08-22 15:30:22 +0000 +++ grub-core/Makefile.am 2010-08-29 11:13:07 +0000 @@ -235,8 +235,8 @@ $(TARGET_CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_KERNEL) $(CPPFLAGS) $(CFLAGS) -DGRUB_SYMBOL_GENERATOR=1 $^ >kernel_syms.input if grep "^#define HAVE_ASM_USCORE" $(top_builddir)/config.h; then u="_"; else u=""; fi; \ cat kernel_syms.input | grep -v '^#' | sed -n \ - -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/'"$$u"'\1 kernel/;p;}' \ - -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/'"$$u"'\1 kernel/;p;}' \ + -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/defined '"$$u"'kernel \1/;p;}' \ + -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/defined '"$$u"' kernel \1/;p;}' \ | sort -u >$@ rm -f kernel_syms.input CLEANFILES += kernel_syms.lst @@ -256,61 +256,100 @@ CLEANFILES += grub_emu_init.c endif -# .lst files -platform_DATA += moddep.lst +# List files + +fs.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + if grep -v "^#" $$pp | grep '^ *grub_fs_register' >/dev/null 2>&1; then \ + echo $$b; \ + fi; \ + done) | sort -u > $@ platform_DATA += fs.lst +CLEANFILES += fs.lst + +command.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + grep -v "^#" $$pp | sed -n \ + -e "/grub_register_command *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" \ + -e "/grub_register_extcmd *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ + -e "/grub_register_command_p1 *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}"; \ + done) | sort -u > $@ platform_DATA += command.lst +CLEANFILES += command.lst + +partmap.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + if grep -v "^#" $$pp | grep '^ *grub_partition_map_register' >/dev/null 2>&1; then \ + echo $$b; \ + fi; \ + done) | sort -u > $@ platform_DATA += partmap.lst +CLEANFILES += partmap.lst + +handler.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + grep -v "^#" $$pp | sed -n \ + -e "/grub_parser_register *( *\"/{s/.*( *\"\([^\"]*\)\".*/parser.\1: $$b/;p;}"; \ + done) | sort -u > $@ platform_DATA += handler.lst +CLEANFILES += handler.lst + +terminal.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + grep -v "^#" $$pp | sed -n \ + -e "/grub_term_register_input *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $$b/;p;}" \ + -e "/grub_term_register_output *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $$b/;p;}"; \ + done) | sort -u > $@ platform_DATA += terminal.lst +CLEANFILES += terminal.lst + +parttool.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + grep -v "^#" $$pp | sed -n \ + -e "/grub_parttool_register *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}"; \ + done) | sort -u > $@ platform_DATA += parttool.lst +CLEANFILES += parttool.lst + +video.lst: $(PP_FILES) + (for pp in $^; do \ + b=`basename $$pp .pp`; \ + if grep -v "^#" $$pp | grep '^ *grub_video_register' >/dev/null 2>&1; then \ + echo $$b; \ + fi; \ + done) | sort -u > $@ platform_DATA += video.lst -platform_DATA += crypto.lst -CLEANFILES += moddep.lst -CLEANFILES += handler.lst -CLEANFILES += terminal.lst -CLEANFILES += parttool.lst -CLEANFILES += video.lst -CLEANFILES += crypto.lst - -fs.lst: $(FS_FILES) - cat $^ /dev/null | sort | uniq > $@ -CLEANFILES += fs.lst - -command.lst: $(COMMAND_FILES) - cat $^ /dev/null | sort | uniq > $@ -CLEANFILES += command.lst - -partmap.lst: $(PARTMAP_FILES) - cat $^ /dev/null | sort | uniq > $@ -CLEANFILES += partmap.lst - -handler.lst: $(HANDLER_FILES) - cat $^ /dev/null | sort | uniq > $@ -CLEANFILES += handler.lst - -terminal.lst: $(TERMINAL_FILES) - cat $^ /dev/null | sort | uniq > $@ -CLEANFILES += terminal.lst - -parttool.lst: $(PARTTOOL_FILES) - cat $^ /dev/null | sort | uniq > $@ -CLEANFILES += parttool.lst - -video.lst: $(VIDEO_FILES) - cat $^ /dev/null | sort | uniq > $@ CLEANFILES += video.lst # but, crypto.lst is simply copied crypto.lst: $(srcdir)/lib/libgcrypt-grub/cipher/crypto.lst cp $^ $@ +platform_DATA += crypto.lst CLEANFILES += crypto.lst +syminfo.lst: gensyminfo.sh kernel_syms.lst $(MODULE_FILES) + cat kernel_syms.lst > address@hidden + for m in $(MODULE_FILES); do \ + sh $< $$m >> address@hidden || exit 1; \ + done + mv address@hidden $@ + # generate global module dependencies list -moddep.lst: kernel_syms.lst genmoddep.awk $(DEF_FILES) $(UND_FILES) - cat $(DEF_FILES) kernel_syms.lst /dev/null \ - | $(AWK) -f $(srcdir)/genmoddep.awk $(UND_FILES) > $@ \ - || (rm -f $@; exit 1) +moddep.lst: syminfo.lst genmoddep.awk + cat $< | sort | awk -f $(srcdir)/genmoddep.awk > $@ || (rm -f $@; exit 1) +platform_DATA += moddep.lst +CLEANFILES += config.log syminfo.lst moddep.lst + +$(MOD_FILES): %.mod : genmod.sh moddep.lst %.module$(EXEEXT) + sh $^ $@ +platform_DATA += $(MOD_FILES) +CLEANFILES += $(MOD_FILES) if COND_i386_pc if COND_ENABLE_EFIEMU === modified file 'grub-core/Makefile.core.def' --- grub-core/Makefile.core.def 2010-08-23 07:53:56 +0000 +++ grub-core/Makefile.core.def 2010-08-29 11:13:07 +0000 @@ -1403,3 +1403,13 @@ name = datehook; common = hook/datehook.c; }; + +script = { + name = gensyminfo.sh; + common = gensyminfo.sh.in; +}; + +script = { + name = genmod.sh; + common = genmod.sh.in; +}; === removed file 'grub-core/gencmdlist.sh' --- grub-core/gencmdlist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/gencmdlist.sh 1970-01-01 00:00:00 +0000 @@ -1,22 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2005,2009 Free Software Foundation, Inc. -# -# This gensymlist.sh is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect command names. - -module=$1 - -grep -v "^#" | sed -n \ - -e "/grub_register_command *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $module/;p;}" \ - -e "/grub_register_extcmd *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $module/;p;}" \ - -e "/grub_register_command_p1 *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $module/;p;}" - === removed file 'grub-core/genfslist.sh' --- grub-core/genfslist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genfslist.sh 1970-01-01 00:00:00 +0000 @@ -1,26 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2005,2008 Free Software Foundation, Inc. -# -# This gensymlist.sh is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect fs names. - -module=$1 - -# Ignore kernel.mod. -if test $module = kernel; then - exit -fi - -# For now, this emits only a module name, if the module registers a filesystem. -if grep -v "^#" | grep '^ *grub_fs_register' >/dev/null 2>&1; then - echo $module -fi === removed file 'grub-core/genhandlerlist.sh' --- grub-core/genhandlerlist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genhandlerlist.sh 1970-01-01 00:00:00 +0000 @@ -1,19 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# This script is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect command names. - -module=$1 - -grep -v "^#" | sed -n \ - -e "/grub_parser_register *( *\"/{s/.*( *\"\([^\"]*\)\".*/parser.\1: $module/;p;}" === added file 'grub-core/genmod.sh.in' --- grub-core/genmod.sh.in 1970-01-01 00:00:00 +0000 +++ grub-core/genmod.sh.in 2010-08-29 11:13:07 +0000 @@ -0,0 +1,73 @@ +#! /bin/sh -e +# +# Copyright (C) 2010 Free Software Foundation, Inc. +# +# This gensymlist.sh is free software; the author +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# +# Example: +# +# genmod.sh moddep.lst normal.module echo.module +# + +moddep=$1 +infile=$2 +outfile=$3 + +tmpfile=${outfile}.tmp +modname=`echo $infile | sed -e 'address@hidden@@'` + +if ! grep ^$modname: $moddep >/dev/null; then + echo "warning: moddep.lst has no dependencies for $modname" >&2 + exit 0 +fi + +deps=`grep ^$modname: $moddep | sed address@hidden:@@` + +# remove old files if any +rm -f $tmpfile $outfile + +# stripout .modname and .moddeps sections from input module +objcopy -R .modname -R .moddeps $infile $tmpfile + +# Attach .modname and .moddeps sections +t1=`mktemp` +printf "$modname\0" >$t1 + +t2=`mktemp` +for dep in $deps; do printf "$dep\0" >> $t2; done + +if test -n "$deps"; then + objcopy --add-section .modname=$t1 --add-section .moddeps=$t2 $tmpfile +else + objcopy --add-section .modname=$t1 $tmpfile +fi +rm -f $t1 $t2 + +if test address@hidden@ != x1; then + if ! test -z "@TARGET_OBJ2ELF@"; then + ./@TARGET_OBJ2ELF@ $tmpfile || exit 1 + fi + if test address@hidden@ != xemu; then + @STRIP@ --strip-unneeded \ + -K grub_mod_init -K grub_mod_fini \ + -K _grub_mod_init -K _grub_mod_fini \ + -R .note -R .comment $tmpfile || exit 1 + fi +else +# XXX Test these Apple CC fixes + cp $tmpfile $tmpfile.bin + @OBJCONV@ address@hidden@ \ + -nr:_grub_mod_init:grub_mod_init \ + -nr:_grub_mod_fini:grub_mod_fini \ + -wd1106 -ew2030 -ew2050 -nu -nd $tmpfile.bin $tmpfile || exit 1 + rm -f $name.bin +fi +mv $tmpfile $outfile === modified file 'grub-core/genmoddep.awk' --- grub-core/genmoddep.awk 2010-06-03 06:22:33 +0000 +++ grub-core/genmoddep.awk 2010-08-29 11:13:07 +0000 @@ -11,23 +11,28 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# Read defined symbols from stdin. +# Read symbols' info from stdin. BEGIN { + error = 0 + lineno = 0; while (getline <"/dev/stdin") { - symtab[$1] = $2 - } -} - -# The rest is undefined symbols. -{ - module = $2 - - if ($1 in symtab) { - modtab[module] = modtab[module] " " symtab[$1]; - } - else if ($1 != "__gnu_local_gp") { - printf "%s in %s is not defined\n", $1, module >"/dev/stderr"; - error++; + lineno++; + if ($1 == "defined") { + symtab[$3] = $2; + modtab[$2] = "" modtab[$2] + } else if ($1 == "undefined") { + if ($3 in symtab) + modtab[$2] = modtab[$2] " " symtab[$3]; + else if ($3 != "__gnu_local_gp") { + printf "%s in %s is not defined\n", $3, $2 >"/dev/stderr"; + error++; + } + } + else { + printf "error: %u: unrecognized input format\n", lineno; + error++; + break; + } } } === removed file 'grub-core/genmodsrc.sh' --- grub-core/genmodsrc.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genmodsrc.sh 1970-01-01 00:00:00 +0000 @@ -1,47 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2002,2007 Free Software Foundation, Inc. -# -# This genmodsrc.sh is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -set -e - -mod_name="$1" -deps="$2" - -cat <. - */ - -#include - -EOF - -echo "GRUB_MOD_NAME(${mod_name});" - -for mod in `grep "^${mod_name}:" ${deps} | sed 's/^[^:]*://'`; do - echo "GRUB_MOD_DEP(${mod});" -done === removed file 'grub-core/genpartmaplist.sh' --- grub-core/genpartmaplist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genpartmaplist.sh 1970-01-01 00:00:00 +0000 @@ -1,26 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2005, 2008 Free Software Foundation, Inc. -# -# This script is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect partmap names. - -module=$1 - -# Ignore kernel.mod. -if test $module = kernel; then - exit -fi - -# For now, this emits only a module name, if the module registers a partition map. -if grep -v "^#" | grep '^ *grub_partition_map_register' >/dev/null 2>&1; then - echo $module -fi === removed file 'grub-core/genparttoollist.sh' --- grub-core/genparttoollist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genparttoollist.sh 1970-01-01 00:00:00 +0000 @@ -1,19 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# This gensymlist.sh is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect parttool names. - -module=$1 - -grep -v "^#" | sed -n \ - -e "/grub_parttool_register *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $module/;p;}" === added file 'grub-core/gensyminfo.sh.in' --- grub-core/gensyminfo.sh.in 1970-01-01 00:00:00 +0000 +++ grub-core/gensyminfo.sh.in 2010-08-29 05:47:30 +0000 @@ -0,0 +1,34 @@ +#! /bin/sh -e +# +# Copyright (C) 2010 Free Software Foundation, Inc. +# +# This gensymlist.sh is free software; the author +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# +# Example: +# +# gensyms.sh normal.module +# + +module=$1 +modname=`echo $module | sed -e 'address@hidden@@'` + +# Print all symbols defined by module +if test address@hidden@ = x1; then + @NM@ -g -P -p $module | \ + grep -E '^[a-zA-Z0-9_]* [TDS]' | \ + sed "address@hidden([^ ]*\)address@hidden $modname address@hidden" +else + @NM@ -g --defined-only -P -p $module | \ + sed "address@hidden([^ ]*\)address@hidden $modname address@hidden" +fi + +# Print all undefined symbols used by module address@hidden@ -u -P -p $module | sed "address@hidden([^ ]*\)address@hidden $modname address@hidden" === removed file 'grub-core/genterminallist.sh' --- grub-core/genterminallist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genterminallist.sh 1970-01-01 00:00:00 +0000 @@ -1,20 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2009,2010 Free Software Foundation, Inc. -# -# This script is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect command names. - -module=$1 - -grep -v "^#" | sed -n \ - -e "/grub_term_register_input *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $module/;p;}" \ - -e "/grub_term_register_output *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $module/;p;}" \ === removed file 'grub-core/genvideolist.sh' --- grub-core/genvideolist.sh 2010-05-06 06:04:04 +0000 +++ grub-core/genvideolist.sh 1970-01-01 00:00:00 +0000 @@ -1,26 +0,0 @@ -#! /bin/sh -# -# Copyright (C) 2005,2008,2009 Free Software Foundation, Inc. -# -# This script is free software; the author -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Read source code from stdin and detect partmap names. - -module=$1 - -# Ignore video.mod. -if test $module = video; then - exit -fi - -# For now, this emits only a module name, if the module registers a partition map. -if grep -v "^#" | grep '^ *grub_video_register' >/dev/null 2>&1; then - echo $module -fi # Begin bundle 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 EnIL