WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] PV-GRUB: use the 0.97 snapshot + patch instead of ch

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] PV-GRUB: use the 0.97 snapshot + patch instead of checking out from cvs
From: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
Date: Thu, 17 Jul 2008 15:10:19 +0100
Delivery-date: Thu, 17 Jul 2008 07:11:08 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Mail-followup-to: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.12-2006-07-14
PV-GRUB: use the 0.97 snapshot + patch instead of checking out from cvs

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>

diff -r 7637a4f5a5d7 stubdom/Makefile
--- a/stubdom/Makefile  Thu Jul 17 14:55:31 2008 +0100
+++ b/stubdom/Makefile  Thu Jul 17 15:03:16 2008 +0100
@@ -15,7 +15,7 @@
 LIBPCI_VERSION=2.2.9
 NEWLIB_VERSION=1.16.0
 LWIP_DATE=2008-06-01
-GRUB_DATE=2008-06-01
+GRUB_VERSION=0.97
 
 WGET=wget -c
 
@@ -76,7 +76,7 @@
 ##############
 
 newlib-$(NEWLIB_VERSION).tar.gz:
-       $(WGET) 
ftp://sources.redhat.com/pub/newlib/newlib-$(NEWLIB_VERSION).tar.gz
+       $(WGET) ftp://sources.redhat.com/pub/newlib/$@
 
 newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
        tar xzf $<
@@ -98,7 +98,7 @@
 ############
 
 zlib-$(ZLIB_VERSION).tar.gz:
-       $(WGET) http://www.zlib.net/zlib-$(ZLIB_VERSION).tar.gz
+       $(WGET) http://www.zlib.net/$@
 
 ZLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libz.a
 .PHONY: cross-zlib
@@ -115,7 +115,7 @@
 ##############
 
 pciutils-$(LIBPCI_VERSION).tar.bz2:
-       $(WGET) 
http://www.kernel.org/pub/software/utils/pciutils/pciutils-$(LIBPCI_VERSION).tar.bz2
+       $(WGET) http://www.kernel.org/pub/software/utils/pciutils/$@
 
 pciutils-$(LIBPCI_VERSION): pciutils-$(LIBPCI_VERSION).tar.bz2
        tar xjf $<
@@ -242,14 +242,18 @@
 # Grub
 ######
 
-grub-cvs:
-       cvs -z 9 -d :pserver:anonymous@xxxxxxxxxxxxxx:/sources/grub co -D 
$(GRUB_DATE) -d $@ grub
+grub-$(GRUB_VERSION).tar.gz:
+       $(WGET) ftp://alpha.gnu.org/gnu/grub/$@
+
+grub-upstream: grub-$(GRUB_VERSION).tar.gz
+       tar xzf $<
+       mv grub-$(GRUB_VERSION) $@
        for i in grub.patches/* ; do \
                patch -d $@ -p1 < $$i ; \
        done
 
 .PHONY: grub
-grub: grub-cvs cross-newlib mk-headers
+grub: grub-upstream cross-newlib mk-headers
        CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@
 
 ########
@@ -326,7 +330,7 @@
 patchclean: crossclean
        rm -fr newlib-$(NEWLIB_VERSION)
        rm -fr lwip-cvs
-       rm -fr grub-cvs
+       rm -fr grub-upstream
 
 # clean downloads
 .PHONY: downloadclean
diff -r 7637a4f5a5d7 stubdom/grub.patches/00cvs
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/stubdom/grub.patches/00cvs        Thu Jul 17 15:03:16 2008 +0100
@@ -0,0 +1,1382 @@
+diff -uprN grub-0.97/acinclude.m4 grub/acinclude.m4
+--- grub-0.97/acinclude.m4     2004-04-27 21:48:06.000000000 +0100
++++ grub/acinclude.m4  2007-11-05 01:29:46.000000000 +0000
+@@ -57,7 +57,7 @@ else
+ fi
+ grub_cv_prog_objcopy_absolute=yes
+ for link_addr in 2000 8000 7C00; do
+-  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext 
-Wl,$link_addr conftest.o -o conftest.exec]); then :
++  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} ${LDFLAGS} -nostdlib -Wl,-N 
-Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
+   else
+     AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
+   fi
+diff -uprN grub-0.97/ChangeLog grub/ChangeLog
+--- grub-0.97/ChangeLog        2005-05-08 03:47:02.000000000 +0100
++++ grub/ChangeLog     2008-05-20 12:04:18.000000000 +0100
+@@ -1,3 +1,127 @@
++2008-05-20  Robert Millan  <rmh@xxxxxxxxxxx>
++
++      * netboot/cs89x0.c: Fix license violation.
++      * netboot/cs89x0.h: Likewise.
++
++2008-04-10  Pavel Roskin  <proski@xxxxxxx>
++
++      * configure.ac: Always use "_cv_" in cache variables for
++      compatibility with Autoconf 2.62.
++
++2008-03-28  Robert Millan  <rmh@xxxxxxxxxxx>
++
++      Surpass 1 TiB disk addressing limit.  Note: there are no plans to handle
++      the 2 TiB disk limit in GRUB Legacy, since that would need considerable
++      rework.  If you have >2TiB disks, use GRUB 2 instead.
++
++      * grub/asmstub.c (biosdisk): Add unsigned qualifier to `sector'.
++      * stage2/bios.c (biosdisk): Likewise.
++      * stage2/disk_io.c (rawread, devread, rawwrite, devwrite): Likewise.
++      * stage2/shared.h (rawread, devread, rawwrite, devwrite): Likewise.
++      * lib/device.c (get_drive_geometry): Replace BLKGETSIZE with
++      BLKGETSIZE64.
++
++2007-10-29  Pavel Roskin  <proski@xxxxxxx>
++
++      * configure.ac: Test if '--build-id=none' is supported by the
++      linker and add it to LDFLAGS if possible.  Build ID causes
++      objcopy to generate huge binary files.
++      * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
++      linking, so that build ID doesn't break the test.
++      * stage1/Makefile.am: Preserve LDFLAGS, use stage1_exec_LDFLAGS.
++
++2007-02-22  Pavel Roskin  <proski@xxxxxxx>
++
++      * stage2/iso9660.h: Remove unnecessary packed attributes.
++
++2007-02-22  Robert Millan  <rmh@xxxxxxxxxxx>
++
++      * util/mkbimage: Update my email address, and remove my name from
++      some places where unnecessary credit is given.
++
++2006-09-10  Pavel Roskin  <proski@xxxxxxx>
++
++      * netboot/natsemi.c: Fix compile error with gcc 4.1.1.  Cast
++      cannot make a variable volatile - it should be declared as such.
++      * netboot/sis900.c: Likewise.
++
++2006-09-08  Pavel Roskin  <proski@xxxxxxx>
++
++      * netboot/etherboot.h: Remove incorrect extern declarations of
++      the variables later declared static.  Move BOOTP_DATA_ADDR ...
++      * netboot/main.c: ... here.  Eliminate end_of_rfc1533 - it's
++      write-only.
++
++2006-06-24  Yoshinori K. Okuji  <okuji@xxxxxxxxx>
++
++      * docs/grub.texi: Changed the license term to the GNU Free
++      Documentation License 1.2.
++
++      * docs/multiboot.texi: Reformatted to show the license term
++      and the version number explicitly.
++      
++      * docs/fdl.texi: New file.
++      
++      * docs/Makefile.am (grub_TEXINFOS): Added fdl.texi.
++
++2006-06-24  Robert Millan  <robertmh@xxxxxxx>
++
++      * lib/device.c (write_to_partition): /dev/ataraid/ and /dev/rd/
++      partitions have a "p" prefix.  Add it.
++
++2006-06-24  Robert Millan  <robertmh@xxxxxxx>
++
++      * lib/device.c (get_i2o_disk_name): New function.
++      (init_device_map) [__linux__]: Add support for I2O devices.
++
++2006-05-02  Pavel Roskin  <proski@xxxxxxx>
++
++      * stage2/stage2.c (run_menu): Fix "savedefault" to save only top
++      level menu positions.  Remember current position when calling a
++      submenu.  Don't recalculate it when booting from a submenu.
++
++      * grub/main.c (main): Make sure the boot drive number doesn't
++      exceed 255.
++
++2006-05-02  Vesa Jaaskelainen  <chaac@xxxxxx>
++
++      * stage2/shared.h (vbe_mode): Back ported aligment fix from GRUB 2
++      to GRUB Legacy.  Problem reported by Gerardo Richarte.
++
++2006-04-23  Robert Millan  <robertmh@xxxxxxx>
++
++      * grub/asmstub.c (get_diskinfo): Optimize sysctl routine.
++
++2006-04-20  Robert Millan  <robertmh@xxxxxxx>
++
++      Fixes for kernel of FreeBSD:
++      * grub/asmstub.c (get_diskinfo): Toggle "kern.geom.debugflags" sysctl
++      before opening a device for writing.
++      * util/grub-install.in: Devices don't have this "r" prefix anymore.
++
++2006-04-16  Yoshinori K. Okuji  <okuji@xxxxxxxxx>
++
++      * docs/multiboot.texi: Correct the offset of address
++      fields. Reported by Jeroen Dekkers.
++
++2006-03-21  Yoshinori K. Okuji  <okuji@xxxxxxxxx>
++
++      * stage2/builtins.c (setup_func): Specify the size of DEVICE to
++      grub_strncat instead of a strange number 256. Reported by Vitaly
++      Fertman <vitaly@xxxxxxxxxxx>.
++
++2005-09-29  Yoshinori K. Okuji  <okuji@xxxxxxxxx>
++
++      * docs/multiboot.texi: Fix a bug in the byte order of
++      boot_device. I hope this won't affect any OS image.
++      Increased the version number to 0.6.94.
++
++2005-09-28  Yoshinori K. Okuji  <okuji@xxxxxxxxx>
++
++      * stage2/boot.c (load_image): Even if an OS image is an ELF
++      object, use the a.out kludge if MULTIBOOT_AOUT_KLUDGE is
++      specified.
++
+ 2005-05-08  Yoshinori K. Okuji  <okuji@xxxxxxxxx>
+ 
+       * configure.ac (AC_INIT): Upgraded to 0.97.
+diff -uprN grub-0.97/configure grub/configure
+--- grub-0.97/configure        2005-05-08 03:48:12.000000000 +0100
++++ grub/configure     2007-11-05 01:29:46.000000000 +0000
+@@ -3694,6 +3694,64 @@ if test "x$undef_flag" = xyes; then
+   CPPFLAGS="$CPPFLAGS -Wundef"
+ fi
+ 
++# Check if build ID can be disabled in the linker
++echo "$as_me:$LINENO: checking whether linker accepts \`--build-id=none'" >&5
++echo $ECHO_N "checking whether linker accepts \`--build-id=none'... $ECHO_C" 
>&6
++save_LDFLAGS="$LDFLAGS"
++LDFLAGS="$LDFLAGS -Wl,--build-id=none"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++       { ac_try='test -z "$ac_c_werror_flag"
++                       || test ! -s conftest.err'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; } &&
++       { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  build_id_flag=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++build_id_flag=no
++fi
++rm -f conftest.err conftest.$ac_objext \
++      conftest$ac_exeext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $build_id_flag" >&5
++echo "${ECHO_T}$build_id_flag" >&6
++LDFLAGS="$save_LDFLAGS"
++if test "x$build_id_flag" = xyes; then
++  LDFLAGS="$LDFLAGS -Wl,--build-id=none"
++fi
++
+ if test "x$with_binutils" != x; then
+   # Extract the first word of "objcopy", so it can be a program name with 
args.
+ set dummy objcopy; ac_word=$2
+@@ -3892,7 +3950,7 @@ echo "$as_me: error: ${CC-cc} cannot com
+ fi
+ grub_cv_prog_objcopy_absolute=yes
+ for link_addr in 2000 8000 7C00; do
+-  if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr 
conftest.o -o conftest.exec'
++  if { ac_try='${CC-cc} ${CFLAGS} ${LDFLAGS} -nostdlib -Wl,-N -Wl,-Ttext 
-Wl,$link_addr conftest.o -o conftest.exec'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+diff -uprN grub-0.97/configure.ac grub/configure.ac
+--- grub-0.97/configure.ac     2005-05-08 03:36:03.000000000 +0100
++++ grub/configure.ac  2008-04-10 23:26:50.000000000 +0100
+@@ -86,13 +86,13 @@ if test "x$ac_cv_prog_gcc" = xyes; then
+     fi
+     STAGE1_CFLAGS="-O2"
+     GRUB_CFLAGS="-O2"
+-    AC_CACHE_CHECK([whether optimization for size works], size_flag, [
++    AC_CACHE_CHECK([whether optimization for size works], grub_cv_cc_Os, [
+       saved_CFLAGS=$CFLAGS
+       CFLAGS="-Os -g"
+-      AC_TRY_COMPILE(, , size_flag=yes, size_flag=no)
++      AC_TRY_COMPILE(, , grub_cv_cc_Os=yes, grub_cv_cc_Os=no)
+       CFLAGS=$saved_CFLAGS
+     ])
+-    if test "x$size_flag" = xyes; then
++    if test "x$grub_cv_cc_Os" = xyes; then
+       STAGE2_CFLAGS="-Os"
+     else
+       STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
+@@ -100,16 +100,16 @@ if test "x$ac_cv_prog_gcc" = xyes; then
+     # OpenBSD has a GCC extension for protecting applications from
+     # stack smashing attacks, but GRUB doesn't want this feature.
+     AC_CACHE_CHECK([whether gcc has -fno-stack-protector],
+-                 no_stack_protector_flag, [
++                 grub_cv_cc_no_stack_protector, [
+       saved_CFLAGS=$CFLAGS
+       CFLAGS="-fno-stack-protector"
+       AC_TRY_COMPILE(,
+                    ,
+-                   no_stack_protector_flag=yes,
+-                   no_stack_protector_flag=no)
++                   grub_cv_cc_no_stack_protector=yes,
++                   grub_cv_cc_no_stack_protector=no)
+       CFLAGS=$saved_CFLAGS
+     ])
+-    if test "x$no_stack_protector_flag" = xyes; then
++    if test "x$grub_cv_cc_no_stack_protector" = xyes; then
+       STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector"
+     fi
+   fi
+@@ -123,33 +123,44 @@ AC_SUBST(GRUB_CFLAGS)
+ CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
+ CPPFLAGS="$CPPFLAGS -Wpointer-arith"
+ 
+-AC_CACHE_CHECK([whether -Wundef works], undef_flag, [
++AC_CACHE_CHECK([whether -Wundef works], grub_cv_cc_Wundef, [
+   saved_CPPFLAGS="$CPPFLAGS"
+   CPPFLAGS="-Wundef"
+-  AC_TRY_COMPILE(, , undef_flag=yes, undef_flag=no)
++  AC_TRY_COMPILE(, , grub_cv_cc_Wundef=yes, grub_cv_cc_Wundef=no)
+   CPPFLAGS="$saved_CPPFLAGS"
+ ])
+ 
+ # The options `-falign-*' are supported by gcc 3.0 or later.
+ # Probably it is sufficient to only check for -falign-loops.
+-AC_CACHE_CHECK([whether -falign-loops works], [falign_loop_flag], [
++AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
+   saved_CPPFLAGS="$CPPFLAGS"
+   CPPFLAGS="-falign-loops=1"
+-  AC_TRY_COMPILE(, , [falign_loop_flag=yes], [falign_loop_flag=no])
++  AC_TRY_COMPILE(, , [grub_cv_cc_falign_loop=yes], 
[grub_cv_cc_falign_loop=no])
+   CPPFLAGS="$saved_CPPFLAGS"
+ ])
+ 
+ # Force no alignment to save space.
+-if test "x$falign_loop_flag" = xyes; then
++if test "x$grub_cv_cc_falign_loop" = xyes; then
+   CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
+ else
+   CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
+ fi
+ 
+-if test "x$undef_flag" = xyes; then
++if test "x$grub_cv_cc_Wundef" = xyes; then
+   CPPFLAGS="$CPPFLAGS -Wundef"
+ fi
+ 
++# Check if build ID can be disabled in the linker
++AC_MSG_CHECKING([whether linker accepts `--build-id=none'])
++save_LDFLAGS="$LDFLAGS"
++LDFLAGS="$LDFLAGS -Wl,--build-id=none"
++AC_TRY_LINK(, , build_id_flag=yes, build_id_flag=no)
++AC_MSG_RESULT([$build_id_flag])
++LDFLAGS="$save_LDFLAGS"
++if test "x$build_id_flag" = xyes; then
++  LDFLAGS="$LDFLAGS -Wl,--build-id=none"
++fi
++
+ if test "x$with_binutils" != x; then
+ dnl  AC_PATH_TOOL(OBJCOPY, objcopy, , "$with_binutils:$PATH")
+   AC_PATH_PROG(OBJCOPY, objcopy, , "$with_binutils:$PATH")
+diff -uprN grub-0.97/docs/grub.8 grub/docs/grub.8
+--- grub-0.97/docs/grub.8      2005-05-08 03:48:56.000000000 +0100
++++ grub/docs/grub.8   2006-06-24 15:40:02.000000000 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB "8" "May 2005" "grub (GNU GRUB 0.97)" FSF
++.TH GRUB "8" "June 2006" "grub (GNU GRUB 0.97)" FSF
+ .SH NAME
+ grub \- the grub shell
+ .SH SYNOPSIS
+diff -uprN grub-0.97/docs/grub-install.8 grub/docs/grub-install.8
+--- grub-0.97/docs/grub-install.8      2005-05-08 03:48:56.000000000 +0100
++++ grub/docs/grub-install.8   2006-06-24 15:40:02.000000000 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB-INSTALL "8" "May 2005" "grub-install (GNU GRUB 0.97)" FSF
++.TH GRUB-INSTALL "8" "June 2006" "grub-install (GNU GRUB 0.97)" FSF
+ .SH NAME
+ grub-install \- install GRUB on your drive
+ .SH SYNOPSIS
+diff -uprN grub-0.97/docs/grub-md5-crypt.8 grub/docs/grub-md5-crypt.8
+--- grub-0.97/docs/grub-md5-crypt.8    2005-05-08 03:48:56.000000000 +0100
++++ grub/docs/grub-md5-crypt.8 2006-06-24 15:40:02.000000000 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB-MD5-CRYPT "8" "May 2005" "grub-md5-crypt (GNU GRUB )" FSF
++.TH GRUB-MD5-CRYPT "8" "June 2006" "grub-md5-crypt (GNU GRUB )" FSF
+ .SH NAME
+ grub-md5-crypt \- Encrypt a password in MD5 format
+ .SH SYNOPSIS
+diff -uprN grub-0.97/docs/grub-terminfo.8 grub/docs/grub-terminfo.8
+--- grub-0.97/docs/grub-terminfo.8     2005-05-08 03:48:56.000000000 +0100
++++ grub/docs/grub-terminfo.8  2006-06-24 15:40:02.000000000 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH GRUB-TERMINFO "8" "May 2005" "grub-terminfo (GNU GRUB 0.97)" FSF
++.TH GRUB-TERMINFO "8" "June 2006" "grub-terminfo (GNU GRUB 0.97)" FSF
+ .SH NAME
+ grub-terminfo \- Generate a terminfo command from a terminfo name
+ .SH SYNOPSIS
+diff -uprN grub-0.97/docs/grub.texi grub/docs/grub.texi
+--- grub-0.97/docs/grub.texi   2005-05-08 03:59:59.000000000 +0100
++++ grub/docs/grub.texi        2006-06-24 15:40:02.000000000 +0100
+@@ -2,22 +2,41 @@
+ @c -*-texinfo-*-
+ @c %**start of header
+ @setfilename grub.info
+-@settitle GRUB Manual
+-@c %**end of header
+-
+ @include version.texi
+-
++@settitle GNU GRUB Manual @value{VERSION}
+ @c Unify all our little indices for now.
+ @syncodeindex fn cp
+ @syncodeindex vr cp
+ @syncodeindex ky cp
+ @syncodeindex pg cp
+ @syncodeindex tp cp
++@c %**end of header
+ 
+ @footnotestyle separate
+ @paragraphindent 3
+ @finalout
+ 
++@copying
++This manual is for GNU GRUB (version @value{VERSION},
++@value{UPDATED}).
++
++Copyright @copyright{} 1999,2000,2001,2002,2004,2006 Free Software 
Foundation, Inc.
++
++@quotation
++Permission is granted to copy, distribute and/or modify this document
++under the terms of the GNU Free Documentation License, Version 1.2 or
++any later version published by the Free Software Foundation; with no
++Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
++and with the Back-Cover Texts as in (a) below.  A copy of the
++license is included in the section entitled ``GNU Free Documentation
++License.''
++
++(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
++this GNU Manual, like GNU software.  Copies published by the Free
++Software Foundation raise funds for GNU development.''
++@end quotation
++@end copying
++
+ @dircategory Kernel
+ @direntry
+ * GRUB: (grub).                 The GRand Unified Bootloader
+@@ -34,53 +53,16 @@
+ 
+ @setchapternewpage odd
+ 
+-@ifinfo
+-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+-
+-Permission is granted to make and distribute verbatim copies of
+-this manual provided the copyright notice and this permission notice
+-are preserved on all copies.
+-
+-@ignore
+-Permission is granted to process this file through TeX and print the
+-results, provided the printed document carries a copying permission
+-notice identical to this one except for the removal of this paragraph
+-(this paragraph not being relevant to the printed manual).
+-
+-@end ignore
+-
+-Permission is granted to copy and distribute modified versions of this
+-manual under the conditions for verbatim copying, provided also that
+-the entire resulting derived work is distributed under the terms of a
+-permission notice identical to this one.
+-
+-Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions.
+-@end ifinfo
+-
+ @titlepage
+ @sp 10
+-@title the GRUB manual
++@title the GNU GRUB manual
+ @subtitle The GRand Unified Bootloader, version @value{VERSION}, 
@value{UPDATED}.
+ @author Gordon Matzigkeit
+ @author Yoshinori K. Okuji
+ @c The following two commands start the copyright page.
+ @page
+ @vskip 0pt plus 1filll
+-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+-
+-Permission is granted to make and distribute verbatim copies of
+-this manual provided the copyright notice and this permission notice
+-are preserved on all copies.
+-Permission is granted to copy and distribute modified versions of this
+-manual under the conditions for verbatim copying, provided that the entire
+-resulting derived work is distributed under the terms of a permission
+-notice identical to this one.
+-
+-Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions,
+-except that this permission notice may be stated in a translation approved
+-by Free Software Foundation.
++@insertcopying
+ @end titlepage
+ 
+ @c Output the table of contents at the beginning.
+@@ -91,12 +73,14 @@ by Free Software Foundation.
+ 
+ @ifnottex
+ @node Top
+-@top GRUB manual
++@top GNU GRUB manual
+ 
+ This is the documentation of GNU GRUB, the GRand Unified Bootloader,
+ a flexible and powerful boot loader program for @sc{pc}s.
+ 
+ This edition documents version @value{VERSION}.
++
++@insertcopying
+ @end ifnottex
+ 
+ @menu
+@@ -124,6 +108,7 @@ This edition documents version @value{VE
+ * Reporting bugs::              Where you should send a bug report
+ * Future::                      Some future plans on GRUB
+ * Internals::                   Hacking GRUB
++* Copying This Manual::         Copying This Manual
+ * Index::
+ @end menu
+ 
+@@ -3965,6 +3950,16 @@ homepage}.
+ @include internals.texi
+ 
+ 
++@node Copying This Manual
++@appendix Copying This Manual
++
++@menu
++* GNU Free Documentation License::  License for copying this manual.
++@end menu
++
++@include fdl.texi
++
++
+ @node Index
+ @unnumbered Index
+ 
+diff -uprN grub-0.97/docs/Makefile.am grub/docs/Makefile.am
+--- grub-0.97/docs/Makefile.am 2003-07-09 12:45:35.000000000 +0100
++++ grub/docs/Makefile.am      2006-06-24 15:40:02.000000000 +0100
+@@ -1,5 +1,5 @@
+ info_TEXINFOS = grub.texi multiboot.texi
+-grub_TEXINFOS = internals.texi
++grub_TEXINFOS = internals.texi fdl.texi
+ EXAMPLES = boot.S kernel.c multiboot.h
+ multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
+ man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
+diff -uprN grub-0.97/docs/Makefile.in grub/docs/Makefile.in
+--- grub-0.97/docs/Makefile.in 2005-05-08 03:42:34.000000000 +0100
++++ grub/docs/Makefile.in      2006-06-24 15:40:02.000000000 +0100
+@@ -202,7 +202,7 @@ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ info_TEXINFOS = grub.texi multiboot.texi
+-grub_TEXINFOS = internals.texi
++grub_TEXINFOS = internals.texi fdl.texi
+ EXAMPLES = boot.S kernel.c multiboot.h
+ multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
+ man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
+diff -uprN grub-0.97/docs/mbchk.1 grub/docs/mbchk.1
+--- grub-0.97/docs/mbchk.1     2005-05-08 03:48:56.000000000 +0100
++++ grub/docs/mbchk.1  2006-06-24 15:40:02.000000000 +0100
+@@ -1,5 +1,5 @@
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
+-.TH MBCHK "1" "May 2005" "mbchk (GNU GRUB 0.97)" FSF
++.TH MBCHK "1" "June 2006" "mbchk (GNU GRUB 0.97)" FSF
+ .SH NAME
+ mbchk \- check the format of a Multiboot kernel
+ .SH SYNOPSIS
+diff -uprN grub-0.97/docs/multiboot.texi grub/docs/multiboot.texi
+--- grub-0.97/docs/multiboot.texi      2003-07-09 12:45:36.000000000 +0100
++++ grub/docs/multiboot.texi   2006-06-24 15:40:02.000000000 +0100
+@@ -1,32 +1,28 @@
+ \input texinfo @c -*-texinfo-*-
+-@c -*-texinfo-*-
+ @c %**start of header
+ @setfilename multiboot.info
+-@settitle Multiboot Specification
+-@c %**end of header
+-
++@set VERSION 0.6.95
++@settitle Multiboot Specification version @value{VERSION}
+ @c Unify all our little indices for now.
+ @syncodeindex fn cp
+ @syncodeindex vr cp
+ @syncodeindex ky cp
+ @syncodeindex pg cp
+ @syncodeindex tp cp
++@c %**end of header
+ 
+ @footnotestyle separate
+ @paragraphindent 3
+ @finalout
+ 
++@copying
++Copyright @copyright{} 1995,96 Bryan Ford <baford@@cs.utah.edu>
+ 
+-@dircategory Kernel
+-@direntry
+-* Multiboot Specification: (multiboot).               Multiboot Specification.
+-@end direntry
++Copyright @copyright{} 1995,96 Erich Stefan Boleyn <erich@@uruk.org>
+ 
+-@ifinfo
+-Copyright @copyright{} 1995, 96 Bryan Ford <baford@@cs.utah.edu>
+-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn <erich@@uruk.org>
+-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
++Copyright @copyright{} 1999,2000,2001,2002,2005,2006 Free Software 
Foundation, Inc.
+ 
++@quotation
+ Permission is granted to make and distribute verbatim copies of
+ this manual provided the copyright notice and this permission notice
+ are preserved on all copies.
+@@ -36,7 +32,6 @@ Permission is granted to process this fi
+ results, provided the printed document carries a copying permission
+ notice identical to this one except for the removal of this paragraph
+ (this paragraph not being relevant to the printed manual).
+-
+ @end ignore
+ 
+ Permission is granted to copy and distribute modified versions of this
+@@ -45,31 +40,23 @@ the entire resulting derived work is dis
+ permission notice identical to this one.
+ 
+ Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions.
+-@end ifinfo
++into another language, under the above conditions for modified
++versions.
++@end quotation
++@end copying
++
++@dircategory Kernel
++@direntry
++* Multiboot Specification: (multiboot).               Multiboot Specification.
++@end direntry
+ 
+ @titlepage
+ @sp 10
+-@title The Multiboot Specification
++@title The Multiboot Specification version @value{VERSION}
+ @author Yoshinori K. Okuji, Bryan Ford, Erich Stefan Boleyn, Kunihiro Ishiguro
+ @page
+-
+ @vskip 0pt plus 1filll
+-Copyright @copyright{} 1995, 96 Bryan Ford <baford@@cs.utah.edu>
+-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn <erich@@uruk.org>
+-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+-
+-Permission is granted to make and distribute verbatim copies of
+-this manual provided the copyright notice and this permission notice
+-are preserved on all copies.
+-
+-Permission is granted to copy and distribute modified versions of this
+-manual under the conditions for verbatim copying, provided also that
+-the entire resulting derived work is distributed under the terms of a
+-permission notice identical to this one.
+-
+-Permission is granted to copy and distribute translations of this manual
+-into another language, under the above conditions for modified versions.
++@insertcopying
+ @end titlepage
+ 
+ @finalout
+@@ -80,7 +67,9 @@ into another language, under the above c
+ @top Multiboot Specification
+ 
+ This file documents Multiboot Specification, the proposal for the boot
+-sequence standard. This edition documents version 0.6.93.
++sequence standard. This edition documents version @value{VERSION}.
++
++@insertcopying
+ @end ifnottex
+ 
+ @menu
+@@ -426,7 +415,7 @@ mode table (@pxref{Boot information form
+ kernel.
+ 
+ If bit 16 in the @samp{flags} word is set, then the fields at offsets
+-8-24 in the Multiboot header are valid, and the boot loader should use
++12-28 in the Multiboot header are valid, and the boot loader should use
+ them instead of the fields in the actual executable header to calculate
+ where to load the OS image. This information does not need to be
+ provided if the kernel image is in @sc{elf} format, but it @emph{must}
+@@ -677,7 +666,7 @@ follows:
+ @example
+ @group
+ +-------+-------+-------+-------+
+-| drive | part1 | part2 | part3 |
++| part3 | part2 | part1 | drive |
+ +-------+-------+-------+-------+
+ @end group
+ @end example
+@@ -1197,6 +1186,17 @@ Rewritten, using more strict words.
+ @item
+ The maintainer changes to the GNU GRUB maintainer team
+ @email{bug-grub@@gnu.org}, from Bryan Ford and Erich Stefan Boleyn.
++
++@item
++The byte order of the @samp{boot_device} in Multiboot information is
++reversed. This was a mistake.
++
++@item
++The offset of the address fields were wrong.
++
++@item
++The format is adapted to a newer Texinfo, and the version number is
++specified more explicitly in the title.
+ @end itemize
+ 
+ @item 0.6
+diff -uprN grub-0.97/grub/asmstub.c grub/grub/asmstub.c
+--- grub-0.97/grub/asmstub.c   2005-02-16 20:45:14.000000000 +0000
++++ grub/grub/asmstub.c        2008-03-28 13:22:28.000000000 +0000
+@@ -55,6 +55,10 @@ int grub_stage2 (void);
+ # endif /* ! BLKFLSBUF */
+ #endif /* __linux__ */
+ 
++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
++# include <sys/sysctl.h>
++#endif
++
+ /* We want to prevent any circularararity in our stubs, as well as
+    libc name clashes. */
+ #define WITHOUT_LIBC_STUBS 1
+@@ -777,7 +781,39 @@ get_diskinfo (int drive, struct geometry
+ 
+       /* Open read/write, or read-only if that failed. */
+       if (! read_only)
+-      disks[drive].flags = open (devname, O_RDWR);
++      {
++/* By default, kernel of FreeBSD does not allow overwriting MBR */
++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
++#define GEOM_SYSCTL   "kern.geom.debugflags"
++        int old_flags, flags;
++        size_t sizeof_int = sizeof (int);
++
++        if (sysctlbyname (GEOM_SYSCTL, &old_flags, &sizeof_int, NULL, 0) != 0)
++          grub_printf ("failed to get " GEOM_SYSCTL "sysctl: %s\n", strerror 
(errno));
++
++        if ((old_flags & 0x10) == 0)
++          {
++            /* "allow foot shooting", see geom(4) */
++            flags = old_flags | 0x10;
++
++            if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &flags, sizeof (int)) 
!= 0)
++              {
++                flags = old_flags;
++                grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", 
strerror (errno));
++              }
++          }
++        else
++          flags = old_flags;
++#endif
++        disks[drive].flags = open (devname, O_RDWR);
++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
++        if (flags != old_flags)
++          {
++            if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &old_flags, sizeof 
(int)) != 0)
++              grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", 
strerror (errno));
++          }
++#endif
++      }
+ 
+       if (disks[drive].flags == -1)
+       {
+@@ -926,7 +962,7 @@ hex_dump (void *buf, size_t size)
+ 
+ int
+ biosdisk (int subfunc, int drive, struct geometry *geometry,
+-        int sector, int nsec, int segment)
++        unsigned int sector, int nsec, int segment)
+ {
+   char *buf;
+   int fd = geometry->flags;
+diff -uprN grub-0.97/grub/main.c grub/grub/main.c
+--- grub-0.97/grub/main.c      2003-07-09 12:45:36.000000000 +0100
++++ grub/grub/main.c   2006-05-05 22:43:46.000000000 +0100
+@@ -32,6 +32,7 @@ int grub_stage2 (void);
+ #define WITHOUT_LIBC_STUBS 1
+ #include <shared.h>
+ #include <term.h>
++#include <device.h>
+ 
+ char *program_name = 0;
+ int use_config_file = 1;
+@@ -192,6 +193,12 @@ main (int argc, char **argv)
+             perror ("strtoul");
+             exit (1);
+           }
++        if (boot_drive >= NUM_DISKS)
++          {
++            fprintf (stderr, "boot_drive should be from 0 to %d\n",
++                     NUM_DISKS - 1);
++            exit (1);
++          }
+         break;
+ 
+       case OPT_NO_CONFIG_FILE:
+diff -uprN grub-0.97/lib/device.c grub/lib/device.c
+--- grub-0.97/lib/device.c     2005-03-28 00:14:25.000000000 +0100
++++ grub/lib/device.c  2008-03-28 13:22:28.000000000 +0000
+@@ -69,9 +69,9 @@ struct hd_geometry
+ # ifndef CDROM_GET_CAPABILITY
+ #  define CDROM_GET_CAPABILITY        0x5331  /* get capabilities */
+ # endif /* ! CDROM_GET_CAPABILITY */
+-# ifndef BLKGETSIZE
+-#  define BLKGETSIZE  _IO(0x12,96)    /* return device size */
+-# endif /* ! BLKGETSIZE */
++# ifndef BLKGETSIZE64
++#  define BLKGETSIZE64        _IOR(0x12,114,size_t)   /* return device size */
++# endif /* ! BLKGETSIZE64 */
+ #endif /* __linux__ */
+ 
+ /* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with
+@@ -152,19 +152,19 @@ get_drive_geometry (struct geometry *geo
+   /* Linux */
+   {
+     struct hd_geometry hdg;
+-    unsigned long nr;
++    unsigned long long nr;
+     
+     if (ioctl (fd, HDIO_GETGEO, &hdg))
+       goto fail;
+ 
+-    if (ioctl (fd, BLKGETSIZE, &nr))
++    if (ioctl (fd, BLKGETSIZE64, &nr))
+       goto fail;
+     
+     /* Got the geometry, so save it. */
+     geom->cylinders = hdg.cylinders;
+     geom->heads = hdg.heads;
+     geom->sectors = hdg.sectors;
+-    geom->total_sectors = nr;
++    geom->total_sectors = nr / 512;
+     
+     goto success;
+   }
+@@ -407,6 +407,12 @@ get_ataraid_disk_name (char *name, int u
+ {
+   sprintf (name, "/dev/ataraid/d%c", unit + '0');
+ }
++
++static void
++get_i2o_disk_name (char *name, char unit)
++{
++  sprintf (name, "/dev/i2o/hd%c", unit);
++}
+ #endif
+ 
+ /* Check if DEVICE can be read. If an error occurs, return zero,
+@@ -801,6 +807,29 @@ init_device_map (char ***map, const char
+         }
+       }
+   }
++    
++  /* This is for I2O - we have /dev/i2o/hd<logical drive><partition> */
++  {
++    int unit;
++
++    for (unit = 'a'; unit < 'f'; unit++)
++      {
++        char name[24];
++    
++        get_i2o_disk_name (name, unit);
++        if (check_device (name))
++          {
++              (*map)[num_hd + 0x80] = strdup (name);
++                  assert ((*map)[num_hd + 0x80]);
++                  
++          /* If the device map file is opened, write the map.  */
++               if (fp)
++                     fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++                     
++          num_hd++;
++          }
++      }
++  }
+ #endif /* __linux__ */
+   
+   /* OK, close the device map file if opened.  */
+@@ -861,6 +890,12 @@ write_to_partition (char **map, int driv
+       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+       strcpy (dev + strlen(dev) - 5, "/part");
+     }
++  else
++    {
++      if ((strncmp (dev, "/dev/ataraid/", 13) == 0) ||
++         (strncmp (dev, "/dev/rd/", 8) == 0))
++        strcpy (dev + strlen(dev), "p");
++    }
+   sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
+   
+   /* Open the partition.  */
+diff -uprN grub-0.97/netboot/3c509.c grub/netboot/3c509.c
+--- grub-0.97/netboot/3c509.c  2003-07-09 12:45:37.000000000 +0100
++++ grub/netboot/3c509.c       2002-01-02 21:56:40.000000000 +0000
+@@ -18,7 +18,7 @@ Author: Martin Renters.
+ 
+ 3c509 support added by Serge Babkin (babkin@xxxxxxxxxxxxxx)
+ 
+-$Id: 3c509.c,v 1.4 2002/01/02 21:56:40 okuji Exp $
++$Id: 3c509.c 609 2002-01-02 21:56:40Z okuji $
+ 
+ ***************************************************************************/
+ 
+diff -uprN grub-0.97/netboot/cs89x0.c grub/netboot/cs89x0.c
+--- grub-0.97/netboot/cs89x0.c 2003-07-09 12:45:37.000000000 +0100
++++ grub/netboot/cs89x0.c      2008-05-20 12:04:18.000000000 +0100
+@@ -1,3 +1,21 @@
++/**
++   Per an email message from Russ Nelson <nelson@xxxxxxxxxx> on
++   18 March 2008 this file is now licensed under GPL Version 2.
++
++   From: Russ Nelson <nelson@xxxxxxxxxx>
++   Date: Tue, 18 Mar 2008 12:42:00 -0400
++   Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot
++   -- quote from email
++   As copyright holder, if I say it doesn't conflict with the GPL,
++   then it doesn't conflict with the GPL.
++
++   However, there's no point in causing people's brains to overheat,
++   so yes, I grant permission for the code to be relicensed under the
++   GPLv2.  Please make sure that this change in licensing makes its
++   way upstream.  -russ
++   -- quote from email
++**/
++
+ /* cs89x0.c: A Crystal Semiconductor CS89[02]0 driver for etherboot. */
+ /*
+   Permission is granted to distribute the enclosed cs89x0.[ch] driver
+diff -uprN grub-0.97/netboot/cs89x0.h grub/netboot/cs89x0.h
+--- grub-0.97/netboot/cs89x0.h 2003-07-09 12:45:37.000000000 +0100
++++ grub/netboot/cs89x0.h      2008-05-20 12:04:18.000000000 +0100
+@@ -1,3 +1,21 @@
++/**
++   Per an email message from Russ Nelson <nelson@xxxxxxxxxx> on
++   18 March 2008 this file is now licensed under GPL Version 2.
++
++   From: Russ Nelson <nelson@xxxxxxxxxx>
++   Date: Tue, 18 Mar 2008 12:42:00 -0400
++   Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot
++   -- quote from email
++   As copyright holder, if I say it doesn't conflict with the GPL,
++   then it doesn't conflict with the GPL.
++
++   However, there's no point in causing people's brains to overheat,
++   so yes, I grant permission for the code to be relicensed under the
++   GPLv2.  Please make sure that this change in licensing makes its
++   way upstream.  -russ
++   -- quote from email
++**/
++
+ /*  Copyright, 1988-1992, Russell Nelson, Crynwr Software
+ 
+    This program is free software; you can redistribute it and/or modify
+diff -uprN grub-0.97/netboot/etherboot.h grub/netboot/etherboot.h
+--- grub-0.97/netboot/etherboot.h      2003-07-09 12:45:37.000000000 +0100
++++ grub/netboot/etherboot.h   2006-09-08 13:56:22.000000000 +0100
+@@ -531,9 +531,6 @@ extern int ip_abort;
+ extern int network_ready;
+ extern struct rom_info rom;
+ extern struct arptable_t arptable[MAX_ARP];
+-extern struct bootpd_t bootp_data;
+-#define       BOOTP_DATA_ADDR (&bootp_data)
+-extern unsigned char *end_of_rfc1533;
+ 
+ /* config.c */
+ extern struct nic nic;
+diff -uprN grub-0.97/netboot/main.c grub/netboot/main.c
+--- grub-0.97/netboot/main.c   2004-05-20 23:19:33.000000000 +0100
++++ grub/netboot/main.c        2006-09-08 13:56:22.000000000 +0100
+@@ -56,7 +56,8 @@ static int vendorext_isvalid;
+ static unsigned long netmask;
+ static struct bootpd_t bootp_data;
+ static unsigned long xid;
+-static unsigned char *end_of_rfc1533 = NULL;
++
++#define       BOOTP_DATA_ADDR (&bootp_data)
+ 
+ #ifndef       NO_DHCP_SUPPORT
+ #endif /* NO_DHCP_SUPPORT */
+@@ -967,7 +968,6 @@ decode_rfc1533 (unsigned char *p, int bl
+   
+   if (block == 0)
+     {
+-      end_of_rfc1533 = NULL;
+       vendorext_isvalid = 0;
+       
+       if (grub_memcmp (p, rfc1533_cookie, 4))
+@@ -1021,7 +1021,7 @@ decode_rfc1533 (unsigned char *p, int bl
+       }
+       else if (c == RFC1533_END)
+       {
+-        end_of_rfc1533 = endp = p;
++        endp = p;
+         continue;
+       }
+       else if (c == RFC1533_NETMASK)
+diff -uprN grub-0.97/netboot/natsemi.c grub/netboot/natsemi.c
+--- grub-0.97/netboot/natsemi.c        2003-07-09 12:45:38.000000000 +0100
++++ grub/netboot/natsemi.c     2006-09-10 08:26:10.000000000 +0100
+@@ -608,7 +608,7 @@ natsemi_transmit(struct nic  *nic,
+                const char  *p)     /* Packet */
+ {
+     u32 status, to, nstype;
+-    u32 tx_status;
++    volatile u32 tx_status;
+     
+     /* Stop the transmitter */
+     outl(TxOff, ioaddr + ChipCmd);
+@@ -647,7 +647,7 @@ natsemi_transmit(struct nic  *nic,
+ 
+     to = currticks() + TX_TIMEOUT;
+ 
+-    while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < 
to))
++    while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to))
+         /* wait */ ;
+ 
+     if (currticks() >= to) {
+diff -uprN grub-0.97/netboot/sis900.c grub/netboot/sis900.c
+--- grub-0.97/netboot/sis900.c 2003-07-09 12:45:38.000000000 +0100
++++ grub/netboot/sis900.c      2006-09-10 08:26:10.000000000 +0100
+@@ -901,7 +901,7 @@ sis900_transmit(struct nic  *nic,
+                 const char  *p)     /* Packet */
+ {
+     u32 status, to, nstype;
+-    u32 tx_status;
++    volatile u32 tx_status;
+     
+     /* Stop the transmitter */
+     outl(TxDIS, ioaddr + cr);
+@@ -940,7 +940,7 @@ sis900_transmit(struct nic  *nic,
+ 
+     to = currticks() + TX_TIMEOUT;
+ 
+-    while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < 
to))
++    while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to))
+         /* wait */ ;
+ 
+     if (currticks() >= to) {
+diff -uprN grub-0.97/netboot/sk_g16.c grub/netboot/sk_g16.c
+--- grub-0.97/netboot/sk_g16.c 2003-07-09 12:45:38.000000000 +0100
++++ grub/netboot/sk_g16.c      2002-01-02 21:56:40.000000000 +0000
+@@ -13,12 +13,12 @@ Changes to make it work with Etherboot b
+  *
+  * Module         : sk_g16.c
+  *
+- * Version        : $Revision: 1.4 $
++ * Version        : $Revision: 609 $
+  *
+  * Author         : Patrick J.D. Weichmann
+  *
+  * Date Created   : 94/05/26
+- * Last Updated   : $Date: 2002/01/02 21:56:40 $
++ * Last Updated   : $Date: 2002-01-02 21:56:40 +0000 (mer 02 jan 2002) $
+  *
+  * Description    : Schneider & Koch G16 Ethernet Device Driver for
+  *                  Linux Kernel >= 1.1.22
+diff -uprN grub-0.97/netboot/sk_g16.h grub/netboot/sk_g16.h
+--- grub-0.97/netboot/sk_g16.h 2003-07-09 12:45:38.000000000 +0100
++++ grub/netboot/sk_g16.h      2000-07-29 20:22:54.000000000 +0100
+@@ -4,7 +4,7 @@
+  * of the GNU Public License, incorporated herein by reference.
+  *
+  * Module         : sk_g16.h
+- * Version        : $Revision: 1.3 $
++ * Version        : $Revision: 388 $
+  *
+  * Author         : M.Hipp (mhipp@xxxxxxxxxxxxxxxxxxxxxxxx)
+  * changes by     : Patrick J.D. Weichmann
+@@ -15,8 +15,8 @@
+  *                  the am7990 (LANCE) chip used for writing a
+  *                  network device driver which uses this chip
+  *
+- * $Log: sk_g16.h,v $
+- * Revision 1.3  2000/07/29 19:22:54  okuji
++ * $Log$
++ * Revision 1.3  2000-07-29 19:22:54  okuji
+  * update the network support to etherboot-4.6.4.
+  *
+ -*/
+diff -uprN grub-0.97/stage1/Makefile.am grub/stage1/Makefile.am
+--- grub-0.97/stage1/Makefile.am       2004-07-16 12:44:56.000000000 +0100
++++ grub/stage1/Makefile.am    2007-11-05 01:29:46.000000000 +0000
+@@ -5,7 +5,7 @@ CLEANFILES = $(nodist_pkglib_DATA)
+ 
+ # We can't use builtins or standard includes.
+ AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
++stage1_exec_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
+ 
+ noinst_PROGRAMS = stage1.exec
+ stage1_exec_SOURCES = stage1.S stage1.h
+diff -uprN grub-0.97/stage1/Makefile.in grub/stage1/Makefile.in
+--- grub-0.97/stage1/Makefile.in       2005-05-08 03:42:36.000000000 +0100
++++ grub/stage1/Makefile.in    2007-11-05 01:29:46.000000000 +0000
+@@ -110,7 +110,7 @@ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
++LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LTLIBOBJS = @LTLIBOBJS@
+@@ -188,6 +188,7 @@ CLEANFILES = $(nodist_pkglib_DATA)
+ 
+ # We can't use builtins or standard includes.
+ AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
++stage1_exec_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
+ stage1_exec_SOURCES = stage1.S stage1.h
+ SUFFIXES = .exec
+ all: all-am
+diff -uprN grub-0.97/stage2/bios.c grub/stage2/bios.c
+--- grub-0.97/stage2/bios.c    2004-03-27 16:34:04.000000000 +0000
++++ grub/stage2/bios.c 2008-03-28 13:22:28.000000000 +0000
+@@ -47,7 +47,7 @@ extern int get_diskinfo_floppy (int driv
+    return the error number. Otherwise, return 0.  */
+ int
+ biosdisk (int read, int drive, struct geometry *geometry,
+-        int sector, int nsec, int segment)
++        unsigned int sector, int nsec, int segment)
+ {
+   int err;
+   
+diff -uprN grub-0.97/stage2/boot.c grub/stage2/boot.c
+--- grub-0.97/stage2/boot.c    2004-03-30 12:44:08.000000000 +0100
++++ grub/stage2/boot.c 2005-09-28 22:47:55.000000000 +0100
+@@ -1,7 +1,7 @@
+ /* boot.c - load and bootstrap a kernel */
+ /*
+  *  GRUB  --  GRand Unified Bootloader
+- *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, 
Inc.
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004,2005  Free Software 
Foundation, Inc.
+  *
+  *  This program is free software; you can redistribute it and/or modify
+  *  it under the terms of the GNU General Public License as published by
+@@ -96,7 +96,7 @@ load_image (char *kernel, char *arg, ker
+   lh = (struct linux_kernel_header *) buffer;
+   
+   /* ELF loading supported if multiboot, FreeBSD and NetBSD.  */
+-  if ((type == KERNEL_TYPE_MULTIBOOT
++  if (((type == KERNEL_TYPE_MULTIBOOT && ! (flags & MULTIBOOT_AOUT_KLUDGE))
+        || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD
+        || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
+        || suggested_type == KERNEL_TYPE_NETBSD)
+diff -uprN grub-0.97/stage2/builtins.c grub/stage2/builtins.c
+--- grub-0.97/stage2/builtins.c        2005-02-15 21:58:23.000000000 +0000
++++ grub/stage2/builtins.c     2006-03-21 20:51:58.000000000 +0000
+@@ -3830,15 +3830,15 @@ setup_func (char *arg, int flags)
+       {
+         char tmp[16];
+         grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF);
+-        grub_strncat (device, tmp, 256);
++        grub_strncat (device, tmp, sizeof (device));
+       }
+       if ((partition & 0x00FF00) != 0x00FF00)
+       {
+         char tmp[16];
+         grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF));
+-        grub_strncat (device, tmp, 256);
++        grub_strncat (device, tmp, sizeof (device));
+       }
+-      grub_strncat (device, ")", 256);
++      grub_strncat (device, ")", sizeof (device));
+     }
+   
+   int embed_stage1_5 (char *stage1_5, int drive, int partition)
+diff -uprN grub-0.97/stage2/disk_io.c grub/stage2/disk_io.c
+--- grub-0.97/stage2/disk_io.c 2004-05-23 17:35:24.000000000 +0100
++++ grub/stage2/disk_io.c      2008-03-28 13:22:28.000000000 +0000
+@@ -137,7 +137,7 @@ log2 (unsigned long word)
+ }
+ 
+ int
+-rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
++rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char 
*buf)
+ {
+   int slen, sectors_per_vtrack;
+   int sector_size_bits = log2 (buf_geom.sector_size);
+@@ -261,7 +261,7 @@ rawread (int drive, int sector, int byte
+        */
+       if (disk_read_func)
+       {
+-        int sector_num = sector;
++        unsigned int sector_num = sector;
+         int length = buf_geom.sector_size - byte_offset;
+         if (length > size)
+           length = size;
+@@ -291,7 +291,7 @@ rawread (int drive, int sector, int byte
+ 
+ 
+ int
+-devread (int sector, int byte_offset, int byte_len, char *buf)
++devread (unsigned int sector, int byte_offset, int byte_len, char *buf)
+ {
+   /*
+    *  Check partition boundaries
+@@ -330,7 +330,7 @@ devread (int sector, int byte_offset, in
+ 
+ #ifndef STAGE1_5
+ int
+-rawwrite (int drive, int sector, char *buf)
++rawwrite (int drive, unsigned int sector, char *buf)
+ {
+   if (sector == 0)
+     {
+@@ -363,7 +363,7 @@ rawwrite (int drive, int sector, char *b
+ }
+ 
+ int
+-devwrite (int sector, int sector_count, char *buf)
++devwrite (unsigned int sector, int sector_count, char *buf)
+ {
+ #if defined(GRUB_UTIL) && defined(__linux__)
+   if (current_partition != 0xFFFFFF
+diff -uprN grub-0.97/stage2/fsys_ffs.c grub/stage2/fsys_ffs.c
+--- grub-0.97/stage2/fsys_ffs.c        2003-07-09 12:45:52.000000000 +0100
++++ grub/stage2/fsys_ffs.c     2001-11-12 06:57:29.000000000 +0000
+@@ -50,7 +50,7 @@
+  * the rights to redistribute these changes.
+  *
+  *    from: Mach, Revision 2.2  92/04/04  11:35:49  rpd
+- *    $Id: fsys_ffs.c,v 1.10 2001/11/12 06:57:29 okuji Exp $
++ *    $Id: fsys_ffs.c 594 2001-11-12 06:57:29Z okuji $
+  */
+ 
+ #ifdef FSYS_FFS
+diff -uprN grub-0.97/stage2/fsys_ufs2.c grub/stage2/fsys_ufs2.c
+--- grub-0.97/stage2/fsys_ufs2.c       2004-06-19 13:17:52.000000000 +0100
++++ grub/stage2/fsys_ufs2.c    2004-06-19 13:17:52.000000000 +0100
+@@ -51,7 +51,7 @@
+  * the rights to redistribute these changes.
+  *
+  *    from: Mach, Revision 2.2  92/04/04  11:35:49  rpd
+- *    $Id: fsys_ufs2.c,v 1.2 2004/06/19 12:17:52 okuji Exp $
++ *    $Id: fsys_ufs2.c 841 2004-06-19 12:17:52Z okuji $
+  */
+ 
+ #ifdef FSYS_UFS2
+diff -uprN grub-0.97/stage2/imgact_aout.h grub/stage2/imgact_aout.h
+--- grub-0.97/stage2/imgact_aout.h     2003-07-09 12:45:53.000000000 +0100
++++ grub/stage2/imgact_aout.h  1999-06-24 01:03:29.000000000 +0100
+@@ -32,7 +32,7 @@
+  * SUCH DAMAGE.
+  *
+  *    from: @(#)exec.h        8.1 (Berkeley) 6/11/93
+- *    $Id: imgact_aout.h,v 1.1 1999/06/24 00:03:22 okuji Exp $
++ *    $Id: imgact_aout.h 98 1999-06-24 00:03:29Z okuji $
+  */
+ /*
+  *  11/23/95 - Kludge to get "ntohl" null macro added.  -- ESB
+diff -uprN grub-0.97/stage2/iso9660.h grub/stage2/iso9660.h
+--- grub-0.97/stage2/iso9660.h 2004-03-27 16:02:38.000000000 +0000
++++ grub/stage2/iso9660.h      2007-02-22 23:40:25.000000000 +0000
+@@ -73,11 +73,11 @@ typedef    union {
+ 
+ typedef       struct __iso_16bit {
+   u_int16_t l, b;
+-} iso_16bit_t __attribute__ ((packed));
++} iso_16bit_t;
+ 
+ typedef       struct __iso_32bit {
+   u_int32_t l, b;
+-} iso_32bit_t __attribute__ ((packed));
++} iso_32bit_t;
+ 
+ typedef u_int8_t              iso_date_t[7];
+ 
+diff -uprN grub-0.97/stage2/shared.h grub/stage2/shared.h
+--- grub-0.97/stage2/shared.h  2004-06-19 17:40:09.000000000 +0100
++++ grub/stage2/shared.h       2008-03-28 13:22:28.000000000 +0000
+@@ -499,7 +499,11 @@ struct vbe_mode
+   unsigned char linear_reserved_field_position;
+   unsigned long max_pixel_clock;
+ 
+-  unsigned char reserved3[189];
++  /* Reserved field to make structure to be 256 bytes long, VESA BIOS 
++     Extension 3.0 Specification says to reserve 189 bytes here but 
++     that doesn't make structure to be 256 bytes.  So additional one is 
++     added here.  */
++  unsigned char reserved3[189 + 1];
+ } __attribute__ ((packed));
+ 
+ 
+@@ -807,7 +811,7 @@ int checkkey (void);
+ /* Low-level disk I/O */
+ int get_diskinfo (int drive, struct geometry *geometry);
+ int biosdisk (int subfunc, int drive, struct geometry *geometry,
+-            int sector, int nsec, int segment);
++            unsigned int sector, int nsec, int segment);
+ void stop_floppy (void);
+ 
+ /* Command-line interface functions. */
+@@ -920,10 +924,10 @@ int gunzip_test_header (void);
+ int gunzip_read (char *buf, int len);
+ #endif /* NO_DECOMPRESSION */
+ 
+-int rawread (int drive, int sector, int byte_offset, int byte_len, char *buf);
+-int devread (int sector, int byte_offset, int byte_len, char *buf);
+-int rawwrite (int drive, int sector, char *buf);
+-int devwrite (int sector, int sector_len, char *buf);
++int rawread (int drive, unsigned int sector, int byte_offset, int byte_len, 
char *buf);
++int devread (unsigned int sector, int byte_offset, int byte_len, char *buf);
++int rawwrite (int drive, unsigned int sector, char *buf);
++int devwrite (unsigned int sector, int sector_len, char *buf);
+ 
+ /* Parse a device string and initialize the global parameters. */
+ char *set_device (char *device);
+diff -uprN grub-0.97/stage2/stage2.c grub/stage2/stage2.c
+--- grub-0.97/stage2/stage2.c  2005-03-19 17:51:57.000000000 +0000
++++ grub/stage2/stage2.c       2006-05-05 23:06:31.000000000 +0100
+@@ -651,7 +651,10 @@ restart:
+                 *(new_heap++) = 0;
+ 
+                 if (config_entries)
+-                  run_menu (heap, NULL, new_num_entries, new_heap, 0);
++                  {
++                    current_entryno = first_entry + entryno;
++                    run_menu (heap, NULL, new_num_entries, new_heap, 0);
++                  }
+                 else
+                   {
+                     cls ();
+@@ -727,7 +730,8 @@ restart:
+       cur_entry = get_entry (config_entries, first_entry + entryno, 1);
+ 
+       /* Set CURRENT_ENTRYNO for the command "savedefault".  */
+-      current_entryno = first_entry + entryno;
++      if (config_entries)
++      current_entryno = first_entry + entryno;
+       
+       if (run_script (cur_entry, heap))
+       {
+diff -uprN grub-0.97/stage2/tparm.c grub/stage2/tparm.c
+--- grub-0.97/stage2/tparm.c   2003-07-09 12:45:53.000000000 +0100
++++ grub/stage2/tparm.c        2002-11-29 20:39:24.000000000 +0000
+@@ -63,7 +63,7 @@ typedef char grub_bool;
+ #define MAX_FORMAT_LEN 256
+ #define max(a,b) ((a) > (b) ? (a) : (b))
+ 
+-//MODULE_ID("$Id: tparm.c,v 1.1 2002/11/29 20:39:24 okuji Exp $")
++//MODULE_ID("$Id: tparm.c 708 2002-11-29 20:39:24Z okuji $")
+ 
+ /*
+  *    char *
+diff -uprN grub-0.97/stamp-h.in grub/stamp-h.in
+--- grub-0.97/stamp-h.in       1970-01-01 01:00:00.000000000 +0100
++++ grub/stamp-h.in    1999-09-13 14:32:31.000000000 +0100
+@@ -0,0 +1 @@
++timestamp
+diff -uprN grub-0.97/THANKS grub/THANKS
+--- grub-0.97/THANKS   2005-05-08 03:17:43.000000000 +0100
++++ grub/THANKS        2006-03-21 20:51:58.000000000 +0000
+@@ -121,3 +121,4 @@ Vesa Jaaskelainen <jaaskela@tietomyrsky.
+ Yedidyah Bar-David <didi@xxxxxxxxxxxxxx>
+ Yury V. Umanets <umka@xxxxxxxxxxx>
+ Yuri Zaporogets <yuriz@xxxxxxx>
++Vitaly Fertman <vitaly@xxxxxxxxxxx>
+diff -uprN grub-0.97/util/grub-install.in grub/util/grub-install.in
+--- grub-0.97/util/grub-install.in     2004-07-24 19:57:31.000000000 +0100
++++ grub/util/grub-install.in  2006-04-20 14:46:46.000000000 +0100
+@@ -112,8 +112,8 @@ convert () {
+       tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
+       tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;;
+     freebsd* | kfreebsd*-gnu)
+-      tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%r\1%' \
+-                          | sed 's%r\{0,1\}\(da[0-9]*\).*$%r\1%'`
++      tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%\1%' \
++                          | sed 's%r\{0,1\}\(da[0-9]*\).*$%\1%'`
+       tmp_part=`echo "$1" \
+           | sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \
+                   | sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"`
+diff -uprN grub-0.97/util/mkbimage grub/util/mkbimage
+--- grub-0.97/util/mkbimage    2004-07-24 19:57:31.000000000 +0100
++++ grub/util/mkbimage 2007-02-22 16:01:03.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # MaKe a Bootable IMAGE --- 1.44, 2.88 and El Torito no-emulation mode
+ # C) 2001,2002,2003 Thierry Laronde <tlaronde@xxxxxxxxxxx>
+-# C) 2001,2002,2003 Robert Millan <robertmh@xxxxxxx>
++# C) 2001,2002,2003 Robert Millan <rmh@xxxxxxxxxxx>
+ 
+ 
+ # This program is free software; you can redistribute it and/or modify
+@@ -19,7 +19,7 @@
+ # program's maintainer or write to: The Free Software Foundation,
+ # Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
+ 
+-# $Id: mkbimage,v 1.19 2004/07/21 14:43:04 robertmh Exp $
++# $Id: mkbimage 1233 2007-02-22 16:01:03Z robertmh $
+ 
+ # Global variables
+ tarfile=
+@@ -58,7 +58,7 @@ stage2_os_name=
+ 
+ # Name by which this script was invoked.
+ program=`echo "$0" | sed -e 's/[^\/]*\///g'`
+-version_number='$Revision: 1.19 $'
++version_number='$Revision: 1233 $'
+ 
+ usage="
+ Usage: $program [-hVF] [-t TYPE] [-d DIRECTORY] [-s FS_TYPE] -f TAR_FILE
+@@ -94,15 +94,13 @@ Options:
+           display Version information and exit
+ 
+ Copyright (c) 2001,2002,2003 Thierry Laronde <tlaronde@xxxxxxxxxxx>. 
+-Copyright (c) 2001,2002 Robert Millan <zeratul2@xxxxxxxxxx>.
+ GPLed."
+ 
+ version="mkbimage $version_number
+ 
+-Written by Thierry Laronde and Robert Millan.
++Written by Thierry Laronde.
+ 
+ Copyright (c) 2001,2002,2003 Thierry Laronde <tlaronde@xxxxxxxxxxx>.
+-Copyright (c) 2001,2002,2003 Robert Millan <zeratul2@xxxxxxxxxx>.
+ 
+ This is free software under the GPL version 2 or later; see the source for 
+ copying conditions.  There is NO warranty, not even for MERCHANTABILITY or 
diff -r 7637a4f5a5d7 stubdom/grub/Makefile
--- a/stubdom/grub/Makefile     Thu Jul 17 14:55:31 2008 +0100
+++ b/stubdom/grub/Makefile     Thu Jul 17 15:03:16 2008 +0100
@@ -1,14 +1,14 @@
 XEN_ROOT = ../..
 
 include $(XEN_ROOT)/Config.mk
-vpath %.c ../grub-cvs
+vpath %.c ../grub-upstream
 
 BOOT=boot-$(XEN_TARGET_ARCH).o
 
 DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libxc -I$(XEN_ROOT)/tools/include -I.
-DEF_CPPFLAGS += -I../grub-cvs/stage1
-DEF_CPPFLAGS += -I../grub-cvs/stage2
-DEF_CPPFLAGS += -I../grub-cvs/netboot
+DEF_CPPFLAGS += -I../grub-upstream/stage1
+DEF_CPPFLAGS += -I../grub-upstream/stage2
+DEF_CPPFLAGS += -I../grub-upstream/netboot
 DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/firmware/vgabios
 DEF_CPPFLAGS += -DWITHOUT_LIBC_STUBS
 DEF_CPPFLAGS += -DSUPPORT_NETBOOT

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] PV-GRUB: use the 0.97 snapshot + patch instead of checking out from cvs, Samuel Thibault <=