]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-03-28 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Sat, 28 Mar 2009 12:53:16 +0000 (12:53 +0000)
committerrobertmh <robertmh@localhost>
Sat, 28 Mar 2009 12:53:16 +0000 (12:53 +0000)
        * 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.

ChangeLog
conf/i386-pc.mk
conf/i386-pc.rmk
include/grub/i386/loader.h
kern/i386/loader.S
loader/i386/linux.c
loader/i386/pc/linux.c

index a88dd1c536c06521e0855291c5da3e5a73a5de44..7d4a39db099ac4acd15f72aea8e57383ed1c4fc9 100644 (file)
--- a/ChangeLog
+++ b/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,
index c78c8718487086c927754976f96a7ca769eab5bf..1b76550e9394471c42889218030fbf8ab5d8bac1 100644 (file)
@@ -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)
index 60d518235d269fba824cb84315baf07484fa1ce6..7fa19757f3714135344c1e9f0b311371d2fe4875 100644 (file)
@@ -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)
 
index 305203054d58f7bdda24df74536d314583beaae5..afd3eb93f79b1c4f34d1cb2f70c1da921b0a466f 100644 (file)
@@ -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));
index 0e8ded68eeed27efc6b974abe2c526f80ae75f96..bbd2187fb57edf73c249fc6b4c5367dd192f9ea5 100644 (file)
@@ -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)
 
index f8b9862a45da0a6d667171dd32ab1703305debaa..eb0a8859b6e37d12aab36d7d02ea0962f528ee2f 100644 (file)
@@ -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;
     }
index 935f21ba1c1e876c61b08b230464812728c0771b..8ff97f43339833fe8e35f5513a1c6059298ff111 100644 (file)
@@ -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);