]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
added support for --enable-grub-emu-modules build
authorBVK Chaitanya <bvk.groups@gmail.com>
Tue, 27 Apr 2010 08:27:14 +0000 (13:57 +0530)
committerBVK Chaitanya <bvk.groups@gmail.com>
Tue, 27 Apr 2010 08:27:14 +0000 (13:57 +0530)
conf/any-emu.rmk
include/grub/dl.h
kern/dl.c
kern/emu/cache.S [deleted file]
kern/emu/dummy/dl.c [deleted file]
kern/emu/lite.c [deleted file]
kern/emu/main.c
util/misc.c

index 5f6798d791a1ce30c4d87a6c240318981b8c22b5..ffaabcd2f0a2a65fcffc3ff3e6898b1e0fa3b8df 100644 (file)
@@ -9,10 +9,11 @@ kernel_img_SOURCES = kern/device.c kern/disk.c kern/dl.c kern/env.c   \
        kern/corecmd.c kern/file.c kern/fs.c kern/main.c kern/misc.c    \
        kern/parser.c kern/partition.c kern/term.c                      \
        kern/rescue_reader.c kern/rescue_parser.c                       \
-       \
-       kern/emu/misc.c kern/emu/getroot.c kern/emu/time.c              \
-       kern/emu/hostdisk.c kern/emu/hostfs.c kern/emu/console.c        \
-       \
+                                                                       \
+       kern/emu/main.c kern/emu/misc.c kern/emu/getroot.c              \
+       kern/emu/time.c kern/emu/hostdisk.c kern/emu/hostfs.c           \
+       kern/emu/console.c                                              \
+                                                                       \
        gnulib/progname.c disk/host.c
 kernel_img_HEADERS += datetime.h emu/misc.h
 kernel_img_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-undef -I$(srcdir)/gnulib
@@ -85,7 +86,7 @@ endif
 
 ifeq ($(enable_grub_emu_pci), yes)
 pkglib_MODULES += pci.mod
-pci_mod_SOURCES = util/pci.c commands/lspci.c
+pci_mod_SOURCES = bus/emu/pci.c commands/lspci.c
 pci_mod_LDFLAGS = $(COMMON_LDFLAGS)
 grub_emu_LDFLAGS += $(LIBPCIACCESS)
 kernel_img_HEADERS += libpciaccess.h
@@ -104,13 +105,8 @@ DISTCLEANFILES += grub_emu_init.c
 CLEANFILES += grub-emu
 ifneq ($(TARGET_NO_MODULES), yes)
 grub-emu: $(pkglib_PROGRAMS)
-       $(CC) -o $@ $(pkglib_PROGRAMS) $(grub_emu_LDFLAGS) $(LDFLAGS)
+       $(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
 else
-
-pkglib_MODULES += emu.mod
-emu_mod_SOURCES = kern/emu/main.c
-emu_mod_CFLAGS = -I$(srcdir)/gnulib
-
 grub-emu: $(pkglib_MODULES) $(pkglib_PROGRAMS)
        $(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
 endif
index cfb7c2f99ba8e1f6f1559f226a098352d12224cc..cf5da7fd5be5ab600a73d3e3c74c6685b60bcd9b 100644 (file)
@@ -96,23 +96,8 @@ void grub_dl_unload_all (void);
 #else
 #define GRUB_NO_MODULES 0
 #endif
-#if GRUB_NO_MODULES
-static inline int
-grub_dl_ref (grub_dl_t mod)
-{
-  (void) mod;
-  return 0;
-}
-static inline int
-grub_dl_unref (grub_dl_t mod)
-{
-  (void) mod;
-  return 0;
-}
-#else
 int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod);
 int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod);
-#endif
 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,
index 19ee13243453c7d62b73805194c440299e7964f9..c6a038cfa6ed49c505762caba8e69bfc8025ec83 100644 (file)
--- a/kern/dl.c
+++ b/kern/dl.c
@@ -469,12 +469,14 @@ grub_dl_resolve_dependencies (grub_dl_t mod, Elf_Ehdr *e)
   return GRUB_ERR_NONE;
 }
 
-#if !GRUB_NO_MODULES
 int
 grub_dl_ref (grub_dl_t mod)
 {
   grub_dl_dep_t dep;
 
+  if (!mod)
+    return 0;
+
   for (dep = mod->dep; dep; dep = dep->next)
     grub_dl_ref (dep->mod);
 
@@ -486,12 +488,14 @@ grub_dl_unref (grub_dl_t mod)
 {
   grub_dl_dep_t dep;
 
+  if (!mod)
+    return 0;
+
   for (dep = mod->dep; dep; dep = dep->next)
     grub_dl_unref (dep->mod);
 
   return --mod->ref_count;
 }
-#endif
 
 static void
 grub_dl_flush_cache (grub_dl_t mod)
diff --git a/kern/emu/cache.S b/kern/emu/cache.S
deleted file mode 100644 (file)
index 087b2b4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef GRUB_MACHINE_EMU
-#error "This source is only meant for grub-emu platform"
-#endif
-
-#if GRUB_CPU_I386
-#elif GRUB_CPU_X86_64
-#elif GRUB_CPU_SPARC64
-#include "../sparc64/cache.S"
-#elif GRUB_CPU_MIPS
-#include "../mips/cache.S"
-#elif GRUB_CPU_MIPSEL
-#include "../mips/cache.S"
-#elif GRUB_CPU_POWERPC
-#include "../powerpc/cache.S"
-#else
-#error "No target cpu type is defined"
-#endif
diff --git a/kern/emu/dummy/dl.c b/kern/emu/dummy/dl.c
deleted file mode 100644 (file)
index 8e9fabf..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  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>
-
-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;
-}
-
-/* int */
-/* grub_dl_ref (grub_dl_t mod) */
-/* {  */
-/*   (void) mod; */
-/*   return 0; */
-/* } */
-
-/* int */
-/* grub_dl_unref (grub_dl_t mod) */
-/* {  */
-/*   (void) mod; */
-/*   return 0; */
-/* } */
diff --git a/kern/emu/lite.c b/kern/emu/lite.c
deleted file mode 100644 (file)
index 1f06e39..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <config.h>
-#include <grub/emu/misc.h>
-
-/* 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;
-}
index 978919f2a6238392cc8f8bcf6df517c41d8e60d6..c9b1d65955925e0e30ab90a26048417cc2566a4e 100644 (file)
@@ -27,6 +27,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include <grub/dl.h>
 #include <grub/mm.h>
 #include <grub/setjmp.h>
 #include <grub/fs.h>
index 17fa6d5e4de7696b6bc77ba018fc747ffc5fb67b..c413352e7113f9d690a68155112947651549718b 100644 (file)
@@ -564,3 +564,17 @@ grub_util_init_nls (void)
 #endif /* (defined(ENABLE_NLS) && ENABLE_NLS) */
 }
 #endif
+
+int
+grub_dl_ref (grub_dl_t mod)
+{
+  (void) mod;
+  return 0;
+}
+
+int
+grub_dl_unref (grub_dl_t mod)
+{
+  (void) mod;
+  return 0;
+}