commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1726] 2008-07-24 Bean <address@hidden>


From: Bean
Subject: [1726] 2008-07-24 Bean <address@hidden>
Date: Thu, 24 Jul 2008 14:56:30 +0000

Revision: 1726
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1726
Author:   bean
Date:     2008-07-24 14:56:30 +0000 (Thu, 24 Jul 2008)

Log Message:
-----------
2008-07-24  Bean  <address@hidden>

        * common.rmk (bin_UTILITIES): Add grub-pe2elf.
        (grub_pe2elf_SOURCES): New macro.
        (CLEANFILES): Add grub-pe2elf.

        * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
        (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
        (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
        (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
        (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
        (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
        (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
        (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
        (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
        (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
        (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
        (GRUB_PE32_SYM_CLASS_FILE): Likewise.
        (GRUB_PE32_DT_FUNCTION): Likewise.
        (GRUB_PE32_REL_I386_DIR32): Likewise.
        (GRUB_PE32_REL_I386_REL32): Likewise.
        (grub_pe32_symbol): New structure.
        (grub_pe32_reloc): Likewise.

        * util/grub-pe2elf.c: New file.

        * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
        start symbol in non pc platform.

        * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.

        The following patches are from Christian Franke.

        * include/grub/dl.h: Remove .previous, gas supports this only
        for ELF format.

        * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
        Remove .type, gas supports this only for ELF format.

        * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
        nullbytes in symbol table. This fixes an infinite loop if table is
        zero filled.

        * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
        TARGET_IMG_LDFLAGS and EXEEXT.

        * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
        TARGET_IMG_LDFLAGS_AC.
        (grub_CHECK_STACK_ARG_PROBE): New function.

        * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.

        * conf/i386-pc-cygwin-ld-img.sc: New linker script.

        * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
        to set TARGET_IMG_LD* accordingly.
        Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
        Add call to grub_CHECK_STACK_ARG_PROBE.
        Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.

        * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.

        * genmk.rb: Add EXEEXT to CLEANFILES.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/Makefile.in
    trunk/grub2/aclocal.m4
    trunk/grub2/conf/common.mk
    trunk/grub2/conf/common.rmk
    trunk/grub2/conf/i386-coreboot.mk
    trunk/grub2/conf/i386-efi.mk
    trunk/grub2/conf/i386-ieee1275.mk
    trunk/grub2/conf/i386-pc.mk
    trunk/grub2/conf/i386-pc.rmk
    trunk/grub2/conf/powerpc-ieee1275.mk
    trunk/grub2/conf/sparc64-ieee1275.mk
    trunk/grub2/conf/x86_64-efi.mk
    trunk/grub2/configure
    trunk/grub2/configure.ac
    trunk/grub2/genkernsyms.sh.in
    trunk/grub2/genmk.rb
    trunk/grub2/include/grub/dl.h
    trunk/grub2/include/grub/efi/pe32.h
    trunk/grub2/include/grub/symbol.h
    trunk/grub2/kern/dl.c

Added Paths:
-----------
    trunk/grub2/conf/i386-pc-cygwin-img-ld.sc
    trunk/grub2/util/grub-pe2elf.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/ChangeLog       2008-07-24 14:56:30 UTC (rev 1726)
@@ -1,3 +1,67 @@
+2008-07-24  Bean  <address@hidden>
+
+       * common.rmk (bin_UTILITIES): Add grub-pe2elf.
+       (grub_pe2elf_SOURCES): New macro.
+       (CLEANFILES): Add grub-pe2elf.
+
+       * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
+       (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
+       (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
+       (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
+       (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
+       (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
+       (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
+       (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
+       (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
+       (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
+       (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
+       (GRUB_PE32_SYM_CLASS_FILE): Likewise.
+       (GRUB_PE32_DT_FUNCTION): Likewise.
+       (GRUB_PE32_REL_I386_DIR32): Likewise.
+       (GRUB_PE32_REL_I386_REL32): Likewise.
+       (grub_pe32_symbol): New structure.
+       (grub_pe32_reloc): Likewise.
+
+       * util/grub-pe2elf.c: New file.
+
+       * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
+       start symbol in non pc platform.
+
+       * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
+
+       The following patches are from Christian Franke.
+
+       * include/grub/dl.h: Remove .previous, gas supports this only
+       for ELF format.
+
+       * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
+       Remove .type, gas supports this only for ELF format.
+
+       * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
+       nullbytes in symbol table. This fixes an infinite loop if table is
+       zero filled.
+
+       * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
+       TARGET_IMG_LDFLAGS and EXEEXT.
+
+       * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
+       TARGET_IMG_LDFLAGS_AC.
+       (grub_CHECK_STACK_ARG_PROBE): New function.
+
+       * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
+
+       * conf/i386-pc-cygwin-ld-img.sc: New linker script.
+
+       * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
+       to set TARGET_IMG_LD* accordingly.
+       Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
+       Add call to grub_CHECK_STACK_ARG_PROBE.
+       Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
+
+       * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
+
+       * genmk.rb: Add EXEEXT to CLEANFILES.
+
 2008-07-23  Robert Millan  <address@hidden>
 
        * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they

Modified: trunk/grub2/Makefile.in
===================================================================
--- trunk/grub2/Makefile.in     2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/Makefile.in     2008-07-24 14:56:30 UTC (rev 1726)
@@ -68,7 +68,11 @@
 TARGET_CPPFLAGS = @TARGET_CPPFLAGS@ -I. -Iinclude -I$(srcdir)/include \
        -Wall -W
 TARGET_LDFLAGS = @TARGET_LDFLAGS@
+TARGET_IMG_LDSCRIPT = @TARGET_IMG_LDSCRIPT@
+TARGET_IMG_LDFLAGS = @TARGET_IMG_LDFLAGS@
+TARGET_OBJ2ELF = @TARGET_OBJ2ELF@
 MODULE_LDFLAGS = @MODULE_LDFLAGS@
+EXEEXT = @EXEEXT@
 OBJCOPY = @OBJCOPY@
 STRIP = @STRIP@
 NM = @NM@

Modified: trunk/grub2/aclocal.m4
===================================================================
--- trunk/grub2/aclocal.m4      2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/aclocal.m4      2008-07-24 14:56:30 UTC (rev 1726)
@@ -73,7 +73,7 @@
 fi
 grub_cv_prog_objcopy_absolute=yes
 for link_addr in 2000 8000 7C00; do
-  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} ${LDFLAGS} -nostdlib -Wl,-N -Wl,-Ttext 
-Wl,$link_addr conftest.o -o conftest.exec]); then :
+  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib ${TARGET_IMG_LDFLAGS_AC} 
-Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
   else
     AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
   fi
@@ -398,3 +398,19 @@
   AC_MSG_RESULT([no])
 [fi]
 ])
+
+dnl Check if the C compiler supports `-mstack-arg-probe' (Cygwin).
+AC_DEFUN(grub_CHECK_STACK_ARG_PROBE,[
+[# Smashing stack arg probe.
+sap_possible=yes]
+AC_MSG_CHECKING([whether `$CC' accepts `-mstack-arg-probe'])
+AC_LANG_CONFTEST([[void foo (void) { volatile char a[8]; a[3]; }]])
+[if eval "$ac_compile -S -mstack-arg-probe -o conftest.s" 2> /dev/null; then]
+  AC_MSG_RESULT([yes])
+  [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'?
+  rm -f conftest.s
+else
+  sap_possible=no]
+  AC_MSG_RESULT([no])
+[fi]
+])

Modified: trunk/grub2/conf/common.mk
===================================================================
--- trunk/grub2/conf/common.mk  2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/common.mk  2008-07-24 14:56:30 UTC (rev 1726)
@@ -16,7 +16,7 @@
        partmap/pc.c partmap/apple.c partmap/gpt.c              \
        kern/fs.c kern/env.c fs/fshelp.c                        \
        disk/lvm.c disk/raid.c grub_probe_init.c
-CLEANFILES += grub-probe grub_probe-util_grub_probe.o 
grub_probe-util_biosdisk.o grub_probe-util_misc.o grub_probe-util_getroot.o 
grub_probe-kern_device.o grub_probe-kern_disk.o grub_probe-kern_err.o 
grub_probe-kern_misc.o grub_probe-kern_parser.o grub_probe-kern_partition.o 
grub_probe-kern_file.o grub_probe-fs_affs.o grub_probe-fs_cpio.o 
grub_probe-fs_ext2.o grub_probe-fs_fat.o grub_probe-fs_hfs.o 
grub_probe-fs_hfsplus.o grub_probe-fs_iso9660.o grub_probe-fs_udf.o 
grub_probe-fs_jfs.o grub_probe-fs_minix.o grub_probe-fs_ntfs.o 
grub_probe-fs_ntfscomp.o grub_probe-fs_reiserfs.o grub_probe-fs_sfs.o 
grub_probe-fs_ufs.o grub_probe-fs_xfs.o grub_probe-fs_afs.o 
grub_probe-partmap_pc.o grub_probe-partmap_apple.o grub_probe-partmap_gpt.o 
grub_probe-kern_fs.o grub_probe-kern_env.o grub_probe-fs_fshelp.o 
grub_probe-disk_lvm.o grub_probe-disk_raid.o grub_probe-grub_probe_init.o
+CLEANFILES += grub-probe$(EXEEXT) grub_probe-util_grub_probe.o 
grub_probe-util_biosdisk.o grub_probe-util_misc.o grub_probe-util_getroot.o 
grub_probe-kern_device.o grub_probe-kern_disk.o grub_probe-kern_err.o 
grub_probe-kern_misc.o grub_probe-kern_parser.o grub_probe-kern_partition.o 
grub_probe-kern_file.o grub_probe-fs_affs.o grub_probe-fs_cpio.o 
grub_probe-fs_ext2.o grub_probe-fs_fat.o grub_probe-fs_hfs.o 
grub_probe-fs_hfsplus.o grub_probe-fs_iso9660.o grub_probe-fs_udf.o 
grub_probe-fs_jfs.o grub_probe-fs_minix.o grub_probe-fs_ntfs.o 
grub_probe-fs_ntfscomp.o grub_probe-fs_reiserfs.o grub_probe-fs_sfs.o 
grub_probe-fs_ufs.o grub_probe-fs_xfs.o grub_probe-fs_afs.o 
grub_probe-partmap_pc.o grub_probe-partmap_apple.o grub_probe-partmap_gpt.o 
grub_probe-kern_fs.o grub_probe-kern_env.o grub_probe-fs_fshelp.o 
grub_probe-disk_lvm.o grub_probe-disk_raid.o grub_probe-grub_probe_init.o
 MOSTLYCLEANFILES += grub_probe-util_grub_probe.d grub_probe-util_biosdisk.d 
grub_probe-util_misc.d grub_probe-util_getroot.d grub_probe-kern_device.d 
grub_probe-kern_disk.d grub_probe-kern_err.d grub_probe-kern_misc.d 
grub_probe-kern_parser.d grub_probe-kern_partition.d grub_probe-kern_file.d 
grub_probe-fs_affs.d grub_probe-fs_cpio.d grub_probe-fs_ext2.d 
grub_probe-fs_fat.d grub_probe-fs_hfs.d grub_probe-fs_hfsplus.d 
grub_probe-fs_iso9660.d grub_probe-fs_udf.d grub_probe-fs_jfs.d 
grub_probe-fs_minix.d grub_probe-fs_ntfs.d grub_probe-fs_ntfscomp.d 
grub_probe-fs_reiserfs.d grub_probe-fs_sfs.d grub_probe-fs_ufs.d 
grub_probe-fs_xfs.d grub_probe-fs_afs.d grub_probe-partmap_pc.d 
grub_probe-partmap_apple.d grub_probe-partmap_gpt.d grub_probe-kern_fs.d 
grub_probe-kern_env.d grub_probe-fs_fshelp.d grub_probe-disk_lvm.d 
grub_probe-disk_raid.d grub_probe-grub_probe_init.d
 
 grub-probe: $(grub_probe_DEPENDENCIES) grub_probe-util_grub_probe.o 
grub_probe-util_biosdisk.o grub_probe-util_misc.o grub_probe-util_getroot.o 
grub_probe-kern_device.o grub_probe-kern_disk.o grub_probe-kern_err.o 
grub_probe-kern_misc.o grub_probe-kern_parser.o grub_probe-kern_partition.o 
grub_probe-kern_file.o grub_probe-fs_affs.o grub_probe-fs_cpio.o 
grub_probe-fs_ext2.o grub_probe-fs_fat.o grub_probe-fs_hfs.o 
grub_probe-fs_hfsplus.o grub_probe-fs_iso9660.o grub_probe-fs_udf.o 
grub_probe-fs_jfs.o grub_probe-fs_minix.o grub_probe-fs_ntfs.o 
grub_probe-fs_ntfscomp.o grub_probe-fs_reiserfs.o grub_probe-fs_sfs.o 
grub_probe-fs_ufs.o grub_probe-fs_xfs.o grub_probe-fs_afs.o 
grub_probe-partmap_pc.o grub_probe-partmap_apple.o grub_probe-partmap_gpt.o 
grub_probe-kern_fs.o grub_probe-kern_env.o grub_probe-fs_fshelp.o 
grub_probe-disk_lvm.o grub_probe-disk_raid.o grub_probe-grub_probe_init.o
@@ -190,7 +190,7 @@
        kern/partition.c partmap/pc.c partmap/apple.c partmap/gpt.c     \
        kern/fs.c kern/env.c fs/fshelp.c disk/lvm.c disk/raid.c \
        grub_fstest_init.c
-CLEANFILES += grub-fstest grub_fstest-util_grub_fstest.o 
grub_fstest-util_hostfs.o grub_fstest-util_misc.o grub_fstest-kern_file.o 
grub_fstest-kern_device.o grub_fstest-kern_disk.o grub_fstest-kern_err.o 
grub_fstest-kern_misc.o grub_fstest-disk_host.o grub_fstest-disk_loopback.o 
grub_fstest-normal_arg.o grub_fstest-normal_misc.o grub_fstest-io_gzio.o 
grub_fstest-commands_hexdump.o grub_fstest-commands_blocklist.o 
grub_fstest-commands_ls.o grub_fstest-fs_affs.o grub_fstest-fs_cpio.o 
grub_fstest-fs_ext2.o grub_fstest-fs_fat.o grub_fstest-fs_hfs.o 
grub_fstest-fs_hfsplus.o grub_fstest-fs_iso9660.o grub_fstest-fs_udf.o 
grub_fstest-fs_jfs.o grub_fstest-fs_minix.o grub_fstest-fs_ntfs.o 
grub_fstest-fs_ntfscomp.o grub_fstest-fs_reiserfs.o grub_fstest-fs_sfs.o 
grub_fstest-fs_ufs.o grub_fstest-fs_xfs.o grub_fstest-fs_afs.o 
grub_fstest-kern_partition.o grub_fstest-partmap_pc.o 
grub_fstest-partmap_apple.o grub_fstest-partmap_gpt.o grub_fstest-kern_fs.o 
grub_fstest-kern_env.o grub_fstest-fs_fshelp.o grub_fstest-disk_lvm.o 
grub_fstest-disk_raid.o grub_fstest-grub_fstest_init.o
+CLEANFILES += grub-fstest$(EXEEXT) grub_fstest-util_grub_fstest.o 
grub_fstest-util_hostfs.o grub_fstest-util_misc.o grub_fstest-kern_file.o 
grub_fstest-kern_device.o grub_fstest-kern_disk.o grub_fstest-kern_err.o 
grub_fstest-kern_misc.o grub_fstest-disk_host.o grub_fstest-disk_loopback.o 
grub_fstest-normal_arg.o grub_fstest-normal_misc.o grub_fstest-io_gzio.o 
grub_fstest-commands_hexdump.o grub_fstest-commands_blocklist.o 
grub_fstest-commands_ls.o grub_fstest-fs_affs.o grub_fstest-fs_cpio.o 
grub_fstest-fs_ext2.o grub_fstest-fs_fat.o grub_fstest-fs_hfs.o 
grub_fstest-fs_hfsplus.o grub_fstest-fs_iso9660.o grub_fstest-fs_udf.o 
grub_fstest-fs_jfs.o grub_fstest-fs_minix.o grub_fstest-fs_ntfs.o 
grub_fstest-fs_ntfscomp.o grub_fstest-fs_reiserfs.o grub_fstest-fs_sfs.o 
grub_fstest-fs_ufs.o grub_fstest-fs_xfs.o grub_fstest-fs_afs.o 
grub_fstest-kern_partition.o grub_fstest-partmap_pc.o 
grub_fstest-partmap_apple.o grub_fstest-partmap_gpt.o grub_fstest-kern_fs.o 
grub_fstest-kern_env.o grub_fstest-fs_fshelp.o grub_fstest-disk_lvm.o 
grub_fstest-disk_raid.o grub_fstest-grub_fstest_init.o
 MOSTLYCLEANFILES += grub_fstest-util_grub_fstest.d grub_fstest-util_hostfs.d 
grub_fstest-util_misc.d grub_fstest-kern_file.d grub_fstest-kern_device.d 
grub_fstest-kern_disk.d grub_fstest-kern_err.d grub_fstest-kern_misc.d 
grub_fstest-disk_host.d grub_fstest-disk_loopback.d grub_fstest-normal_arg.d 
grub_fstest-normal_misc.d grub_fstest-io_gzio.d grub_fstest-commands_hexdump.d 
grub_fstest-commands_blocklist.d grub_fstest-commands_ls.d 
grub_fstest-fs_affs.d grub_fstest-fs_cpio.d grub_fstest-fs_ext2.d 
grub_fstest-fs_fat.d grub_fstest-fs_hfs.d grub_fstest-fs_hfsplus.d 
grub_fstest-fs_iso9660.d grub_fstest-fs_udf.d grub_fstest-fs_jfs.d 
grub_fstest-fs_minix.d grub_fstest-fs_ntfs.d grub_fstest-fs_ntfscomp.d 
grub_fstest-fs_reiserfs.d grub_fstest-fs_sfs.d grub_fstest-fs_ufs.d 
grub_fstest-fs_xfs.d grub_fstest-fs_afs.d grub_fstest-kern_partition.d 
grub_fstest-partmap_pc.d grub_fstest-partmap_apple.d grub_fstest-partmap_gpt.d 
grub_fstest-kern_fs.d grub_fstest-kern_env.d grub_fstest-fs_fshelp.d 
grub_fstest-disk_lvm.d grub_fstest-disk_raid.d grub_fstest-grub_fstest_init.d
 
 grub-fstest: $(grub_fstest_DEPENDENCIES) grub_fstest-util_grub_fstest.o 
grub_fstest-util_hostfs.o grub_fstest-util_misc.o grub_fstest-kern_file.o 
grub_fstest-kern_device.o grub_fstest-kern_disk.o grub_fstest-kern_err.o 
grub_fstest-kern_misc.o grub_fstest-disk_host.o grub_fstest-disk_loopback.o 
grub_fstest-normal_arg.o grub_fstest-normal_misc.o grub_fstest-io_gzio.o 
grub_fstest-commands_hexdump.o grub_fstest-commands_blocklist.o 
grub_fstest-commands_ls.o grub_fstest-fs_affs.o grub_fstest-fs_cpio.o 
grub_fstest-fs_ext2.o grub_fstest-fs_fat.o grub_fstest-fs_hfs.o 
grub_fstest-fs_hfsplus.o grub_fstest-fs_iso9660.o grub_fstest-fs_udf.o 
grub_fstest-fs_jfs.o grub_fstest-fs_minix.o grub_fstest-fs_ntfs.o 
grub_fstest-fs_ntfscomp.o grub_fstest-fs_reiserfs.o grub_fstest-fs_sfs.o 
grub_fstest-fs_ufs.o grub_fstest-fs_xfs.o grub_fstest-fs_afs.o 
grub_fstest-kern_partition.o grub_fstest-partmap_pc.o 
grub_fstest-partmap_apple.o grub_fstest-partmap_gpt.o grub_fstest-kern_fs.o 
grub_fstest-kern_env.o grub_fstest-fs_fshelp.o grub_fstest-disk_lvm.o 
grub_fstest-disk_raid.o grub_fstest-grub_fstest_init.o
@@ -429,7 +429,7 @@
 # for grub-editenv
 bin_UTILITIES += grub-editenv
 grub_editenv_SOURCES = util/grub-editenv.c util/envblk.c util/misc.c 
kern/misc.c kern/err.c
-CLEANFILES += grub-editenv grub_editenv-util_grub_editenv.o 
grub_editenv-util_envblk.o grub_editenv-util_misc.o grub_editenv-kern_misc.o 
grub_editenv-kern_err.o
+CLEANFILES += grub-editenv$(EXEEXT) grub_editenv-util_grub_editenv.o 
grub_editenv-util_envblk.o grub_editenv-util_misc.o grub_editenv-kern_misc.o 
grub_editenv-kern_err.o
 MOSTLYCLEANFILES += grub_editenv-util_grub_editenv.d 
grub_editenv-util_envblk.d grub_editenv-util_misc.d grub_editenv-kern_misc.d 
grub_editenv-kern_err.d
 
 grub-editenv: $(grub_editenv_DEPENDENCIES) grub_editenv-util_grub_editenv.o 
grub_editenv-util_envblk.o grub_editenv-util_misc.o grub_editenv-kern_misc.o 
grub_editenv-kern_err.o
@@ -457,6 +457,25 @@
 
 CLEANFILES += grub-editenv
 
+# for grub-pe2elf
+bin_UTILITIES += grub-pe2elf
+grub_pe2elf_SOURCES = util/grub-pe2elf.c util/misc.c
+CLEANFILES += grub-pe2elf$(EXEEXT) grub_pe2elf-util_grub_pe2elf.o 
grub_pe2elf-util_misc.o
+MOSTLYCLEANFILES += grub_pe2elf-util_grub_pe2elf.d grub_pe2elf-util_misc.d
+
+grub-pe2elf: $(grub_pe2elf_DEPENDENCIES) grub_pe2elf-util_grub_pe2elf.o 
grub_pe2elf-util_misc.o
+       $(CC) -o $@ grub_pe2elf-util_grub_pe2elf.o grub_pe2elf-util_misc.o 
$(LDFLAGS) $(grub_pe2elf_LDFLAGS)
+
+grub_pe2elf-util_grub_pe2elf.o: util/grub-pe2elf.c 
$(util/grub-pe2elf.c_DEPENDENCIES)
+       $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 
$(grub_pe2elf_CFLAGS) -MD -c -o $@ $<
+-include grub_pe2elf-util_grub_pe2elf.d
+
+grub_pe2elf-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES)
+       $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 
$(grub_pe2elf_CFLAGS) -MD -c -o $@ $<
+-include grub_pe2elf-util_misc.d
+
+CLEANFILES += grub-pe2elf
+
 # For update-grub
 update-grub: util/update-grub.in config.status
        ./config.status --file=$@:$<
@@ -495,10 +514,11 @@
 MOSTLYCLEANFILES += fshelp_mod-fs_fshelp.d
 UNDSYMFILES += und-fshelp.lst
 
-fshelp.mod: pre-fshelp.o mod-fshelp.o
+fshelp.mod: pre-fshelp.o mod-fshelp.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(fshelp_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(fshelp_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-fshelp.o mod-fshelp.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-fshelp.o: $(fshelp_mod_DEPENDENCIES) fshelp_mod-fs_fshelp.o
        -rm -f $@
@@ -551,10 +571,11 @@
 MOSTLYCLEANFILES += fat_mod-fs_fat.d
 UNDSYMFILES += und-fat.lst
 
-fat.mod: pre-fat.o mod-fat.o
+fat.mod: pre-fat.o mod-fat.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(fat_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(fat_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-fat.o mod-fat.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-fat.o: $(fat_mod_DEPENDENCIES) fat_mod-fs_fat.o
        -rm -f $@
@@ -607,10 +628,11 @@
 MOSTLYCLEANFILES += ufs_mod-fs_ufs.d
 UNDSYMFILES += und-ufs.lst
 
-ufs.mod: pre-ufs.o mod-ufs.o
+ufs.mod: pre-ufs.o mod-ufs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ufs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ufs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-ufs.o mod-ufs.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-ufs.o: $(ufs_mod_DEPENDENCIES) ufs_mod-fs_ufs.o
        -rm -f $@
@@ -663,10 +685,11 @@
 MOSTLYCLEANFILES += ext2_mod-fs_ext2.d
 UNDSYMFILES += und-ext2.lst
 
-ext2.mod: pre-ext2.o mod-ext2.o
+ext2.mod: pre-ext2.o mod-ext2.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ext2_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ext2_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-ext2.o mod-ext2.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-ext2.o: $(ext2_mod_DEPENDENCIES) ext2_mod-fs_ext2.o
        -rm -f $@
@@ -719,10 +742,11 @@
 MOSTLYCLEANFILES += ntfs_mod-fs_ntfs.d
 UNDSYMFILES += und-ntfs.lst
 
-ntfs.mod: pre-ntfs.o mod-ntfs.o
+ntfs.mod: pre-ntfs.o mod-ntfs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ntfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ntfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-ntfs.o mod-ntfs.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-ntfs.o: $(ntfs_mod_DEPENDENCIES) ntfs_mod-fs_ntfs.o
        -rm -f $@
@@ -775,10 +799,11 @@
 MOSTLYCLEANFILES += ntfscomp_mod-fs_ntfscomp.d
 UNDSYMFILES += und-ntfscomp.lst
 
-ntfscomp.mod: pre-ntfscomp.o mod-ntfscomp.o
+ntfscomp.mod: pre-ntfscomp.o mod-ntfscomp.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ntfscomp_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ntfscomp_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-ntfscomp.o mod-ntfscomp.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-ntfscomp.o: $(ntfscomp_mod_DEPENDENCIES) ntfscomp_mod-fs_ntfscomp.o
        -rm -f $@
@@ -831,10 +856,11 @@
 MOSTLYCLEANFILES += minix_mod-fs_minix.d
 UNDSYMFILES += und-minix.lst
 
-minix.mod: pre-minix.o mod-minix.o
+minix.mod: pre-minix.o mod-minix.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(minix_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(minix_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-minix.o mod-minix.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-minix.o: $(minix_mod_DEPENDENCIES) minix_mod-fs_minix.o
        -rm -f $@
@@ -887,10 +913,11 @@
 MOSTLYCLEANFILES += hfs_mod-fs_hfs.d
 UNDSYMFILES += und-hfs.lst
 
-hfs.mod: pre-hfs.o mod-hfs.o
+hfs.mod: pre-hfs.o mod-hfs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(hfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(hfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-hfs.o mod-hfs.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-hfs.o: $(hfs_mod_DEPENDENCIES) hfs_mod-fs_hfs.o
        -rm -f $@
@@ -943,10 +970,11 @@
 MOSTLYCLEANFILES += jfs_mod-fs_jfs.d
 UNDSYMFILES += und-jfs.lst
 
-jfs.mod: pre-jfs.o mod-jfs.o
+jfs.mod: pre-jfs.o mod-jfs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(jfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(jfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-jfs.o mod-jfs.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-jfs.o: $(jfs_mod_DEPENDENCIES) jfs_mod-fs_jfs.o
        -rm -f $@
@@ -999,10 +1027,11 @@
 MOSTLYCLEANFILES += iso9660_mod-fs_iso9660.d
 UNDSYMFILES += und-iso9660.lst
 
-iso9660.mod: pre-iso9660.o mod-iso9660.o
+iso9660.mod: pre-iso9660.o mod-iso9660.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(iso9660_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(iso9660_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-iso9660.o mod-iso9660.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-iso9660.o: $(iso9660_mod_DEPENDENCIES) iso9660_mod-fs_iso9660.o
        -rm -f $@
@@ -1055,10 +1084,11 @@
 MOSTLYCLEANFILES += xfs_mod-fs_xfs.d
 UNDSYMFILES += und-xfs.lst
 
-xfs.mod: pre-xfs.o mod-xfs.o
+xfs.mod: pre-xfs.o mod-xfs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(xfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(xfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-xfs.o mod-xfs.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-xfs.o: $(xfs_mod_DEPENDENCIES) xfs_mod-fs_xfs.o
        -rm -f $@
@@ -1111,10 +1141,11 @@
 MOSTLYCLEANFILES += affs_mod-fs_affs.d
 UNDSYMFILES += und-affs.lst
 
-affs.mod: pre-affs.o mod-affs.o
+affs.mod: pre-affs.o mod-affs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(affs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(affs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-affs.o mod-affs.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-affs.o: $(affs_mod_DEPENDENCIES) affs_mod-fs_affs.o
        -rm -f $@
@@ -1167,10 +1198,11 @@
 MOSTLYCLEANFILES += sfs_mod-fs_sfs.d
 UNDSYMFILES += und-sfs.lst
 
-sfs.mod: pre-sfs.o mod-sfs.o
+sfs.mod: pre-sfs.o mod-sfs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(sfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(sfs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-sfs.o mod-sfs.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-sfs.o: $(sfs_mod_DEPENDENCIES) sfs_mod-fs_sfs.o
        -rm -f $@
@@ -1223,10 +1255,11 @@
 MOSTLYCLEANFILES += hfsplus_mod-fs_hfsplus.d
 UNDSYMFILES += und-hfsplus.lst
 
-hfsplus.mod: pre-hfsplus.o mod-hfsplus.o
+hfsplus.mod: pre-hfsplus.o mod-hfsplus.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(hfsplus_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(hfsplus_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-hfsplus.o mod-hfsplus.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-hfsplus.o: $(hfsplus_mod_DEPENDENCIES) hfsplus_mod-fs_hfsplus.o
        -rm -f $@
@@ -1279,10 +1312,11 @@
 MOSTLYCLEANFILES += reiserfs_mod-fs_reiserfs.d
 UNDSYMFILES += und-reiserfs.lst
 
-reiserfs.mod: pre-reiserfs.o mod-reiserfs.o
+reiserfs.mod: pre-reiserfs.o mod-reiserfs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(reiserfs_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(reiserfs_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-reiserfs.o mod-reiserfs.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-reiserfs.o: $(reiserfs_mod_DEPENDENCIES) reiserfs_mod-fs_reiserfs.o
        -rm -f $@
@@ -1335,10 +1369,11 @@
 MOSTLYCLEANFILES += cpio_mod-fs_cpio.d
 UNDSYMFILES += und-cpio.lst
 
-cpio.mod: pre-cpio.o mod-cpio.o
+cpio.mod: pre-cpio.o mod-cpio.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cpio_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cpio_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cpio.o mod-cpio.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-cpio.o: $(cpio_mod_DEPENDENCIES) cpio_mod-fs_cpio.o
        -rm -f $@
@@ -1391,10 +1426,11 @@
 MOSTLYCLEANFILES += udf_mod-fs_udf.d
 UNDSYMFILES += und-udf.lst
 
-udf.mod: pre-udf.o mod-udf.o
+udf.mod: pre-udf.o mod-udf.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(udf_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(udf_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-udf.o mod-udf.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-udf.o: $(udf_mod_DEPENDENCIES) udf_mod-fs_udf.o
        -rm -f $@
@@ -1447,10 +1483,11 @@
 MOSTLYCLEANFILES += afs_mod-fs_afs.d
 UNDSYMFILES += und-afs.lst
 
-afs.mod: pre-afs.o mod-afs.o
+afs.mod: pre-afs.o mod-afs.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(afs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(afs_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-afs.o mod-afs.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-afs.o: $(afs_mod_DEPENDENCIES) afs_mod-fs_afs.o
        -rm -f $@
@@ -1506,10 +1543,11 @@
 MOSTLYCLEANFILES += amiga_mod-partmap_amiga.d
 UNDSYMFILES += und-amiga.lst
 
-amiga.mod: pre-amiga.o mod-amiga.o
+amiga.mod: pre-amiga.o mod-amiga.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(amiga_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(amiga_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-amiga.o mod-amiga.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-amiga.o: $(amiga_mod_DEPENDENCIES) amiga_mod-partmap_amiga.o
        -rm -f $@
@@ -1562,10 +1600,11 @@
 MOSTLYCLEANFILES += apple_mod-partmap_apple.d
 UNDSYMFILES += und-apple.lst
 
-apple.mod: pre-apple.o mod-apple.o
+apple.mod: pre-apple.o mod-apple.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(apple_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(apple_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-apple.o mod-apple.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-apple.o: $(apple_mod_DEPENDENCIES) apple_mod-partmap_apple.o
        -rm -f $@
@@ -1618,10 +1657,11 @@
 MOSTLYCLEANFILES += pc_mod-partmap_pc.d
 UNDSYMFILES += und-pc.lst
 
-pc.mod: pre-pc.o mod-pc.o
+pc.mod: pre-pc.o mod-pc.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(pc_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(pc_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-pc.o mod-pc.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-pc.o: $(pc_mod_DEPENDENCIES) pc_mod-partmap_pc.o
        -rm -f $@
@@ -1674,10 +1714,11 @@
 MOSTLYCLEANFILES += sun_mod-partmap_sun.d
 UNDSYMFILES += und-sun.lst
 
-sun.mod: pre-sun.o mod-sun.o
+sun.mod: pre-sun.o mod-sun.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(sun_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(sun_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-sun.o mod-sun.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-sun.o: $(sun_mod_DEPENDENCIES) sun_mod-partmap_sun.o
        -rm -f $@
@@ -1730,10 +1771,11 @@
 MOSTLYCLEANFILES += acorn_mod-partmap_acorn.d
 UNDSYMFILES += und-acorn.lst
 
-acorn.mod: pre-acorn.o mod-acorn.o
+acorn.mod: pre-acorn.o mod-acorn.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(acorn_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(acorn_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-acorn.o mod-acorn.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-acorn.o: $(acorn_mod_DEPENDENCIES) acorn_mod-partmap_acorn.o
        -rm -f $@
@@ -1786,10 +1828,11 @@
 MOSTLYCLEANFILES += gpt_mod-partmap_gpt.d
 UNDSYMFILES += und-gpt.lst
 
-gpt.mod: pre-gpt.o mod-gpt.o
+gpt.mod: pre-gpt.o mod-gpt.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(gpt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(gpt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-gpt.o mod-gpt.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-gpt.o: $(gpt_mod_DEPENDENCIES) gpt_mod-partmap_gpt.o
        -rm -f $@
@@ -1846,10 +1889,11 @@
 MOSTLYCLEANFILES += raid_mod-disk_raid.d
 UNDSYMFILES += und-raid.lst
 
-raid.mod: pre-raid.o mod-raid.o
+raid.mod: pre-raid.o mod-raid.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(raid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(raid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-raid.o mod-raid.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-raid.o: $(raid_mod_DEPENDENCIES) raid_mod-disk_raid.o
        -rm -f $@
@@ -1902,10 +1946,11 @@
 MOSTLYCLEANFILES += lvm_mod-disk_lvm.d
 UNDSYMFILES += und-lvm.lst
 
-lvm.mod: pre-lvm.o mod-lvm.o
+lvm.mod: pre-lvm.o mod-lvm.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(lvm_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(lvm_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-lvm.o mod-lvm.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-lvm.o: $(lvm_mod_DEPENDENCIES) lvm_mod-disk_lvm.o
        -rm -f $@
@@ -1965,10 +2010,11 @@
 MOSTLYCLEANFILES += hello_mod-hello_hello.d
 UNDSYMFILES += und-hello.lst
 
-hello.mod: pre-hello.o mod-hello.o
+hello.mod: pre-hello.o mod-hello.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(hello_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(hello_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-hello.o mod-hello.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-hello.o: $(hello_mod_DEPENDENCIES) hello_mod-hello_hello.o
        -rm -f $@
@@ -2021,10 +2067,11 @@
 MOSTLYCLEANFILES += boot_mod-commands_boot.d
 UNDSYMFILES += und-boot.lst
 
-boot.mod: pre-boot.o mod-boot.o
+boot.mod: pre-boot.o mod-boot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(boot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(boot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-boot.o mod-boot.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-boot.o: $(boot_mod_DEPENDENCIES) boot_mod-commands_boot.o
        -rm -f $@
@@ -2077,10 +2124,11 @@
 MOSTLYCLEANFILES += terminal_mod-commands_terminal.d
 UNDSYMFILES += und-terminal.lst
 
-terminal.mod: pre-terminal.o mod-terminal.o
+terminal.mod: pre-terminal.o mod-terminal.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-terminal.o mod-terminal.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-terminal.o: $(terminal_mod_DEPENDENCIES) terminal_mod-commands_terminal.o
        -rm -f $@
@@ -2133,10 +2181,11 @@
 MOSTLYCLEANFILES += ls_mod-commands_ls.d
 UNDSYMFILES += und-ls.lst
 
-ls.mod: pre-ls.o mod-ls.o
+ls.mod: pre-ls.o mod-ls.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ls_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ls_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-ls.o mod-ls.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-ls.o: $(ls_mod_DEPENDENCIES) ls_mod-commands_ls.o
        -rm -f $@
@@ -2189,10 +2238,11 @@
 MOSTLYCLEANFILES += cmp_mod-commands_cmp.d
 UNDSYMFILES += und-cmp.lst
 
-cmp.mod: pre-cmp.o mod-cmp.o
+cmp.mod: pre-cmp.o mod-cmp.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cmp_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cmp_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cmp.o mod-cmp.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-cmp.o: $(cmp_mod_DEPENDENCIES) cmp_mod-commands_cmp.o
        -rm -f $@
@@ -2245,10 +2295,11 @@
 MOSTLYCLEANFILES += cat_mod-commands_cat.d
 UNDSYMFILES += und-cat.lst
 
-cat.mod: pre-cat.o mod-cat.o
+cat.mod: pre-cat.o mod-cat.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cat_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cat_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cat.o mod-cat.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-cat.o: $(cat_mod_DEPENDENCIES) cat_mod-commands_cat.o
        -rm -f $@
@@ -2301,10 +2352,11 @@
 MOSTLYCLEANFILES += echo_mod-commands_echo.d
 UNDSYMFILES += und-echo.lst
 
-echo.mod: pre-echo.o mod-echo.o
+echo.mod: pre-echo.o mod-echo.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(echo_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(echo_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-echo.o mod-echo.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-echo.o: $(echo_mod_DEPENDENCIES) echo_mod-commands_echo.o
        -rm -f $@
@@ -2357,10 +2409,11 @@
 MOSTLYCLEANFILES += help_mod-commands_help.d
 UNDSYMFILES += und-help.lst
 
-help.mod: pre-help.o mod-help.o
+help.mod: pre-help.o mod-help.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(help_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(help_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-help.o mod-help.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-help.o: $(help_mod_DEPENDENCIES) help_mod-commands_help.o
        -rm -f $@
@@ -2413,10 +2466,11 @@
 MOSTLYCLEANFILES += font_mod-font_manager.d
 UNDSYMFILES += und-font.lst
 
-font.mod: pre-font.o mod-font.o
+font.mod: pre-font.o mod-font.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(font_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(font_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-font.o mod-font.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-font.o: $(font_mod_DEPENDENCIES) font_mod-font_manager.o
        -rm -f $@
@@ -2469,10 +2523,11 @@
 MOSTLYCLEANFILES += search_mod-commands_search.d
 UNDSYMFILES += und-search.lst
 
-search.mod: pre-search.o mod-search.o
+search.mod: pre-search.o mod-search.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(search_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(search_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-search.o mod-search.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-search.o: $(search_mod_DEPENDENCIES) search_mod-commands_search.o
        -rm -f $@
@@ -2525,10 +2580,11 @@
 MOSTLYCLEANFILES += test_mod-commands_test.d
 UNDSYMFILES += und-test.lst
 
-test.mod: pre-test.o mod-test.o
+test.mod: pre-test.o mod-test.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(test_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(test_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-test.o mod-test.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-test.o: $(test_mod_DEPENDENCIES) test_mod-commands_test.o
        -rm -f $@
@@ -2581,10 +2637,11 @@
 MOSTLYCLEANFILES += loopback_mod-disk_loopback.d
 UNDSYMFILES += und-loopback.lst
 
-loopback.mod: pre-loopback.o mod-loopback.o
+loopback.mod: pre-loopback.o mod-loopback.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(loopback_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(loopback_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-loopback.o mod-loopback.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-loopback.o: $(loopback_mod_DEPENDENCIES) loopback_mod-disk_loopback.o
        -rm -f $@
@@ -2637,10 +2694,11 @@
 MOSTLYCLEANFILES += fs_uuid_mod-disk_fs_uuid.d
 UNDSYMFILES += und-fs_uuid.lst
 
-fs_uuid.mod: pre-fs_uuid.o mod-fs_uuid.o
+fs_uuid.mod: pre-fs_uuid.o mod-fs_uuid.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(fs_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(fs_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-fs_uuid.o mod-fs_uuid.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-fs_uuid.o: $(fs_uuid_mod_DEPENDENCIES) fs_uuid_mod-disk_fs_uuid.o
        -rm -f $@
@@ -2693,10 +2751,11 @@
 MOSTLYCLEANFILES += configfile_mod-commands_configfile.d
 UNDSYMFILES += und-configfile.lst
 
-configfile.mod: pre-configfile.o mod-configfile.o
+configfile.mod: pre-configfile.o mod-configfile.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(configfile_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(configfile_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-configfile.o mod-configfile.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-configfile.o: $(configfile_mod_DEPENDENCIES) 
configfile_mod-commands_configfile.o
        -rm -f $@
@@ -2749,10 +2808,11 @@
 MOSTLYCLEANFILES += terminfo_mod-term_terminfo.d terminfo_mod-term_tparm.d
 UNDSYMFILES += und-terminfo.lst
 
-terminfo.mod: pre-terminfo.o mod-terminfo.o
+terminfo.mod: pre-terminfo.o mod-terminfo.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(terminfo_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(terminfo_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-terminfo.o mod-terminfo.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-terminfo.o: $(terminfo_mod_DEPENDENCIES) terminfo_mod-term_terminfo.o 
terminfo_mod-term_tparm.o
        -rm -f $@
@@ -2824,10 +2884,11 @@
 MOSTLYCLEANFILES += blocklist_mod-commands_blocklist.d
 UNDSYMFILES += und-blocklist.lst
 
-blocklist.mod: pre-blocklist.o mod-blocklist.o
+blocklist.mod: pre-blocklist.o mod-blocklist.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(blocklist_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(blocklist_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-blocklist.o mod-blocklist.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-blocklist.o: $(blocklist_mod_DEPENDENCIES) 
blocklist_mod-commands_blocklist.o
        -rm -f $@
@@ -2880,10 +2941,11 @@
 MOSTLYCLEANFILES += hexdump_mod-commands_hexdump.d
 UNDSYMFILES += und-hexdump.lst
 
-hexdump.mod: pre-hexdump.o mod-hexdump.o
+hexdump.mod: pre-hexdump.o mod-hexdump.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(hexdump_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(hexdump_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-hexdump.o mod-hexdump.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-hexdump.o: $(hexdump_mod_DEPENDENCIES) hexdump_mod-commands_hexdump.o
        -rm -f $@
@@ -2936,10 +2998,11 @@
 MOSTLYCLEANFILES += read_mod-commands_read.d
 UNDSYMFILES += und-read.lst
 
-read.mod: pre-read.o mod-read.o
+read.mod: pre-read.o mod-read.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(read_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(read_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-read.o mod-read.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-read.o: $(read_mod_DEPENDENCIES) read_mod-commands_read.o
        -rm -f $@
@@ -2992,10 +3055,11 @@
 MOSTLYCLEANFILES += sleep_mod-commands_sleep.d
 UNDSYMFILES += und-sleep.lst
 
-sleep.mod: pre-sleep.o mod-sleep.o
+sleep.mod: pre-sleep.o mod-sleep.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(sleep_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(sleep_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-sleep.o mod-sleep.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-sleep.o: $(sleep_mod_DEPENDENCIES) sleep_mod-commands_sleep.o
        -rm -f $@
@@ -3048,10 +3112,11 @@
 MOSTLYCLEANFILES += loadenv_mod-commands_loadenv.d loadenv_mod-util_envblk.d
 UNDSYMFILES += und-loadenv.lst
 
-loadenv.mod: pre-loadenv.o mod-loadenv.o
+loadenv.mod: pre-loadenv.o mod-loadenv.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(loadenv_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(loadenv_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-loadenv.o mod-loadenv.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-loadenv.o: $(loadenv_mod_DEPENDENCIES) loadenv_mod-commands_loadenv.o 
loadenv_mod-util_envblk.o
        -rm -f $@
@@ -3126,10 +3191,11 @@
 MOSTLYCLEANFILES += elf_mod-kern_elf.d
 UNDSYMFILES += und-elf.lst
 
-elf.mod: pre-elf.o mod-elf.o
+elf.mod: pre-elf.o mod-elf.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-elf.o mod-elf.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-elf.o: $(elf_mod_DEPENDENCIES) elf_mod-kern_elf.o
        -rm -f $@
@@ -3182,10 +3248,11 @@
 MOSTLYCLEANFILES += gzio_mod-io_gzio.d
 UNDSYMFILES += und-gzio.lst
 
-gzio.mod: pre-gzio.o mod-gzio.o
+gzio.mod: pre-gzio.o mod-gzio.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(gzio_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(gzio_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-gzio.o mod-gzio.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-gzio.o: $(gzio_mod_DEPENDENCIES) gzio_mod-io_gzio.o
        -rm -f $@

Modified: trunk/grub2/conf/common.rmk
===================================================================
--- trunk/grub2/conf/common.rmk 2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/common.rmk 2008-07-24 14:56:30 UTC (rev 1726)
@@ -99,6 +99,11 @@
 grub_editenv_SOURCES = util/grub-editenv.c util/envblk.c util/misc.c 
kern/misc.c kern/err.c
 CLEANFILES += grub-editenv
 
+# for grub-pe2elf
+bin_UTILITIES += grub-pe2elf
+grub_pe2elf_SOURCES = util/grub-pe2elf.c util/misc.c
+CLEANFILES += grub-pe2elf
+
 # For update-grub
 update-grub: util/update-grub.in config.status
        ./config.status --file=$@:$<

Modified: trunk/grub2/conf/i386-coreboot.mk
===================================================================
--- trunk/grub2/conf/i386-coreboot.mk   2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/i386-coreboot.mk   2008-07-24 14:56:30 UTC (rev 1726)
@@ -146,7 +146,7 @@
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \
        util/resolve.c
-CLEANFILES += grub-mkimage grub_mkimage-util_elf_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
+CLEANFILES += grub-mkimage$(EXEEXT) grub_mkimage-util_elf_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
 MOSTLYCLEANFILES += grub_mkimage-util_elf_grub_mkimage.d 
grub_mkimage-util_misc.d grub_mkimage-util_resolve.d
 
 grub-mkimage: $(grub_mkimage_DEPENDENCIES) 
grub_mkimage-util_elf_grub_mkimage.o grub_mkimage-util_misc.o 
grub_mkimage-util_resolve.o
@@ -170,7 +170,7 @@
 # For grub-mkdevicemap.
 grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c         \
        util/i386/get_disk_name.c
-CLEANFILES += grub-mkdevicemap grub_mkdevicemap-util_grub_mkdevicemap.o 
grub_mkdevicemap-util_misc.o grub_mkdevicemap-util_i386_get_disk_name.o
+CLEANFILES += grub-mkdevicemap$(EXEEXT) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
 MOSTLYCLEANFILES += grub_mkdevicemap-util_grub_mkdevicemap.d 
grub_mkdevicemap-util_misc.d grub_mkdevicemap-util_i386_get_disk_name.d
 
 grub-mkdevicemap: $(grub_mkdevicemap_DEPENDENCIES) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
@@ -222,7 +222,7 @@
        \
        disk/raid.c disk/lvm.c                                          \
        grub_emu_init.c
-CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
 MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d grub_emu-disk_loopback.d 
grub_emu-fs_affs.d grub_emu-fs_cpio.d grub_emu-fs_ext2.d grub_emu-fs_fat.d 
grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d 
grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_fshelp.d grub_emu-io_gzio.d 
grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d 
grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-normal_misc.d 
grub_emu-normal_script.d grub_emu-normal_color.d grub_emu-partmap_amiga.d 
grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d 
grub_emu-partmap_acorn.d grub_emu-partmap_gpt.d grub_emu-util_console.d 
grub_emu-util_hostfs.d grub_emu-util_grub_emu.d grub_emu-util_misc.d 
grub_emu-util_biosdisk.d grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d 
grub_emu-disk_raid.d grub_emu-disk_lvm.d grub_emu-grub_emu_init.d
 
 grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
@@ -562,10 +562,11 @@
 MOSTLYCLEANFILES += _linux_mod-loader_i386_pc_linux.d
 UNDSYMFILES += und-_linux.lst
 
-_linux.mod: pre-_linux.o mod-_linux.o
+_linux.mod: pre-_linux.o mod-_linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_linux.o mod-_linux.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-_linux.o: $(_linux_mod_DEPENDENCIES) _linux_mod-loader_i386_pc_linux.o
        -rm -f $@
@@ -618,10 +619,11 @@
 MOSTLYCLEANFILES += linux_mod-loader_i386_pc_linux_normal.d
 UNDSYMFILES += und-linux.lst
 
-linux.mod: pre-linux.o mod-linux.o
+linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-linux.o mod-linux.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-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_pc_linux_normal.o
        -rm -f $@
@@ -678,10 +680,11 @@
 MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d 
normal_mod-normal_command.d normal_mod-normal_completion.d 
normal_mod-normal_execute.d normal_mod-normal_function.d 
normal_mod-normal_lexer.d normal_mod-normal_main.d normal_mod-normal_menu.d 
normal_mod-normal_menu_entry.d normal_mod-normal_misc.d 
normal_mod-grub_script_tab.d normal_mod-normal_script.d 
normal_mod-normal_i386_setjmp.d normal_mod-normal_color.d
 UNDSYMFILES += und-normal.lst
 
-normal.mod: pre-normal.o mod-normal.o
+normal.mod: pre-normal.o mod-normal.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-normal.o mod-normal.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-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_arg.o 
normal_mod-normal_cmdline.o normal_mod-normal_command.o 
normal_mod-normal_completion.o normal_mod-normal_execute.o 
normal_mod-normal_function.o normal_mod-normal_lexer.o normal_mod-normal_main.o 
normal_mod-normal_menu.o normal_mod-normal_menu_entry.o 
normal_mod-normal_misc.o normal_mod-grub_script_tab.o 
normal_mod-normal_script.o normal_mod-normal_i386_setjmp.o 
normal_mod-normal_color.o
        -rm -f $@
@@ -1001,10 +1004,11 @@
 MOSTLYCLEANFILES += serial_mod-term_i386_pc_serial.d
 UNDSYMFILES += und-serial.lst
 
-serial.mod: pre-serial.o mod-serial.o
+serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-serial.o mod-serial.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-serial.o: $(serial_mod_DEPENDENCIES) serial_mod-term_i386_pc_serial.o
        -rm -f $@
@@ -1060,10 +1064,11 @@
 MOSTLYCLEANFILES += _multiboot_mod-loader_i386_pc_multiboot.d 
_multiboot_mod-loader_i386_pc_multiboot2.d _multiboot_mod-loader_multiboot2.d 
_multiboot_mod-loader_multiboot_loader.d
 UNDSYMFILES += und-_multiboot.lst
 
-_multiboot.mod: pre-_multiboot.o mod-_multiboot.o
+_multiboot.mod: pre-_multiboot.o mod-_multiboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-_multiboot.o mod-_multiboot.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-_multiboot.o: $(_multiboot_mod_DEPENDENCIES) 
_multiboot_mod-loader_i386_pc_multiboot.o 
_multiboot_mod-loader_i386_pc_multiboot2.o _multiboot_mod-loader_multiboot2.o 
_multiboot_mod-loader_multiboot_loader.o
        -rm -f $@
@@ -1173,10 +1178,11 @@
 MOSTLYCLEANFILES += multiboot_mod-loader_multiboot_loader_normal.d
 UNDSYMFILES += und-multiboot.lst
 
-multiboot.mod: pre-multiboot.o mod-multiboot.o
+multiboot.mod: pre-multiboot.o mod-multiboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot.o mod-multiboot.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-multiboot.o: $(multiboot_mod_DEPENDENCIES) 
multiboot_mod-loader_multiboot_loader_normal.o
        -rm -f $@
@@ -1229,10 +1235,11 @@
 MOSTLYCLEANFILES += aout_mod-loader_aout.d
 UNDSYMFILES += und-aout.lst
 
-aout.mod: pre-aout.o mod-aout.o
+aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-aout.o mod-aout.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-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o
        -rm -f $@
@@ -1285,10 +1292,11 @@
 MOSTLYCLEANFILES += play_mod-commands_i386_pc_play.d
 UNDSYMFILES += und-play.lst
 
-play.mod: pre-play.o mod-play.o
+play.mod: pre-play.o mod-play.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-play.o mod-play.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-play.o: $(play_mod_DEPENDENCIES) play_mod-commands_i386_pc_play.o
        -rm -f $@
@@ -1341,10 +1349,11 @@
 MOSTLYCLEANFILES += cpuid_mod-commands_i386_cpuid.d
 UNDSYMFILES += und-cpuid.lst
 
-cpuid.mod: pre-cpuid.o mod-cpuid.o
+cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cpuid.o mod-cpuid.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-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o
        -rm -f $@
@@ -1397,10 +1406,11 @@
 MOSTLYCLEANFILES += ata_mod-disk_ata.d
 UNDSYMFILES += und-ata.lst
 
-ata.mod: pre-ata.o mod-ata.o
+ata.mod: pre-ata.o mod-ata.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-ata.o mod-ata.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-ata.o: $(ata_mod_DEPENDENCIES) ata_mod-disk_ata.o
        -rm -f $@

Modified: trunk/grub2/conf/i386-efi.mk
===================================================================
--- trunk/grub2/conf/i386-efi.mk        2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/i386-efi.mk        2008-07-24 14:56:30 UTC (rev 1726)
@@ -17,7 +17,7 @@
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \
        util/resolve.c
-CLEANFILES += grub-mkimage grub_mkimage-util_i386_efi_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
+CLEANFILES += grub-mkimage$(EXEEXT) grub_mkimage-util_i386_efi_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
 MOSTLYCLEANFILES += grub_mkimage-util_i386_efi_grub_mkimage.d 
grub_mkimage-util_misc.d grub_mkimage-util_resolve.d
 
 grub-mkimage: $(grub_mkimage_DEPENDENCIES) 
grub_mkimage-util_i386_efi_grub_mkimage.o grub_mkimage-util_misc.o 
grub_mkimage-util_resolve.o
@@ -48,7 +48,7 @@
 # For grub-mkdevicemap.
 grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c         \
        util/i386/get_disk_name.c
-CLEANFILES += grub-mkdevicemap grub_mkdevicemap-util_grub_mkdevicemap.o 
grub_mkdevicemap-util_misc.o grub_mkdevicemap-util_i386_get_disk_name.o
+CLEANFILES += grub-mkdevicemap$(EXEEXT) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
 MOSTLYCLEANFILES += grub_mkdevicemap-util_grub_mkdevicemap.d 
grub_mkdevicemap-util_misc.d grub_mkdevicemap-util_i386_get_disk_name.d
 
 grub-mkdevicemap: $(grub_mkdevicemap_DEPENDENCIES) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
@@ -135,10 +135,11 @@
 MOSTLYCLEANFILES += kernel_mod-kern_i386_efi_startup.d kernel_mod-kern_main.d 
kernel_mod-kern_device.d kernel_mod-kern_disk.d kernel_mod-kern_dl.d 
kernel_mod-kern_file.d kernel_mod-kern_fs.d kernel_mod-kern_err.d 
kernel_mod-kern_misc.d kernel_mod-kern_mm.d kernel_mod-kern_loader.d 
kernel_mod-kern_rescue.d kernel_mod-kern_term.d kernel_mod-kern_i386_dl.d 
kernel_mod-kern_i386_efi_init.d kernel_mod-kern_parser.d 
kernel_mod-kern_partition.d kernel_mod-kern_env.d kernel_mod-symlist.d 
kernel_mod-kern_efi_efi.d kernel_mod-kern_efi_init.d kernel_mod-kern_efi_mm.d 
kernel_mod-term_efi_console.d kernel_mod-disk_efi_efidisk.d
 UNDSYMFILES += und-kernel.lst
 
-kernel.mod: pre-kernel.o mod-kernel.o
+kernel.mod: pre-kernel.o mod-kernel.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-kernel.o mod-kernel.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-kernel.o: $(kernel_mod_DEPENDENCIES) kernel_mod-kern_i386_efi_startup.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_i386_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-term_efi_console.o 
kernel_mod-disk_efi_efidisk.o
        -rm -f $@
@@ -647,10 +648,11 @@
 MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d 
normal_mod-normal_command.d normal_mod-normal_completion.d 
normal_mod-normal_execute.d normal_mod-normal_function.d 
normal_mod-normal_lexer.d normal_mod-normal_main.d normal_mod-normal_menu.d 
normal_mod-normal_menu_entry.d normal_mod-normal_misc.d 
normal_mod-grub_script_tab.d normal_mod-normal_script.d 
normal_mod-normal_i386_setjmp.d normal_mod-normal_color.d
 UNDSYMFILES += und-normal.lst
 
-normal.mod: pre-normal.o mod-normal.o
+normal.mod: pre-normal.o mod-normal.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-normal.o mod-normal.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-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_arg.o 
normal_mod-normal_cmdline.o normal_mod-normal_command.o 
normal_mod-normal_completion.o normal_mod-normal_execute.o 
normal_mod-normal_function.o normal_mod-normal_lexer.o normal_mod-normal_main.o 
normal_mod-normal_menu.o normal_mod-normal_menu_entry.o 
normal_mod-normal_misc.o normal_mod-grub_script_tab.o 
normal_mod-normal_script.o normal_mod-normal_i386_setjmp.o 
normal_mod-normal_color.o
        -rm -f $@
@@ -970,10 +972,11 @@
 MOSTLYCLEANFILES += _chain_mod-loader_efi_chainloader.d
 UNDSYMFILES += und-_chain.lst
 
-_chain.mod: pre-_chain.o mod-_chain.o
+_chain.mod: pre-_chain.o mod-_chain.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_chain.o mod-_chain.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-_chain.o: $(_chain_mod_DEPENDENCIES) _chain_mod-loader_efi_chainloader.o
        -rm -f $@
@@ -1026,10 +1029,11 @@
 MOSTLYCLEANFILES += chain_mod-loader_efi_chainloader_normal.d
 UNDSYMFILES += und-chain.lst
 
-chain.mod: pre-chain.o mod-chain.o
+chain.mod: pre-chain.o mod-chain.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-chain.o mod-chain.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-chain.o: $(chain_mod_DEPENDENCIES) 
chain_mod-loader_efi_chainloader_normal.o
        -rm -f $@
@@ -1082,10 +1086,11 @@
 MOSTLYCLEANFILES += appleldr_mod-loader_efi_appleloader.d
 UNDSYMFILES += und-appleldr.lst
 
-appleldr.mod: pre-appleldr.o mod-appleldr.o
+appleldr.mod: pre-appleldr.o mod-appleldr.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(appleldr_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(appleldr_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-appleldr.o mod-appleldr.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-appleldr.o: $(appleldr_mod_DEPENDENCIES) 
appleldr_mod-loader_efi_appleloader.o
        -rm -f $@
@@ -1138,10 +1143,11 @@
 MOSTLYCLEANFILES += _linux_mod-loader_i386_efi_linux.d
 UNDSYMFILES += und-_linux.lst
 
-_linux.mod: pre-_linux.o mod-_linux.o
+_linux.mod: pre-_linux.o mod-_linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_linux.o mod-_linux.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-_linux.o: $(_linux_mod_DEPENDENCIES) _linux_mod-loader_i386_efi_linux.o
        -rm -f $@
@@ -1194,10 +1200,11 @@
 MOSTLYCLEANFILES += linux_mod-loader_i386_efi_linux_normal.d
 UNDSYMFILES += und-linux.lst
 
-linux.mod: pre-linux.o mod-linux.o
+linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-linux.o mod-linux.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-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_efi_linux_normal.o
        -rm -f $@
@@ -1250,10 +1257,11 @@
 MOSTLYCLEANFILES += cpuid_mod-commands_i386_cpuid.d
 UNDSYMFILES += und-cpuid.lst
 
-cpuid.mod: pre-cpuid.o mod-cpuid.o
+cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cpuid.o mod-cpuid.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-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o
        -rm -f $@
@@ -1306,10 +1314,11 @@
 MOSTLYCLEANFILES += halt_mod-commands_halt.d
 UNDSYMFILES += und-halt.lst
 
-halt.mod: pre-halt.o mod-halt.o
+halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-halt.o mod-halt.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-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o
        -rm -f $@
@@ -1362,10 +1371,11 @@
 MOSTLYCLEANFILES += reboot_mod-commands_reboot.d
 UNDSYMFILES += und-reboot.lst
 
-reboot.mod: pre-reboot.o mod-reboot.o
+reboot.mod: pre-reboot.o mod-reboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-reboot.o mod-reboot.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-reboot.o: $(reboot_mod_DEPENDENCIES) reboot_mod-commands_reboot.o
        -rm -f $@
@@ -1418,10 +1428,11 @@
 MOSTLYCLEANFILES += pci_mod-bus_pci.d
 UNDSYMFILES += und-pci.lst
 
-pci.mod: pre-pci.o mod-pci.o
+pci.mod: pre-pci.o mod-pci.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-pci.o mod-pci.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-pci.o: $(pci_mod_DEPENDENCIES) pci_mod-bus_pci.o
        -rm -f $@
@@ -1474,10 +1485,11 @@
 MOSTLYCLEANFILES += lspci_mod-commands_lspci.d
 UNDSYMFILES += und-lspci.lst
 
-lspci.mod: pre-lspci.o mod-lspci.o
+lspci.mod: pre-lspci.o mod-lspci.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-lspci.o mod-lspci.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-lspci.o: $(lspci_mod_DEPENDENCIES) lspci_mod-commands_lspci.o
        -rm -f $@

Modified: trunk/grub2/conf/i386-ieee1275.mk
===================================================================
--- trunk/grub2/conf/i386-ieee1275.mk   2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/i386-ieee1275.mk   2008-07-24 14:56:30 UTC (rev 1726)
@@ -159,7 +159,7 @@
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \
        util/resolve.c
-CLEANFILES += grub-mkimage grub_mkimage-util_elf_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
+CLEANFILES += grub-mkimage$(EXEEXT) grub_mkimage-util_elf_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
 MOSTLYCLEANFILES += grub_mkimage-util_elf_grub_mkimage.d 
grub_mkimage-util_misc.d grub_mkimage-util_resolve.d
 
 grub-mkimage: $(grub_mkimage_DEPENDENCIES) 
grub_mkimage-util_elf_grub_mkimage.o grub_mkimage-util_misc.o 
grub_mkimage-util_resolve.o
@@ -183,7 +183,7 @@
 # For grub-mkdevicemap.
 grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c         \
        util/i386/get_disk_name.c
-CLEANFILES += grub-mkdevicemap grub_mkdevicemap-util_grub_mkdevicemap.o 
grub_mkdevicemap-util_misc.o grub_mkdevicemap-util_i386_get_disk_name.o
+CLEANFILES += grub-mkdevicemap$(EXEEXT) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
 MOSTLYCLEANFILES += grub_mkdevicemap-util_grub_mkdevicemap.d 
grub_mkdevicemap-util_misc.d grub_mkdevicemap-util_i386_get_disk_name.d
 
 grub-mkdevicemap: $(grub_mkdevicemap_DEPENDENCIES) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
@@ -236,7 +236,7 @@
        \
        disk/raid.c disk/lvm.c                                          \
        grub_emu_init.c
-CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
 MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-commands_halt.d grub_emu-commands_reboot.d 
grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d grub_emu-disk_loopback.d 
grub_emu-fs_affs.d grub_emu-fs_cpio.d grub_emu-fs_ext2.d grub_emu-fs_fat.d 
grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d 
grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_fshelp.d grub_emu-io_gzio.d 
grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d 
grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-normal_misc.d 
grub_emu-normal_script.d grub_emu-normal_color.d grub_emu-partmap_amiga.d 
grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d 
grub_emu-partmap_acorn.d grub_emu-partmap_gpt.d grub_emu-util_console.d 
grub_emu-util_hostfs.d grub_emu-util_grub_emu.d grub_emu-util_misc.d 
grub_emu-util_biosdisk.d grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d 
grub_emu-disk_raid.d grub_emu-disk_lvm.d grub_emu-grub_emu_init.d
 
 grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
@@ -600,10 +600,11 @@
 MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d 
normal_mod-normal_command.d normal_mod-normal_completion.d 
normal_mod-normal_execute.d normal_mod-normal_function.d 
normal_mod-normal_lexer.d normal_mod-normal_main.d normal_mod-normal_menu.d 
normal_mod-normal_menu_entry.d normal_mod-normal_misc.d 
normal_mod-grub_script_tab.d normal_mod-normal_script.d 
normal_mod-normal_i386_setjmp.d normal_mod-normal_color.d
 UNDSYMFILES += und-normal.lst
 
-normal.mod: pre-normal.o mod-normal.o
+normal.mod: pre-normal.o mod-normal.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-normal.o mod-normal.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-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_arg.o 
normal_mod-normal_cmdline.o normal_mod-normal_command.o 
normal_mod-normal_completion.o normal_mod-normal_execute.o 
normal_mod-normal_function.o normal_mod-normal_lexer.o normal_mod-normal_main.o 
normal_mod-normal_menu.o normal_mod-normal_menu_entry.o 
normal_mod-normal_misc.o normal_mod-grub_script_tab.o 
normal_mod-normal_script.o normal_mod-normal_i386_setjmp.o 
normal_mod-normal_color.o
        -rm -f $@
@@ -925,10 +926,11 @@
 MOSTLYCLEANFILES += _multiboot_mod-loader_ieee1275_multiboot2.d 
_multiboot_mod-loader_multiboot2.d _multiboot_mod-loader_multiboot_loader.d
 UNDSYMFILES += und-_multiboot.lst
 
-_multiboot.mod: pre-_multiboot.o mod-_multiboot.o
+_multiboot.mod: pre-_multiboot.o mod-_multiboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-_multiboot.o mod-_multiboot.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-_multiboot.o: $(_multiboot_mod_DEPENDENCIES) 
_multiboot_mod-loader_ieee1275_multiboot2.o _multiboot_mod-loader_multiboot2.o 
_multiboot_mod-loader_multiboot_loader.o
        -rm -f $@
@@ -1019,10 +1021,11 @@
 MOSTLYCLEANFILES += multiboot_mod-loader_multiboot_loader_normal.d
 UNDSYMFILES += und-multiboot.lst
 
-multiboot.mod: pre-multiboot.o mod-multiboot.o
+multiboot.mod: pre-multiboot.o mod-multiboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot.o mod-multiboot.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-multiboot.o: $(multiboot_mod_DEPENDENCIES) 
multiboot_mod-loader_multiboot_loader_normal.o
        -rm -f $@
@@ -1075,10 +1078,11 @@
 MOSTLYCLEANFILES += aout_mod-loader_aout.d
 UNDSYMFILES += und-aout.lst
 
-aout.mod: pre-aout.o mod-aout.o
+aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-aout.o mod-aout.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-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o
        -rm -f $@
@@ -1131,10 +1135,11 @@
 MOSTLYCLEANFILES += suspend_mod-commands_ieee1275_suspend.d
 UNDSYMFILES += und-suspend.lst
 
-suspend.mod: pre-suspend.o mod-suspend.o
+suspend.mod: pre-suspend.o mod-suspend.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-suspend.o mod-suspend.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-suspend.o: $(suspend_mod_DEPENDENCIES) 
suspend_mod-commands_ieee1275_suspend.o
        -rm -f $@
@@ -1187,10 +1192,11 @@
 MOSTLYCLEANFILES += reboot_mod-commands_reboot.d
 UNDSYMFILES += und-reboot.lst
 
-reboot.mod: pre-reboot.o mod-reboot.o
+reboot.mod: pre-reboot.o mod-reboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-reboot.o mod-reboot.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-reboot.o: $(reboot_mod_DEPENDENCIES) reboot_mod-commands_reboot.o
        -rm -f $@
@@ -1243,10 +1249,11 @@
 MOSTLYCLEANFILES += halt_mod-commands_halt.d
 UNDSYMFILES += und-halt.lst
 
-halt.mod: pre-halt.o mod-halt.o
+halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-halt.o mod-halt.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-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o
        -rm -f $@
@@ -1299,10 +1306,11 @@
 MOSTLYCLEANFILES += cpuid_mod-commands_i386_cpuid.d
 UNDSYMFILES += und-cpuid.lst
 
-cpuid.mod: pre-cpuid.o mod-cpuid.o
+cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cpuid.o mod-cpuid.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-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o
        -rm -f $@
@@ -1355,10 +1363,11 @@
 MOSTLYCLEANFILES += serial_mod-term_i386_pc_serial.d
 UNDSYMFILES += und-serial.lst
 
-serial.mod: pre-serial.o mod-serial.o
+serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-serial.o mod-serial.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-serial.o: $(serial_mod_DEPENDENCIES) serial_mod-term_i386_pc_serial.o
        -rm -f $@
@@ -1411,10 +1420,11 @@
 MOSTLYCLEANFILES += _linux_mod-loader_i386_ieee1275_linux.d
 UNDSYMFILES += und-_linux.lst
 
-_linux.mod: pre-_linux.o mod-_linux.o
+_linux.mod: pre-_linux.o mod-_linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_linux.o mod-_linux.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-_linux.o: $(_linux_mod_DEPENDENCIES) 
_linux_mod-loader_i386_ieee1275_linux.o
        -rm -f $@
@@ -1467,10 +1477,11 @@
 MOSTLYCLEANFILES += linux_mod-loader_i386_ieee1275_linux_normal.d
 UNDSYMFILES += und-linux.lst
 
-linux.mod: pre-linux.o mod-linux.o
+linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-linux.o mod-linux.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-linux.o: $(linux_mod_DEPENDENCIES) 
linux_mod-loader_i386_ieee1275_linux_normal.o
        -rm -f $@
@@ -1523,10 +1534,11 @@
 MOSTLYCLEANFILES += nand_mod-disk_ieee1275_nand.d
 UNDSYMFILES += und-nand.lst
 
-nand.mod: pre-nand.o mod-nand.o
+nand.mod: pre-nand.o mod-nand.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(nand_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(nand_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-nand.o mod-nand.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-nand.o: $(nand_mod_DEPENDENCIES) nand_mod-disk_ieee1275_nand.o
        -rm -f $@

Added: trunk/grub2/conf/i386-pc-cygwin-img-ld.sc
===================================================================
--- trunk/grub2/conf/i386-pc-cygwin-img-ld.sc                           (rev 0)
+++ trunk/grub2/conf/i386-pc-cygwin-img-ld.sc   2008-07-24 14:56:30 UTC (rev 
1726)
@@ -0,0 +1,53 @@
+/* Linker script to create grub .img files on Cygwin.  */
+
+SECTIONS
+{
+  .text :
+  {
+    start = . ;
+    *(.text)
+    etext = . ;
+  }
+  .data :
+  {
+    __data_start__ = . ;
+    *(.data)
+    __data_end__ = . ;
+  }
+  .rdata :
+  {
+    __rdata_start__ = . ;
+    *(.rdata)
+    __rdata_end__ = . ;
+  }
+  .pdata :
+  {
+    *(.pdata)
+    edata = . ;
+  }
+  .bss :
+  {
+    __bss_start__ = . ;
+    *(.bss)
+    __common_start__ = . ;
+    *(COMMON)
+    __bss_end__ = . ;
+  }
+  .edata :
+  {
+    *(.edata)
+    end = . ;
+  }
+  .stab :
+  {
+    *(.stab)
+  }
+  .stabstr :
+  {
+    *(.stabstr)
+  }
+}
+
+ASSERT("__rdata_end__"=="edata", ".pdata not empty")
+ASSERT("__bss_end__"  =="end"  , ".edata not empty")
+

Modified: trunk/grub2/conf/i386-pc.mk
===================================================================
--- trunk/grub2/conf/i386-pc.mk 2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/i386-pc.mk 2008-07-24 14:56:30 UTC (rev 1726)
@@ -29,7 +29,7 @@
 -include boot_img-boot_i386_pc_boot.d
 
 boot_img_ASFLAGS = $(COMMON_ASFLAGS)
-boot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,7C00
+boot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,7C00
 
 # For pxeboot.img
 pxeboot_img_SOURCES = boot/i386/pc/pxeboot.S
@@ -47,7 +47,7 @@
 -include pxeboot_img-boot_i386_pc_pxeboot.d
 
 pxeboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-pxeboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,7C00
+pxeboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,7C00
 
 # For diskboot.img.
 diskboot_img_SOURCES = boot/i386/pc/diskboot.S
@@ -65,7 +65,7 @@
 -include diskboot_img-boot_i386_pc_diskboot.d
 
 diskboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,8000
+diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,8000
 
 # For lnxboot.img.
 lnxboot_img_SOURCES = boot/i386/pc/lnxboot.S
@@ -83,7 +83,7 @@
 -include lnxboot_img-boot_i386_pc_lnxboot.d
 
 lnxboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-lnxboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,6000
+lnxboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,6000
 
 # For cdboot.img.
 cdboot_img_SOURCES = boot/i386/pc/cdboot.S
@@ -101,7 +101,7 @@
 -include cdboot_img-boot_i386_pc_cdboot.d
 
 cdboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-cdboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,7C00
+cdboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,7C00
 
 # For kernel.img.
 kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
@@ -207,7 +207,7 @@
        machine/memory.h machine/loader.h machine/vga.h machine/vbe.h 
machine/kernel.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) 
-Wl,-N,-Ttext,$(GRUB_MEMORY_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
+kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) 
-Wl,-Ttext,$(GRUB_MEMORY_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
 
 MOSTLYCLEANFILES += symlist.c kernel_syms.lst
 DEFSYMFILES += kernel_syms.lst
@@ -229,7 +229,7 @@
 ifeq ($(enable_lzo), yes)
 grub_mkimage_SOURCES = util/i386/pc/grub-mkimage.c util/misc.c \
        util/resolve.c
-CLEANFILES += grub-mkimage grub_mkimage-util_i386_pc_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
+CLEANFILES += grub-mkimage$(EXEEXT) grub_mkimage-util_i386_pc_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
 MOSTLYCLEANFILES += grub_mkimage-util_i386_pc_grub_mkimage.d 
grub_mkimage-util_misc.d grub_mkimage-util_resolve.d
 
 grub-mkimage: $(grub_mkimage_DEPENDENCIES) 
grub_mkimage-util_i386_pc_grub_mkimage.o grub_mkimage-util_misc.o 
grub_mkimage-util_resolve.o
@@ -251,7 +251,7 @@
 else
 grub_mkimage_SOURCES = util/i386/pc/grub-mkimage.c util/misc.c \
        util/resolve.c lib/LzmaEnc.c lib/LzFind.c
-CLEANFILES += grub-mkimage grub_mkimage-util_i386_pc_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o grub_mkimage-lib_LzmaEnc.o 
grub_mkimage-lib_LzFind.o
+CLEANFILES += grub-mkimage$(EXEEXT) grub_mkimage-util_i386_pc_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o grub_mkimage-lib_LzmaEnc.o 
grub_mkimage-lib_LzFind.o
 MOSTLYCLEANFILES += grub_mkimage-util_i386_pc_grub_mkimage.d 
grub_mkimage-util_misc.d grub_mkimage-util_resolve.d grub_mkimage-lib_LzmaEnc.d 
grub_mkimage-lib_LzFind.d
 
 grub-mkimage: $(grub_mkimage_DEPENDENCIES) 
grub_mkimage-util_i386_pc_grub_mkimage.o grub_mkimage-util_misc.o 
grub_mkimage-util_resolve.o grub_mkimage-lib_LzmaEnc.o grub_mkimage-lib_LzFind.o
@@ -298,7 +298,7 @@
        disk/raid.c disk/lvm.c                                  \
        util/raid.c util/lvm.c                                  \
        grub_setup_init.c
-CLEANFILES += grub-setup grub_setup-util_i386_pc_grub_setup.o 
grub_setup-util_biosdisk.o grub_setup-util_misc.o grub_setup-util_getroot.o 
grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o 
grub_setup-kern_misc.o grub_setup-kern_parser.o grub_setup-kern_partition.o 
grub_setup-kern_file.o grub_setup-kern_fs.o grub_setup-kern_env.o 
grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o 
grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o 
grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o 
grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_ntfs.o 
grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o 
grub_setup-fs_ufs.o grub_setup-fs_xfs.o grub_setup-fs_afs.o 
grub_setup-partmap_pc.o grub_setup-partmap_gpt.o grub_setup-disk_raid.o 
grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o 
grub_setup-grub_setup_init.o
+CLEANFILES += grub-setup$(EXEEXT) grub_setup-util_i386_pc_grub_setup.o 
grub_setup-util_biosdisk.o grub_setup-util_misc.o grub_setup-util_getroot.o 
grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o 
grub_setup-kern_misc.o grub_setup-kern_parser.o grub_setup-kern_partition.o 
grub_setup-kern_file.o grub_setup-kern_fs.o grub_setup-kern_env.o 
grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o 
grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o 
grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o 
grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_ntfs.o 
grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o 
grub_setup-fs_ufs.o grub_setup-fs_xfs.o grub_setup-fs_afs.o 
grub_setup-partmap_pc.o grub_setup-partmap_gpt.o grub_setup-disk_raid.o 
grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o 
grub_setup-grub_setup_init.o
 MOSTLYCLEANFILES += grub_setup-util_i386_pc_grub_setup.d 
grub_setup-util_biosdisk.d grub_setup-util_misc.d grub_setup-util_getroot.d 
grub_setup-kern_device.d grub_setup-kern_disk.d grub_setup-kern_err.d 
grub_setup-kern_misc.d grub_setup-kern_parser.d grub_setup-kern_partition.d 
grub_setup-kern_file.d grub_setup-kern_fs.d grub_setup-kern_env.d 
grub_setup-fs_fshelp.d grub_setup-fs_affs.d grub_setup-fs_cpio.d 
grub_setup-fs_ext2.d grub_setup-fs_fat.d grub_setup-fs_hfs.d 
grub_setup-fs_hfsplus.d grub_setup-fs_iso9660.d grub_setup-fs_udf.d 
grub_setup-fs_jfs.d grub_setup-fs_minix.d grub_setup-fs_ntfs.d 
grub_setup-fs_ntfscomp.d grub_setup-fs_reiserfs.d grub_setup-fs_sfs.d 
grub_setup-fs_ufs.d grub_setup-fs_xfs.d grub_setup-fs_afs.d 
grub_setup-partmap_pc.d grub_setup-partmap_gpt.d grub_setup-disk_raid.d 
grub_setup-disk_lvm.d grub_setup-util_raid.d grub_setup-util_lvm.d 
grub_setup-grub_setup_init.d
 
 grub-setup: $(grub_setup_DEPENDENCIES) grub_setup-util_i386_pc_grub_setup.o 
grub_setup-util_biosdisk.o grub_setup-util_misc.o grub_setup-util_getroot.o 
grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o 
grub_setup-kern_misc.o grub_setup-kern_parser.o grub_setup-kern_partition.o 
grub_setup-kern_file.o grub_setup-kern_fs.o grub_setup-kern_env.o 
grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o 
grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o 
grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o 
grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_ntfs.o 
grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o 
grub_setup-fs_ufs.o grub_setup-fs_xfs.o grub_setup-fs_afs.o 
grub_setup-partmap_pc.o grub_setup-partmap_gpt.o grub_setup-disk_raid.o 
grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o 
grub_setup-grub_setup_init.o
@@ -460,7 +460,7 @@
 # For grub-mkdevicemap.
 grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c         \
        util/i386/get_disk_name.c
-CLEANFILES += grub-mkdevicemap grub_mkdevicemap-util_grub_mkdevicemap.o 
grub_mkdevicemap-util_misc.o grub_mkdevicemap-util_i386_get_disk_name.o
+CLEANFILES += grub-mkdevicemap$(EXEEXT) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
 MOSTLYCLEANFILES += grub_mkdevicemap-util_grub_mkdevicemap.d 
grub_mkdevicemap-util_misc.d grub_mkdevicemap-util_i386_get_disk_name.d
 
 grub-mkdevicemap: $(grub_mkdevicemap_DEPENDENCIES) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_i386_get_disk_name.o
@@ -513,7 +513,7 @@
        \
        disk/raid.c disk/lvm.c                                          \
        grub_emu_init.c
-CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_i386_pc_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_fshelp.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-normal_execute.o grub_emu-kern_file.o 
grub_emu-kern_fs.o grub_emu-normal_lexer.o grub_emu-kern_loader.o 
grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_parser.o 
grub_emu-grub_script_tab.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o 
grub_emu-normal_command.o grub_emu-normal_function.o 
grub_emu-normal_completion.o grub_emu-normal_main.o grub_emu-normal_color.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o 
grub_emu-fs_fat.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o 
grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o 
grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o 
grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_i386_pc_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_fshelp.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-normal_execute.o grub_emu-kern_file.o 
grub_emu-kern_fs.o grub_emu-normal_lexer.o grub_emu-kern_loader.o 
grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_parser.o 
grub_emu-grub_script_tab.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o 
grub_emu-normal_command.o grub_emu-normal_function.o 
grub_emu-normal_completion.o grub_emu-normal_main.o grub_emu-normal_color.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o 
grub_emu-fs_fat.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o 
grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o 
grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o 
grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
 MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-commands_i386_pc_halt.d grub_emu-commands_reboot.d 
grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d grub_emu-disk_loopback.d 
grub_emu-fs_fshelp.d grub_emu-io_gzio.d grub_emu-kern_device.d 
grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_elf.d grub_emu-kern_env.d 
grub_emu-kern_err.d grub_emu-normal_execute.d grub_emu-kern_file.d 
grub_emu-kern_fs.d grub_emu-normal_lexer.d grub_emu-kern_loader.d 
grub_emu-kern_main.d grub_emu-kern_misc.d grub_emu-kern_parser.d 
grub_emu-grub_script_tab.d grub_emu-kern_partition.d grub_emu-kern_rescue.d 
grub_emu-kern_term.d grub_emu-normal_arg.d grub_emu-normal_cmdline.d 
grub_emu-normal_command.d grub_emu-normal_function.d 
grub_emu-normal_completion.d grub_emu-normal_main.d grub_emu-normal_color.d 
grub_emu-normal_menu.d grub_emu-normal_menu_entry.d grub_emu-normal_misc.d 
grub_emu-normal_script.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-partmap_gpt.d grub_emu-fs_affs.d grub_emu-fs_cpio.d grub_emu-fs_ext2.d 
grub_emu-fs_fat.d grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d 
grub_emu-fs_udf.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d 
grub_emu-fs_ntfscomp.d grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d 
grub_emu-fs_ufs.d grub_emu-fs_xfs.d grub_emu-fs_afs.d grub_emu-util_console.d 
grub_emu-util_hostfs.d grub_emu-util_grub_emu.d grub_emu-util_misc.d 
grub_emu-util_biosdisk.d grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d 
grub_emu-disk_raid.d grub_emu-disk_lvm.d grub_emu-grub_emu_init.d
 
 grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_i386_pc_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_fshelp.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-normal_execute.o grub_emu-kern_file.o 
grub_emu-kern_fs.o grub_emu-normal_lexer.o grub_emu-kern_loader.o 
grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_parser.o 
grub_emu-grub_script_tab.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o 
grub_emu-normal_command.o grub_emu-normal_function.o 
grub_emu-normal_completion.o grub_emu-normal_main.o grub_emu-normal_color.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o 
grub_emu-fs_fat.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o 
grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o 
grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o 
grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
@@ -886,10 +886,11 @@
 MOSTLYCLEANFILES += biosdisk_mod-disk_i386_pc_biosdisk.d
 UNDSYMFILES += und-biosdisk.lst
 
-biosdisk.mod: pre-biosdisk.o mod-biosdisk.o
+biosdisk.mod: pre-biosdisk.o mod-biosdisk.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(biosdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(biosdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-biosdisk.o mod-biosdisk.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-biosdisk.o: $(biosdisk_mod_DEPENDENCIES) 
biosdisk_mod-disk_i386_pc_biosdisk.o
        -rm -f $@
@@ -942,10 +943,11 @@
 MOSTLYCLEANFILES += _chain_mod-loader_i386_pc_chainloader.d
 UNDSYMFILES += und-_chain.lst
 
-_chain.mod: pre-_chain.o mod-_chain.o
+_chain.mod: pre-_chain.o mod-_chain.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_chain.o mod-_chain.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-_chain.o: $(_chain_mod_DEPENDENCIES) 
_chain_mod-loader_i386_pc_chainloader.o
        -rm -f $@
@@ -998,10 +1000,11 @@
 MOSTLYCLEANFILES += chain_mod-loader_i386_pc_chainloader_normal.d
 UNDSYMFILES += und-chain.lst
 
-chain.mod: pre-chain.o mod-chain.o
+chain.mod: pre-chain.o mod-chain.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-chain.o mod-chain.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-chain.o: $(chain_mod_DEPENDENCIES) 
chain_mod-loader_i386_pc_chainloader_normal.o
        -rm -f $@
@@ -1054,10 +1057,11 @@
 MOSTLYCLEANFILES += _linux_mod-loader_i386_pc_linux.d
 UNDSYMFILES += und-_linux.lst
 
-_linux.mod: pre-_linux.o mod-_linux.o
+_linux.mod: pre-_linux.o mod-_linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_linux.o mod-_linux.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-_linux.o: $(_linux_mod_DEPENDENCIES) _linux_mod-loader_i386_pc_linux.o
        -rm -f $@
@@ -1110,10 +1114,11 @@
 MOSTLYCLEANFILES += linux_mod-loader_i386_pc_linux_normal.d
 UNDSYMFILES += und-linux.lst
 
-linux.mod: pre-linux.o mod-linux.o
+linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-linux.o mod-linux.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-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_pc_linux_normal.o
        -rm -f $@
@@ -1171,10 +1176,11 @@
 MOSTLYCLEANFILES += normal_mod-normal_arg.d normal_mod-normal_cmdline.d 
normal_mod-normal_command.d normal_mod-normal_completion.d 
normal_mod-normal_execute.d normal_mod-normal_function.d 
normal_mod-normal_lexer.d normal_mod-normal_main.d normal_mod-normal_menu.d 
normal_mod-normal_color.d normal_mod-normal_menu_entry.d 
normal_mod-normal_misc.d normal_mod-grub_script_tab.d 
normal_mod-normal_script.d normal_mod-normal_i386_setjmp.d
 UNDSYMFILES += und-normal.lst
 
-normal.mod: pre-normal.o mod-normal.o
+normal.mod: pre-normal.o mod-normal.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-normal.o mod-normal.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-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_arg.o 
normal_mod-normal_cmdline.o normal_mod-normal_command.o 
normal_mod-normal_completion.o normal_mod-normal_execute.o 
normal_mod-normal_function.o normal_mod-normal_lexer.o normal_mod-normal_main.o 
normal_mod-normal_menu.o normal_mod-normal_color.o 
normal_mod-normal_menu_entry.o normal_mod-normal_misc.o 
normal_mod-grub_script_tab.o normal_mod-normal_script.o 
normal_mod-normal_i386_setjmp.o
        -rm -f $@
@@ -1494,10 +1500,11 @@
 MOSTLYCLEANFILES += reboot_mod-commands_reboot.d
 UNDSYMFILES += und-reboot.lst
 
-reboot.mod: pre-reboot.o mod-reboot.o
+reboot.mod: pre-reboot.o mod-reboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-reboot.o mod-reboot.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-reboot.o: $(reboot_mod_DEPENDENCIES) reboot_mod-commands_reboot.o
        -rm -f $@
@@ -1550,10 +1557,11 @@
 MOSTLYCLEANFILES += halt_mod-commands_i386_pc_halt.d
 UNDSYMFILES += und-halt.lst
 
-halt.mod: pre-halt.o mod-halt.o
+halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-halt.o mod-halt.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-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_i386_pc_halt.o
        -rm -f $@
@@ -1606,10 +1614,11 @@
 MOSTLYCLEANFILES += serial_mod-term_i386_pc_serial.d
 UNDSYMFILES += und-serial.lst
 
-serial.mod: pre-serial.o mod-serial.o
+serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-serial.o mod-serial.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-serial.o: $(serial_mod_DEPENDENCIES) serial_mod-term_i386_pc_serial.o
        -rm -f $@
@@ -1665,10 +1674,11 @@
 MOSTLYCLEANFILES += _multiboot_mod-loader_i386_pc_multiboot.d 
_multiboot_mod-loader_i386_pc_multiboot2.d _multiboot_mod-loader_multiboot2.d 
_multiboot_mod-loader_multiboot_loader.d
 UNDSYMFILES += und-_multiboot.lst
 
-_multiboot.mod: pre-_multiboot.o mod-_multiboot.o
+_multiboot.mod: pre-_multiboot.o mod-_multiboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-_multiboot.o mod-_multiboot.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-_multiboot.o: $(_multiboot_mod_DEPENDENCIES) 
_multiboot_mod-loader_i386_pc_multiboot.o 
_multiboot_mod-loader_i386_pc_multiboot2.o _multiboot_mod-loader_multiboot2.o 
_multiboot_mod-loader_multiboot_loader.o
        -rm -f $@
@@ -1778,10 +1788,11 @@
 MOSTLYCLEANFILES += multiboot_mod-loader_multiboot_loader_normal.d
 UNDSYMFILES += und-multiboot.lst
 
-multiboot.mod: pre-multiboot.o mod-multiboot.o
+multiboot.mod: pre-multiboot.o mod-multiboot.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot.o mod-multiboot.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-multiboot.o: $(multiboot_mod_DEPENDENCIES) 
multiboot_mod-loader_multiboot_loader_normal.o
        -rm -f $@
@@ -1835,10 +1846,11 @@
 MOSTLYCLEANFILES += vbe_mod-video_i386_pc_vbe.d 
vbe_mod-video_i386_pc_vbeblit.d vbe_mod-video_i386_pc_vbefill.d 
vbe_mod-video_i386_pc_vbeutil.d
 UNDSYMFILES += und-vbe.lst
 
-vbe.mod: pre-vbe.o mod-vbe.o
+vbe.mod: pre-vbe.o mod-vbe.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(vbe_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(vbe_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-vbe.o mod-vbe.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-vbe.o: $(vbe_mod_DEPENDENCIES) vbe_mod-video_i386_pc_vbe.o 
vbe_mod-video_i386_pc_vbeblit.o vbe_mod-video_i386_pc_vbefill.o 
vbe_mod-video_i386_pc_vbeutil.o
        -rm -f $@
@@ -1948,10 +1960,11 @@
 MOSTLYCLEANFILES += vbeinfo_mod-commands_i386_pc_vbeinfo.d
 UNDSYMFILES += und-vbeinfo.lst
 
-vbeinfo.mod: pre-vbeinfo.o mod-vbeinfo.o
+vbeinfo.mod: pre-vbeinfo.o mod-vbeinfo.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(vbeinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(vbeinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-vbeinfo.o mod-vbeinfo.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-vbeinfo.o: $(vbeinfo_mod_DEPENDENCIES) 
vbeinfo_mod-commands_i386_pc_vbeinfo.o
        -rm -f $@
@@ -2004,10 +2017,11 @@
 MOSTLYCLEANFILES += vbetest_mod-commands_i386_pc_vbetest.d
 UNDSYMFILES += und-vbetest.lst
 
-vbetest.mod: pre-vbetest.o mod-vbetest.o
+vbetest.mod: pre-vbetest.o mod-vbetest.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(vbetest_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(vbetest_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-vbetest.o mod-vbetest.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-vbetest.o: $(vbetest_mod_DEPENDENCIES) 
vbetest_mod-commands_i386_pc_vbetest.o
        -rm -f $@
@@ -2060,10 +2074,11 @@
 MOSTLYCLEANFILES += play_mod-commands_i386_pc_play.d
 UNDSYMFILES += und-play.lst
 
-play.mod: pre-play.o mod-play.o
+play.mod: pre-play.o mod-play.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-play.o mod-play.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-play.o: $(play_mod_DEPENDENCIES) play_mod-commands_i386_pc_play.o
        -rm -f $@
@@ -2116,10 +2131,11 @@
 MOSTLYCLEANFILES += video_mod-video_video.d
 UNDSYMFILES += und-video.lst
 
-video.mod: pre-video.o mod-video.o
+video.mod: pre-video.o mod-video.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(video_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(video_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-video.o mod-video.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-video.o: $(video_mod_DEPENDENCIES) video_mod-video_video.o
        -rm -f $@
@@ -2172,10 +2188,11 @@
 MOSTLYCLEANFILES += gfxterm_mod-term_gfxterm.d
 UNDSYMFILES += und-gfxterm.lst
 
-gfxterm.mod: pre-gfxterm.o mod-gfxterm.o
+gfxterm.mod: pre-gfxterm.o mod-gfxterm.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(gfxterm_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(gfxterm_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-gfxterm.o mod-gfxterm.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-gfxterm.o: $(gfxterm_mod_DEPENDENCIES) gfxterm_mod-term_gfxterm.o
        -rm -f $@
@@ -2228,10 +2245,11 @@
 MOSTLYCLEANFILES += videotest_mod-commands_videotest.d
 UNDSYMFILES += und-videotest.lst
 
-videotest.mod: pre-videotest.o mod-videotest.o
+videotest.mod: pre-videotest.o mod-videotest.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(videotest_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(videotest_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-videotest.o mod-videotest.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-videotest.o: $(videotest_mod_DEPENDENCIES) 
videotest_mod-commands_videotest.o
        -rm -f $@
@@ -2284,10 +2302,11 @@
 MOSTLYCLEANFILES += bitmap_mod-video_bitmap.d
 UNDSYMFILES += und-bitmap.lst
 
-bitmap.mod: pre-bitmap.o mod-bitmap.o
+bitmap.mod: pre-bitmap.o mod-bitmap.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(bitmap_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(bitmap_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-bitmap.o mod-bitmap.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-bitmap.o: $(bitmap_mod_DEPENDENCIES) bitmap_mod-video_bitmap.o
        -rm -f $@
@@ -2340,10 +2359,11 @@
 MOSTLYCLEANFILES += tga_mod-video_readers_tga.d
 UNDSYMFILES += und-tga.lst
 
-tga.mod: pre-tga.o mod-tga.o
+tga.mod: pre-tga.o mod-tga.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(tga_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(tga_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-tga.o mod-tga.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-tga.o: $(tga_mod_DEPENDENCIES) tga_mod-video_readers_tga.o
        -rm -f $@
@@ -2396,10 +2416,11 @@
 MOSTLYCLEANFILES += cpuid_mod-commands_i386_cpuid.d
 UNDSYMFILES += und-cpuid.lst
 
-cpuid.mod: pre-cpuid.o mod-cpuid.o
+cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-cpuid.o mod-cpuid.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-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o
        -rm -f $@
@@ -2452,10 +2473,11 @@
 MOSTLYCLEANFILES += ata_mod-disk_ata.d
 UNDSYMFILES += und-ata.lst
 
-ata.mod: pre-ata.o mod-ata.o
+ata.mod: pre-ata.o mod-ata.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-ata.o mod-ata.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-ata.o: $(ata_mod_DEPENDENCIES) ata_mod-disk_ata.o
        -rm -f $@
@@ -2508,10 +2530,11 @@
 MOSTLYCLEANFILES += vga_mod-term_i386_pc_vga.d
 UNDSYMFILES += und-vga.lst
 
-vga.mod: pre-vga.o mod-vga.o
+vga.mod: pre-vga.o mod-vga.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(vga_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(vga_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-vga.o mod-vga.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-vga.o: $(vga_mod_DEPENDENCIES) vga_mod-term_i386_pc_vga.o
        -rm -f $@
@@ -2564,10 +2587,11 @@
 MOSTLYCLEANFILES += memdisk_mod-disk_memdisk.d
 UNDSYMFILES += und-memdisk.lst
 
-memdisk.mod: pre-memdisk.o mod-memdisk.o
+memdisk.mod: pre-memdisk.o mod-memdisk.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(memdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(memdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-memdisk.o mod-memdisk.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-memdisk.o: $(memdisk_mod_DEPENDENCIES) memdisk_mod-disk_memdisk.o
        -rm -f $@
@@ -2620,10 +2644,11 @@
 MOSTLYCLEANFILES += jpeg_mod-video_readers_jpeg.d
 UNDSYMFILES += und-jpeg.lst
 
-jpeg.mod: pre-jpeg.o mod-jpeg.o
+jpeg.mod: pre-jpeg.o mod-jpeg.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(jpeg_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(jpeg_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-jpeg.o mod-jpeg.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-jpeg.o: $(jpeg_mod_DEPENDENCIES) jpeg_mod-video_readers_jpeg.o
        -rm -f $@
@@ -2676,10 +2701,11 @@
 MOSTLYCLEANFILES += png_mod-video_readers_png.d
 UNDSYMFILES += und-png.lst
 
-png.mod: pre-png.o mod-png.o
+png.mod: pre-png.o mod-png.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(png_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(png_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-png.o mod-png.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-png.o: $(png_mod_DEPENDENCIES) png_mod-video_readers_png.o
        -rm -f $@
@@ -2732,10 +2758,11 @@
 MOSTLYCLEANFILES += pci_mod-bus_pci.d
 UNDSYMFILES += und-pci.lst
 
-pci.mod: pre-pci.o mod-pci.o
+pci.mod: pre-pci.o mod-pci.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-pci.o mod-pci.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-pci.o: $(pci_mod_DEPENDENCIES) pci_mod-bus_pci.o
        -rm -f $@
@@ -2788,10 +2815,11 @@
 MOSTLYCLEANFILES += lspci_mod-commands_lspci.d
 UNDSYMFILES += und-lspci.lst
 
-lspci.mod: pre-lspci.o mod-lspci.o
+lspci.mod: pre-lspci.o mod-lspci.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-lspci.o mod-lspci.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-lspci.o: $(lspci_mod_DEPENDENCIES) lspci_mod-commands_lspci.o
        -rm -f $@
@@ -2844,10 +2872,11 @@
 MOSTLYCLEANFILES += aout_mod-loader_aout.d
 UNDSYMFILES += und-aout.lst
 
-aout.mod: pre-aout.o mod-aout.o
+aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-aout.o mod-aout.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-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o
        -rm -f $@
@@ -2900,10 +2929,11 @@
 MOSTLYCLEANFILES += _bsd_mod-loader_i386_bsd.d
 UNDSYMFILES += und-_bsd.lst
 
-_bsd.mod: pre-_bsd.o mod-_bsd.o
+_bsd.mod: pre-_bsd.o mod-_bsd.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(_bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(_bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-_bsd.o mod-_bsd.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-_bsd.o: $(_bsd_mod_DEPENDENCIES) _bsd_mod-loader_i386_bsd.o
        -rm -f $@
@@ -2956,10 +2986,11 @@
 MOSTLYCLEANFILES += bsd_mod-loader_i386_bsd_normal.d
 UNDSYMFILES += und-bsd.lst
 
-bsd.mod: pre-bsd.o mod-bsd.o
+bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ $^
-       $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R 
.comment $@
+       $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-bsd.o mod-bsd.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-bsd.o: $(bsd_mod_DEPENDENCIES) bsd_mod-loader_i386_bsd_normal.o
        -rm -f $@

Modified: trunk/grub2/conf/i386-pc.rmk
===================================================================
--- trunk/grub2/conf/i386-pc.rmk        2008-07-22 22:23:45 UTC (rev 1725)
+++ trunk/grub2/conf/i386-pc.rmk        2008-07-24 14:56:30 UTC (rev 1726)
@@ -16,27 +16,27 @@
 # For boot.img.
 boot_img_SOURCES = boot/i386/pc/boot.S
 boot_img_ASFLAGS = $(COMMON_ASFLAGS)
-boot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,7C00
+boot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,7C00
 
 # For pxeboot.img
 pxeboot_img_SOURCES = boot/i386/pc/pxeboot.S
 pxeboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-pxeboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,7C00
+pxeboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,7C00
 
 # For diskboot.img.
 diskboot_img_SOURCES = boot/i386/pc/diskboot.S
 diskboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,8000
+diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,8000
 
 # For lnxboot.img.
 lnxboot_img_SOURCES = boot/i386/pc/lnxboot.S
 lnxboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-lnxboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,6000
+lnxboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,6000
 
 # For cdboot.img.
 cdboot_img_SOURCES = boot/i386/pc/cdboot.S
 cdboot_img_ASFLAGS = $(COMMON_ASFLAGS)
-cdboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,7C00
+cdboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) -Wl,-Ttext,7C00
 
 # For kernel.img.
 kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
@@ -53,7 +53,7 @@
        machine/memory.h machine/loader.h machine/vga.h machine/vbe.h 
machine/kernel.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) 
-Wl,-N,-Ttext,$(GRUB_MEMORY_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
+kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) 
-Wl,-Ttext,$(GRUB_MEMORY_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
 
 MOSTLYCLEANFILES += symlist.c kernel_syms.lst
 DEFSYMFILES += kernel_syms.lst

Modified: trunk/grub2/conf/powerpc-ieee1275.mk
===================================================================
--- trunk/grub2/conf/powerpc-ieee1275.mk        2008-07-22 22:23:45 UTC (rev 
1725)
+++ trunk/grub2/conf/powerpc-ieee1275.mk        2008-07-24 14:56:30 UTC (rev 
1726)
@@ -37,7 +37,7 @@
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \
         util/resolve.c 
-CLEANFILES += grub-mkimage grub_mkimage-util_elf_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
+CLEANFILES += grub-mkimage$(EXEEXT) grub_mkimage-util_elf_grub_mkimage.o 
grub_mkimage-util_misc.o grub_mkimage-util_resolve.o
 MOSTLYCLEANFILES += grub_mkimage-util_elf_grub_mkimage.d 
grub_mkimage-util_misc.d grub_mkimage-util_resolve.d
 
 grub-mkimage: $(grub_mkimage_DEPENDENCIES) 
grub_mkimage-util_elf_grub_mkimage.o grub_mkimage-util_misc.o 
grub_mkimage-util_resolve.o
@@ -60,7 +60,7 @@
 # For grub-mkdevicemap.
 grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c         \
        util/ieee1275/get_disk_name.c
-CLEANFILES += grub-mkdevicemap grub_mkdevicemap-util_grub_mkdevicemap.o 
grub_mkdevicemap-util_misc.o grub_mkdevicemap-util_ieee1275_get_disk_name.o
+CLEANFILES += grub-mkdevicemap$(EXEEXT) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_ieee1275_get_disk_name.o
 MOSTLYCLEANFILES += grub_mkdevicemap-util_grub_mkdevicemap.d 
grub_mkdevicemap-util_misc.d grub_mkdevicemap-util_ieee1275_get_disk_name.d
 
 grub-mkdevicemap: $(grub_mkdevicemap_DEPENDENCIES) 
grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_misc.o 
grub_mkdevicemap-util_ieee1275_get_disk_name.o
@@ -111,7 +111,7 @@
        \
        disk/raid.c disk/lvm.c                                          \
        grub_script.tab.c grub_emu_init.c
-CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_help.o 
grub_emu-commands_search.o grub_emu-commands_terminal.o 
grub_emu-commands_test.o grub_emu-commands_ls.o grub_emu-commands_blocklist.o 
grub_emu-commands_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-kern_file.o grub_emu-kern_fs.o grub_emu-kern_loader.o 
grub_emu-kern_main.o grub_emu-kern_misc.o grub_emu-kern_parser.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-fs_fshelp.o grub_emu-normal_arg.o grub_emu-normal_cmdline.o 
grub_emu-normal_command.o grub_emu-normal_completion.o 
grub_emu-normal_execute.o grub_emu-normal_function.o grub_emu-normal_lexer.o 
grub_emu-normal_main.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-normal_color.o 
grub_emu-partmap_amiga.o grub_emu-partmap_apple.o grub_emu-partmap_pc.o 
grub_emu-partmap_sun.o grub_emu-partmap_acorn.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_biosdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_help.o grub_emu-commands_search.o 
grub_emu-commands_terminal.o grub_emu-commands_test.o grub_emu-commands_ls.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-commands_halt.o grub_emu-commands_reboot.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_entry.o grub_emu-normal_misc.o 
grub_emu-normal_script.o grub_emu-normal_color.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_biosdisk.o 
grub_emu-util_getroot.o grub_emu-util_powerpc_ieee1275_misc.o 
grub_emu-disk_raid.o grub_emu-disk_lvm.o grub_emu-grub_script_tab.o 
grub_emu-grub_emu_init.o

@@ Diff output truncated at 153600 characters. @@





reply via email to

[Prev in Thread] Current Thread [Next in Thread]