Attached is the updated version with build fixes for sparc64-linux-gnu
and freebsd platforms.



-- 
bvk.chaitanya
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [email protected]
# target_branch: ../mainline/
# testament_sha1: 58a6119f369683840d67a9b8a1fa98839f0dcbf7
# timestamp: 2010-05-26 17:49:59 +0530
# base_revision_id: [email protected]\
#   db1ym880qz05yxpg
# 
# Begin patch
=== modified file 'Makefile.in'
--- Makefile.in	2010-05-18 11:55:26 +0000
+++ Makefile.in	2010-05-25 10:39:03 +0000
@@ -44,7 +44,6 @@
 
 # Internationalization library.
 LIBINTL = @LIBINTL@
-TARGET_NO_MODULES = @TARGET_NO_MODULES@
 
 # Util library.
 LIBUTIL = @LIBUTIL@
@@ -187,17 +186,10 @@
 -include $(wildcard $(GRUB_CONTRIB)/*/conf/common.mk)
 endif
 
-ifeq ($(TARGET_NO_MODULES), yes)
-	TARGET_CFLAGS += -DGRUB_TARGET_NO_MODULES=1
-	CFLAGS += -DGRUB_TARGET_NO_MODULES=1
-endif
-
 ### General targets.
 
 CLEANFILES += $(pkglib_DATA) $(pkgdata_DATA) po/*.mo
-ifneq ($(TARGET_NO_MODULES), yes)
 pkglib_DATA += moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst
-endif
 moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep.awk
 	cat $(DEFSYMFILES) /dev/null \
 	  | $(AWK) -f $(srcdir)/genmoddep.awk $(UNDSYMFILES) > $@ \
@@ -298,7 +290,7 @@
 	) > $@
 pkglib_BUILDDIR += config.h grub_script.tab.h
 
-all-local: $(PROGRAMS) $(GRUB_EMU) $(PKGLIB) $(PKGDATA) $(SCRIPTS) $(INFOS) $(MKFILES) $(foreach lang, $(LINGUAS), po/$(lang).mo)
+all-local: $(PROGRAMS) $(GRUB_EMU) $(GRUB_EMU_LITE) $(PKGLIB) $(PKGDATA) $(SCRIPTS) $(INFOS) $(MKFILES) $(foreach lang, $(LINGUAS), po/$(lang).mo)
 
 install: install-local
 
@@ -319,7 +311,7 @@
 	  $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(pkgdatadir)/$$dest; \
 	done
 	$(SHELL) $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
-	@list='$(bin_UTILITIES) $(GRUB_EMU)'; for file in $$list; do \
+	@list='$(bin_UTILITIES) $(GRUB_EMU) $(GRUB_EMU_LITE)'; for file in $$list; do \
 	  if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
 	  dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
 	  $(INSTALL_PROGRAM) $$dir$$file $(DESTDIR)$(bindir)/$$dest; \
@@ -395,7 +387,7 @@
 	  dest="`echo $$file | sed 's,.*/,,'`"; \
 	  rm -f $(DESTDIR)$(pkgdatadir)/$$dest; \
 	done
-	@list='$(bin_UTILITIES) $(bin_SCRIPTS) $(GRUB_EMU)'; for file in $$list; do \
+	@list='$(bin_UTILITIES) $(bin_SCRIPTS) $(GRUB_EMU) $(GRUB_EMU_LITE)'; for file in $$list; do \
 	  dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
 	  rm -f $(DESTDIR)$(bindir)/$$dest; \
 	  rm -f $(DESTDIR)$(mandir)/man1/$$dest.1; \

=== modified file 'commands/parttool.c'
--- commands/parttool.c	2010-05-03 11:17:12 +0000
+++ commands/parttool.c	2010-05-04 04:17:48 +0000
@@ -175,7 +175,7 @@
     }
 
   /* Load modules. */
-#if !GRUB_NO_MODULES
+  if (! grub_no_autoload)
   {
     const char *prefix;
     prefix = grub_env_get ("prefix");
@@ -233,7 +233,6 @@
     /* Ignore errors.  */
     grub_errno = GRUB_ERR_NONE;
   }
-#endif
 
   if (argc == 1)
     return show_help ();

=== modified file 'conf/any-emu.rmk'
--- conf/any-emu.rmk	2010-05-06 03:15:39 +0000
+++ conf/any-emu.rmk	2010-05-26 11:23:43 +0000
@@ -1,6 +1,9 @@
 # -*- makefile -*-
 
-COMMON_CFLAGS += -nostdinc -isystem $(shell $(TARGET_CC) -print-file-name=include)
+ifeq ($(target_cpu), sparc64)
+COMMON_CFLAGS += -mno-app-regs
+COMMON_LDFLAGS += -mno-relax
+endif
 
 kernel_img_RELOCATABLE = yes
 pkglib_PROGRAMS = kernel.img
@@ -20,16 +23,15 @@
 kernel_img_LDFLAGS = $(COMMON_LDFLAGS)
 TARGET_NO_STRIP = yes
 
-ifneq ($(TARGET_NO_MODULES), yes)
-kernel_img_SOURCES += symlist.c kern/$(target_cpu)/dl.c
-ifneq ($(target_cpu), i386)
-ifneq ($(target_cpu), x86_64)
-kernel_img_SOURCES += kern/$(target_cpu)/cache.S
-endif
-endif
-else
-kernel_img_SOURCES += grub_emu_init.c
-endif
+noinst_MODULES = emu-full.mod
+emu_full_mod_SOURCES = kern/emu/full.c
+emu_full_mod_CFLAGS = $(COMMON_CFLAGS)
+emu_full_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+noinst_MODULES = emu-lite.mod
+emu_lite_mod_SOURCES = kern/emu/lite.c kern/emu/cache.S symlist.c
+emu_lite_mod_CFLAGS = $(COMMON_CFLAGS)
+emu_lite_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
 # For halt.mod.
 pkglib_MODULES += halt.mod
@@ -45,6 +47,9 @@
 endif
 
 grub_emu_LDFLAGS = $(LIBCURSES)
+ifeq ($(target_cpu), sparc64)
+grub_emu_LDFLAGS += -m64 -melf64_sparc -mno-relax
+endif
 
 ifeq ($(enable_grub_emu_usb), yes)
 kernel_img_HEADERS += libusb.h
@@ -102,13 +107,16 @@
 	rm -f $@; echo $(pkglib_MODULES) | sh $(srcdir)/genemuinit.sh $(NM) > $@
 DISTCLEANFILES += grub_emu_init.c
 
+grub_emu_init.o: grub_emu_init.c grub_emu_init.h
+	rm -f $@; $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -DGRUB_FILE=\"grub_init.c\" -c -o $@ $<
+CLEANFILES += grub_emu_init.o
+
+CLEANFILES += grub-emu-lite
+grub-emu-lite: $(pkglib_PROGRAMS) emu-lite.mod
+	$(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
+GRUB_EMU_LITE=grub-emu-lite
+
 CLEANFILES += grub-emu
-ifneq ($(TARGET_NO_MODULES), yes)
-grub-emu: $(pkglib_PROGRAMS)
-	$(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
-else
-grub-emu: $(pkglib_MODULES) $(pkglib_PROGRAMS)
-	$(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
-endif
+grub-emu: $(pkglib_MODULES) $(pkglib_PROGRAMS) emu-full.mod grub_emu_init.o
+	$(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
 GRUB_EMU=grub-emu
-

=== modified file 'configure.ac'
--- configure.ac	2010-05-18 11:33:35 +0000
+++ configure.ac	2010-05-26 11:23:43 +0000
@@ -54,14 +54,12 @@
   amd64)	target_cpu=x86_64 ;;
   sparc)	target_cpu=sparc64 ;;
   mipsel|mips64el)
-                target_cpu=mips;    
-		TARGET_CFLAGS="$TARGET_CFLAGS -DGRUB_CPU_MIPSEL=1"; 
-		CFLAGS="$CFLAGS -DGRUB_CPU_MIPSEL=1";
+                target_cpu=mips;
+		cpu_CPPFLAGS="-DGRUB_CPU_MIPSEL=1";
 		;;
   mips|mips64)
-                target_cpu=mips;    
-		TARGET_CFLAGS="$TARGET_CFLAGS -DGRUB_CPU_MIPS=1"; 
-		CFLAGS="$CFLAGS -DGRUB_CPU_MIPS=1";
+                target_cpu=mips;
+		cpu_CPPFLAGS="-DGRUB_CPU_MIPS=1";
 		;;
 esac
 
@@ -136,25 +134,29 @@
 esac
 
 case "$platform" in
-  coreboot)	machine_CFLAGS="-DGRUB_MACHINE_COREBOOT=1" ;;
-  multiboot)	machine_CFLAGS="-DGRUB_MACHINE_MULTIBOOT=1" ;;
-  efi)		machine_CFLAGS="-DGRUB_MACHINE_EFI=1" ;;
-  ieee1275)	machine_CFLAGS="-DGRUB_MACHINE_IEEE1275=1" ;;
-  qemu)		machine_CFLAGS="-DGRUB_MACHINE_QEMU=1" ;;
-  pc)		machine_CFLAGS="-DGRUB_MACHINE_PCBIOS=1" ;;
-  emu)		machine_CFLAGS="-DGRUB_MACHINE_EMU=1" ;;
-  yeeloong)	machine_CFLAGS="-DGRUB_MACHINE_MIPS_YEELOONG=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
-  qemu-mips)	machine_CFLAGS="-DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
+  coreboot)	machine_CPPFLAGS="-DGRUB_MACHINE_COREBOOT=1" ;;
+  multiboot)	machine_CPPFLAGS="-DGRUB_MACHINE_MULTIBOOT=1" ;;
+  efi)		machine_CPPFLAGS="-DGRUB_MACHINE_EFI=1" ;;
+  ieee1275)	machine_CPPFLAGS="-DGRUB_MACHINE_IEEE1275=1" ;;
+  qemu)		machine_CPPFLAGS="-DGRUB_MACHINE_QEMU=1" ;;
+  pc)		machine_CPPFLAGS="-DGRUB_MACHINE_PCBIOS=1" ;;
+  emu)		machine_CPPFLAGS="-DGRUB_MACHINE_EMU=1" ;;
+  yeeloong)	machine_CPPFLAGS="-DGRUB_MACHINE_MIPS_YEELOONG=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
+  qemu-mips)	machine_CPPFLAGS="-DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
 esac
 case "$target_cpu" in
-  mips)      	machine_CFLAGS="$machine_CFLAGS -DGRUB_MACHINE_MIPS=1" ;;
-  sparc64)      machine_CFLAGS="$machine_CFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
+  i386)         cpu_CPPFLAGS="$cpu_CPPFLAGS -DGRUB_CPU_I386";;
+  x86_64)       cpu_CPPFLAGS="$cpu_CPPFLAGS -DGRUB_CPU_X86_64";;
+  powerpc)      cpu_CPPFLAGS="$cpu_CPPFLAGS -DGRUB_CPU_POWERPC";;
+  mips)      	machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;; # cpu_CPPFLAGS handled above
+  sparc64)      cpu_CPPFLAGS="$cpu_CPPFLAGS -DGRUB_CPU_SPARC64";
+                machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
 esac
-machine_CFLAGS="$machine_CFLAGS -DMACHINE=`echo ${target_cpu}_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
+machine_CPPFLAGS="$machine_CPPFLAGS -DMACHINE=`echo ${target_cpu}_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
 
-CFLAGS="$CFLAGS $machine_CFLAGS"
-TARGET_ASFLAGS="$TARGET_ASFLAGS $machine_CFLAGS"
-TARGET_CFLAGS="$TARGET_CFLAGS $machine_CFLAGS"
+CPPFLAGS="$CPPFLAGS $cpu_CPPFLAGS $machine_CPPFLAGS"
+TARGET_ASFLAGS="$TARGET_ASFLAGS $cpu_CPPFLAGS $machine_CPPFLAGS"
+TARGET_CFLAGS="$TARGET_CFLAGS $cpu_CPPFLAGS $machine_CPPFLAGS"
 
 AC_SUBST(host_cpu)
 AC_SUBST(host_os)
@@ -609,10 +611,6 @@
 	      [AS_HELP_STRING([--enable-grub-emu-pci],
                              [build and install the `grub-emu' debugging utility with PCI support (potentially dangerous) (default=no)])])
 
-AC_ARG_ENABLE([grub-emu-modules],
-	      [AS_HELP_STRING([--enable-grub-emu-modules],
-                             [Support module loading in `grub-emu' debugging utility (default=no)])])
-
 if test "$platform" = emu; then
   missing_ncurses=
 [# Check for curses libraries.]
@@ -631,19 +629,6 @@
   AC_MSG_ERROR([grub-emu can't be compiled without ncurses])
 fi
 
-if test x"$enable_grub_emu_modules" = xyes ; then
-  TARGET_NO_MODULES=no
-else
-  TARGET_NO_MODULES=yes
-fi
-AC_SUBST(TARGET_NO_MODULES)
-
-if test "$TARGET_NO_MODULES" = yes ; then
-  # Do not convert modules, otherwise linkage may fail (Cygwin only).
-  # FIXME: Should be checked above before TARGET_OBJ2ELF is set first.
-  TARGET_OBJ2ELF=
-fi
-
 if test x"$enable_grub_emu_usb" = xno ; then
   grub_emu_usb_excuse="explicitly disabled"
 fi
@@ -837,11 +822,6 @@
 else
 echo PCI support for grub-emu: No "($grub_emu_pci_excuse)"
 fi
-if [ x"$TARGET_NO_MODULES" = xno ]; then
-echo Module support for grub-emu: Yes
-else
-echo Module support for grub-emu: No
-fi
 fi
 if [ x"$enable_mm_debug" = xyes ]; then
 echo With memory debugging: Yes

=== modified file 'genmk.rb'
--- genmk.rb	2010-04-09 23:25:46 +0000
+++ genmk.rb	2010-05-04 04:17:48 +0000
@@ -143,13 +143,6 @@
 MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module...@name}.#{@rule_count}
 UNDSYMFILES += #{undsym}
 
-ifeq ($(TARGET_NO_MODULES), yes)
-...@name}: #{pre_obj} $(TARGET_OBJ2ELF)
-	-rm -f $@
-	$(TARGET_CC) $(#{prefix}_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ #{pre_obj}
-	if test ! -z \"$(TARGET_OBJ2ELF)\"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi
-	if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi
-else
 ifneq ($(TARGET_APPLE_CC),1)
 #...@name}: #{pre_obj} #{mod_obj} $(TARGET_OBJ2ELF)
 	-rm -f $@
@@ -164,7 +157,6 @@
 	$(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd [email protected] $@
 	-rm -f [email protected]
 endif
-endif
 
 #{pre_obj}: $(#{prefix}_DEPENDENCIES) #{objs_str}
 	-rm -f $@

=== modified file 'include/grub/cache.h'
--- include/grub/cache.h	2010-02-06 23:52:31 +0000
+++ include/grub/cache.h	2010-05-26 04:26:59 +0000
@@ -23,7 +23,8 @@
 #include <grub/symbol.h>
 #include <grub/types.h>
 
-#if defined (__i386__) || defined (__x86_64__)
+#if defined (__i386__) || defined (__x86_64__) || \
+  (defined (GRUB_MACHINE_EMU) && GRUB_MACHINE_EMU)
 static inline void
 grub_arch_sync_caches (void *address __attribute__ ((unused)),
 		       grub_size_t len __attribute__ ((unused)))

=== modified file 'include/grub/dl.h'
--- include/grub/dl.h	2010-04-27 08:27:14 +0000
+++ include/grub/dl.h	2010-05-25 10:39:03 +0000
@@ -91,22 +91,17 @@
 int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod);
 void grub_dl_unload_unneeded (void);
 void grub_dl_unload_all (void);
-#if defined (GRUB_UTIL) || defined (GRUB_TARGET_NO_MODULES)
-#define GRUB_NO_MODULES 1
-#else
-#define GRUB_NO_MODULES 0
-#endif
 int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod);
 int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod);
 void EXPORT_FUNC(grub_dl_iterate) (int (*hook) (grub_dl_t mod));
 grub_dl_t EXPORT_FUNC(grub_dl_get) (const char *name);
-grub_err_t grub_dl_register_symbol (const char *name, void *addr,
-				    grub_dl_t mod);
+grub_err_t EXPORT_FUNC(grub_dl_register_symbol) (const char *name, void *addr,
+						 grub_dl_t mod);
 
 grub_err_t grub_arch_dl_check_header (void *ehdr);
 grub_err_t grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr);
 
-#if defined (_mips) && ! GRUB_NO_MODULES
+#if defined (_mips) && (! defined (GRUB_MACHINE_EMU) || ! GRUB_MACHINE_EMU)
 #define GRUB_LINKER_HAVE_INIT 1
 void grub_arch_dl_init_linker (void);
 #endif

=== modified file 'include/grub/emu/misc.h'
--- include/grub/emu/misc.h	2010-05-06 03:15:39 +0000
+++ include/grub/emu/misc.h	2010-05-26 04:28:23 +0000
@@ -23,6 +23,7 @@
 extern int verbosity;
 extern const char *program_name;
 
+void grub_emu_init (void);
 void grub_init_all (void);
 void grub_fini_all (void);
 
@@ -46,5 +47,6 @@
 #endif
 
 char * EXPORT_FUNC(xasprintf) (const char *fmt, ...);
+char * canonicalize_file_name (const char *path);
 
 #endif /* GRUB_EMU_MISC_H */

=== modified file 'include/grub/misc.h'
--- include/grub/misc.h	2010-04-11 19:24:21 +0000
+++ include/grub/misc.h	2010-05-04 04:17:48 +0000
@@ -50,6 +50,9 @@
 /* XXX: If grub_memmove is too slow, we must implement grub_memcpy.  */
 #define grub_memcpy(d,s,n)	grub_memmove ((d), (s), (n))
 
+/* Flag to control module autoloading in normal mode.  */
+extern int EXPORT_VAR(grub_no_autoload);
+
 void *EXPORT_FUNC(grub_memmove) (void *dest, const void *src, grub_size_t n);
 char *EXPORT_FUNC(grub_strcpy) (char *dest, const char *src);
 char *EXPORT_FUNC(grub_strncpy) (char *dest, const char *src, int c);

=== added file 'kern/emu/cache.S'
--- kern/emu/cache.S	1970-01-01 00:00:00 +0000
+++ kern/emu/cache.S	2010-05-06 06:08:35 +0000
@@ -0,0 +1,19 @@
+#ifndef GRUB_MACHINE_EMU
+#error "This source is only meant for grub-emu platform"
+#endif
+
+#if defined(GRUB_CPU_I386)
+/* Nothing is necessary.  */
+#elif defined(GRUB_CPU_X86_64)
+/* Nothing is necessary.  */
+#elif defined(GRUB_CPU_SPARC64)
+#include "../sparc64/cache.S"
+#elif defined(GRUB_CPU_MIPS)
+#include "../mips/cache.S"
+#elif defined(GRUB_CPU_MIPSEL)
+#include "../mips/cache.S"
+#elif defined(GRUB_CPU_POWERPC)
+#include "../powerpc/cache.S"
+#else
+#error "No target cpu type is defined"
+#endif

=== added file 'kern/emu/full.c'
--- kern/emu/full.c	1970-01-01 00:00:00 +0000
+++ kern/emu/full.c	2010-05-06 06:08:35 +0000
@@ -0,0 +1,50 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2010  Free Software Foundation, Inc.
+ *
+ *  GRUB is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  GRUB is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <grub/dl.h>
+#include <grub/env.h>
+#include <grub/kernel.h>
+#include <grub/misc.h>
+#include <grub/emu/misc.h>
+
+void
+grub_register_exported_symbols (void)
+{
+}
+
+grub_err_t
+grub_arch_dl_check_header (void *ehdr)
+{
+  (void) ehdr;
+  return GRUB_ERR_BAD_MODULE;
+}
+
+grub_err_t
+grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr)
+{
+  (void) mod;
+  (void) ehdr;
+  return GRUB_ERR_BAD_MODULE;
+}
+
+void
+grub_emu_init (void)
+{
+  grub_no_autoload = 1;
+}

=== added file 'kern/emu/lite.c'
--- kern/emu/lite.c	1970-01-01 00:00:00 +0000
+++ kern/emu/lite.c	2010-05-06 06:08:35 +0000
@@ -0,0 +1,42 @@
+#include <config.h>
+#include <grub/emu/misc.h>
+
+#ifndef GRUB_MACHINE_EMU
+#error "This source is only meant for grub-emu platform"
+#endif
+
+#if defined(GRUB_CPU_I386)
+#include "../i386/dl.c"
+#elif defined(GRUB_CPU_X86_64)
+#include "../x86_64/dl.c"
+#elif defined(GRUB_CPU_SPARC64)
+#include "../sparc64/dl.c"
+#elif defined(GRUB_CPU_MIPS)
+#include "../mips/dl.c"
+#elif defined(GRUB_CPU_MIPSEL)
+#include "../mips/dl.c"
+#elif defined(GRUB_CPU_POWERPC)
+#include "../powerpc/dl.c"
+#else
+#error "No target cpu type is defined"
+#endif
+
+/* grub-emu-lite supports dynamic module loading, so it won't have any
+   embedded modules.  */
+void
+grub_init_all (void)
+{
+  return;
+}
+
+void
+grub_fini_all (void)
+{
+  return;
+}
+
+void
+grub_emu_init (void)
+{
+  return;
+}

=== modified file 'kern/emu/main.c'
--- kern/emu/main.c	2010-05-04 03:39:03 +0000
+++ kern/emu/main.c	2010-05-04 04:17:48 +0000
@@ -57,25 +57,6 @@
   return 0;
 }
 
-#if GRUB_NO_MODULES
-grub_err_t
-grub_arch_dl_check_header (void *ehdr)
-{
-  (void) ehdr;
-
-  return GRUB_ERR_BAD_MODULE;
-}
-
-grub_err_t
-grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr)
-{
-  (void) mod;
-  (void) ehdr;
-
-  return GRUB_ERR_BAD_MODULE;
-}
-#endif
-
 void
 grub_reboot (void)
 {
@@ -154,10 +135,7 @@
 void grub_hostfs_fini (void);
 void grub_host_init (void);
 void grub_host_fini (void);
-#if GRUB_NO_MODULES
-void grub_init_all (void);
-void grub_fini_all (void);
-#endif
+void grub_emu_init (void);
 
 int
 main (int argc, char *argv[])
@@ -216,6 +194,7 @@
     }
 
   signal (SIGINT, SIG_IGN);
+  grub_emu_init ();
   grub_console_init ();
   grub_host_init ();
   grub_hostfs_init ();
@@ -223,9 +202,7 @@
   /* XXX: This is a bit unportable.  */
   grub_util_biosdisk_init (dev_map);
 
-#if GRUB_NO_MODULES
   grub_init_all ();
-#endif
 
   /* Make sure that there is a root device.  */
   if (! root_dev)
@@ -255,9 +232,7 @@
   if (setjmp (main_env) == 0)
     grub_main ();
 
-#if GRUB_NO_MODULES
   grub_fini_all ();
-#endif
   grub_hostfs_fini ();
   grub_host_fini ();
 
@@ -287,10 +262,3 @@
 }
 
 #endif
-
-#if GRUB_NO_MODULES
-void
-grub_register_exported_symbols (void)
-{
-}
-#endif

=== modified file 'kern/main.c'
--- kern/main.c	2010-05-01 19:32:23 +0000
+++ kern/main.c	2010-05-04 04:17:48 +0000
@@ -30,6 +30,8 @@
 #include <grub/reader.h>
 #include <grub/parser.h>
 
+int grub_no_autoload;
+
 void
 grub_module_iterate (int (*hook) (struct grub_module_header *header))
 {

=== modified file 'normal/main.c'
--- normal/main.c	2010-05-01 18:28:07 +0000
+++ normal/main.c	2010-05-04 04:17:48 +0000
@@ -476,10 +476,13 @@
 static void
 read_lists (const char *val)
 {
-  read_command_list (val);
-  read_fs_list (val);
-  read_crypto_list (val);
-  read_terminal_list (val);
+  if (! grub_no_autoload)
+    {
+      read_command_list (val);
+      read_fs_list (val);
+      read_crypto_list (val);
+      read_terminal_list (val);
+    }
 }
 
 static char *

=== modified file 'util/misc.c'
--- util/misc.c	2010-05-20 22:16:10 +0000
+++ util/misc.c	2010-05-26 04:28:23 +0000
@@ -185,12 +185,10 @@
 {
 }
 
-#if GRUB_NO_MODULES
 void
 grub_register_exported_symbols (void)
 {
 }
-#endif
 
 #ifdef __MINGW32__
 
@@ -214,14 +212,6 @@
 
 #endif
 
-#if !(defined (__i386__) || defined (__x86_64__)) && GRUB_NO_MODULES
-void
-grub_arch_sync_caches (void *address __attribute__ ((unused)),
-		       grub_size_t len __attribute__ ((unused)))
-{
-}
-#endif
-
 #ifdef __MINGW32__
 
 void sync (void)

# Begin bundle
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
OZJlEJ4fzF3JFOFCQFriqvQ=
_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to