Updated for netbsd build.


-- 
bvk.chaitanya
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: bvk.gro...@gmail.com-20100528105307-z4fye52fe0j681no
# target_branch: ../mainline/
# testament_sha1: bb58c232ef2971489afd458d475db4062ca985c8
# timestamp: 2010-05-28 17:14:34 +0530
# base_revision_id: cjwat...@ubuntu.com-20100527145418-\
#   3d0khpqyt8n23qql
# 
# 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-28 00:04:31 +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,17 +23,6 @@
 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
-
 # For halt.mod.
 pkglib_MODULES += halt.mod
 halt_mod_SOURCES = commands/halt.c
@@ -45,6 +37,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 +97,32 @@
 	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
+
+kern_emu_lite.o: kern/emu/lite.c
+	$(TARGET_CC) $(COMMON_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -DGRUB_FILE=\"kern/emu/lite.c\" -c -o $@ $<
+CLEANFILES += kern_emu_lite.o
+
+kern_emu_full.o: kern/emu/full.c
+	$(TARGET_CC) $(COMMON_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -DGRUB_FILE=\"kern/emu/full.c\" -c -o $@ $<
+CLEANFILES += kern_emu_full.o
+
+kern_emu_cache.o: kern/emu/cache.S
+	$(TARGET_CC) $(COMMON_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(TARGET_ASFLAGS) -DGRUB_FILE=\"kern/emu/cache.S\" -c -o $@ $<
+CLEANFILES += kern_emu_cache.o
+
+symlist.o: symlist.c
+	$(TARGET_CC) $(COMMON_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -DGRUB_FILE=\"symlist.c\" -c -o $@ $<
+CLEANFILES += symlist.o
+
+CLEANFILES += grub-emu-lite
+grub-emu-lite: kern_emu_lite.o kern_emu_cache.o symlist.o kernel.img
+	$(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: $(PREMODFILES) kern_emu_full.o grub_emu_init.o kernel.img
+	$(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-28 00:04:31 +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,11 +157,11 @@
 	$(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $...@.bin $@
 	-rm -f $...@.bin
 endif
-endif
 
 #{pre_obj}: $(#{prefix}_DEPENDENCIES) #{objs_str}
 	-rm -f $@
 	$(TARGET_CC) $(#{prefix}_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ #{objs_str}
+PREMODFILES += #{pre_obj}
 
 #{mod_obj}: #{mod_src}
 	$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(#{prefix}_CFLAGS) -DGRUB_FILE=\\\"#{mod_src}\\\" -c -o $@ $<

=== 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 'kern/misc.c'
--- kern/misc.c	2010-04-11 19:24:21 +0000
+++ kern/misc.c	2010-05-28 10:48:22 +0000
@@ -1058,7 +1058,7 @@
 void abort (void) __attribute__ ((alias ("grub_abort")));
 #endif
 
-#if defined(NEED_ENABLE_EXECUTE_STACK) && !defined(GRUB_UTIL)
+#if defined(NEED_ENABLE_EXECUTE_STACK) && !defined(GRUB_UTIL) && !defined(GRUB_MACHINE_EMU)
 /* Some gcc versions generate a call to this function
    in trampolines for nested functions.  */
 void __enable_execute_stack (void *addr __attribute__ ((unused)))

=== 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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
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to