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

[Xen-devel] [PATCH] PV-GRUB: use the 0.97 snapshot + patch instead of checking out from cvs



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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.