]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
merge merge-mkimage into boottest
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 27 Apr 2010 08:37:27 +0000 (10:37 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 27 Apr 2010 08:37:27 +0000 (10:37 +0200)
1  2 
conf/common.rmk
conf/i386-pc.rmk
conf/i386.rmk
tests/util/grub-shell.in

diff --cc conf/common.rmk
index 538ba983272761fc71b80f7b5ae986b4e9e8832c,f9e7eb194c0fa725136807484e02283a1d2bed2c..683aa2e66b3d6719dabcaa687d96633926d22f54
@@@ -718,14 -823,44 +823,50 @@@ password_pbkdf2_mod_SOURCES = commands/
  password_pbkdf2_mod_CFLAGS = $(COMMON_CFLAGS)
  password_pbkdf2_mod_LDFLAGS = $(COMMON_LDFLAGS)
  
+ # For memdisk.mod.
+ pkglib_MODULES += memdisk.mod
+ memdisk_mod_SOURCES = disk/memdisk.c
+ memdisk_mod_CFLAGS = $(COMMON_CFLAGS)
+ memdisk_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For reboot.mod.
+ pkglib_MODULES += reboot.mod
+ reboot_mod_SOURCES = commands/reboot.c
+ reboot_mod_CFLAGS = $(COMMON_CFLAGS)
+ reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For date.mod
+ pkglib_MODULES += date.mod
+ date_mod_SOURCES = commands/date.c
+ date_mod_CFLAGS = $(COMMON_CFLAGS)
+ date_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For datehook.mod
+ pkglib_MODULES += datehook.mod
+ datehook_mod_SOURCES = hook/datehook.c
+ datehook_mod_CFLAGS = $(COMMON_CFLAGS)
+ datehook_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For lsmmap.mod
+ pkglib_MODULES += lsmmap.mod
+ lsmmap_mod_SOURCES = commands/lsmmap.c
+ lsmmap_mod_CFLAGS = $(COMMON_CFLAGS)
+ lsmmap_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For boot.mod.
+ pkglib_MODULES += boot.mod
+ boot_mod_SOURCES = commands/boot.c lib/i386/pc/biosnum.c
+ boot_mod_CFLAGS = $(COMMON_CFLAGS)
+ boot_mod_LDFLAGS = $(COMMON_LDFLAGS)
  bin_UTILITIES += grub-mkpasswd-pbkdf2
- grub_mkpasswd_pbkdf2_SOURCES = gnulib/progname.c util/grub-mkpasswd-pbkdf2.c lib/crypto.c lib/libgcrypt-grub/cipher/sha512.c lib/pbkdf2.c util/misc.c kern/err.c
+ grub_mkpasswd_pbkdf2_SOURCES = gnulib/progname.c gnulib/getdelim.c gnulib/getline.c util/grub-mkpasswd-pbkdf2.c lib/crypto.c lib/libgcrypt-grub/cipher/sha512.c lib/pbkdf2.c util/misc.c util/mm.c kern/err.c
  grub_mkpasswd_pbkdf2_CFLAGS += -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap -DGRUB_MKPASSWD=1
  
 +# Randomly generated
 +SUCCESSFUL_BOOT_STRING=3e49994fd5d82b7c9298d672d774080d
 +BOOTCHECK_TIMEOUT=60
 +
 +bootcheck: $(BOOTCHECKS)
 +
  include $(srcdir)/conf/gcry.mk
index 1c1ead332f960fe2d0293687e923fb0d58809693,4c55f28f6d203900fa520e29782aa9d1168e1fd2..801caba2833a68854db0c03076d1546ea2ef2223
@@@ -369,15 -291,5 +291,15 @@@ pkglib_DATA += efiemu32.o efiemu64.
  
  endif
  
- BOOTTARGET=bios-cd
++BOOTTARGET=cd
 +
 +bootcheck-linux16-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/tests/boot/linux.cfg grub-shell
 +      timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-i386 --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
 +
 +bootcheck-linux16-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/tests/boot/linux.cfg grub-shell
 +      timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
 +
 +BOOTCHECKS+=bootcheck-linux16-i386 bootcheck-linux16-x86_64
 +
  include $(srcdir)/conf/i386.mk
  include $(srcdir)/conf/common.mk
diff --cc conf/i386.rmk
index 829f82f1d9a667d34e27b2d91e1d3ddcafb0c0bb,3d7f4280489b89f01a05cf44afb86de84070f524..a3f79dd432b0c0b03ab2a902bb7d5773e90991c8
@@@ -48,40 -44,27 +44,64 @@@ multiboot2_mod_CFLAGS = $(COMMON_CFLAGS
  multiboot2_mod_LDFLAGS = $(COMMON_LDFLAGS)
  multiboot2_mod_ASFLAGS = $(COMMON_ASFLAGS)
  
- BOOTCHECKS+=bootcheck-linux-i386 bootcheck-linux-x86_64 \
+ # For serial.mod.
+ pkglib_MODULES += serial.mod
+ serial_mod_SOURCES = term/serial.c
+ serial_mod_CFLAGS = $(COMMON_CFLAGS)
+ serial_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For pci.mod
+ pkglib_MODULES += pci.mod
+ pci_mod_SOURCES = bus/pci.c
+ pci_mod_CFLAGS = $(COMMON_CFLAGS)
+ pci_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For lspci.mod
+ pkglib_MODULES += lspci.mod
+ lspci_mod_SOURCES = commands/lspci.c
+ lspci_mod_CFLAGS = $(COMMON_CFLAGS)
+ lspci_mod_LDFLAGS = $(COMMON_LDFLAGS)
+ # For play.mod.
+ pkglib_MODULES += play.mod
+ play_mod_SOURCES = commands/i386/pc/play.c
+ play_mod_CFLAGS = $(COMMON_CFLAGS)
+ play_mod_LDFLAGS = $(COMMON_LDFLAGS)
 +linux.init.x86_64: $(srcdir)/tests/boot/linux.init-x86_64.S
 +      $(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
 +
 +linux.init.i386: $(srcdir)/tests/boot/linux.init-i386.S
 +      $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\"
 +
 +kfreebsd.init.x86_64: $(srcdir)/tests/boot/kfreebsd.init-x86_64.S
 +      $(TARGET_CC) -o $@ $< -m64 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
 +
 +kfreebsd.init.i386: $(srcdir)/tests/boot/kfreebsd.init-i386.S
 +      $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" && freebsd-brandelf -t FreeBSD $@
 +
 +linux-initramfs.%: linux.init.% Makefile
 +      TDIR=`mktemp -d`; cp $< $$TDIR/init; (cd $$TDIR; echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@; rm -rf $$TDIR
 +
 +kfreebsd-mfsroot.%: kfreebsd.init.% Makefile
 +      TDIR=`mktemp -d`; mkdir $$TDIR/dev; mkdir $$TDIR/sbin; cp $< $$TDIR/sbin/init; makefs -t ffs -s 30m -f 1000 -o minfree=0,version=1 $@ $$TDIR; rm -rf $$TDIR
 +
 +CLEANFILES += linux.init.i386 kfreebsd.init.i386 linux.init.x86_64 linux-initramfs.i386 linux-initramfs.x86_64
 +
 +bootcheck-kfreebsd-i386: kfreebsd-mfsroot.i386 $(GRUB_PAYLOADS_DIR)/kfreebsd.i386 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/tests/boot/kfreebsd.cfg grub-shell
 +      timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-i386 --files=/mfsroot=kfreebsd-mfsroot.i386 --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.i386 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
 +
 +bootcheck-kfreebsd-x86_64: kfreebsd-mfsroot.x86_64 $(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/tests/boot/kfreebsd.cfg grub-shell
 +      timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/mfsroot=kfreebsd-mfsroot.x86_64 --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
 +
 +bootcheck-linux-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/tests/boot/linux.cfg grub-shell
 +      timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-i386 --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
 +
 +bootcheck-linux-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/tests/boot/linux.cfg grub-shell
 +      timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null
 +
++BOOTCHECKS += bootcheck-linux-i386 bootcheck-linux-x86_64 \
 +      bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64
 +
 +.PHONY: bootcheck-linux-i386 bootcheck-linux-x86_64 \
 +      bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64
index ee0cded558cf757562f2461040492389bead08dc,a41a6f6f46f6780930ab2cc91700e4bba09c0848..5726ec0d88d96d9339d54e00e5a13fe9b993c4f8
@@@ -55,9 -53,6 +55,9 @@@ Report bugs to <bug-grub@gnu.org>
  EOF
  }
  
- boot=bios-hd
++boot=hd
 +qemu=qemu-system-i386
 +
  # Check the arguments.
  for option in "$@"; do
      case "$option" in
@@@ -80,9 -70,9 +80,9 @@@
          qemuopts="$qemuopts $qs" ;;
      --boot=*)
          dev=`echo "$option" | sed -e 's/--boot=//'`
-       if   [ "$dev" = "bios-fd" ] ; then boot=bios-fd;
-       elif [ "$dev" = "bios-hd" ] ; then boot=bios-hd;
-       elif [ "$dev" = "bios-cd" ] ; then boot=bios-cd;
 -      if   [ "$dev" = "fd" ] ; then bootdev=a;
 -      elif [ "$dev" = "hd" ] ; then bootdev=c;
 -      elif [ "$dev" = "cd" ] ; then bootdev=d;
++      if   [ "$dev" = "fd" ] ; then boot=fd;
++      elif [ "$dev" = "hd" ] ; then boot=hd;
++      elif [ "$dev" = "cd" ] ; then boot=cd;
        else
            echo "Unrecognized boot method \`$dev'" 1>&2
            usage
@@@ -129,28 -123,23 +129,26 @@@ source /boot/grub/testcase.cf
  halt
  EOF
  
- if [ x$boot = xbios-hd ] || [ x$boot = xbios-fd ] || [ x$boot = xbios-cd ]; then
-     isofile=`mktemp`
-     grub-mkrescue --output=${isofile} --override-directory=${builddir} \
-       /boot/grub/grub.cfg=${cfgfile} /boot/grub/testcase.cfg=${source} \
-       ${files} >/dev/null 2>&1
-     if [ x$boot = xbios-hd ]; then
-       device=hda
-       bootdev=c
-     fi
-     if [ x$boot = xbios-cd ]; then
-       device=cdrom
-       bootdev=d
-     fi
-     if [ x$boot = xbios-fd ]; then
-       device=fda
-       bootdev=a
-     fi
-     ${qemu} ${qemuopts} -nographic -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} -boot ${bootdev} | tr -d "\r"
-     rm -f ${isofile}
+ isofile=`mktemp`
+ grub-mkrescue --output=${isofile} --override-directory=${builddir} \
 -  /boot/grub/grub.cfg=${cfgfile} /boot/grub/testcase.cfg=${source} \
 -  >/dev/null 2>&1
 -
 -hdafile=`mktemp`
 -cp ${isofile} ${hdafile}
 -
 -fdafile=`mktemp`
 -cp ${isofile} ${fdafile}
 -
 -outfile=`mktemp`
 -qemu-system-i386 ${qemuopts} -nographic -hda ${hdafile} -fda ${fdafile} -cdrom ${isofile} -boot ${bootdev} | tr -d "\r" >${outfile}
 -
 -cat $outfile
++    /boot/grub/grub.cfg=${cfgfile} /boot/grub/testcase.cfg=${source} \
++    ${files} >/dev/null 2>&1
++if [ x$boot = xhd ]; then
++    device=hda
++    bootdev=c
 +fi
++if [ x$boot = xcd ]; then
++    device=cdrom
++    bootdev=d
++fi
++if [ x$boot = xfd ]; then
++    device=fda
++    bootdev=a
++fi
++${qemu} ${qemuopts} -nographic -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} -boot ${bootdev} | tr -d "\r"
++rm -f ${isofile}
  
 -rm -f ${tmpfile} ${outfile} ${cfgfile} ${isofile} ${hdafile} ${fdafile}
 +rm -f ${tmpfile} ${cfgfile}
  exit 0