2009-03-28 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'. (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New variables. Use 16-bit loader. (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit loader. * kern/i386/loader.S (grub_linux_boot): Rename to ... (grub_linux16_boot): ... this. Update all users. * loader/i386/linux.c (grub_linux32_boot): Rename to ... (grub_linux_boot): ... this. Update all users. * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ... (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd' commands to `linux16' and `initrd16'. (GRUB_MOD_FINI(linux)): Rename to ... (GRUB_MOD_FINI(linux16)): ... this.
This commit is contained in:
parent
7d074e3ce2
commit
a9368fd30c
7 changed files with 112 additions and 32 deletions
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
|||
2009-03-28 Robert Millan <rmh@aybabtu.com>
|
||||
|
||||
* conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
|
||||
(linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
|
||||
variables. Use 16-bit loader.
|
||||
(linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
|
||||
loader.
|
||||
* kern/i386/loader.S (grub_linux_boot): Rename to ...
|
||||
(grub_linux16_boot): ... this. Update all users.
|
||||
* loader/i386/linux.c (grub_linux32_boot): Rename to ...
|
||||
(grub_linux_boot): ... this. Update all users.
|
||||
|
||||
* loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
|
||||
(GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
|
||||
commands to `linux16' and `initrd16'.
|
||||
(GRUB_MOD_FINI(linux)): Rename to ...
|
||||
(GRUB_MOD_FINI(linux16)): ... this.
|
||||
|
||||
2009-03-24 Pavel Roskin <proski@gnu.org>
|
||||
|
||||
* genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
|
||||
|
|
|
@ -1010,7 +1010,7 @@ grub-mkrescue: util/i386/pc/grub-mkrescue.in $(util/i386/pc/grub-mkrescue.in_DEP
|
|||
chmod +x $@
|
||||
|
||||
|
||||
pkglib_MODULES = biosdisk.mod chain.mod linux.mod normal.mod \
|
||||
pkglib_MODULES = biosdisk.mod chain.mod normal.mod \
|
||||
multiboot.mod reboot.mod halt.mod \
|
||||
vbe.mod vbetest.mod vbeinfo.mod play.mod serial.mod \
|
||||
ata.mod vga.mod memdisk.mod pci.mod lspci.mod \
|
||||
|
@ -1132,14 +1132,71 @@ partmap-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $
|
|||
chain_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
chain_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For _linux.mod.
|
||||
linux_mod_SOURCES = loader/i386/pc/linux.c
|
||||
CLEANFILES += linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_pc_linux.o und-linux.lst
|
||||
pkglib_MODULES += linux16.mod
|
||||
linux16_mod_SOURCES = loader/i386/pc/linux.c
|
||||
CLEANFILES += linux16.mod mod-linux16.o mod-linux16.c pre-linux16.o linux16_mod-loader_i386_pc_linux.o und-linux16.lst
|
||||
ifneq ($(linux16_mod_EXPORTS),no)
|
||||
CLEANFILES += def-linux16.lst
|
||||
DEFSYMFILES += def-linux16.lst
|
||||
endif
|
||||
MOSTLYCLEANFILES += linux16_mod-loader_i386_pc_linux.d
|
||||
UNDSYMFILES += und-linux16.lst
|
||||
|
||||
linux16.mod: pre-linux16.o mod-linux16.o $(TARGET_OBJ2ELF)
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(linux16_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-linux16.o mod-linux16.o
|
||||
if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi
|
||||
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
|
||||
|
||||
pre-linux16.o: $(linux16_mod_DEPENDENCIES) linux16_mod-loader_i386_pc_linux.o
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(linux16_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux16_mod-loader_i386_pc_linux.o
|
||||
|
||||
mod-linux16.o: mod-linux16.c
|
||||
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
mod-linux16.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh
|
||||
sh $(srcdir)/genmodsrc.sh 'linux16' $< > $@ || (rm -f $@; exit 1)
|
||||
|
||||
ifneq ($(linux16_mod_EXPORTS),no)
|
||||
def-linux16.lst: pre-linux16.o
|
||||
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux16/' > $@
|
||||
endif
|
||||
|
||||
und-linux16.lst: pre-linux16.o
|
||||
echo 'linux16' > $@
|
||||
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
|
||||
|
||||
linux16_mod-loader_i386_pc_linux.o: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES)
|
||||
$(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -MD -c -o $@ $<
|
||||
-include linux16_mod-loader_i386_pc_linux.d
|
||||
|
||||
CLEANFILES += cmd-linux16_mod-loader_i386_pc_linux.lst fs-linux16_mod-loader_i386_pc_linux.lst partmap-linux16_mod-loader_i386_pc_linux.lst
|
||||
COMMANDFILES += cmd-linux16_mod-loader_i386_pc_linux.lst
|
||||
FSFILES += fs-linux16_mod-loader_i386_pc_linux.lst
|
||||
PARTMAPFILES += partmap-linux16_mod-loader_i386_pc_linux.lst
|
||||
|
||||
cmd-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) gencmdlist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux16 > $@ || (rm -f $@; exit 1)
|
||||
|
||||
fs-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genfslist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux16 > $@ || (rm -f $@; exit 1)
|
||||
|
||||
partmap-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genpartmaplist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux16 > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
linux16_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
linux16_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
pkglib_MODULES += linux.mod
|
||||
linux_mod_SOURCES = loader/i386/linux.c
|
||||
CLEANFILES += linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_linux.o und-linux.lst
|
||||
ifneq ($(linux_mod_EXPORTS),no)
|
||||
CLEANFILES += def-linux.lst
|
||||
DEFSYMFILES += def-linux.lst
|
||||
endif
|
||||
MOSTLYCLEANFILES += linux_mod-loader_i386_pc_linux.d
|
||||
MOSTLYCLEANFILES += linux_mod-loader_i386_linux.d
|
||||
UNDSYMFILES += und-linux.lst
|
||||
|
||||
linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF)
|
||||
|
@ -1148,9 +1205,9 @@ linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF)
|
|||
if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi
|
||||
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
|
||||
|
||||
pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_pc_linux.o
|
||||
pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_linux.o
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_pc_linux.o
|
||||
$(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_linux.o
|
||||
|
||||
mod-linux.o: mod-linux.c
|
||||
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -c -o $@ $<
|
||||
|
@ -1167,23 +1224,23 @@ und-linux.lst: pre-linux.o
|
|||
echo 'linux' > $@
|
||||
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
|
||||
|
||||
linux_mod-loader_i386_pc_linux.o: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES)
|
||||
$(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -MD -c -o $@ $<
|
||||
-include linux_mod-loader_i386_pc_linux.d
|
||||
linux_mod-loader_i386_linux.o: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES)
|
||||
$(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -MD -c -o $@ $<
|
||||
-include linux_mod-loader_i386_linux.d
|
||||
|
||||
CLEANFILES += cmd-linux_mod-loader_i386_pc_linux.lst fs-linux_mod-loader_i386_pc_linux.lst partmap-linux_mod-loader_i386_pc_linux.lst
|
||||
COMMANDFILES += cmd-linux_mod-loader_i386_pc_linux.lst
|
||||
FSFILES += fs-linux_mod-loader_i386_pc_linux.lst
|
||||
PARTMAPFILES += partmap-linux_mod-loader_i386_pc_linux.lst
|
||||
CLEANFILES += cmd-linux_mod-loader_i386_linux.lst fs-linux_mod-loader_i386_linux.lst partmap-linux_mod-loader_i386_linux.lst
|
||||
COMMANDFILES += cmd-linux_mod-loader_i386_linux.lst
|
||||
FSFILES += fs-linux_mod-loader_i386_linux.lst
|
||||
PARTMAPFILES += partmap-linux_mod-loader_i386_linux.lst
|
||||
|
||||
cmd-linux_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) gencmdlist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1)
|
||||
cmd-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) gencmdlist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1)
|
||||
|
||||
fs-linux_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genfslist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1)
|
||||
fs-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genfslist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1)
|
||||
|
||||
partmap-linux_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genpartmaplist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1)
|
||||
partmap-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genpartmaplist.sh
|
||||
set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
|
|
|
@ -167,7 +167,7 @@ grub_install_SOURCES = util/i386/pc/grub-install.in
|
|||
# For grub-mkrescue.
|
||||
grub_mkrescue_SOURCES = util/i386/pc/grub-mkrescue.in
|
||||
|
||||
pkglib_MODULES = biosdisk.mod chain.mod linux.mod normal.mod \
|
||||
pkglib_MODULES = biosdisk.mod chain.mod normal.mod \
|
||||
multiboot.mod reboot.mod halt.mod \
|
||||
vbe.mod vbetest.mod vbeinfo.mod play.mod serial.mod \
|
||||
ata.mod vga.mod memdisk.mod pci.mod lspci.mod \
|
||||
|
@ -185,8 +185,13 @@ chain_mod_SOURCES = loader/i386/pc/chainloader.c
|
|||
chain_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
chain_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For _linux.mod.
|
||||
linux_mod_SOURCES = loader/i386/pc/linux.c
|
||||
pkglib_MODULES += linux16.mod
|
||||
linux16_mod_SOURCES = loader/i386/pc/linux.c
|
||||
linux16_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
linux16_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
pkglib_MODULES += linux.mod
|
||||
linux_mod_SOURCES = loader/i386/linux.c
|
||||
linux_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
linux_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ extern grub_int32_t EXPORT_VAR(grub_linux_is_bzimage);
|
|||
extern grub_addr_t EXPORT_VAR(grub_os_area_addr);
|
||||
extern grub_size_t EXPORT_VAR(grub_os_area_size);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_linux_boot) (void);
|
||||
grub_err_t EXPORT_FUNC(grub_linux16_boot) (void);
|
||||
|
||||
void EXPORT_FUNC(grub_unix_real_boot) (grub_addr_t entry, ...)
|
||||
__attribute__ ((cdecl,noreturn));
|
||||
|
|
|
@ -59,7 +59,7 @@ VARIABLE(grub_linux_real_addr)
|
|||
VARIABLE(grub_linux_is_bzimage)
|
||||
.long 0
|
||||
|
||||
FUNCTION(grub_linux_boot)
|
||||
FUNCTION(grub_linux16_boot)
|
||||
/* Must be done before zImage copy. */
|
||||
call EXT_C(grub_dl_unload_all)
|
||||
|
||||
|
|
|
@ -263,7 +263,7 @@ struct
|
|||
#endif
|
||||
|
||||
static grub_err_t
|
||||
grub_linux32_boot (void)
|
||||
grub_linux_boot (void)
|
||||
{
|
||||
struct linux_kernel_params *params;
|
||||
int e820_num;
|
||||
|
@ -522,7 +522,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
if (grub_errno == GRUB_ERR_NONE)
|
||||
{
|
||||
grub_loader_set (grub_linux32_boot, grub_linux_unload,
|
||||
grub_loader_set (grub_linux_boot, grub_linux_unload,
|
||||
0 /* set noreturn=0 in order to avoid grub_console_fini() */);
|
||||
loaded = 1;
|
||||
}
|
||||
|
|
|
@ -269,7 +269,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
|||
if (grub_errno == GRUB_ERR_NONE)
|
||||
{
|
||||
grub_linux_prot_size = prot_size;
|
||||
grub_loader_set (grub_linux_boot, grub_linux_unload, 1);
|
||||
grub_loader_set (grub_linux16_boot, grub_linux_unload, 1);
|
||||
loaded = 1;
|
||||
}
|
||||
|
||||
|
@ -378,18 +378,18 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
static grub_command_t cmd_linux, cmd_initrd;
|
||||
|
||||
GRUB_MOD_INIT(linux)
|
||||
GRUB_MOD_INIT(linux16)
|
||||
{
|
||||
cmd_linux =
|
||||
grub_register_command ("linux", grub_cmd_linux,
|
||||
grub_register_command ("linux16", grub_cmd_linux,
|
||||
0, "load linux");
|
||||
cmd_initrd =
|
||||
grub_register_command ("initrd", grub_cmd_initrd,
|
||||
grub_register_command ("initrd16", grub_cmd_initrd,
|
||||
0, "load initrd");
|
||||
my_mod = mod;
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(linux)
|
||||
GRUB_MOD_FINI(linux16)
|
||||
{
|
||||
grub_unregister_command (cmd_linux);
|
||||
grub_unregister_command (cmd_initrd);
|
||||
|
|
Loading…
Reference in a new issue