* [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules
@ 2010-04-29 4:37 BVK Chaitanya
2010-05-26 12:31 ` BVK Chaitanya
0 siblings, 1 reply; 7+ messages in thread
From: BVK Chaitanya @ 2010-04-29 4:37 UTC (permalink / raw)
To: The development of GRUB 2
[-- Attachment #1: Type: text/plain, Size: 255 bytes --]
Hi,
This patch merges grub-emu's --enable-grub-emu-modules build into
normal emu build, by introducing a new tool, grub-emu-lite, which
supports module loading.
This patch is made on top of my earlier grub-emu sources re-org patch.
--
bvk.chaitanya
[-- Attachment #2: emu-lite.patch.txt --]
[-- Type: text/plain, Size: 22995 bytes --]
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: bvk.groups@gmail.com-20100429042546-v7k0k7fgtwpktwms
# target_branch: ../emu-reorg/
# testament_sha1: 677d2ae4b8ae5ac3e6e14344deaafe3af731e92e
# timestamp: 2010-04-29 09:56:21 +0530
# base_revision_id: bvk.groups@gmail.com-20100427152945-\
# bjgexrt8o76byxuf
#
# Begin patch
=== modified file 'Makefile.in'
--- Makefile.in 2010-04-17 15:17:36 +0000
+++ Makefile.in 2010-04-29 04:25:46 +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-02-07 03:23:44 +0000
+++ commands/parttool.c 2010-04-29 04:25:46 +0000
@@ -175,7 +175,7 @@
}
/* Load modules. */
-#if GRUB_NO_MODULES
+#if GRUB_MACHINE_EMU
{
const char *prefix;
prefix = grub_env_get ("prefix");
=== modified file 'conf/any-emu.rmk'
--- conf/any-emu.rmk 2010-04-27 15:25:12 +0000
+++ conf/any-emu.rmk 2010-04-29 04:25:46 +0000
@@ -20,16 +20,13 @@
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)
+
+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)
# For halt.mod.
pkglib_MODULES += halt.mod
@@ -102,13 +99,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-04-18 17:57:50 +0000
+++ configure.ac 2010-04-29 04:25:46 +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
@@ -135,23 +133,26 @@
esac
case "$platform" in
- coreboot) machine_CFLAGS="-DGRUB_MACHINE_COREBOOT=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" ;;
+ 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
-CFLAGS="$CFLAGS $machine_CFLAGS"
-TARGET_ASFLAGS="$TARGET_ASFLAGS $machine_CFLAGS"
-TARGET_CFLAGS="$TARGET_CFLAGS $machine_CFLAGS"
+CPPFLAGS="$CPPFLAGS $cpu_CPPFLAGS $machine_CPPFLAGS"
+TARGET_CFLAGS="$TARGET_CFLAGS $cpu_CPPFLAGS $machine_CPPFLAGS"
AC_SUBST(host_cpu)
AC_SUBST(host_os)
@@ -608,10 +609,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.]
@@ -630,13 +627,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 x"$enable_grub_emu_usb" = xno ; then
grub_emu_usb_excuse="explicitly disabled"
fi
@@ -814,11 +804,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-04-29 04:25:46 +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 $@.bin $@
-rm -f $@.bin
endif
-endif
#{pre_obj}: $(#{prefix}_DEPENDENCIES) #{objs_str}
-rm -f $@
=== modified file 'include/grub/dl.h'
--- include/grub/dl.h 2010-04-27 08:27:14 +0000
+++ include/grub/dl.h 2010-04-29 04:25:46 +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) && ! 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-04-27 15:25:12 +0000
+++ include/grub/emu/misc.h 2010-04-29 04:25:46 +0000
@@ -16,6 +16,7 @@
extern int verbosity;
extern const char *program_name;
+void grub_emu_init (void);
void grub_init_all (void);
void grub_fini_all (void);
=== added file 'kern/emu/cache.S'
--- kern/emu/cache.S 1970-01-01 00:00:00 +0000
+++ kern/emu/cache.S 2010-04-29 04:25:46 +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/dl.c'
--- kern/emu/dl.c 1970-01-01 00:00:00 +0000
+++ kern/emu/dl.c 2010-04-29 04:25:46 +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)
+#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
=== added file 'kern/emu/full.c'
--- kern/emu/full.c 1970-01-01 00:00:00 +0000
+++ kern/emu/full.c 2010-04-29 04:25:46 +0000
@@ -0,0 +1,49 @@
+/*
+ * 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/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_env_set ("noautoload", "1");
+}
=== added file 'kern/emu/lite.c'
--- kern/emu/lite.c 1970-01-01 00:00:00 +0000
+++ kern/emu/lite.c 2010-04-29 04:25:46 +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-04-27 08:27:14 +0000
+++ kern/emu/main.c 2010-04-29 04:25:46 +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 'normal/main.c'
--- normal/main.c 2010-04-09 19:07:24 +0000
+++ normal/main.c 2010-04-29 04:25:46 +0000
@@ -437,10 +437,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_env_get("noautoload"))
+ {
+ 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-04-27 15:25:12 +0000
+++ util/misc.c 2010-04-29 04:25:46 +0000
@@ -188,12 +188,10 @@
{
}
-#if GRUB_NO_MODULES
void
grub_register_exported_symbols (void)
{
}
-#endif
#ifdef __MINGW32__
@@ -217,7 +215,7 @@
#endif
-#if !(defined (__i386__) || defined (__x86_64__)) && GRUB_NO_MODULES
+#if !(defined (__i386__) || defined (__x86_64__)) && GRUB_MACHINE_EMU
void
grub_arch_sync_caches (void *address __attribute__ ((unused)),
grub_size_t len __attribute__ ((unused)))
# Begin bundle
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
ZH/i7kinChIBixE2wA==
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules 2010-04-29 4:37 [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules BVK Chaitanya @ 2010-05-26 12:31 ` BVK Chaitanya 2010-05-27 17:12 ` BVK Chaitanya 0 siblings, 1 reply; 7+ messages in thread From: BVK Chaitanya @ 2010-05-26 12:31 UTC (permalink / raw) To: The development of GRUB 2 [-- Attachment #1: Type: text/plain, Size: 115 bytes --] Attached is the updated version with build fixes for sparc64-linux-gnu and freebsd platforms. -- bvk.chaitanya [-- Attachment #2: lite.patch --] [-- Type: text/x-diff, Size: 30994 bytes --] # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bvk.groups@gmail.com-20100526112829-yqtb9jfvlbwku9mv # target_branch: ../mainline/ # testament_sha1: 58a6119f369683840d67a9b8a1fa98839f0dcbf7 # timestamp: 2010-05-26 17:49:59 +0530 # base_revision_id: bvk.groups@gmail.com-20100525125446-\ # 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 $@.bin $@ -rm -f $@.bin 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= ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules 2010-05-26 12:31 ` BVK Chaitanya @ 2010-05-27 17:12 ` BVK Chaitanya 2010-05-28 11:52 ` BVK Chaitanya 0 siblings, 1 reply; 7+ messages in thread From: BVK Chaitanya @ 2010-05-27 17:12 UTC (permalink / raw) To: The development of GRUB 2 [-- Attachment #1: Type: text/plain, Size: 48 bytes --] Updated for cygwin build. -- bvk.chaitanya [-- Attachment #2: lite.patch --] [-- Type: text/x-diff, Size: 32343 bytes --] # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: chaitanya@personal-lr2wsx-20100528000431-\ # qeo8qbb74n92rutd # target_branch: ../mainline/ # testament_sha1: 0d5c612d935b7c6f116130b4c15d715c0d36958c # timestamp: 2010-05-27 22:34:44 +0530 # base_revision_id: bvk.groups@gmail.com-20100525125446-\ # 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-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 '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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 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules 2010-05-27 17:12 ` BVK Chaitanya @ 2010-05-28 11:52 ` BVK Chaitanya 2010-06-02 9:29 ` BVK Chaitanya 0 siblings, 1 reply; 7+ messages in thread From: BVK Chaitanya @ 2010-05-28 11:52 UTC (permalink / raw) To: The development of GRUB 2 [-- Attachment #1: Type: text/plain, Size: 47 bytes --] Updated for netbsd build. -- bvk.chaitanya [-- Attachment #2: lite.patch --] [-- Type: text/x-diff, Size: 33458 bytes --] # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bvk.groups@gmail.com-20100528105307-z4fye52fe0j681no # target_branch: ../mainline/ # testament_sha1: bb58c232ef2971489afd458d475db4062ca985c8 # timestamp: 2010-05-28 17:14:34 +0530 # base_revision_id: cjwatson@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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 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules 2010-05-28 11:52 ` BVK Chaitanya @ 2010-06-02 9:29 ` BVK Chaitanya 2010-06-07 21:45 ` Vladimir 'φ-coder/phcoder' Serbinenko 0 siblings, 1 reply; 7+ messages in thread From: BVK Chaitanya @ 2010-06-02 9:29 UTC (permalink / raw) To: The development of GRUB 2 [-- Attachment #1: Type: text/plain, Size: 79 bytes --] Updated patch with review comments (on IRC) is attached. -- bvk.chaitanya [-- Attachment #2: lite.patch --] [-- Type: text/x-diff, Size: 31267 bytes --] # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bvk.groups@gmail.com-20100602091507-1ue7h482akbs3w5b # target_branch: ../mainline/ # testament_sha1: b64ba6563eb16fb1ff5ae97d2102dc8f20c6b61d # timestamp: 2010-06-02 14:51:49 +0530 # base_revision_id: phcoder@gmail.com-20100531190101-7nv9wk13lovmlg25 # # 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-06-02 09:15:07 +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-28 13:48:45 +0000 +++ conf/any-emu.rmk 2010-06-02 03:42:52 +0000 @@ -1,5 +1,10 @@ # -*- makefile -*- +ifeq ($(target_cpu), sparc64) +COMMON_CFLAGS += -mno-app-regs +COMMON_LDFLAGS += -mno-relax +endif + kernel_img_RELOCATABLE = yes pkglib_PROGRAMS = kernel.img kernel_img_SOURCES = kern/device.c kern/disk.c kern/dl.c kern/env.c \ @@ -18,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 @@ -43,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 @@ -100,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-28 17:13:48 +0000 +++ configure.ac 2010-06-02 08:21:05 +0000 @@ -609,10 +609,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 +627,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 +820,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/dl.h' --- include/grub/dl.h 2010-04-27 08:27:14 +0000 +++ include/grub/dl.h 2010-06-02 09:15:07 +0000 @@ -91,11 +91,6 @@ 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)); @@ -106,7 +101,7 @@ 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) #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-28 13:48:45 +0000 +++ include/grub/emu/misc.h 2010-06-02 09:15:07 +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); === modified file 'include/grub/misc.h' --- include/grub/misc.h 2010-04-11 19:24:21 +0000 +++ include/grub/misc.h 2010-06-02 09:15:07 +0000 @@ -308,4 +308,11 @@ void EXPORT_FUNC (grub_halt) (void); #endif +#ifdef GRUB_MACHINE_EMU +/* Flag to control module autoloading in normal mode. */ +extern int EXPORT_VAR(grub_no_autoload); +#else +#define grub_no_autoload 0 +#endif + #endif /* ! GRUB_MISC_HEADER */ === added file 'kern/emu/cache.S' --- kern/emu/cache.S 1970-01-01 00:00:00 +0000 +++ kern/emu/cache.S 2010-06-02 08:21:05 +0000 @@ -0,0 +1,15 @@ +#ifndef GRUB_MACHINE_EMU +#error "This source is only meant for grub-emu platform" +#endif + +#if defined(__i386__) || defined(__x86_64__) +/* Nothing is necessary. */ +#elif defined(__sparc__) +#include "../sparc64/cache.S" +#elif defined(__mips__) +#include "../mips/cache.S" +#elif defined(__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-06-02 08:21:05 +0000 @@ -0,0 +1,40 @@ +#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(__i386__) +#include "../i386/dl.c" +#elif defined(__x86_64__) +#include "../x86_64/dl.c" +#elif defined(__sparc__) +#include "../sparc64/dl.c" +#elif defined(__mips__) +#include "../mips/dl.c" +#elif defined(__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-06-02 09:15:07 +0000 @@ -51,31 +51,14 @@ /* Store the prefix specified by an argument. */ static char *prefix = NULL; +int grub_no_autoload; + grub_addr_t grub_arch_modules_addr (void) { 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 +137,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 +196,7 @@ } signal (SIGINT, SIG_IGN); + grub_emu_init (); grub_console_init (); grub_host_init (); grub_hostfs_init (); @@ -223,9 +204,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 +234,7 @@ if (setjmp (main_env) == 0) grub_main (); -#if GRUB_NO_MODULES grub_fini_all (); -#endif grub_hostfs_fini (); grub_host_fini (); @@ -287,10 +264,3 @@ } #endif - -#if GRUB_NO_MODULES -void -grub_register_exported_symbols (void) -{ -} -#endif === modified file 'normal/main.c' --- normal/main.c 2010-05-31 18:46:16 +0000 +++ normal/main.c 2010-06-02 09:15:07 +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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 7kinChIFc1ZRQA== ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules 2010-06-02 9:29 ` BVK Chaitanya @ 2010-06-07 21:45 ` Vladimir 'φ-coder/phcoder' Serbinenko 2010-06-08 8:12 ` BVK Chaitanya 0 siblings, 1 reply; 7+ messages in thread From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-06-07 21:45 UTC (permalink / raw) To: The development of GNU GRUB [-- Attachment #1: Type: text/plain, Size: 363 bytes --] On 06/02/2010 11:29 AM, BVK Chaitanya wrote: > Updated patch with review comments (on IRC) is attached. > > go ahead > > > > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel > -- Regards Vladimir 'φ-coder/phcoder' Serbinenko [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 294 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules 2010-06-07 21:45 ` Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-06-08 8:12 ` BVK Chaitanya 0 siblings, 0 replies; 7+ messages in thread From: BVK Chaitanya @ 2010-06-08 8:12 UTC (permalink / raw) To: The development of GNU GRUB 2010/6/8 Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com>: > On 06/02/2010 11:29 AM, BVK Chaitanya wrote: >> Updated patch with review comments (on IRC) is attached. >> >> > go ahead >> Committed into experimental. -- bvk.chaitanya ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-06-08 8:12 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-04-29 4:37 [PATCH] grub-emu-lite tool instead of --enable-grub-emu-modules BVK Chaitanya 2010-05-26 12:31 ` BVK Chaitanya 2010-05-27 17:12 ` BVK Chaitanya 2010-05-28 11:52 ` BVK Chaitanya 2010-06-02 9:29 ` BVK Chaitanya 2010-06-07 21:45 ` Vladimir 'φ-coder/phcoder' Serbinenko 2010-06-08 8:12 ` BVK Chaitanya
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.