added support for --enable-grub-emu-modules build

This commit is contained in:
BVK Chaitanya 2010-04-27 13:57:14 +05:30
parent 840b61d8f0
commit 4c7085f82b
8 changed files with 28 additions and 112 deletions

View file

@ -10,8 +10,9 @@ kernel_img_SOURCES = kern/device.c kern/disk.c kern/dl.c kern/env.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
@ -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

View 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,

View file

@ -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)

View file

@ -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

View file

@ -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; */
/* } */

View file

@ -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;
}

View 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>

View 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;
}