summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeert Bevin <gbevin@gentoo.org>2001-12-29 02:17:55 +0000
committerGeert Bevin <gbevin@gentoo.org>2001-12-29 02:17:55 +0000
commit11c67b1303c0977d2c0e0ff3e406c60e09fc2b7f (patch)
tree1ee70dde2f9f64e039b7f68ca89e98733ab4626c /sys-apps/grub
parentfix guile build error (diff)
downloadhistorical-11c67b1303c0977d2c0e0ff3e406c60e09fc2b7f.tar.gz
historical-11c67b1303c0977d2c0e0ff3e406c60e09fc2b7f.tar.bz2
historical-11c67b1303c0977d2c0e0ff3e406c60e09fc2b7f.zip
Experimental grub with xfs/jfs support for the boot partition.
Diffstat (limited to 'sys-apps/grub')
-rw-r--r--sys-apps/grub/files/digest-grub-0.90-r41
-rw-r--r--sys-apps/grub/files/grub-0.90/configure3608
-rw-r--r--sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-build.patch1454
-rw-r--r--sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-core.patch2430
-rw-r--r--sys-apps/grub/grub-0.90-r4.ebuild67
5 files changed, 7560 insertions, 0 deletions
diff --git a/sys-apps/grub/files/digest-grub-0.90-r4 b/sys-apps/grub/files/digest-grub-0.90-r4
new file mode 100644
index 000000000000..fed5b37e14e6
--- /dev/null
+++ b/sys-apps/grub/files/digest-grub-0.90-r4
@@ -0,0 +1 @@
+MD5 e435d871e5d06b3106342d880380605e grub-0.90.tar.gz 745472
diff --git a/sys-apps/grub/files/grub-0.90/configure b/sys-apps/grub/files/grub-0.90/configure
new file mode 100644
index 000000000000..d6b3c9391ab4
--- /dev/null
+++ b/sys-apps/grub/files/grub-0.90/configure
@@ -0,0 +1,3608 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --disable-dependency-tracking Speeds up one-time builds
+ --enable-dependency-tracking Do not reject slow dependency extractors"
+ac_help="$ac_help
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer"
+ac_help="$ac_help
+ --with-binutils=DIR search the directory DIR to find binutils"
+ac_help="$ac_help
+ --without-curses do not use curses"
+ac_help="$ac_help
+ --disable-ext2fs disable ext2fs support in Stage 2"
+ac_help="$ac_help
+ --disable-fat disable FAT support in Stage 2"
+ac_help="$ac_help
+ --disable-ffs disable FFS support in Stage 2"
+ac_help="$ac_help
+ --disable-minix disable Minix fs support in Stage 2"
+ac_help="$ac_help
+ --disable-reiserfs disable ReiserFS support in Stage 2"
+ac_help="$ac_help
+ --disable-jfs disable IBM JFS support in Stage 2"
+ac_help="$ac_help
+ --disable-xfs disable SGI XFS support in Stage 2"
+ac_help="$ac_help
+ --disable-vstafs disable VSTa FS support in Stage 2"
+ac_help="$ac_help
+ --disable-gunzip disable decompression in Stage 2"
+ac_help="$ac_help
+ --disable-md5-password disable MD5 password support in Stage 2"
+ac_help="$ac_help
+ --disable-packet-retransmission
+ turn off packet retransmission"
+ac_help="$ac_help
+ --enable-pci-direct access PCI directly instead of using BIOS"
+ac_help="$ac_help
+ --enable-3c509 enable 3Com509 driver"
+ac_help="$ac_help
+ --enable-3c529 enable 3Com529 driver"
+ac_help="$ac_help
+ --enable-3c590 enable 3Com590 driver"
+ac_help="$ac_help
+ --enable-3c595 enable 3Com595 driver"
+ac_help="$ac_help
+ --enable-3c90x enable 3Com90x driver"
+ac_help="$ac_help
+ --enable-cs89x0 enable CS89x0 driver"
+ac_help="$ac_help
+ --enable-depca enable DEPCA and EtherWORKS driver"
+ac_help="$ac_help
+ --enable-eepro100 enable Etherexpress Pro/100 driver"
+ac_help="$ac_help
+ --enable-epic100 enable SMC 83c170 EPIC/100 driver"
+ac_help="$ac_help
+ --enable-3c507 enable 3Com507 driver"
+ac_help="$ac_help
+ --enable-exos205 enable EXOS205 driver"
+ac_help="$ac_help
+ --enable-ni5210 enable Racal-Interlan NI5210 driver"
+ac_help="$ac_help
+ --enable-lance enable Lance PCI PCNet/32 driver"
+ac_help="$ac_help
+ --enable-ne2100 enable Novell NE2100 driver"
+ac_help="$ac_help
+ --enable-ni6510 enable Racal-Interlan NI6510 driver"
+ac_help="$ac_help
+ --enable-3c503 enable 3Com503 driver"
+ac_help="$ac_help
+ --enable-ne enable NE1000/2000 ISA driver"
+ac_help="$ac_help
+ --enable-ns8390 enable NE2000 PCI driver"
+ac_help="$ac_help
+ --enable-wd enable WD8003/8013, SMC8216/8416 driver"
+ac_help="$ac_help
+ --enable-otulip enable old Tulip driver"
+ac_help="$ac_help
+ --enable-rtl8139 enable Realtek 8139 driver"
+ac_help="$ac_help
+ --enable-sk-g16 enable Schneider and Koch G16 driver"
+ac_help="$ac_help
+ --enable-smc9000 enable SMC9000 driver"
+ac_help="$ac_help
+ --enable-tiara enable Tiara driver"
+ac_help="$ac_help
+ --enable-tulip enable Tulip driver"
+ac_help="$ac_help
+ --enable-via-rhine enable Rhine-I/II driver"
+ac_help="$ac_help
+ --enable-3c503-shmem use 3c503 shared memory mode"
+ac_help="$ac_help
+ --enable-3c503-aui use AUI by default on 3c503 cards"
+ac_help="$ac_help
+ --enable-3c509-hack make a 3c509 do bootp quicker"
+ac_help="$ac_help
+ --enable-compex-rl2000-fix
+ specify this if you have a Compex RL2000 PCI"
+ac_help="$ac_help
+ --enable-ns8390-force-16bit
+ specify this if falsely 8 bit is detected"
+ac_help="$ac_help
+ --enable-smc9000-scan=LIST
+ probe for SMC9000 I/O addresses using LIST"
+ac_help="$ac_help
+ --enable-ne-scan=LIST probe for NE base address using LIST"
+ac_help="$ac_help
+ --enable-wd-default-mem=MEM
+ set the default memory location for WD/SMC"
+ac_help="$ac_help
+ --enable-cs-scan=LIST probe for CS89x0 base address using LIST"
+ac_help="$ac_help
+ --enable-diskless enable diskless support"
+ac_help="$ac_help
+ --disable-hercules disable hercules terminal support"
+ac_help="$ac_help
+ --disable-serial diable serial terminal support"
+ac_help="$ac_help
+ --enable-serial-speed-simulation
+ simulate the slowness of a serial device"
+ac_help="$ac_help
+ --enable-preset-menu=FILE
+ preset a menu file FILE in Stage 2"
+ac_help="$ac_help
+ --enable-example-kernel
+ build the example Multiboot kernel"
+ac_help="$ac_help
+ --disable-auto-linux-mem-opt
+ don't pass Linux mem= option automatically"
+ac_help="$ac_help
+ --disable-vga16 disable VGA graphics interface"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=stage2/stage2.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:685: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:738: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+ program_transform_name=
+else
+ # Double any \ or $. echo might interpret backslashes.
+ cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+ rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+test x"${MISSING+set}" = xset ||
+ MISSING="\${SHELL} `CDPATH=:; cd $ac_aux_dir && pwd`/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ am_backtick='`'
+ echo "configure: warning: ${am_backtick}missing' script is too old or missing" 1>&2
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:810: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_AWK="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+AWK="$ac_cv_prog_AWK"
+if test -n "$AWK"; then
+ echo "$ac_t""$AWK" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$AWK" && break
+done
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:840: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+ enableval="$enable_dependency_tracking"
+ :
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+
+if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then
+ DEPDIR=.deps
+ # We redirect because .deps might already exist and be populated.
+ # In this situation we don't want to see an error.
+ rmdir .deps > /dev/null 2>&1
+else
+ DEPDIR=_deps
+fi
+
+
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run \"make distclean\" there first" 1>&2; exit 1; }
+fi
+
+# Define the identity of the package.
+PACKAGE=grub
+VERSION=0.90
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
+# the ones we care about.
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+
+if test -z "$install_sh"; then
+ for install_sh in "$ac_aux_dir/install-sh" \
+ "$ac_aux_dir/install.sh" \
+ "${am_missing_run}${ac_auxdir}/install-sh";
+ do
+ test -f "$install_sh" && break
+ done
+ # FIXME: an evil hack: we remove the SHELL invocation from
+ # install_sh because automake adds it back in. Sigh.
+ install_sh=`echo $install_sh | sed -e 's/\${SHELL}//'`
+fi
+
+_am_dirpart="`echo $install_sh | sed -e 's,//*[^/]*$,,'`"
+INSTALL_STRIP_PROGRAM="\${SHELL} \`CDPATH=: && cd $_am_dirpart && pwd\`/install-sh -c -s"
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+
+
+
+
+
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:970: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+esac
+
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+AM_PROG_LIBTOOL
+
+case "$host_cpu" in
+i[3456]86) host_cpu=i386 ;;
+*) { echo "configure: error: unsupported CPU type" 1>&2; exit 1; } ;;
+esac
+
+
+
+
+#
+# Options
+#
+
+echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
+echo "configure:1005: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
+
+
+if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+if test "x$enable_maintainer_mode" = xyes; then
+ # Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1031: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$PERL" in
+ /*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_PERL="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+PERL="$ac_cv_path_PERL"
+if test -n "$PERL"; then
+ echo "$ac_t""$PERL" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$PERL"; then
+ { echo "configure: error: perl not found" 1>&2; exit 1; }
+ fi
+fi
+
+# This should be checked before AC_PROG_CC
+if test "x$CFLAGS" = x; then
+ default_CFLAGS=yes
+fi
+
+#
+# Programs
+#
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:1078: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
+
+if test $host != $build; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1104: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1136: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1166: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1217: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1249: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 1260 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:1265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1291: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:1296: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1324: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1357: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 1372 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 1389 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1406 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+ @echo done
+END
+# If we don't find an include directive, just comment out the code.
+echo $ac_n "checking for style of include used by $am_make""... $ac_c" 1>&6
+echo "configure:1443: checking for style of include used by $am_make" >&5
+_am_include='#'
+_am_quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+ _am_include=include
+ _am_quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$_am_include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ _am_include=.include
+ _am_quote='"'
+ _am_result=BSD
+ fi
+fi
+
+
+echo "$ac_t""$_am_result" 1>&6
+rm -f confinc confmf
+
+am_compiler_list=
+
+depcc="$CC"
+depcpp="$CPP"
+
+
+
+
+echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
+echo "configure:1482: checking dependency style of $depcc" >&5
+if eval "test \"`echo '$''{'am_cv_CC_dependencies_compiler_type'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir confdir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" confdir
+ cd confdir
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list="`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`"
+ fi
+ for depmode in $am_compiler_list; do
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ echo '#include "conftest.h"' > conftest.c
+ echo 'int i;' > conftest.h
+
+ case "$depmode" in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode="$depmode" \
+ source=conftest.c object=conftest.o \
+ depfile=conftest.Po tmpdepfile=conftest.TPo \
+ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+ grep conftest.h conftest.Po > /dev/null 2>&1; then
+ am_cv_CC_dependencies_compiler_type="$depmode"
+ break
+ fi
+ done
+
+ cd ..
+ rm -rf confdir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+
+echo "$ac_t""$am_cv_CC_dependencies_compiler_type" 1>&6
+CCDEPMODE="depmode=$am_cv_CC_dependencies_compiler_type"
+
+
+
+AS="$CC"
+
+
+# Check whether --with-binutils or --without-binutils was given.
+if test "${with_binutils+set}" = set; then
+ withval="$with_binutils"
+ :
+fi
+
+
+if test "x$with_binutils" != x; then
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1561: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$RANLIB" in
+ /*)
+ ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy=""$with_binutils:$PATH""
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_RANLIB="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_RANLIB" && ac_cv_path_RANLIB=":"
+ ;;
+esac
+fi
+RANLIB="$ac_cv_path_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+else
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1598: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+# optimization flags
+if test "x$ac_cv_prog_gcc" = xyes; then
+ if test "x$default_CFLAGS" = xyes; then
+ CFLAGS="-g"
+ # If the user specify the directory for binutils, add the option `-B'.
+ if test "x$with_binutils" != x; then
+ CFLAGS="-B$with_binutils/ $CFLAGS"
+ fi
+ STAGE1_CFLAGS="-O2"
+ GRUB_CFLAGS="-O2"
+ echo $ac_n "checking whether optimization for size works""... $ac_c" 1>&6
+echo "configure:1638: checking whether optimization for size works" >&5
+if eval "test \"`echo '$''{'size_flag'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ saved_CFLAGS=$CFLAGS
+ CFLAGS="-Os -g"
+ cat > conftest.$ac_ext <<EOF
+#line 1646 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:1653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ size_flag=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ size_flag=no
+fi
+rm -f conftest*
+ CFLAGS=$saved_CFLAGS
+
+fi
+
+echo "$ac_t""$size_flag" 1>&6
+ if test "x$size_flag" = xyes; then
+ STAGE2_CFLAGS="-Os"
+ else
+ STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
+ fi
+ fi
+fi
+
+
+
+
+
+# Enforce coding standards.
+CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
+CPPFLAGS="$CPPFLAGS -Wpointer-arith"
+
+echo $ac_n "checking whether -Wundef works""... $ac_c" 1>&6
+echo "configure:1685: checking whether -Wundef works" >&5
+if eval "test \"`echo '$''{'undef_flag'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ saved_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="-Wundef"
+ cat > conftest.$ac_ext <<EOF
+#line 1693 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:1700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ undef_flag=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ undef_flag=no
+fi
+rm -f conftest*
+ CPPFLAGS=$saved_CPPFLAGS
+
+fi
+
+echo "$ac_t""$undef_flag" 1>&6
+
+# Force no alignment to save space.
+CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
+
+if test "x$undef_flag" = xyes; then
+ CPPFLAGS="$CPPFLAGS -Wundef"
+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
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1727: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$OBJCOPY" in
+ /*)
+ ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy=""$with_binutils:$PATH""
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_OBJCOPY="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+OBJCOPY="$ac_cv_path_OBJCOPY"
+if test -n "$OBJCOPY"; then
+ echo "$ac_t""$OBJCOPY" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+else
+ # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objcopy; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1763: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$OBJCOPY"; then
+ ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_OBJCOPY="${ac_tool_prefix}objcopy"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_OBJCOPY" && ac_cv_prog_OBJCOPY="objcopy"
+fi
+fi
+OBJCOPY="$ac_cv_prog_OBJCOPY"
+if test -n "$OBJCOPY"; then
+ echo "$ac_t""$OBJCOPY" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+
+fi
+
+# Defined in acinclude.m4.
+
+echo $ac_n "checking if C symbols get an underscore after compilation""... $ac_c" 1>&6
+echo "configure:1797: checking if C symbols get an underscore after compilation" >&5
+if eval "test \"`echo '$''{'grub_cv_asm_uscore'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<\EOF
+int
+func (int *list)
+{
+ *list = 0;
+ return *list;
+}
+EOF
+
+if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.s; then
+ true
+else
+ { echo "configure: error: ${CC-cc} failed to produce assembly code" 1>&2; exit 1; }
+fi
+
+if grep _func conftest.s >/dev/null 2>&1; then
+ grub_cv_asm_uscore=yes
+else
+ grub_cv_asm_uscore=no
+fi
+
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_asm_uscore" = xyes; then
+ cat >> confdefs.h <<EOF
+#define HAVE_ASM_USCORE $grub_cv_asm_uscore
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_asm_uscore" 1>&6
+
+echo $ac_n "checking whether ${OBJCOPY} works for absolute addresses""... $ac_c" 1>&6
+echo "configure:1836: checking whether ${OBJCOPY} works for absolute addresses" >&5
+if eval "test \"`echo '$''{'grub_cv_prog_objcopy_absolute'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<\EOF
+void
+cmain (void)
+{
+ *((int *) 0x1000) = 2;
+}
+EOF
+
+if { (eval echo configure:1848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
+else
+ { echo "configure: error: ${CC-cc} cannot compile C source code" 1>&2; exit 1; }
+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'; { (eval echo configure:1854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
+ else
+ { echo "configure: error: ${CC-cc} cannot link at address $link_addr" 1>&2; exit 1; }
+ fi
+ if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
+ else
+ { echo "configure: error: ${OBJCOPY-objcopy} cannot create binary files" 1>&2; exit 1; }
+ fi
+ if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'; { (eval echo configure:1862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ mv -f conftest conftest.old
+ else
+ grub_cv_prog_objcopy_absolute=no
+ break
+ fi
+done
+rm -f conftest*
+fi
+
+echo "$ac_t""$grub_cv_prog_objcopy_absolute" 1>&6
+if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
+ { echo "configure: error: GRUB requires a working absolute objcopy; upgrade your binutils" 1>&2; exit 1; }
+fi
+
+
+echo $ac_n "checking whether addr32 must be in the same line as the instruction""... $ac_c" 1>&6
+echo "configure:1879: checking whether addr32 must be in the same line as the instruction" >&5
+if eval "test \"`echo '$''{'grub_cv_asm_prefix_requirement'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.s <<\EOF
+ .code16
+l1: addr32 movb %al, l1
+EOF
+
+if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1888: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
+ grub_cv_asm_prefix_requirement=yes
+else
+ grub_cv_asm_prefix_requirement=no
+fi
+
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_asm_prefix_requirement" = xyes; then
+ grub_tmp_addr32="addr32"
+ grub_tmp_data32="data32"
+else
+ grub_tmp_addr32="addr32;"
+ grub_tmp_data32="data32;"
+fi
+
+cat >> confdefs.h <<EOF
+#define ADDR32 $grub_tmp_addr32
+EOF
+
+cat >> confdefs.h <<EOF
+#define DATA32 $grub_tmp_data32
+EOF
+
+
+echo "$ac_t""$grub_cv_asm_prefix_requirement" 1>&6
+
+
+
+echo $ac_n "checking for .code16 addr32 assembler support""... $ac_c" 1>&6
+echo "configure:1920: checking for .code16 addr32 assembler support" >&5
+if eval "test \"`echo '$''{'grub_cv_asm_addr32'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.s.in <<\EOF
+ .code16
+l1: @ADDR32@ movb %al, l1
+EOF
+
+if test "x$grub_cv_asm_prefix_requirement" = xyes; then
+ sed -e s/@ADDR32@/addr32/ < conftest.s.in > conftest.s
+else
+ sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
+fi
+
+if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
+ grub_cv_asm_addr32=yes
+else
+ grub_cv_asm_addr32=no
+fi
+
+rm -f conftest*
+fi
+
+
+echo "$ac_t""$grub_cv_asm_addr32" 1>&6
+if test "x$grub_cv_asm_addr32" != xyes; then
+ { echo "configure: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" 1>&2; exit 1; }
+fi
+
+
+echo $ac_n "checking whether an absolute indirect call/jump must not be prefixed with an asterisk""... $ac_c" 1>&6
+echo "configure:1952: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
+if eval "test \"`echo '$''{'grub_cv_asm_absolute_without_asterisk'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.s <<\EOF
+ lcall *(offset)
+offset:
+ .long 0
+ .word 0
+EOF
+
+if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
+ grub_cv_asm_absolute_without_asterisk=no
+else
+ grub_cv_asm_absolute_without_asterisk=yes
+fi
+
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_asm_absolute_without_asterisk" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define ABSOLUTE_WITHOUT_ASTERISK 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_asm_absolute_without_asterisk" 1>&6
+
+
+echo $ac_n "checking if start is defined by the compiler""... $ac_c" 1>&6
+echo "configure:1984: checking if start is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_start_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1989 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl start")
+; return 0; }
+EOF
+if { (eval echo configure:1996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_start_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_start_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_start_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_START_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_start_symbol" 1>&6
+
+
+echo $ac_n "checking if _start is defined by the compiler""... $ac_c" 1>&6
+echo "configure:2020: checking if _start is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_uscore_start_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2025 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl _start")
+; return 0; }
+EOF
+if { (eval echo configure:2032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_start_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_uscore_start_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_uscore_start_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_USCORE_START_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_uscore_start_symbol" 1>&6
+
+if test "x$grub_cv_check_start_symbol" != "xyes" \
+ -a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then
+ { echo "configure: error: Neither start nor _start is defined" 1>&2; exit 1; }
+fi
+
+
+echo $ac_n "checking if __bss_start is defined by the compiler""... $ac_c" 1>&6
+echo "configure:2061: checking if __bss_start is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_uscore_uscore_bss_start_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2066 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl __bss_start")
+; return 0; }
+EOF
+if { (eval echo configure:2073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_uscore_bss_start_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_uscore_uscore_bss_start_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_USCORE_USCORE_BSS_START_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_uscore_uscore_bss_start_symbol" 1>&6
+
+
+echo $ac_n "checking if _edata is defined by the compiler""... $ac_c" 1>&6
+echo "configure:2097: checking if _edata is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_uscore_edata_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2102 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl _edata")
+; return 0; }
+EOF
+if { (eval echo configure:2109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_edata_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_uscore_edata_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_uscore_edata_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_USCORE_EDATA_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_uscore_edata_symbol" 1>&6
+
+
+echo $ac_n "checking if edata is defined by the compiler""... $ac_c" 1>&6
+echo "configure:2133: checking if edata is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_edata_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2138 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl edata")
+; return 0; }
+EOF
+if { (eval echo configure:2145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_edata_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_edata_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_edata_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_EDATA_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_edata_symbol" 1>&6
+
+if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \
+ -a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \
+ -a "x$grub_cv_check_edata_symbol" != "xyes"; then
+ { echo "configure: error: None of __bss_start, _edata, edata defined" 1>&2; exit 1; }
+fi
+
+
+echo $ac_n "checking if end is defined by the compiler""... $ac_c" 1>&6
+echo "configure:2175: checking if end is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_end_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2180 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl end")
+; return 0; }
+EOF
+if { (eval echo configure:2187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_end_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_end_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_end_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_END_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_end_symbol" 1>&6
+
+
+echo $ac_n "checking if _end is defined by the compiler""... $ac_c" 1>&6
+echo "configure:2211: checking if _end is defined by the compiler" >&5
+if eval "test \"`echo '$''{'grub_cv_check_uscore_end_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2216 "configure"
+#include "confdefs.h"
+
+int main() {
+asm ("incl _end")
+; return 0; }
+EOF
+if { (eval echo configure:2223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_end_symbol=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ grub_cv_check_uscore_end_symbol=no
+fi
+rm -f conftest*
+fi
+
+
+if test "x$grub_cv_check_uscore_end_symbol" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_USCORE_END_SYMBOL 1
+EOF
+
+fi
+
+echo "$ac_t""$grub_cv_check_uscore_end_symbol" 1>&6
+
+if test "x$grub_cv_check_end_symbol" != "xyes" \
+ -a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then
+ { echo "configure: error: Neither end nor _end is defined" 1>&2; exit 1; }
+fi
+
+# Check for curses libraries.
+# Check whether --with-curses or --without-curses was given.
+if test "${with_curses+set}" = set; then
+ withval="$with_curses"
+ :
+fi
+
+
+# Get the filename or the whole disk and open it.
+# Known to work on NetBSD.
+echo $ac_n "checking for opendisk in -lutil""... $ac_c" 1>&6
+echo "configure:2261: checking for opendisk in -lutil" >&5
+ac_lib_var=`echo util'_'opendisk | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lutil $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2269 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendisk();
+
+int main() {
+opendisk()
+; return 0; }
+EOF
+if { (eval echo configure:2280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ GRUB_LIBS="$GRUB_LIBS -lutil"
+ cat >> confdefs.h <<\EOF
+#define HAVE_OPENDISK 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+# Unless the user specify --without-curses, check for curses.
+if test "x$with_curses" != "xno"; then
+ echo $ac_n "checking for wgetch in -lncurses""... $ac_c" 1>&6
+echo "configure:2308: checking for wgetch in -lncurses" >&5
+ac_lib_var=`echo ncurses'_'wgetch | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lncurses $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2316 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wgetch();
+
+int main() {
+wgetch()
+; return 0; }
+EOF
+if { (eval echo configure:2327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ GRUB_LIBS="$GRUB_LIBS -lncurses"
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBCURSES 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for wgetch in -lcurses""... $ac_c" 1>&6
+echo "configure:2350: checking for wgetch in -lcurses" >&5
+ac_lib_var=`echo curses'_'wgetch | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lcurses $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2358 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wgetch();
+
+int main() {
+wgetch()
+; return 0; }
+EOF
+if { (eval echo configure:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ GRUB_LIBS="$GRUB_LIBS -lcurses"
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBCURSES 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+fi
+
+
+
+# Check for headers.
+for ac_hdr in string.h strings.h ncurses/curses.h ncurses.h curses.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2404: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2409 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+# Check for user options.
+
+# filesystems support.
+# Check whether --enable-ext2fs or --disable-ext2fs was given.
+if test "${enable_ext2fs+set}" = set; then
+ enableval="$enable_ext2fs"
+ :
+fi
+
+
+if test x"$enable_ext2fs" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1"
+fi
+
+# Check whether --enable-fat or --disable-fat was given.
+if test "${enable_fat+set}" = set; then
+ enableval="$enable_fat"
+ :
+fi
+
+
+if test x"$enable_fat" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1"
+fi
+
+# Check whether --enable-ffs or --disable-ffs was given.
+if test "${enable_ffs+set}" = set; then
+ enableval="$enable_ffs"
+ :
+fi
+
+
+if test x"$enable_ffs" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1"
+fi
+
+# Check whether --enable-minix or --disable-minix was given.
+if test "${enable_minix+set}" = set; then
+ enableval="$enable_minix"
+ :
+fi
+
+
+if test x"$enable_minix" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1"
+fi
+
+# Check whether --enable-reiserfs or --disable-reiserfs was given.
+if test "${enable_reiserfs+set}" = set; then
+ enableval="$enable_reiserfs"
+ :
+fi
+
+
+if test x"$enable_reiserfs" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
+fi
+
+# Check whether --enable-jfs or --disable-jfs was given.
+if test "${enable_jfs+set}" = set; then
+ enableval="$enable_jfs"
+ :
+fi
+
+
+if test x"$enable_jfs" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
+fi
+
+# Check whether --enable-xfs or --disable-xfs was given.
+if test "${enable_xfs+set}" = set; then
+ enableval="$enable_xfs"
+ :
+fi
+
+
+if test x"$enable_xfs" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
+fi
+
+# Check whether --enable-vstafs or --disable-vstafs was given.
+if test "${enable_vstafs+set}" = set; then
+ enableval="$enable_vstafs"
+ :
+fi
+
+
+if test x"$enable_vstafs" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_VSTAFS=1"
+fi
+
+
+# Check whether --enable-gunzip or --disable-gunzip was given.
+if test "${enable_gunzip+set}" = set; then
+ enableval="$enable_gunzip"
+ :
+fi
+
+
+if test x"$enable_gunzip" = xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1"
+fi
+
+# Check whether --enable-md5-password or --disable-md5-password was given.
+if test "${enable_md5_password+set}" = set; then
+ enableval="$enable_md5_password"
+ :
+fi
+
+if test "x$enable_md5_password" != xno; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DUSE_MD5_PASSWORDS=1"
+fi
+
+# Check whether --enable-packet-retransmission or --disable-packet-retransmission was given.
+if test "${enable_packet_retransmission+set}" = set; then
+ enableval="$enable_packet_retransmission"
+ :
+fi
+
+if test "x$enable_packet_retransmission" != xno; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1"
+fi
+
+# Check whether --enable-pci-direct or --disable-pci-direct was given.
+if test "${enable_pci_direct+set}" = set; then
+ enableval="$enable_pci_direct"
+ :
+fi
+
+if test "x$enable_pci_direct" = xyes; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1"
+fi
+
+# Check whether --enable-3c509 or --disable-3c509 was given.
+if test "${enable_3c509+set}" = set; then
+ enableval="$enable_3c509"
+ :
+fi
+
+if test "x$enable_3c509" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o"
+fi
+
+# Check whether --enable-3c529 or --disable-3c529 was given.
+if test "${enable_3c529+set}" = set; then
+ enableval="$enable_3c529"
+ :
+fi
+
+if test "x$enable_3c529" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o"
+fi
+
+# Check whether --enable-3c590 or --disable-3c590 was given.
+if test "${enable_3c590+set}" = set; then
+ enableval="$enable_3c590"
+ :
+fi
+
+if test "x$enable_3c590" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C590=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c590.o"
+fi
+
+# Check whether --enable-3c595 or --disable-3c595 was given.
+if test "${enable_3c595+set}" = set; then
+ enableval="$enable_3c595"
+ :
+fi
+
+if test "x$enable_3c595" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C595=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c595.o"
+fi
+
+# Check whether --enable-3c90x or --disable-3c90x was given.
+if test "${enable_3c90x+set}" = set; then
+ enableval="$enable_3c90x"
+ :
+fi
+
+if test "x$enable_3c90x" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o"
+fi
+
+# Check whether --enable-cs89x0 or --disable-cs89x0 was given.
+if test "${enable_cs89x0+set}" = set; then
+ enableval="$enable_cs89x0"
+ :
+fi
+
+if test "x$enable_cs89x0" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o"
+fi
+
+# Check whether --enable-depca or --disable-depca was given.
+if test "${enable_depca+set}" = set; then
+ enableval="$enable_depca"
+ :
+fi
+
+if test "x$enable_depca" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DEPCA=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS depca.o"
+fi
+
+# Check whether --enable-eepro100 or --disable-eepro100 was given.
+if test "${enable_eepro100+set}" = set; then
+ enableval="$enable_eepro100"
+ :
+fi
+
+if test "x$enable_eepro100" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o"
+fi
+
+# Check whether --enable-epic100 or --disable-epic100 was given.
+if test "${enable_epic100+set}" = set; then
+ enableval="$enable_epic100"
+ :
+fi
+
+if test "x$enable_epic100" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o"
+fi
+
+# Check whether --enable-3c507 or --disable-3c507 was given.
+if test "${enable_3c507+set}" = set; then
+ enableval="$enable_3c507"
+ :
+fi
+
+if test "x$enable_3c507" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o"
+fi
+
+# Check whether --enable-exos205 or --disable-exos205 was given.
+if test "${enable_exos205+set}" = set; then
+ enableval="$enable_exos205"
+ :
+fi
+
+if test "x$enable_exos205" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o"
+fi
+
+# Check whether --enable-ni5210 or --disable-ni5210 was given.
+if test "${enable_ni5210+set}" = set; then
+ enableval="$enable_ni5210"
+ :
+fi
+
+if test "x$enable_ni5210" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o"
+fi
+
+# Check whether --enable-lance or --disable-lance was given.
+if test "${enable_lance+set}" = set; then
+ enableval="$enable_lance"
+ :
+fi
+
+if test "x$enable_lance" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCE=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS lance.o"
+fi
+
+# Check whether --enable-ne2100 or --disable-ne2100 was given.
+if test "${enable_ne2100+set}" = set; then
+ enableval="$enable_ne2100"
+ :
+fi
+
+if test "x$enable_ne2100" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o"
+fi
+
+# Check whether --enable-ni6510 or --disable-ni6510 was given.
+if test "${enable_ni6510+set}" = set; then
+ enableval="$enable_ni6510"
+ :
+fi
+
+if test "x$enable_ni6510" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o"
+fi
+
+# Check whether --enable-3c503 or --disable-3c503 was given.
+if test "${enable_3c503+set}" = set; then
+ enableval="$enable_3c503"
+ :
+fi
+
+if test "x$enable_3c503" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o"
+fi
+
+# Check whether --enable-ne or --disable-ne was given.
+if test "${enable_ne+set}" = set; then
+ enableval="$enable_ne"
+ :
+fi
+
+if test "x$enable_ne" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o"
+fi
+
+# Check whether --enable-ns8390 or --disable-ns8390 was given.
+if test "${enable_ns8390+set}" = set; then
+ enableval="$enable_ns8390"
+ :
+fi
+
+if test "x$enable_ns8390" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NS8390=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS ns8390.o"
+fi
+
+# Check whether --enable-wd or --disable-wd was given.
+if test "${enable_wd+set}" = set; then
+ enableval="$enable_wd"
+ :
+fi
+
+if test "x$enable_wd" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o"
+fi
+
+# Check whether --enable-otulip or --disable-otulip was given.
+if test "${enable_otulip+set}" = set; then
+ enableval="$enable_otulip"
+ :
+fi
+
+if test "x$enable_otulip" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_OTULIP=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS otulip.o"
+fi
+
+# Check whether --enable-rtl8139 or --disable-rtl8139 was given.
+if test "${enable_rtl8139+set}" = set; then
+ enableval="$enable_rtl8139"
+ :
+fi
+
+if test "x$enable_rtl8139" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o"
+fi
+
+# Check whether --enable-sk-g16 or --disable-sk-g16 was given.
+if test "${enable_sk_g16+set}" = set; then
+ enableval="$enable_sk_g16"
+ :
+fi
+
+if test "x$enable_sk_g16" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o"
+fi
+
+# Check whether --enable-smc9000 or --disable-smc9000 was given.
+if test "${enable_smc9000+set}" = set; then
+ enableval="$enable_smc9000"
+ :
+fi
+
+if test "x$enable_smc9000" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o"
+fi
+
+# Check whether --enable-tiara or --disable-tiara was given.
+if test "${enable_tiara+set}" = set; then
+ enableval="$enable_tiara"
+ :
+fi
+
+if test "x$enable_tiara" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o"
+fi
+
+# Check whether --enable-tulip or --disable-tulip was given.
+if test "${enable_tulip+set}" = set; then
+ enableval="$enable_tulip"
+ :
+fi
+
+if test "x$enable_tulip" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o"
+fi
+
+# Check whether --enable-via-rhine or --disable-via-rhine was given.
+if test "${enable_via_rhine+set}" = set; then
+ enableval="$enable_via_rhine"
+ :
+fi
+
+if test "x$enable_via_rhine" = xyes; then
+ NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1"
+ NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o"
+fi
+
+
+
+if test "x$NET_CFLAGS" != x; then
+ NETBOOT_SUPPORT_TRUE=
+ NETBOOT_SUPPORT_FALSE='#'
+else
+ NETBOOT_SUPPORT_TRUE='#'
+ NETBOOT_SUPPORT_FALSE=
+fi
+if test "x$NET_CFLAGS" != x; then
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1"
+fi
+
+# Check whether --enable-3c503-shmem or --disable-3c503-shmem was given.
+if test "${enable_3c503_shmem+set}" = set; then
+ enableval="$enable_3c503_shmem"
+ :
+fi
+
+if test "x$enable_3c503_shmem" = xyes; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1"
+fi
+
+# Check whether --enable-3c503-aui or --disable-3c503-aui was given.
+if test "${enable_3c503_aui+set}" = set; then
+ enableval="$enable_3c503_aui"
+ :
+fi
+
+if test "x$enable_3c503_aui" = xyes; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1"
+fi
+
+# Check whether --enable-3c509-hack or --disable-3c509-hack was given.
+if test "${enable_3c509_hack+set}" = set; then
+ enableval="$enable_3c509_hack"
+ :
+fi
+
+if test "x$enable_3c509_hack" = xyes; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT509HACK=1"
+fi
+
+# Check whether --enable-compex-rl2000-fix or --disable-compex-rl2000-fix was given.
+if test "${enable_compex_rl2000_fix+set}" = set; then
+ enableval="$enable_compex_rl2000_fix"
+ :
+fi
+
+if test "x$enable_compex_rl2000_fix" = xyes; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1"
+fi
+
+# Check whether --enable-ns8390-force-16bit or --disable-ns8390-force-16bit was given.
+if test "${enable_ns8390_force_16bit+set}" = set; then
+ enableval="$enable_ns8390_force_16bit"
+ :
+fi
+
+if test "x$enable_ns8390_force_16bit" = xyes; then
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNS8390_FORCE_16BIT=1"
+fi
+
+# Check whether --enable-smc9000-scan or --disable-smc9000-scan was given.
+if test "${enable_smc9000_scan+set}" = set; then
+ enableval="$enable_smc9000_scan"
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan"
+fi
+
+
+# Check whether --enable-ne-scan or --disable-ne-scan was given.
+if test "${enable_ne_scan+set}" = set; then
+ enableval="$enable_ne_scan"
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan"
+else
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340"
+fi
+
+
+# Check whether --enable-wd-default-mem or --disable-wd-default-mem was given.
+if test "${enable_wd_default_mem+set}" = set; then
+ enableval="$enable_wd_default_mem"
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem"
+else
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000"
+fi
+
+
+# Check whether --enable-cs-scan or --disable-cs-scan was given.
+if test "${enable_cs_scan+set}" = set; then
+ enableval="$enable_cs_scan"
+ NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan"
+fi
+
+
+# Check whether --enable-diskless or --disable-diskless was given.
+if test "${enable_diskless+set}" = set; then
+ enableval="$enable_diskless"
+ :
+fi
+
+
+
+if test "x$enable_diskless" = xyes; then
+ DISKLESS_SUPPORT_TRUE=
+ DISKLESS_SUPPORT_FALSE='#'
+else
+ DISKLESS_SUPPORT_TRUE='#'
+ DISKLESS_SUPPORT_FALSE=
+fi
+
+# Check whether --enable-hercules or --disable-hercules was given.
+if test "${enable_hercules+set}" = set; then
+ enableval="$enable_hercules"
+ :
+fi
+
+
+
+if test "x$enable_hercules" != xno; then
+ HERCULES_SUPPORT_TRUE=
+ HERCULES_SUPPORT_FALSE='#'
+else
+ HERCULES_SUPPORT_TRUE='#'
+ HERCULES_SUPPORT_FALSE=
+fi
+
+# Check whether --enable-serial or --disable-serial was given.
+if test "${enable_serial+set}" = set; then
+ enableval="$enable_serial"
+ :
+fi
+
+
+
+if test "x$enable_serial" != xno; then
+ SERIAL_SUPPORT_TRUE=
+ SERIAL_SUPPORT_FALSE='#'
+else
+ SERIAL_SUPPORT_TRUE='#'
+ SERIAL_SUPPORT_FALSE=
+fi
+
+# Check whether --enable-serial-speed-simulation or --disable-serial-speed-simulation was given.
+if test "${enable_serial_speed_simulation+set}" = set; then
+ enableval="$enable_serial_speed_simulation"
+ :
+fi
+
+
+
+if test "x$enable_serial_speed_simulation" = xyes; then
+ SERIAL_SPEED_SIMULATION_TRUE=
+ SERIAL_SPEED_SIMULATION_FALSE='#'
+else
+ SERIAL_SPEED_SIMULATION_TRUE='#'
+ SERIAL_SPEED_SIMULATION_FALSE=
+fi
+
+# Sanity check.
+if test "x$enable_diskless" = xyes; then
+ if test "x$NET_CFLAGS" = x; then
+ { echo "configure: error: You must enable at least one network driver" 1>&2; exit 1; }
+ fi
+fi
+
+# Check whether --enable-preset-menu or --disable-preset-menu was given.
+if test "${enable_preset_menu+set}" = set; then
+ enableval="$enable_preset_menu"
+ :
+fi
+
+if test "x$enable_preset_menu" = x; then
+ :
+else
+ if test -r $enable_preset_menu; then
+
+# Because early versions of GNU sed 3.x are too buggy, use a C program
+# instead of shell commands. *sigh*
+cat >conftest.c <<\EOF
+#include <stdio.h>
+
+int
+main (void)
+{
+ int c;
+
+ while ((c = getchar ()) != EOF)
+ {
+ switch (c)
+ {
+ case '\n':
+ fputs ("\\n", stdout);
+ break;
+ case '\r':
+ fputs ("\\r", stdout);
+ break;
+ case '\\':
+ fputs ("\\\\", stdout);
+ break;
+ case '"':
+ fputs ("\\\"", stdout);
+ break;
+ default:
+ putchar (c);
+ }
+ }
+
+ return 0;
+}
+EOF
+
+if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'; { (eval echo configure:3072: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest; then
+ grub_tmp_value=`./conftest < "$enable_preset_menu"`
+else
+ { echo "configure: error: ${CC-cc} failed to produce an executable file" 1>&2; exit 1; }
+fi
+
+cat >> confdefs.h <<EOF
+#define PRESET_MENU_STRING "$grub_tmp_value"
+EOF
+
+rm -f conftest*
+
+ else
+ { echo "configure: error: Cannot read the preset menu file $enable_preset_menu" 1>&2; exit 1; }
+ fi
+fi
+
+# Check whether --enable-example-kernel or --disable-example-kernel was given.
+if test "${enable_example_kernel+set}" = set; then
+ enableval="$enable_example_kernel"
+ :
+fi
+
+
+
+if test "x$enable_example_kernel" = xyes; then
+ BUILD_EXAMPLE_KERNEL_TRUE=
+ BUILD_EXAMPLE_KERNEL_FALSE='#'
+else
+ BUILD_EXAMPLE_KERNEL_TRUE='#'
+ BUILD_EXAMPLE_KERNEL_FALSE=
+fi
+
+# Check whether --enable-auto-linux-mem-opt or --disable-auto-linux-mem-opt was given.
+if test "${enable_auto_linux_mem_opt+set}" = set; then
+ enableval="$enable_auto_linux_mem_opt"
+ :
+fi
+
+if test "x$enable_auto_linux_mem_opt" = xno; then
+ :
+else
+ cat >> confdefs.h <<\EOF
+#define AUTO_LINUX_MEM_OPT 1
+EOF
+
+fi
+
+
+
+
+
+
+ASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
+
+
+# Check whether --enable-vga16 or --disable-vga16 was given.
+if test "${enable_vga16+set}" = set; then
+ enableval="$enable_vga16"
+ :
+fi
+
+
+if test x"$enable_vga16" != xno; then
+ STAGE2_CFLAGS="$STAGE2_CFLAGS -DVGA16=1"
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile stage1/Makefile stage2/Makefile docs/Makefile \
+ lib/Makefile util/Makefile grub/Makefile \
+ netboot/Makefile util/grub-image util/grub-install \
+ util/grub-md5-crypt config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@AMTAR@%$AMTAR%g
+s%@install_sh@%$install_sh%g
+s%@INSTALL_STRIP_PROGRAM@%$INSTALL_STRIP_PROGRAM%g
+s%@AWK@%$AWK%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@AMDEP_TRUE@%$AMDEP_TRUE%g
+s%@AMDEP_FALSE@%$AMDEP_FALSE%g
+s%@AMDEPBACKSLASH@%$AMDEPBACKSLASH%g
+s%@DEPDIR@%$DEPDIR%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
+s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
+s%@MAINT@%$MAINT%g
+s%@PERL@%$PERL%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@CC@%$CC%g
+s%@CPP@%$CPP%g
+s%@_am_include@%$_am_include%g
+s%@_am_quote@%$_am_quote%g
+s%@CCDEPMODE@%$CCDEPMODE%g
+s%@AS@%$AS%g
+s%@RANLIB@%$RANLIB%g
+s%@STAGE1_CFLAGS@%$STAGE1_CFLAGS%g
+s%@STAGE2_CFLAGS@%$STAGE2_CFLAGS%g
+s%@GRUB_CFLAGS@%$GRUB_CFLAGS%g
+s%@OBJCOPY@%$OBJCOPY%g
+s%@GRUB_LIBS@%$GRUB_LIBS%g
+s%@NETBOOT_SUPPORT_TRUE@%$NETBOOT_SUPPORT_TRUE%g
+s%@NETBOOT_SUPPORT_FALSE@%$NETBOOT_SUPPORT_FALSE%g
+s%@DISKLESS_SUPPORT_TRUE@%$DISKLESS_SUPPORT_TRUE%g
+s%@DISKLESS_SUPPORT_FALSE@%$DISKLESS_SUPPORT_FALSE%g
+s%@HERCULES_SUPPORT_TRUE@%$HERCULES_SUPPORT_TRUE%g
+s%@HERCULES_SUPPORT_FALSE@%$HERCULES_SUPPORT_FALSE%g
+s%@SERIAL_SUPPORT_TRUE@%$SERIAL_SUPPORT_TRUE%g
+s%@SERIAL_SUPPORT_FALSE@%$SERIAL_SUPPORT_FALSE%g
+s%@SERIAL_SPEED_SIMULATION_TRUE@%$SERIAL_SPEED_SIMULATION_TRUE%g
+s%@SERIAL_SPEED_SIMULATION_FALSE@%$SERIAL_SPEED_SIMULATION_FALSE%g
+s%@BUILD_EXAMPLE_KERNEL_TRUE@%$BUILD_EXAMPLE_KERNEL_TRUE%g
+s%@BUILD_EXAMPLE_KERNEL_FALSE@%$BUILD_EXAMPLE_KERNEL_FALSE%g
+s%@FSYS_CFLAGS@%$FSYS_CFLAGS%g
+s%@NET_CFLAGS@%$NET_CFLAGS%g
+s%@NET_EXTRAFLAGS@%$NET_EXTRAFLAGS%g
+s%@NETBOOT_DRIVERS@%$NETBOOT_DRIVERS%g
+s%@ASFLAGS@%$ASFLAGS%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile stage1/Makefile stage2/Makefile docs/Makefile \
+ lib/Makefile util/Makefile grub/Makefile \
+ netboot/Makefile util/grub-image util/grub-install \
+ util/grub-md5-crypt"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+ CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h. And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+ ac_lines=`grep -c . conftest.vals`
+ # grep -c gives empty output for an empty file on some AIX systems.
+ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+ # Write a limited-size here document to conftest.frag.
+ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+ echo 'CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+ rm -f conftest.vals
+ mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+am_indx=1
+ for am_file in config.h; do
+ case " $CONFIG_HEADERS " in
+ *" $am_file "*)
+ echo timestamp > `echo $am_file | sed 's%:.*%%;s%[^/]*$%%'`stamp-h$am_indx
+ ;;
+ esac
+ am_indx=\`expr \$am_indx + 1\`
+ done
+AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+ case "$mf" in
+ Makefile) dirpart=.;;
+ */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+ *) continue;;
+ esac
+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+ # Extract the definition of DEP_FILES from the Makefile without
+ # running `make'.
+ DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n -e '/^U = / s///p' < "$mf"`
+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+ # We invoke sed twice because it is the simplest approach to
+ # changing $(DEPDIR) to its actual value in the expansion.
+ for file in `sed -n -e '
+ /^DEP_FILES = .*\\\\$/ {
+ s/^DEP_FILES = //
+ :loop
+ s/\\\\$//
+ p
+ n
+ /\\\\$/ b loop
+ p
+ }
+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+ $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-build.patch b/sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-build.patch
new file mode 100644
index 000000000000..8c4b2c835600
--- /dev/null
+++ b/sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-build.patch
@@ -0,0 +1,1454 @@
+diff -urN --exclude-from=xlist-build grub-0.90/configure grub-0.90.jfs+xfs/configure
+--- grub-0.90/configure Fri Jul 6 21:56:44 2001
++++ grub-0.90.jfs+xfs/configure Thu Aug 23 18:21:27 2001
+@@ -32,6 +32,10 @@
+ ac_help="$ac_help
+ --disable-reiserfs disable ReiserFS support in Stage 2"
+ ac_help="$ac_help
++ --disable-jfs disable IBM JFS support in Stage 2"
++ac_help="$ac_help
++ --disable-xfs disable SGI XFS support in Stage 2"
++ac_help="$ac_help
+ --disable-vstafs disable VSTa FS support in Stage 2"
+ ac_help="$ac_help
+ --disable-gunzip disable decompression in Stage 2"
+@@ -675,7 +679,7 @@
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+ echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+-echo "configure:679: checking for a BSD compatible install" >&5
++echo "configure:683: checking for a BSD compatible install" >&5
+ if test -z "$INSTALL"; then
+ if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -728,7 +732,7 @@
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+ echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+-echo "configure:732: checking whether build environment is sane" >&5
++echo "configure:736: checking whether build environment is sane" >&5
+ # Just in case
+ sleep 1
+ echo timestamp > conftest.file
+@@ -800,7 +804,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:804: checking for $ac_word" >&5
++echo "configure:808: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -830,7 +834,7 @@
+ done
+
+ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+-echo "configure:834: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "configure:838: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -960,7 +964,7 @@
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+-echo "configure:964: checking host system type" >&5
++echo "configure:968: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+@@ -994,7 +998,7 @@
+ #
+
+ echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
+-echo "configure:998: checking whether to enable maintainer-specific portions of Makefiles" >&5
++echo "configure:1002: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+ if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+@@ -1020,7 +1024,7 @@
+ # Extract the first word of "perl", so it can be a program name with args.
+ set dummy perl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1024: checking for $ac_word" >&5
++echo "configure:1028: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1067,7 +1071,7 @@
+ #
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+-echo "configure:1071: checking build system type" >&5
++echo "configure:1075: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+@@ -1093,7 +1097,7 @@
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1097: checking for $ac_word" >&5
++echo "configure:1101: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1125,7 +1129,7 @@
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1129: checking for $ac_word" >&5
++echo "configure:1133: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1155,7 +1159,7 @@
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1159: checking for $ac_word" >&5
++echo "configure:1163: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1206,7 +1210,7 @@
+ # Extract the first word of "cl", so it can be a program name with args.
+ set dummy cl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1210: checking for $ac_word" >&5
++echo "configure:1214: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1238,7 +1242,7 @@
+ fi
+
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:1242: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:1246: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -1249,12 +1253,12 @@
+
+ cat > conftest.$ac_ext << EOF
+
+-#line 1253 "configure"
++#line 1257 "configure"
+ #include "confdefs.h"
+
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:1258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+@@ -1280,12 +1284,12 @@
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:1284: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:1288: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:1289: checking whether we are using GNU C" >&5
++echo "configure:1293: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1294,7 +1298,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+ else
+ ac_cv_prog_gcc=no
+@@ -1313,7 +1317,7 @@
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:1317: checking whether ${CC-cc} accepts -g" >&5
++echo "configure:1321: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1346,7 +1350,7 @@
+
+
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1350: checking how to run the C preprocessor" >&5
++echo "configure:1354: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+@@ -1361,13 +1365,13 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+-#line 1365 "configure"
++#line 1369 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1378,13 +1382,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+-#line 1382 "configure"
++#line 1386 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1395,13 +1399,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 1399 "configure"
++#line 1403 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1432,7 +1436,7 @@
+ END
+ # If we don't find an include directive, just comment out the code.
+ echo $ac_n "checking for style of include used by $am_make""... $ac_c" 1>&6
+-echo "configure:1436: checking for style of include used by $am_make" >&5
++echo "configure:1440: checking for style of include used by $am_make" >&5
+ _am_include='#'
+ _am_quote=
+ _am_result=none
+@@ -1471,7 +1475,7 @@
+
+
+ echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
+-echo "configure:1475: checking dependency style of $depcc" >&5
++echo "configure:1479: checking dependency style of $depcc" >&5
+ if eval "test \"`echo '$''{'am_cv_CC_dependencies_compiler_type'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1550,7 +1554,7 @@
+ # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1554: checking for $ac_word" >&5
++echo "configure:1558: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1587,7 +1591,7 @@
+ # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1591: checking for $ac_word" >&5
++echo "configure:1595: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1627,7 +1631,7 @@
+ STAGE1_CFLAGS="-O2"
+ GRUB_CFLAGS="-O2"
+ echo $ac_n "checking whether optimization for size works""... $ac_c" 1>&6
+-echo "configure:1631: checking whether optimization for size works" >&5
++echo "configure:1635: checking whether optimization for size works" >&5
+ if eval "test \"`echo '$''{'size_flag'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1635,14 +1639,14 @@
+ saved_CFLAGS=$CFLAGS
+ CFLAGS="-Os -g"
+ cat > conftest.$ac_ext <<EOF
+-#line 1639 "configure"
++#line 1643 "configure"
+ #include "confdefs.h"
+
+ int main() {
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ size_flag=yes
+ else
+@@ -1674,7 +1678,7 @@
+ CPPFLAGS="$CPPFLAGS -Wpointer-arith"
+
+ echo $ac_n "checking whether -Wundef works""... $ac_c" 1>&6
+-echo "configure:1678: checking whether -Wundef works" >&5
++echo "configure:1682: checking whether -Wundef works" >&5
+ if eval "test \"`echo '$''{'undef_flag'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1682,14 +1686,14 @@
+ saved_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="-Wundef"
+ cat > conftest.$ac_ext <<EOF
+-#line 1686 "configure"
++#line 1690 "configure"
+ #include "confdefs.h"
+
+ int main() {
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ undef_flag=yes
+ else
+@@ -1716,7 +1720,7 @@
+ # Extract the first word of "objcopy", so it can be a program name with args.
+ set dummy objcopy; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1720: checking for $ac_word" >&5
++echo "configure:1724: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1752,7 +1756,7 @@
+ # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}objcopy; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1756: checking for $ac_word" >&5
++echo "configure:1760: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1786,7 +1790,7 @@
+ # Defined in acinclude.m4.
+
+ echo $ac_n "checking if C symbols get an underscore after compilation""... $ac_c" 1>&6
+-echo "configure:1790: checking if C symbols get an underscore after compilation" >&5
++echo "configure:1794: checking if C symbols get an underscore after compilation" >&5
+ if eval "test \"`echo '$''{'grub_cv_asm_uscore'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1799,7 +1803,7 @@
+ }
+ EOF
+
+-if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1803: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.s; then
++if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1807: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.s; then
+ true
+ else
+ { echo "configure: error: ${CC-cc} failed to produce assembly code" 1>&2; exit 1; }
+@@ -1825,7 +1829,7 @@
+ echo "$ac_t""$grub_cv_asm_uscore" 1>&6
+
+ echo $ac_n "checking whether ${OBJCOPY} works for absolute addresses""... $ac_c" 1>&6
+-echo "configure:1829: checking whether ${OBJCOPY} works for absolute addresses" >&5
++echo "configure:1833: checking whether ${OBJCOPY} works for absolute addresses" >&5
+ if eval "test \"`echo '$''{'grub_cv_prog_objcopy_absolute'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1837,21 +1841,21 @@
+ }
+ EOF
+
+-if { (eval echo configure:1841: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
++if { (eval echo configure:1845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
+ else
+ { echo "configure: error: ${CC-cc} cannot compile C source code" 1>&2; exit 1; }
+ 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'; { (eval echo configure:1847: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
++ if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec'; { (eval echo configure:1851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
+ else
+ { echo "configure: error: ${CC-cc} cannot link at address $link_addr" 1>&2; exit 1; }
+ fi
+- if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
++ if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
+ else
+ { echo "configure: error: ${OBJCOPY-objcopy} cannot create binary files" 1>&2; exit 1; }
+ fi
+- if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'; { (eval echo configure:1855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
++ if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'; { (eval echo configure:1859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ mv -f conftest conftest.old
+ else
+ grub_cv_prog_objcopy_absolute=no
+@@ -1868,7 +1872,7 @@
+
+
+ echo $ac_n "checking whether addr32 must be in the same line as the instruction""... $ac_c" 1>&6
+-echo "configure:1872: checking whether addr32 must be in the same line as the instruction" >&5
++echo "configure:1876: checking whether addr32 must be in the same line as the instruction" >&5
+ if eval "test \"`echo '$''{'grub_cv_asm_prefix_requirement'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1877,7 +1881,7 @@
+ l1: addr32 movb %al, l1
+ EOF
+
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1881: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
++if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
+ grub_cv_asm_prefix_requirement=yes
+ else
+ grub_cv_asm_prefix_requirement=no
+@@ -1909,7 +1913,7 @@
+
+
+ echo $ac_n "checking for .code16 addr32 assembler support""... $ac_c" 1>&6
+-echo "configure:1913: checking for .code16 addr32 assembler support" >&5
++echo "configure:1917: checking for .code16 addr32 assembler support" >&5
+ if eval "test \"`echo '$''{'grub_cv_asm_addr32'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1924,7 +1928,7 @@
+ sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
+ fi
+
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1928: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
++if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
+ grub_cv_asm_addr32=yes
+ else
+ grub_cv_asm_addr32=no
+@@ -1941,7 +1945,7 @@
+
+
+ echo $ac_n "checking whether an absolute indirect call/jump must not be prefixed with an asterisk""... $ac_c" 1>&6
+-echo "configure:1945: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
++echo "configure:1949: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
+ if eval "test \"`echo '$''{'grub_cv_asm_absolute_without_asterisk'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1952,7 +1956,7 @@
+ .word 0
+ EOF
+
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
++if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1960: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
+ grub_cv_asm_absolute_without_asterisk=no
+ else
+ grub_cv_asm_absolute_without_asterisk=yes
+@@ -1973,19 +1977,19 @@
+
+
+ echo $ac_n "checking if start is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:1977: checking if start is defined by the compiler" >&5
++echo "configure:1981: checking if start is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_start_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1982 "configure"
++#line 1986 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl start")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_start_symbol=yes
+ else
+@@ -2009,19 +2013,19 @@
+
+
+ echo $ac_n "checking if _start is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:2013: checking if _start is defined by the compiler" >&5
++echo "configure:2017: checking if _start is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_uscore_start_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2018 "configure"
++#line 2022 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl _start")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_start_symbol=yes
+ else
+@@ -2050,19 +2054,19 @@
+
+
+ echo $ac_n "checking if __bss_start is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:2054: checking if __bss_start is defined by the compiler" >&5
++echo "configure:2058: checking if __bss_start is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_uscore_uscore_bss_start_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2059 "configure"
++#line 2063 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl __bss_start")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_uscore_bss_start_symbol=yes
+ else
+@@ -2086,19 +2090,19 @@
+
+
+ echo $ac_n "checking if _edata is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:2090: checking if _edata is defined by the compiler" >&5
++echo "configure:2094: checking if _edata is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_uscore_edata_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2095 "configure"
++#line 2099 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl _edata")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_edata_symbol=yes
+ else
+@@ -2122,19 +2126,19 @@
+
+
+ echo $ac_n "checking if edata is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:2126: checking if edata is defined by the compiler" >&5
++echo "configure:2130: checking if edata is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_edata_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2131 "configure"
++#line 2135 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl edata")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_edata_symbol=yes
+ else
+@@ -2164,19 +2168,19 @@
+
+
+ echo $ac_n "checking if end is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:2168: checking if end is defined by the compiler" >&5
++echo "configure:2172: checking if end is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_end_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2173 "configure"
++#line 2177 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl end")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_end_symbol=yes
+ else
+@@ -2200,19 +2204,19 @@
+
+
+ echo $ac_n "checking if _end is defined by the compiler""... $ac_c" 1>&6
+-echo "configure:2204: checking if _end is defined by the compiler" >&5
++echo "configure:2208: checking if _end is defined by the compiler" >&5
+ if eval "test \"`echo '$''{'grub_cv_check_uscore_end_symbol'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2209 "configure"
++#line 2213 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ asm ("incl _end")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ grub_cv_check_uscore_end_symbol=yes
+ else
+@@ -2250,7 +2254,7 @@
+ # Get the filename or the whole disk and open it.
+ # Known to work on NetBSD.
+ echo $ac_n "checking for opendisk in -lutil""... $ac_c" 1>&6
+-echo "configure:2254: checking for opendisk in -lutil" >&5
++echo "configure:2258: checking for opendisk in -lutil" >&5
+ ac_lib_var=`echo util'_'opendisk | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2258,7 +2262,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lutil $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2262 "configure"
++#line 2266 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -2269,7 +2273,7 @@
+ opendisk()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2297,7 +2301,7 @@
+ # Unless the user specify --without-curses, check for curses.
+ if test "x$with_curses" != "xno"; then
+ echo $ac_n "checking for wgetch in -lncurses""... $ac_c" 1>&6
+-echo "configure:2301: checking for wgetch in -lncurses" >&5
++echo "configure:2305: checking for wgetch in -lncurses" >&5
+ ac_lib_var=`echo ncurses'_'wgetch | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2305,7 +2309,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lncurses $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2309 "configure"
++#line 2313 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -2316,7 +2320,7 @@
+ wgetch()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2339,7 +2343,7 @@
+ else
+ echo "$ac_t""no" 1>&6
+ echo $ac_n "checking for wgetch in -lcurses""... $ac_c" 1>&6
+-echo "configure:2343: checking for wgetch in -lcurses" >&5
++echo "configure:2347: checking for wgetch in -lcurses" >&5
+ ac_lib_var=`echo curses'_'wgetch | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2347,7 +2351,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lcurses $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2351 "configure"
++#line 2355 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -2358,7 +2362,7 @@
+ wgetch()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2393,17 +2397,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2397: checking for $ac_hdr" >&5
++echo "configure:2401: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2402 "configure"
++#line 2406 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2488,6 +2492,28 @@
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
+ fi
+
++# Check whether --enable-jfs or --disable-jfs was given.
++if test "${enable_jfs+set}" = set; then
++ enableval="$enable_jfs"
++ :
++fi
++
++
++if test x"$enable_jfs" != xno; then
++ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
++fi
++
++# Check whether --enable-xfs or --disable-xfs was given.
++if test "${enable_xfs+set}" = set; then
++ enableval="$enable_xfs"
++ :
++fi
++
++
++if test x"$enable_xfs" != xno; then
++ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
++fi
++
+ # Check whether --enable-vstafs or --disable-vstafs was given.
+ if test "${enable_vstafs+set}" = set; then
+ enableval="$enable_vstafs"
+@@ -3039,7 +3065,7 @@
+ }
+ EOF
+
+-if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'; { (eval echo configure:3043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest; then
++if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'; { (eval echo configure:3069: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest; then
+ grub_tmp_value=`./conftest < "$enable_preset_menu"`
+ else
+ { echo "configure: error: ${CC-cc} failed to produce an executable file" 1>&2; exit 1; }
+diff -urN --exclude-from=xlist-build grub-0.90/docs/Makefile.in grub-0.90.jfs+xfs/docs/Makefile.in
+--- grub-0.90/docs/Makefile.in Thu Jul 5 15:29:56 2001
++++ grub-0.90.jfs+xfs/docs/Makefile.in Thu Aug 23 18:21:23 2001
+@@ -284,11 +284,11 @@
+ done
+
+ mostlyclean-aminfo:
+- -rm -f grub.aux grub.cp grub.cps grub.dvi grub.fn grub.ky grub.log grub.pg \
+- grub.ps grub.toc grub.tp grub.vr multiboot.aux multiboot.cp \
+- multiboot.cps multiboot.dvi multiboot.fn multiboot.ky \
+- multiboot.log multiboot.pg multiboot.ps multiboot.toc \
+- multiboot.tp multiboot.vr
++ -rm -f grub.aux grub.cp grub.dvi grub.fn grub.ky grub.log grub.pg grub.ps \
++ grub.toc grub.tp grub.vr multiboot.aux multiboot.cp \
++ multiboot.dvi multiboot.fn multiboot.ky multiboot.log \
++ multiboot.pg multiboot.ps multiboot.toc multiboot.tp \
++ multiboot.vr
+
+ maintainer-clean-aminfo:
+ cd $(srcdir) && \
+diff -urN --exclude-from=xlist-build grub-0.90/stage2/Makefile.in grub-0.90.jfs+xfs/stage2/Makefile.in
+--- grub-0.90/stage2/Makefile.in Wed Jul 4 11:33:48 2001
++++ grub-0.90.jfs+xfs/stage2/Makefile.in Thu Aug 23 18:21:23 2001
+@@ -93,7 +93,7 @@
+
+ # For dist target.
+ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
+- fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
++ fat.h jfs.h xfs.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+ imgact_aout.h mb_header.h mb_info.h md5.h pc_slice.h serial.h \
+ shared.h smp-imps.h nbi.h vstafs.h
+
+@@ -106,32 +106,37 @@
+ noinst_LIBRARIES = libgrub.a
+ libgrub_a_SOURCES = boot.c builtins.c common.c char_io.c cmdline.c \
+ disk_io.c gunzip.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c \
+- fsys_minix.c fsys_reiserfs.c fsys_vstafs.c stage2.c md5.c
++ fsys_minix.c fsys_reiserfs.c fsys_jfs.c fsys_xfs.c fsys_vstafs.c \
++ stage2.c md5.c
+
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+- -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_VSTAFS=1 \
+- -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
++ -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \
++ -DFSYS_VSTAFS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \
++ -fwritable-strings
+
+
+ EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
+
+ @DISKLESS_SUPPORT_TRUE@pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
+-@DISKLESS_SUPPORT_TRUE@ minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 nbgrub pxegrub
++@DISKLESS_SUPPORT_TRUE@ minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
++@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5 nbgrub pxegrub
+
+ @DISKLESS_SUPPORT_FALSE@pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
+-@DISKLESS_SUPPORT_FALSE@ minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5
++@DISKLESS_SUPPORT_FALSE@ minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
++@DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5
+
+ @DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start nbloader pxeloader diskless
+ @DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start
+ @DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
+ @DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
+-@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec vstafs_stage1_5.exec nbloader.exec \
+-@DISKLESS_SUPPORT_TRUE@ pxeloader.exec diskless.exec
++@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
++@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
+
+ @DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
+ @DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
+-@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec vstafs_stage1_5.exec
++@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
++@DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5.exec
+
+ MOSTLYCLEANFILES = $(noinst_PROGRAMS)
+
+@@ -160,7 +165,8 @@
+ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c common.c \
+ char_io.c cmdline.c disk_io.c gunzip.c fsys_ext2fs.c \
+ fsys_fat.c fsys_ffs.c fsys_minix.c fsys_reiserfs.c \
+- fsys_vstafs.c hercules.c serial.c smp-imps.c stage2.c md5.c
++ fsys_jfs.c fsys_xfs.c fsys_vstafs.c hercules.c serial.c \
++ smp-imps.c stage2.c md5.c
+
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_ASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+@@ -237,6 +243,30 @@
+
+ reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
++# For jfs_stage1_5 target.
++jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++ disk_io.c stage1_5.c fsys_jfs.c bios.c
++
++jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++ -DNO_BLOCK_FILES=1
++
++jfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++ -DNO_BLOCK_FILES=1
++
++jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For xfs_stage1_5 target.
++xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++ disk_io.c stage1_5.c fsys_xfs.c bios.c
++
++xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++ -DNO_BLOCK_FILES=1
++
++xfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++ -DNO_BLOCK_FILES=1
++
++xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
+ # For vstafs_stage1_5 target.
+ vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+ disk_io.c stage1_5.c fsys_vstafs.c bios.c
+@@ -285,21 +315,23 @@
+ libgrub_a-disk_io.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \
+ libgrub_a-fsys_ffs.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
+ libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_minix.$(OBJEXT) \
+- libgrub_a-fsys_reiserfs.$(OBJEXT) \
+- libgrub_a-fsys_vstafs.$(OBJEXT) libgrub_a-stage2.$(OBJEXT) \
+- libgrub_a-md5.$(OBJEXT)
++ libgrub_a-fsys_reiserfs.$(OBJEXT) libgrub_a-fsys_jfs.$(OBJEXT) \
++ libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-fsys_vstafs.$(OBJEXT) \
++ libgrub_a-stage2.$(OBJEXT) libgrub_a-md5.$(OBJEXT)
+ libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS)
+ EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
+ @DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec \
+ @DISKLESS_SUPPORT_TRUE@ e2fs_stage1_5.exec fat_stage1_5.exec \
+ @DISKLESS_SUPPORT_TRUE@ ffs_stage1_5.exec minix_stage1_5.exec \
+-@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec \
+-@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5.exec nbloader.exec \
+-@DISKLESS_SUPPORT_TRUE@ pxeloader.exec diskless.exec
++@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec jfs_stage1_5.exec \
++@DISKLESS_SUPPORT_TRUE@ xfs_stage1_5.exec vstafs_stage1_5.exec \
++@DISKLESS_SUPPORT_TRUE@ nbloader.exec pxeloader.exec \
++@DISKLESS_SUPPORT_TRUE@ diskless.exec
+ @DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec start.exec \
+ @DISKLESS_SUPPORT_FALSE@ e2fs_stage1_5.exec fat_stage1_5.exec \
+ @DISKLESS_SUPPORT_FALSE@ ffs_stage1_5.exec minix_stage1_5.exec \
+ @DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec \
++@DISKLESS_SUPPORT_FALSE@ jfs_stage1_5.exec xfs_stage1_5.exec \
+ @DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5.exec
+ PROGRAMS = $(noinst_PROGRAMS)
+
+@@ -313,6 +345,8 @@
+ diskless_exec-fsys_ffs.$(OBJEXT) \
+ diskless_exec-fsys_minix.$(OBJEXT) \
+ diskless_exec-fsys_reiserfs.$(OBJEXT) \
++ diskless_exec-fsys_jfs.$(OBJEXT) \
++ diskless_exec-fsys_xfs.$(OBJEXT) \
+ diskless_exec-fsys_vstafs.$(OBJEXT) \
+ diskless_exec-hercules.$(OBJEXT) diskless_exec-serial.$(OBJEXT) \
+ diskless_exec-smp-imps.$(OBJEXT) diskless_exec-stage2.$(OBJEXT) \
+@@ -352,6 +386,17 @@
+ ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
+ ffs_stage1_5_exec_LDADD = $(LDADD)
+ ffs_stage1_5_exec_DEPENDENCIES =
++am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
++ jfs_stage1_5_exec-asm.$(OBJEXT) \
++ jfs_stage1_5_exec-common.$(OBJEXT) \
++ jfs_stage1_5_exec-char_io.$(OBJEXT) \
++ jfs_stage1_5_exec-disk_io.$(OBJEXT) \
++ jfs_stage1_5_exec-stage1_5.$(OBJEXT) \
++ jfs_stage1_5_exec-fsys_jfs.$(OBJEXT) \
++ jfs_stage1_5_exec-bios.$(OBJEXT)
++jfs_stage1_5_exec_OBJECTS = $(am_jfs_stage1_5_exec_OBJECTS)
++jfs_stage1_5_exec_LDADD = $(LDADD)
++jfs_stage1_5_exec_DEPENDENCIES =
+ am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \
+ minix_stage1_5_exec-asm.$(OBJEXT) \
+ minix_stage1_5_exec-common.$(OBJEXT) \
+@@ -380,6 +425,8 @@
+ pre_stage2_exec-fsys_ffs.$(OBJEXT) \
+ pre_stage2_exec-fsys_minix.$(OBJEXT) \
+ pre_stage2_exec-fsys_reiserfs.$(OBJEXT) \
++ pre_stage2_exec-fsys_jfs.$(OBJEXT) \
++ pre_stage2_exec-fsys_xfs.$(OBJEXT) \
+ pre_stage2_exec-fsys_vstafs.$(OBJEXT) \
+ pre_stage2_exec-hercules.$(OBJEXT) \
+ pre_stage2_exec-serial.$(OBJEXT) \
+@@ -420,6 +467,17 @@
+ vstafs_stage1_5_exec_OBJECTS = $(am_vstafs_stage1_5_exec_OBJECTS)
+ vstafs_stage1_5_exec_LDADD = $(LDADD)
+ vstafs_stage1_5_exec_DEPENDENCIES =
++am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \
++ xfs_stage1_5_exec-asm.$(OBJEXT) \
++ xfs_stage1_5_exec-common.$(OBJEXT) \
++ xfs_stage1_5_exec-char_io.$(OBJEXT) \
++ xfs_stage1_5_exec-disk_io.$(OBJEXT) \
++ xfs_stage1_5_exec-stage1_5.$(OBJEXT) \
++ xfs_stage1_5_exec-fsys_xfs.$(OBJEXT) \
++ xfs_stage1_5_exec-bios.$(OBJEXT)
++xfs_stage1_5_exec_OBJECTS = $(am_xfs_stage1_5_exec_OBJECTS)
++xfs_stage1_5_exec_LDADD = $(LDADD)
++xfs_stage1_5_exec_DEPENDENCIES =
+ SCRIPTS = $(noinst_SCRIPTS)
+
+
+@@ -439,9 +497,11 @@
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_ext2fs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_fat.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_ffs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_jfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_minix.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_reiserfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_vstafs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/diskless_exec-fsys_xfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-gunzip.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-hercules.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/diskless_exec-md5.Po \
+@@ -466,6 +526,12 @@
+ @AMDEP_TRUE@ $(DEPDIR)/ffs_stage1_5_exec-disk_io.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po \
++@AMDEP_TRUE@ $(DEPDIR)/jfs_stage1_5_exec-bios.Po \
++@AMDEP_TRUE@ $(DEPDIR)/jfs_stage1_5_exec-char_io.Po \
++@AMDEP_TRUE@ $(DEPDIR)/jfs_stage1_5_exec-common.Po \
++@AMDEP_TRUE@ $(DEPDIR)/jfs_stage1_5_exec-disk_io.Po \
++@AMDEP_TRUE@ $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-boot.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-builtins.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-char_io.Po \
+@@ -475,9 +541,11 @@
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_ext2fs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_fat.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_ffs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_jfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_minix.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_reiserfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_vstafs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/libgrub_a-fsys_xfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-gunzip.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-md5.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/libgrub_a-stage2.Po \
+@@ -497,9 +565,11 @@
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_fat.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_ffs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_jfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_minix.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-fsys_xfs.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-gunzip.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-hercules.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/pre_stage2_exec-md5.Po \
+@@ -517,7 +587,13 @@
+ @AMDEP_TRUE@ $(DEPDIR)/vstafs_stage1_5_exec-common.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po \
+ @AMDEP_TRUE@ $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po \
+-@AMDEP_TRUE@ $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po
++@AMDEP_TRUE@ $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po \
++@AMDEP_TRUE@ $(DEPDIR)/xfs_stage1_5_exec-bios.Po \
++@AMDEP_TRUE@ $(DEPDIR)/xfs_stage1_5_exec-char_io.Po \
++@AMDEP_TRUE@ $(DEPDIR)/xfs_stage1_5_exec-common.Po \
++@AMDEP_TRUE@ $(DEPDIR)/xfs_stage1_5_exec-disk_io.Po \
++@AMDEP_TRUE@ $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po \
++@AMDEP_TRUE@ $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po
+ ASCOMPILE = $(AS) $(AM_ASFLAGS) $(ASFLAGS)
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@@ -526,16 +602,17 @@
+ CFLAGS = @CFLAGS@
+ DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
+ $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
+- $(ffs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
+- $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
+- $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
+- $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES)
++ $(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) \
++ $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) \
++ $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) \
++ $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) \
++ $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
+ DATA = $(noinst_DATA) $(pkgdata_DATA)
+
+ HEADERS = $(noinst_HEADERS)
+
+ DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in compile
+-SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES)
++SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
+
+ all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+@@ -566,6 +643,8 @@
+ libgrub_a-fsys_fat.$(OBJEXT): fsys_fat.c
+ libgrub_a-fsys_minix.$(OBJEXT): fsys_minix.c
+ libgrub_a-fsys_reiserfs.$(OBJEXT): fsys_reiserfs.c
++libgrub_a-fsys_jfs.$(OBJEXT): fsys_jfs.c
++libgrub_a-fsys_xfs.$(OBJEXT): fsys_xfs.c
+ libgrub_a-fsys_vstafs.$(OBJEXT): fsys_vstafs.c
+ libgrub_a-stage2.$(OBJEXT): stage2.c
+ libgrub_a-md5.$(OBJEXT): md5.c
+@@ -590,6 +669,8 @@
+ diskless_exec-fsys_ffs.$(OBJEXT): fsys_ffs.c
+ diskless_exec-fsys_minix.$(OBJEXT): fsys_minix.c
+ diskless_exec-fsys_reiserfs.$(OBJEXT): fsys_reiserfs.c
++diskless_exec-fsys_jfs.$(OBJEXT): fsys_jfs.c
++diskless_exec-fsys_xfs.$(OBJEXT): fsys_xfs.c
+ diskless_exec-fsys_vstafs.$(OBJEXT): fsys_vstafs.c
+ diskless_exec-hercules.$(OBJEXT): hercules.c
+ diskless_exec-serial.$(OBJEXT): serial.c
+@@ -632,6 +713,17 @@
+ ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES)
+ @rm -f ffs_stage1_5.exec$(EXEEXT)
+ $(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
++jfs_stage1_5_exec-start.$(OBJEXT): start.S
++jfs_stage1_5_exec-asm.$(OBJEXT): asm.S
++jfs_stage1_5_exec-common.$(OBJEXT): common.c
++jfs_stage1_5_exec-char_io.$(OBJEXT): char_io.c
++jfs_stage1_5_exec-disk_io.$(OBJEXT): disk_io.c
++jfs_stage1_5_exec-stage1_5.$(OBJEXT): stage1_5.c
++jfs_stage1_5_exec-fsys_jfs.$(OBJEXT): fsys_jfs.c
++jfs_stage1_5_exec-bios.$(OBJEXT): bios.c
++jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES)
++ @rm -f jfs_stage1_5.exec$(EXEEXT)
++ $(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
+ minix_stage1_5_exec-start.$(OBJEXT): start.S
+ minix_stage1_5_exec-asm.$(OBJEXT): asm.S
+ minix_stage1_5_exec-common.$(OBJEXT): common.c
+@@ -661,6 +753,8 @@
+ pre_stage2_exec-fsys_ffs.$(OBJEXT): fsys_ffs.c
+ pre_stage2_exec-fsys_minix.$(OBJEXT): fsys_minix.c
+ pre_stage2_exec-fsys_reiserfs.$(OBJEXT): fsys_reiserfs.c
++pre_stage2_exec-fsys_jfs.$(OBJEXT): fsys_jfs.c
++pre_stage2_exec-fsys_xfs.$(OBJEXT): fsys_xfs.c
+ pre_stage2_exec-fsys_vstafs.$(OBJEXT): fsys_vstafs.c
+ pre_stage2_exec-hercules.$(OBJEXT): hercules.c
+ pre_stage2_exec-serial.$(OBJEXT): serial.c
+@@ -700,6 +794,17 @@
+ vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES)
+ @rm -f vstafs_stage1_5.exec$(EXEEXT)
+ $(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
++xfs_stage1_5_exec-start.$(OBJEXT): start.S
++xfs_stage1_5_exec-asm.$(OBJEXT): asm.S
++xfs_stage1_5_exec-common.$(OBJEXT): common.c
++xfs_stage1_5_exec-char_io.$(OBJEXT): char_io.c
++xfs_stage1_5_exec-disk_io.$(OBJEXT): disk_io.c
++xfs_stage1_5_exec-stage1_5.$(OBJEXT): stage1_5.c
++xfs_stage1_5_exec-fsys_xfs.$(OBJEXT): fsys_xfs.c
++xfs_stage1_5_exec-bios.$(OBJEXT): bios.c
++xfs_stage1_5.exec$(EXEEXT): $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_DEPENDENCIES)
++ @rm -f xfs_stage1_5.exec$(EXEEXT)
++ $(LINK) $(xfs_stage1_5_exec_LDFLAGS) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS)
+
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+@@ -717,9 +822,11 @@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_ext2fs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_fat.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_ffs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_jfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_minix.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_reiserfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_vstafs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_xfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-gunzip.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-hercules.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-md5.Po@_am_quote@
+@@ -744,6 +851,12 @@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-bios.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-char_io.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-common.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-boot.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-builtins.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-char_io.Po@_am_quote@
+@@ -753,9 +866,11 @@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_ext2fs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_fat.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_ffs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_jfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_minix.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_reiserfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_vstafs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_xfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-gunzip.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-md5.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-stage2.Po@_am_quote@
+@@ -775,9 +890,11 @@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_fat.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_minix.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-gunzip.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-hercules.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-md5.Po@_am_quote@
+@@ -796,6 +913,12 @@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po@_am_quote@
+ @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-bios.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-char_io.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-common.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po@_am_quote@
++@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po@_am_quote@
+
+ distclean-depend:
+ -rm -rf $(DEPDIR)
+@@ -848,6 +971,18 @@
+ ffs_stage1_5_exec-asm.obj: asm.S
+ $(AS) $(ffs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `cygpath -w asm.S`
+
++jfs_stage1_5_exec-start.o: start.S
++ $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
++
++jfs_stage1_5_exec-start.obj: start.S
++ $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-start.obj `cygpath -w start.S`
++
++jfs_stage1_5_exec-asm.o: asm.S
++ $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f asm.S || echo '$(srcdir)/'`asm.S
++
++jfs_stage1_5_exec-asm.obj: asm.S
++ $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-asm.obj `cygpath -w asm.S`
++
+ minix_stage1_5_exec-start.o: start.S
+ $(AS) $(minix_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
+
+@@ -908,6 +1043,18 @@
+ vstafs_stage1_5_exec-asm.obj: asm.S
+ $(AS) $(vstafs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o vstafs_stage1_5_exec-asm.obj `cygpath -w asm.S`
+
++xfs_stage1_5_exec-start.o: start.S
++ $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
++
++xfs_stage1_5_exec-start.obj: start.S
++ $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-start.obj `cygpath -w start.S`
++
++xfs_stage1_5_exec-asm.o: asm.S
++ $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f asm.S || echo '$(srcdir)/'`asm.S
++
++xfs_stage1_5_exec-asm.obj: asm.S
++ $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-asm.obj `cygpath -w asm.S`
++
+ .c.o:
+ @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@@ -1064,6 +1211,30 @@
+ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.obj `cygpath -w fsys_reiserfs.c`
+
++libgrub_a-fsys_jfs.o: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='libgrub_a-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/libgrub_a-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
++
++libgrub_a-fsys_jfs.obj: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='libgrub_a-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/libgrub_a-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.obj `cygpath -w fsys_jfs.c`
++
++libgrub_a-fsys_xfs.o: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='libgrub_a-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/libgrub_a-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
++
++libgrub_a-fsys_xfs.obj: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='libgrub_a-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/libgrub_a-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.obj `cygpath -w fsys_xfs.c`
++
+ libgrub_a-fsys_vstafs.o: fsys_vstafs.c
+ @AMDEP_TRUE@ source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@ depfile='$(DEPDIR)/libgrub_a-fsys_vstafs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_vstafs.TPo' @AMDEPBACKSLASH@
+@@ -1256,6 +1427,30 @@
+ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.obj `cygpath -w fsys_reiserfs.c`
+
++diskless_exec-fsys_jfs.o: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='diskless_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/diskless_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
++
++diskless_exec-fsys_jfs.obj: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='diskless_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/diskless_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.obj `cygpath -w fsys_jfs.c`
++
++diskless_exec-fsys_xfs.o: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='diskless_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/diskless_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
++
++diskless_exec-fsys_xfs.obj: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='diskless_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/diskless_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.obj `cygpath -w fsys_xfs.c`
++
+ diskless_exec-fsys_vstafs.o: fsys_vstafs.c
+ @AMDEP_TRUE@ source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@ depfile='$(DEPDIR)/diskless_exec-fsys_vstafs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_vstafs.TPo' @AMDEPBACKSLASH@
+@@ -1544,6 +1739,78 @@
+ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.obj `cygpath -w bios.c`
+
++jfs_stage1_5_exec-common.o: common.c
++@AMDEP_TRUE@ source='common.c' object='jfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.o `test -f common.c || echo '$(srcdir)/'`common.c
++
++jfs_stage1_5_exec-common.obj: common.c
++@AMDEP_TRUE@ source='common.c' object='jfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.obj `cygpath -w common.c`
++
++jfs_stage1_5_exec-char_io.o: char_io.c
++@AMDEP_TRUE@ source='char_io.c' object='jfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.o `test -f char_io.c || echo '$(srcdir)/'`char_io.c
++
++jfs_stage1_5_exec-char_io.obj: char_io.c
++@AMDEP_TRUE@ source='char_io.c' object='jfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.obj `cygpath -w char_io.c`
++
++jfs_stage1_5_exec-disk_io.o: disk_io.c
++@AMDEP_TRUE@ source='disk_io.c' object='jfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.o `test -f disk_io.c || echo '$(srcdir)/'`disk_io.c
++
++jfs_stage1_5_exec-disk_io.obj: disk_io.c
++@AMDEP_TRUE@ source='disk_io.c' object='jfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.obj `cygpath -w disk_io.c`
++
++jfs_stage1_5_exec-stage1_5.o: stage1_5.c
++@AMDEP_TRUE@ source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.o `test -f stage1_5.c || echo '$(srcdir)/'`stage1_5.c
++
++jfs_stage1_5_exec-stage1_5.obj: stage1_5.c
++@AMDEP_TRUE@ source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.obj `cygpath -w stage1_5.c`
++
++jfs_stage1_5_exec-fsys_jfs.o: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
++
++jfs_stage1_5_exec-fsys_jfs.obj: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.obj `cygpath -w fsys_jfs.c`
++
++jfs_stage1_5_exec-bios.o: bios.c
++@AMDEP_TRUE@ source='bios.c' object='jfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.o `test -f bios.c || echo '$(srcdir)/'`bios.c
++
++jfs_stage1_5_exec-bios.obj: bios.c
++@AMDEP_TRUE@ source='bios.c' object='jfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/jfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.obj `cygpath -w bios.c`
++
+ minix_stage1_5_exec-common.o: common.c
+ @AMDEP_TRUE@ source='common.c' object='minix_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@ depfile='$(DEPDIR)/minix_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/minix_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
+@@ -1772,6 +2039,30 @@
+ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.obj `cygpath -w fsys_reiserfs.c`
+
++pre_stage2_exec-fsys_jfs.o: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
++
++pre_stage2_exec-fsys_jfs.obj: fsys_jfs.c
++@AMDEP_TRUE@ source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.obj `cygpath -w fsys_jfs.c`
++
++pre_stage2_exec-fsys_xfs.o: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
++
++pre_stage2_exec-fsys_xfs.obj: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.obj `cygpath -w fsys_xfs.c`
++
+ pre_stage2_exec-fsys_vstafs.o: fsys_vstafs.c
+ @AMDEP_TRUE@ source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_vstafs.TPo' @AMDEPBACKSLASH@
+@@ -1987,6 +2278,78 @@
+ @AMDEP_TRUE@ depfile='$(DEPDIR)/vstafs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/vstafs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
+ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.obj `cygpath -w bios.c`
++
++xfs_stage1_5_exec-common.o: common.c
++@AMDEP_TRUE@ source='common.c' object='xfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.o `test -f common.c || echo '$(srcdir)/'`common.c
++
++xfs_stage1_5_exec-common.obj: common.c
++@AMDEP_TRUE@ source='common.c' object='xfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.obj `cygpath -w common.c`
++
++xfs_stage1_5_exec-char_io.o: char_io.c
++@AMDEP_TRUE@ source='char_io.c' object='xfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.o `test -f char_io.c || echo '$(srcdir)/'`char_io.c
++
++xfs_stage1_5_exec-char_io.obj: char_io.c
++@AMDEP_TRUE@ source='char_io.c' object='xfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.obj `cygpath -w char_io.c`
++
++xfs_stage1_5_exec-disk_io.o: disk_io.c
++@AMDEP_TRUE@ source='disk_io.c' object='xfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.o `test -f disk_io.c || echo '$(srcdir)/'`disk_io.c
++
++xfs_stage1_5_exec-disk_io.obj: disk_io.c
++@AMDEP_TRUE@ source='disk_io.c' object='xfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.obj `cygpath -w disk_io.c`
++
++xfs_stage1_5_exec-stage1_5.o: stage1_5.c
++@AMDEP_TRUE@ source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.o `test -f stage1_5.c || echo '$(srcdir)/'`stage1_5.c
++
++xfs_stage1_5_exec-stage1_5.obj: stage1_5.c
++@AMDEP_TRUE@ source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.obj `cygpath -w stage1_5.c`
++
++xfs_stage1_5_exec-fsys_xfs.o: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
++
++xfs_stage1_5_exec-fsys_xfs.obj: fsys_xfs.c
++@AMDEP_TRUE@ source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.obj `cygpath -w fsys_xfs.c`
++
++xfs_stage1_5_exec-bios.o: bios.c
++@AMDEP_TRUE@ source='bios.c' object='xfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.o `test -f bios.c || echo '$(srcdir)/'`bios.c
++
++xfs_stage1_5_exec-bios.obj: bios.c
++@AMDEP_TRUE@ source='bios.c' object='xfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@ depfile='$(DEPDIR)/xfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.obj `cygpath -w bios.c`
+ CCDEPMODE = @CCDEPMODE@
+ uninstall-info-am:
+ install-pkgdataDATA: $(pkgdata_DATA)
diff --git a/sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-core.patch b/sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-core.patch
new file mode 100644
index 000000000000..8bc908a375e1
--- /dev/null
+++ b/sys-apps/grub/files/grub-0.90/grub-jfs+xfs-1.0-core.patch
@@ -0,0 +1,2430 @@
+diff -urN --exclude-from=xlist-core grub-0.90/AUTHORS grub-0.90.jfs+xfs/AUTHORS
+--- grub-0.90/AUTHORS Fri Jun 22 06:32:55 2001
++++ grub-0.90.jfs+xfs/AUTHORS Tue Aug 28 17:00:29 2001
+@@ -37,3 +37,5 @@
+ Frank Mehnert added support for hercules console.
+
+ Kristoffer Branemyr added VSTa filesystem support.
++
++Serguei Tzukanov wrote stage2/fsys_jfs.c and stage2/fsys_xfs.c.
+diff -urN --exclude-from=xlist-core grub-0.90/README grub-0.90.jfs+xfs/README
+--- grub-0.90/README Thu Jun 21 01:02:46 2001
++++ grub-0.90.jfs+xfs/README Tue Aug 28 16:56:55 2001
+@@ -4,8 +4,9 @@
+
+ - provides fully-featured command line and graphical interfaces
+ - recognizes fdisk partitions and BSD disklabels
+- - can dynamically read Linux ext2fs and ReiserFS, BSD ufs, MS-DOS
+- FAT16 and FAT32, and Minix fs filesystems, plus hardcoded blocklists
++ - can dynamically read Linux ext2fs, ReiserFS, JFS and XFS, BSD ufs,
++ MS-DOS FAT16 and FAT32, and Minix fs filesystems, plus hardcoded
++ blocklists
+ - can boot Multiboot-compliant kernels (such as GNU Mach), as well
+ as standard Linux and *BSD kernels
+
+diff -urN --exclude-from=xlist-core grub-0.90/TODO grub-0.90.jfs+xfs/TODO
+--- grub-0.90/TODO Sun Nov 26 21:39:50 2000
++++ grub-0.90.jfs+xfs/TODO Tue Aug 28 17:06:35 2001
+@@ -80,7 +80,7 @@
+
+ * Add ISA PnP support.
+
+-* Add more filesystems support (XFS, NTFS, etc.)
++* Add more filesystems support (NTFS, etc.)
+
+ * Add more remote console support (parallel and net).
+
+diff -urN --exclude-from=xlist-core grub-0.90/configure.in grub-0.90.jfs+xfs/configure.in
+--- grub-0.90/configure.in Thu Jul 5 15:29:56 2001
++++ grub-0.90.jfs+xfs/configure.in Thu Aug 23 17:53:16 2001
+@@ -219,6 +219,20 @@
+ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
+ fi
+
++AC_ARG_ENABLE(jfs,
++ [ --disable-jfs disable IBM JFS support in Stage 2])
++
++if test x"$enable_jfs" != xno; then
++ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
++fi
++
++AC_ARG_ENABLE(xfs,
++ [ --disable-xfs disable SGI XFS support in Stage 2])
++
++if test x"$enable_xfs" != xno; then
++ FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
++fi
++
+ AC_ARG_ENABLE(vstafs,
+ [ --disable-vstafs disable VSTa FS support in Stage 2])
+
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/Makefile.am grub-0.90.jfs+xfs/stage2/Makefile.am
+--- grub-0.90/stage2/Makefile.am Wed Jul 4 11:33:48 2001
++++ grub-0.90.jfs+xfs/stage2/Makefile.am Thu Aug 23 18:03:38 2001
+@@ -4,7 +4,7 @@
+
+ # For dist target.
+ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
+- fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
++ fat.h jfs.h xfs.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+ imgact_aout.h mb_header.h mb_info.h md5.h pc_slice.h serial.h \
+ shared.h smp-imps.h nbi.h vstafs.h
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+@@ -16,11 +16,13 @@
+ noinst_LIBRARIES = libgrub.a
+ libgrub_a_SOURCES = boot.c builtins.c common.c char_io.c cmdline.c \
+ disk_io.c gunzip.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c \
+- fsys_minix.c fsys_reiserfs.c fsys_vstafs.c stage2.c md5.c
++ fsys_minix.c fsys_reiserfs.c fsys_jfs.c fsys_xfs.c fsys_vstafs.c \
++ stage2.c md5.c
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+- -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_VSTAFS=1 \
+- -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
++ -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \
++ -DFSYS_VSTAFS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \
++ -fwritable-strings
+
+ # Stage 2 and Stage 1.5's.
+ pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+@@ -29,19 +31,22 @@
+
+ if DISKLESS_SUPPORT
+ pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
+- minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 nbgrub pxegrub
++ minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
++ vstafs_stage1_5 nbgrub pxegrub
+ noinst_DATA = pre_stage2 start nbloader pxeloader diskless
+ noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
+ fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
+- reiserfs_stage1_5.exec vstafs_stage1_5.exec nbloader.exec \
+- pxeloader.exec diskless.exec
++ reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
++ vstafs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
+ else
+ pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
+- minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5
++ minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
++ vstafs_stage1_5
+ noinst_DATA = pre_stage2 start
+ noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
+ fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
+- reiserfs_stage1_5.exec vstafs_stage1_5.exec
++ reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
++ vstafs_stage1_5.exec
+ endif
+ MOSTLYCLEANFILES = $(noinst_PROGRAMS)
+
+@@ -78,7 +83,8 @@
+ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c common.c \
+ char_io.c cmdline.c disk_io.c gunzip.c fsys_ext2fs.c \
+ fsys_fat.c fsys_ffs.c fsys_minix.c fsys_reiserfs.c \
+- fsys_vstafs.c hercules.c serial.c smp-imps.c stage2.c md5.c
++ fsys_jfs.c fsys_xfs.c fsys_vstafs.c hercules.c serial.c \
++ smp-imps.c stage2.c md5.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_ASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+@@ -158,6 +164,24 @@
+ reiserfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+ -DNO_BLOCK_FILES=1
+ reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For jfs_stage1_5 target.
++jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++ disk_io.c stage1_5.c fsys_jfs.c bios.c
++jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++ -DNO_BLOCK_FILES=1
++jfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
++ -DNO_BLOCK_FILES=1
++jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++
++# For xfs_stage1_5 target.
++xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++ disk_io.c stage1_5.c fsys_xfs.c bios.c
++xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++ -DNO_BLOCK_FILES=1
++xfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
++ -DNO_BLOCK_FILES=1
++xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+
+ # For vstafs_stage1_5 target.
+ vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/builtins.c grub-0.90.jfs+xfs/stage2/builtins.c
+--- grub-0.90/stage2/builtins.c Fri Jun 22 03:15:02 2001
++++ grub-0.90.jfs+xfs/stage2/builtins.c Fri Aug 24 22:13:48 2001
+@@ -3643,7 +3643,9 @@
+ {"ffs", "/ffs_stage1_5"},
+ {"fat", "/fat_stage1_5"},
+ {"minix", "/minix_stage1_5"},
+- {"reiserfs", "/reiserfs_stage1_5"}
++ {"reiserfs", "/reiserfs_stage1_5"},
++ {"jfs", "/jfs_stage1_5"},
++ {"xfs", "/xfs_stage1_5"}
+ };
+
+ tmp_drive = saved_drive;
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/disk_io.c grub-0.90.jfs+xfs/stage2/disk_io.c
+--- grub-0.90/stage2/disk_io.c Fri Jun 22 06:32:56 2001
++++ grub-0.90.jfs+xfs/stage2/disk_io.c Thu Aug 23 17:57:46 2001
+@@ -60,6 +60,12 @@
+ # ifdef FSYS_REISERFS
+ {"reiserfs", reiserfs_mount, reiserfs_read, reiserfs_dir, 0, reiserfs_embed},
+ # endif
++# ifdef FSYS_JFS
++ {"jfs", jfs_mount, jfs_read, jfs_dir, 0, jfs_embed},
++# endif
++# ifdef FSYS_XFS
++ {"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0},
++# endif
+ # ifdef FSYS_VSTAFS
+ {"vstafs", vstafs_mount, vstafs_read, vstafs_dir, 0, 0},
+ # endif
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/filesys.h grub-0.90.jfs+xfs/stage2/filesys.h
+--- grub-0.90/stage2/filesys.h Fri Jun 22 06:32:56 2001
++++ grub-0.90.jfs+xfs/stage2/filesys.h Fri Aug 24 23:09:23 2001
+@@ -68,6 +68,25 @@
+ #define FSYS_REISERFS_NUM 0
+ #endif
+
++#ifdef FSYS_JFS
++#define FSYS_JFS_NUM 1
++int jfs_mount (void);
++int jfs_read (char *buf, int len);
++int jfs_dir (char *dirname);
++int jfs_embed (int *start_sector, int needed_sectors);
++#else
++#define FSYS_JFS_NUM 0
++#endif
++
++#ifdef FSYS_XFS
++#define FSYS_XFS_NUM 1
++int xfs_mount (void);
++int xfs_read (char *buf, int len);
++int xfs_dir (char *dirname);
++#else
++#define FSYS_XFS_NUM 0
++#endif
++
+ #ifdef FSYS_VSTAFS
+ #define FSYS_VSTAFS_NUM 1
+ int vstafs_mount (void);
+@@ -90,7 +109,8 @@
+ #ifndef NUM_FSYS
+ #define NUM_FSYS \
+ (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \
+- + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_TFTP_NUM)
++ + FSYS_REISERFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM + FSYS_VSTAFS_NUM \
++ + FSYS_TFTP_NUM)
+ #endif
+
+ /* defines for the block filesystem info area */
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/fsys_jfs.c grub-0.90.jfs+xfs/stage2/fsys_jfs.c
+--- grub-0.90/stage2/fsys_jfs.c Thu Jan 1 03:00:00 1970
++++ grub-0.90.jfs+xfs/stage2/fsys_jfs.c Wed Aug 29 01:20:04 2001
+@@ -0,0 +1,405 @@
++/*
++ * fsys_jfs.c - an implementation for the IBM JFS file system
++ *
++ * Copyright (C) 2001 Serguei Tzukanov
++ *
++ * 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
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef FSYS_JFS
++
++#include "shared.h"
++#include "filesys.h"
++#include "jfs.h"
++
++#define MAX_LINK_COUNT 8
++
++#define DTTYPE_INLINE 0
++#define DTTYPE_PAGE 1
++
++struct jfs_info
++{
++ int bsize;
++ int l2bsize;
++ int bdlog;
++ int xindex;
++ int xlastindex;
++ int sindex;
++ int slastindex;
++ int de_index;
++ int dttype;
++ xad_t *xad;
++ ldtentry_t *de;
++};
++
++static struct jfs_info jfs;
++
++#define xtpage ((xtpage_t *)FSYS_BUF)
++#define dtpage ((dtpage_t *)((char *)FSYS_BUF + 4096))
++#define fileset ((dinode_t *)((char *)FSYS_BUF + 8192))
++#define inode ((dinode_t *)((char *)FSYS_BUF + 8192 + sizeof(dinode_t)))
++#define dtroot ((dtroot_t *)(&inode->di_btroot))
++
++static ldtentry_t de_always[2] = {
++ {1, -1, 2, {'.', '.'}},
++ {1, -1, 1, {'.'}}
++};
++
++static int
++isinxt (s64 key, s64 offset, s64 len)
++{
++ return (key >= offset) ? (key < offset + len ? 1 : 0) : 0;
++}
++
++static xad_t *
++first_extent (dinode_t *di)
++{
++ xtpage_t *xtp;
++
++ jfs.xindex = 2;
++ xtp = (xtpage_t *)&di->di_btroot;
++ jfs.xad = &xtp->xad[2];
++ if (xtp->header.flag & BT_LEAF) {
++ jfs.xlastindex = xtp->header.nextindex;
++ } else {
++ do {
++ devread (addressXAD (jfs.xad) << jfs.bdlog, 0,
++ sizeof(xtpage_t), (char *)xtpage);
++ jfs.xad = &xtpage->xad[2];
++ } while (!(xtpage->header.flag & BT_LEAF));
++ jfs.xlastindex = xtpage->header.nextindex;
++ }
++
++ return jfs.xad;
++}
++
++static xad_t *
++next_extent (void)
++{
++ if (++jfs.xindex < jfs.xlastindex) {
++ } else if (xtpage->header.next) {
++ devread (xtpage->header.next << jfs.bdlog, 0,
++ sizeof(xtpage_t), (char *)xtpage);
++ jfs.xlastindex = xtpage->header.nextindex;
++ jfs.xindex = XTENTRYSTART;
++ jfs.xad = &xtpage->xad[XTENTRYSTART];
++ } else {
++ return NULL;
++ }
++ return ++jfs.xad;
++}
++
++
++static void
++di_read (u32 inum, dinode_t *di)
++{
++ s64 key;
++ u32 xd, ioffset;
++ s64 offset;
++ xad_t *xad;
++ pxd_t pxd;
++
++ key = (((inum >> L2INOSPERIAG) << L2INOSPERIAG) + 4096) >> jfs.l2bsize;
++ xd = (inum & (INOSPERIAG - 1)) >> L2INOSPEREXT;
++ ioffset = ((inum & (INOSPERIAG - 1)) & (INOSPEREXT - 1)) << L2DISIZE;
++ xad = first_extent (fileset);
++ do {
++ offset = offsetXAD (xad);
++ if (isinxt (key, offset, lengthXAD (xad))) {
++ devread ((addressXAD (xad) + key - offset) << jfs.bdlog,
++ 3072 + xd*sizeof(pxd_t), sizeof(pxd_t), (char *)&pxd);
++ devread (addressPXD (&pxd) << jfs.bdlog,
++ ioffset, DISIZE, (char *)di);
++ break;
++ }
++ } while ((xad = next_extent ()));
++}
++
++static ldtentry_t *
++next_dentry (void)
++{
++ ldtentry_t *de;
++ s8 *stbl;
++
++ if (jfs.dttype == DTTYPE_INLINE) {
++ if (jfs.sindex < jfs.slastindex) {
++ return (ldtentry_t *)&dtroot->slot[(int)dtroot->header.stbl[jfs.sindex++]];
++ }
++ } else {
++ de = (ldtentry_t *)dtpage->slot;
++ stbl = (s8 *)&de[(int)dtpage->header.stblindex];
++ if (jfs.sindex < jfs.slastindex) {
++ return &de[(int)stbl[jfs.sindex++]];
++ } else if (dtpage->header.next) {
++ devread (dtpage->header.next << jfs.bdlog, 0,
++ sizeof(dtpage_t), (char *)dtpage);
++ jfs.slastindex = dtpage->header.nextindex;
++ jfs.sindex = 1;
++ return &de[(int)((s8 *)&de[(int)dtpage->header.stblindex])[0]];
++ }
++ }
++
++ return (jfs.de_index < 2) ? &de_always[jfs.de_index++] : NULL;
++}
++
++static ldtentry_t *
++first_dentry (void)
++{
++ dtroot_t *dtr;
++ pxd_t *xd;
++ idtentry_t *de;
++
++ dtr = (dtroot_t *)&inode->di_btroot;
++ jfs.sindex = 0;
++ jfs.de_index = 0;
++
++ de_always[0].inumber = inode->di_parent;
++ de_always[1].inumber = inode->di_number;
++ if (dtr->header.flag & BT_LEAF) {
++ jfs.dttype = DTTYPE_INLINE;
++ jfs.slastindex = dtr->header.nextindex;
++ } else {
++ de = (idtentry_t *)dtpage->slot;
++ jfs.dttype = DTTYPE_PAGE;
++ xd = &((idtentry_t *)dtr->slot)[(int)dtr->header.stbl[0]].xd;
++ for (;;) {
++ devread (addressPXD (xd) << jfs.bdlog, 0,
++ sizeof(dtpage_t), (char *)dtpage);
++ if (dtpage->header.flag & BT_LEAF)
++ break;
++ xd = &de[(int)((s8 *)&de[(int)dtpage->header.stblindex])[0]].xd;
++ }
++ jfs.slastindex = dtpage->header.nextindex;
++ }
++
++ return next_dentry ();
++}
++
++
++static dtslot_t *
++next_dslot (int next)
++{
++ return (jfs.dttype == DTTYPE_INLINE)
++ ? (dtslot_t *)&dtroot->slot[next]
++ : &((dtslot_t *)dtpage->slot)[next];
++}
++
++static void
++uni2ansi (UniChar *uni, char *ansi, int len)
++{
++ for (; len; len--, uni++)
++ *ansi++ = (*uni & 0xff80) ? '?' : *(char *)uni;
++}
++
++int
++jfs_mount (void)
++{
++ struct jfs_superblock super;
++
++ if (part_length < MINJFS >> SECTOR_BITS
++ || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
++ sizeof(struct jfs_superblock), (char *)&super)
++ || (super.s_magic != JFS_MAGIC)
++ || !devread ((AITBL_OFF >> SECTOR_BITS) + FILESYSTEM_I,
++ 0, DISIZE, (char*)fileset)) {
++ return 0;
++ }
++
++ jfs.bsize = super.s_bsize;
++ jfs.l2bsize = super.s_l2bsize;
++ jfs.bdlog = jfs.l2bsize - SECTOR_BITS;
++
++ return 1;
++}
++
++int
++jfs_read (char *buf, int len)
++{
++ xad_t *xad;
++ s64 endofprev, endofcur;
++ s64 offset, xadlen;
++ int toread, startpos, endpos;
++
++ startpos = filepos;
++ endpos = filepos + len;
++ endofprev = (1ULL << 62) - 1;
++ xad = first_extent (inode);
++ do {
++ offset = offsetXAD (xad);
++ xadlen = lengthXAD (xad);
++ if (isinxt (filepos >> jfs.l2bsize, offset, xadlen)) {
++ endofcur = (offset + xadlen) << jfs.l2bsize;
++ toread = (endofcur >= endpos)
++ ? len : (endofcur - filepos);
++#ifndef STAGE1_5
++ disk_read_func = disk_read_hook;
++#endif /* STAGE1_5 */
++ devread (addressXAD (xad) << jfs.bdlog,
++ filepos - (offset << jfs.l2bsize), toread, buf);
++#ifndef STAGE1_5
++ disk_read_func = NULL;
++#endif /* STAGE1_5 */
++ buf += toread;
++ len -= toread;
++ filepos += toread;
++ } else if (offset > endofprev) {
++ toread = ((offset << jfs.l2bsize) >= endpos)
++ ? len : ((offset - endofprev) << jfs.l2bsize);
++ len -= toread;
++ filepos += toread;
++ for (; toread; toread--) {
++ *buf++ = 0;
++ }
++ continue;
++ }
++ endofprev = offset + xadlen;
++ xad = next_extent ();
++ } while (len > 0 && xad);
++
++ return filepos - startpos;
++}
++
++int
++jfs_dir (char *dirname)
++{
++ char *ptr, *rest, ch;
++ ldtentry_t *de;
++ dtslot_t *ds;
++ u32 inum, parent_inum;
++ s64 di_size;
++ u32 di_mode;
++ int namlen, cmp, n, link_count;
++ char namebuf[JFS_NAME_MAX + 1], linkbuf[JFS_PATH_MAX];
++
++ parent_inum = inum = ROOT_I;
++ link_count = 0;
++ for (;;) {
++ di_read (inum, inode);
++ di_size = inode->di_size;
++ di_mode = inode->di_mode;
++
++ if ((di_mode & IFMT) == IFLNK) {
++ if (++link_count > MAX_LINK_COUNT) {
++ errnum = ERR_SYMLINK_LOOP;
++ return 0;
++ }
++ if (di_size < (di_mode & INLINEEA ? 256 : 128)) {
++ grub_memmove (linkbuf, inode->di_fastsymlink, di_size);
++ n = di_size;
++ } else if (di_size < JFS_PATH_MAX - 1) {
++ filepos = 0;
++ filemax = di_size;
++ n = jfs_read (linkbuf, filemax);
++ } else {
++ errnum = ERR_FILELENGTH;
++ return 0;
++ }
++
++ inum = (linkbuf[0] == '/') ? ROOT_I : parent_inum;
++ while (n < (JFS_PATH_MAX - 1) && (linkbuf[n++] = *dirname++));
++ linkbuf[n] = 0;
++ dirname = linkbuf;
++ continue;
++ }
++
++ if (!*dirname || isspace (*dirname)) {
++ if ((di_mode & IFMT) != IFREG) {
++ errnum = ERR_BAD_FILETYPE;
++ return 0;
++ }
++ filepos = 0;
++ filemax = di_size;
++ return 1;
++ }
++
++ if ((di_mode & IFMT) != IFDIR) {
++ errnum = ERR_BAD_FILETYPE;
++ return 0;
++ }
++
++ for (; *dirname == '/'; dirname++);
++
++ for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
++ *rest = 0;
++
++ de = first_dentry ();
++ for (;;) {
++ namlen = de->namlen;
++ if (de->next == -1) {
++ uni2ansi (de->name, namebuf, namlen);
++ namebuf[namlen] = 0;
++ } else {
++ uni2ansi (de->name, namebuf, DTLHDRDATALEN);
++ ptr = namebuf;
++ ptr += DTLHDRDATALEN;
++ namlen -= DTLHDRDATALEN;
++ ds = next_dslot (de->next);
++ while (ds->next != -1) {
++ uni2ansi (ds->name, ptr, DTSLOTDATALEN);
++ ptr += DTSLOTDATALEN;
++ namlen -= DTSLOTDATALEN;
++ ds = next_dslot (ds->next);
++ }
++ uni2ansi (ds->name, ptr, namlen);
++ ptr += namlen;
++ *ptr = 0;
++ }
++
++ cmp = (!*dirname) ? -1 : substring (dirname, namebuf);
++#ifndef STAGE1_5
++ if (print_possibilities && ch != '/'
++ && cmp <= 0) {
++ if (print_possibilities > 0)
++ print_possibilities = -print_possibilities;
++ print_a_completion (namebuf);
++ } else
++#endif
++ if (cmp == 0) {
++ parent_inum = inum;
++ inum = de->inumber;
++ *(dirname = rest) = ch;
++ break;
++ }
++ de = next_dentry ();
++ if (de == NULL) {
++ if (print_possibilities < 0)
++ return 1;
++
++ errnum = ERR_FILE_NOT_FOUND;
++ *rest = ch;
++ return 0;
++ }
++ }
++ }
++}
++
++int
++jfs_embed (int *start_sector, int needed_sectors)
++{
++ struct jfs_superblock super;
++
++ if (needed_sectors > 63
++ || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
++ sizeof (struct jfs_superblock),
++ (char *)&super)
++ || (super.s_magic != JFS_MAGIC)) {
++ return 0;
++ }
++
++ *start_sector = 1;
++ return 1;
++}
++
++#endif /* FSYS_JFS */
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/fsys_xfs.c grub-0.90.jfs+xfs/stage2/fsys_xfs.c
+--- grub-0.90/stage2/fsys_xfs.c Thu Jan 1 03:00:00 1970
++++ grub-0.90.jfs+xfs/stage2/fsys_xfs.c Wed Aug 29 11:24:18 2001
+@@ -0,0 +1,617 @@
++/*
++ * fsys_xfs.c - an implementation for the SGI XFS file system
++ *
++ * Copyright (C) 2001 Serguei Tzukanov
++ *
++ * 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
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef FSYS_XFS
++
++#include "shared.h"
++#include "filesys.h"
++#include "xfs.h"
++
++#define MAX_LINK_COUNT 8
++
++typedef struct xad {
++ xfs_fileoff_t offset;
++ xfs_fsblock_t start;
++ xfs_filblks_t len;
++} xad_t;
++
++struct xfs_info {
++ int bsize;
++ int dirbsize;
++ int isize;
++ unsigned int agblocks;
++ int bdlog;
++ int blklog;
++ int inopblog;
++ int agblklog;
++ int agnolog;
++ unsigned int nextents;
++ xfs_daddr_t next;
++ xfs_daddr_t daddr;
++ xfs_dablk_t forw;
++ xfs_dablk_t dablk;
++ xfs_bmbt_rec_32_t *xt;
++ xfs_bmbt_ptr_t ptr0;
++ int btnode_ptr0_off;
++ int i8param;
++ int dirpos;
++ int dirmax;
++ int blkoff;
++ int fpos;
++ xfs_ino_t rootino;
++};
++
++static struct xfs_info xfs;
++
++#define dirbuf ((char *)FSYS_BUF)
++#define filebuf ((char *)FSYS_BUF + 4096)
++#define inode ((xfs_dinode_t *)((char *)FSYS_BUF + 8192))
++#define icore (inode->di_core)
++
++#define mask32lo(n) (((__uint32_t)1 << (n)) - 1)
++
++#define XFS_INO_MASK(k) ((__uint32_t)((1ULL << (k)) - 1))
++#define XFS_INO_OFFSET_BITS xfs.inopblog
++#define XFS_INO_AGBNO_BITS xfs.agblklog
++#define XFS_INO_AGINO_BITS (xfs.agblklog + xfs.inopblog)
++#define XFS_INO_AGNO_BITS xfs.agnolog
++
++static inline xfs_agblock_t
++agino2agbno (xfs_agino_t agino)
++{
++ return agino >> XFS_INO_OFFSET_BITS;
++}
++
++static inline xfs_agnumber_t
++ino2agno (xfs_ino_t ino)
++{
++ return ino >> XFS_INO_AGINO_BITS;
++}
++
++static inline xfs_agino_t
++ino2agino (xfs_ino_t ino)
++{
++ return ino & XFS_INO_MASK(XFS_INO_AGINO_BITS);
++}
++
++static inline int
++ino2offset (xfs_ino_t ino)
++{
++ return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
++}
++
++static inline __const__ __uint16_t
++le16 (__uint16_t x)
++{
++ __asm__("xchgb %b0,%h0" \
++ : "=q" (x) \
++ : "0" (x)); \
++ return x;
++}
++
++static inline __const__ __uint32_t
++le32 (__uint32_t x)
++{
++ __asm__("bswap %0" : "=r" (x) : "0" (x));
++ return x;
++}
++
++static inline __const__ __uint64_t
++le64 (__uint64_t x)
++{
++ __uint32_t h = x >> 32;
++ __uint32_t l = x & ((1ULL<<32)-1);
++ return (((__uint64_t)le32(l)) << 32) | ((__uint64_t)(le32(h)));
++}
++
++
++static xfs_fsblock_t
++xt_start (xfs_bmbt_rec_32_t *r)
++{
++ return (((xfs_fsblock_t)(le32 (r->l1) & mask32lo(9))) << 43) |
++ (((xfs_fsblock_t)le32 (r->l2)) << 11) |
++ (((xfs_fsblock_t)le32 (r->l3)) >> 21);
++}
++
++static xfs_fileoff_t
++xt_offset (xfs_bmbt_rec_32_t *r)
++{
++ return (((xfs_fileoff_t)le32 (r->l0) &
++ mask32lo(31)) << 23) |
++ (((xfs_fileoff_t)le32 (r->l1)) >> 9);
++}
++
++static xfs_filblks_t
++xt_len (xfs_bmbt_rec_32_t *r)
++{
++ return le32(r->l3) & mask32lo(21);
++}
++
++static inline int
++xfs_highbit32(__uint32_t v)
++{
++ int i;
++
++ if (--v) {
++ for (i = 0; i < 31; i++, v >>= 1) {
++ if (v == 0)
++ return i;
++ }
++ }
++ return 0;
++}
++
++static int
++isinxt (xfs_fileoff_t key, xfs_fileoff_t offset, xfs_filblks_t len)
++{
++ return (key >= offset) ? (key < offset + len ? 1 : 0) : 0;
++}
++
++static xfs_daddr_t
++agb2daddr (xfs_agnumber_t agno, xfs_agblock_t agbno)
++{
++ return ((xfs_fsblock_t)agno*xfs.agblocks + agbno) << xfs.bdlog;
++}
++
++static xfs_daddr_t
++fsb2daddr (xfs_fsblock_t fsbno)
++{
++ return agb2daddr ((xfs_agnumber_t)(fsbno >> xfs.agblklog),
++ (xfs_agblock_t)(fsbno & mask32lo(xfs.agblklog)));
++}
++
++#undef offsetof
++#define offsetof(t,m) ((int)&(((t *)0)->m))
++
++static inline int
++btroot_maxrecs (void)
++{
++ int tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
++
++ return (tmp - sizeof(xfs_bmdr_block_t) - offsetof(xfs_dinode_t, di_u)) /
++ (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t));
++}
++
++static int
++di_read (xfs_ino_t ino)
++{
++ xfs_agino_t agino;
++ xfs_agnumber_t agno;
++ xfs_agblock_t agbno;
++ xfs_daddr_t daddr;
++ int offset;
++
++ agno = ino2agno (ino);
++ agino = ino2agino (ino);
++ agbno = agino2agbno (agino);
++ offset = ino2offset (ino);
++ daddr = agb2daddr (agno, agbno);
++
++ devread (daddr, offset*xfs.isize, xfs.isize, (char *)inode);
++
++ xfs.ptr0 = *(xfs_bmbt_ptr_t *)
++ (inode->di_u.di_c + sizeof(xfs_bmdr_block_t)
++ + btroot_maxrecs ()*sizeof(xfs_bmbt_key_t));
++
++ return 1;
++}
++
++static void
++init_extents (void)
++{
++ xfs_bmbt_ptr_t ptr0;
++ xfs_btree_lblock_t h;
++
++ switch (icore.di_format) {
++ case XFS_DINODE_FMT_EXTENTS:
++ xfs.xt = inode->di_u.di_bmx;
++ xfs.nextents = le32 (icore.di_nextents);
++ break;
++ case XFS_DINODE_FMT_BTREE:
++ ptr0 = xfs.ptr0;
++ for (;;) {
++ xfs.daddr = fsb2daddr (le64(ptr0));
++ devread (xfs.daddr, 0,
++ sizeof(xfs_btree_lblock_t), (char *)&h);
++ if (!h.bb_level) {
++ xfs.nextents = le16(h.bb_numrecs);
++ xfs.next = fsb2daddr (le64(h.bb_rightsib));
++ xfs.fpos = sizeof(xfs_btree_block_t);
++ return;
++ }
++ devread (xfs.daddr, xfs.btnode_ptr0_off,
++ sizeof(xfs_bmbt_ptr_t), (char *)&ptr0);
++ }
++ }
++}
++
++static xad_t *
++next_extent (void)
++{
++ static xad_t xad;
++
++ switch (icore.di_format) {
++ case XFS_DINODE_FMT_EXTENTS:
++ if (xfs.nextents == 0)
++ return NULL;
++ break;
++ case XFS_DINODE_FMT_BTREE:
++ if (xfs.nextents == 0) {
++ xfs_btree_lblock_t h;
++ if (xfs.next == 0)
++ return NULL;
++ xfs.daddr = xfs.next;
++ devread (xfs.daddr, 0, sizeof(xfs_btree_lblock_t), (char *)&h);
++ xfs.nextents = le16(h.bb_numrecs);
++ xfs.next = fsb2daddr (le64(h.bb_rightsib));
++ xfs.fpos = sizeof(xfs_btree_block_t);
++ }
++ /* Yeah, I know that's slow, but I really don't care */
++ devread (xfs.daddr, xfs.fpos, sizeof(xfs_bmbt_rec_t), filebuf);
++ xfs.xt = (xfs_bmbt_rec_32_t *)filebuf;
++ xfs.fpos += sizeof(xfs_bmbt_rec_32_t);
++ }
++ xad.offset = xt_offset (xfs.xt);
++ xad.start = xt_start (xfs.xt);
++ xad.len = xt_len (xfs.xt);
++ ++xfs.xt;
++ --xfs.nextents;
++
++ return &xad;
++}
++
++/*
++ * Name lies - the function reads only first 100 bytes
++ */
++static void
++xfs_dabread (void)
++{
++ xad_t *xad;
++ xfs_fileoff_t offset;;
++
++ init_extents ();
++ while ((xad = next_extent ())) {
++ offset = xad->offset;
++ if (isinxt (xfs.dablk, offset, xad->len)) {
++ devread (fsb2daddr (xad->start + xfs.dablk - offset),
++ 0, 100, dirbuf);
++ break;
++ }
++ }
++}
++
++static inline xfs_ino_t
++sf_ino (char *sfe, int namelen)
++{
++ void *p = sfe + namelen + 3;
++
++ return (xfs.i8param == 0)
++ ? le64(*(xfs_ino_t *)p) : le32(*(__uint32_t *)p);
++}
++
++static inline xfs_ino_t
++sf_parent_ino (void)
++{
++ return (xfs.i8param == 0)
++ ? le64(*(xfs_ino_t *)(&inode->di_u.di_dir2sf.hdr.parent))
++ : le32(*(__uint32_t *)(&inode->di_u.di_dir2sf.hdr.parent));
++}
++
++static inline int
++roundup8 (int n)
++{
++ return ((n+7)&~7);
++}
++
++static char *
++next_dentry (xfs_ino_t *ino)
++{
++ int namelen = 1;
++ int toread;
++ static char *usual[2] = {".", ".."};
++ static xfs_dir2_sf_entry_t *sfe;
++ char *name = usual[0];
++
++ if (xfs.dirpos >= xfs.dirmax) {
++ if (xfs.forw == 0)
++ return NULL;
++ xfs.dablk = xfs.forw;
++ xfs_dabread ();
++#define h ((xfs_dir2_leaf_hdr_t *)dirbuf)
++ xfs.dirmax = le16 (h->count) - le16 (h->stale);
++ xfs.forw = le32 (h->info.forw);
++#undef h
++ xfs.dirpos = 0;
++ }
++
++ switch (icore.di_format) {
++ case XFS_DINODE_FMT_LOCAL:
++ switch (xfs.dirpos) {
++ case -2:
++ *ino = 0;
++ break;
++ case -1:
++ *ino = sf_parent_ino ();
++ ++name;
++ ++namelen;
++ sfe = (xfs_dir2_sf_entry_t *)
++ (inode->di_u.di_c
++ + sizeof(xfs_dir2_sf_hdr_t)
++ - xfs.i8param);
++ break;
++ default:
++ namelen = sfe->namelen;
++ *ino = sf_ino ((char *)sfe, namelen);
++ name = sfe->name;
++ sfe = (xfs_dir2_sf_entry_t *)
++ ((char *)sfe + namelen + 11 - xfs.i8param);
++ }
++ break;
++ case XFS_DINODE_FMT_BTREE:
++ case XFS_DINODE_FMT_EXTENTS:
++#define dau ((xfs_dir2_data_union_t *)dirbuf)
++ for (;;) {
++ if (xfs.blkoff >= xfs.dirbsize) {
++ xfs.blkoff = sizeof(xfs_dir2_data_hdr_t);
++ filepos &= ~(xfs.dirbsize - 1);
++ filepos |= xfs.blkoff;
++ }
++ xfs_read (dirbuf, 4);
++ xfs.blkoff += 4;
++ if (dau->unused.freetag == XFS_DIR2_DATA_FREE_TAG) {
++ toread = roundup8 (le16(dau->unused.length)) - 4;
++ xfs.blkoff += toread;
++ filepos += toread;
++ continue;
++ }
++ break;
++ }
++ xfs_read ((char *)dirbuf + 4, 5);
++ *ino = le64 (dau->entry.inumber);
++ namelen = dau->entry.namelen;
++#undef dau
++ toread = roundup8 (namelen + 11) - 9;
++ xfs_read (dirbuf, toread);
++ name = (char *)dirbuf;
++ xfs.blkoff += toread + 5;
++ }
++ ++xfs.dirpos;
++ name[namelen] = 0;
++
++ return name;
++}
++
++static char *
++first_dentry (xfs_ino_t *ino)
++{
++ xfs.forw = 0;
++ switch (icore.di_format) {
++ case XFS_DINODE_FMT_LOCAL:
++ xfs.dirmax = inode->di_u.di_dir2sf.hdr.count;
++ xfs.i8param = inode->di_u.di_dir2sf.hdr.i8count ? 0 : 4;
++ xfs.dirpos = -2;
++ break;
++ case XFS_DINODE_FMT_EXTENTS:
++ case XFS_DINODE_FMT_BTREE:
++ filepos = 0;
++ xfs_read (dirbuf, sizeof(xfs_dir2_data_hdr_t));
++ if (((xfs_dir2_data_hdr_t *)dirbuf)->magic == le32(XFS_DIR2_BLOCK_MAGIC)) {
++#define tail ((xfs_dir2_block_tail_t *)dirbuf)
++ filepos = xfs.dirbsize - sizeof(*tail);
++ xfs_read (dirbuf, sizeof(*tail));
++ xfs.dirmax = le32 (tail->count) - le32 (tail->stale);
++#undef tail
++ } else {
++ xfs.dablk = (1ULL << 35) >> xfs.blklog;
++#define h ((xfs_dir2_leaf_hdr_t *)dirbuf)
++#define n ((xfs_da_intnode_t *)dirbuf)
++ for (;;) {
++ xfs_dabread ();
++ if ((n->hdr.info.magic == le16(XFS_DIR2_LEAFN_MAGIC))
++ || (n->hdr.info.magic == le16(XFS_DIR2_LEAF1_MAGIC))) {
++ xfs.dirmax = le16 (h->count) - le16 (h->stale);
++ xfs.forw = le32 (h->info.forw);
++ break;
++ }
++ xfs.dablk = le32 (n->btree[0].before);
++ }
++#undef n
++#undef h
++ }
++ xfs.blkoff = sizeof(xfs_dir2_data_hdr_t);
++ filepos = xfs.blkoff;
++ xfs.dirpos = 0;
++ }
++ return next_dentry (ino);
++}
++
++int
++xfs_mount (void)
++{
++ xfs_sb_t super;
++
++ if (!devread (0, 0, sizeof(super), (char *)&super)
++ || (le32(super.sb_magicnum) != XFS_SB_MAGIC)
++ || ((le16(super.sb_versionnum)
++ & XFS_SB_VERSION_NUMBITS) != XFS_SB_VERSION_4) ) {
++ return 0;
++ }
++
++ xfs.bsize = le32 (super.sb_blocksize);
++ xfs.blklog = super.sb_blocklog;
++ xfs.bdlog = xfs.blklog - SECTOR_BITS;
++ xfs.rootino = le64 (super.sb_rootino);
++ xfs.isize = le16 (super.sb_inodesize);
++ xfs.agblocks = le32 (super.sb_agblocks);
++ xfs.dirbsize = xfs.bsize << super.sb_dirblklog;
++
++ xfs.inopblog = super.sb_inopblog;
++ xfs.agblklog = super.sb_agblklog;
++ xfs.agnolog = xfs_highbit32 (le32(super.sb_agcount));
++
++ xfs.btnode_ptr0_off =
++ ((xfs.bsize - sizeof(xfs_btree_block_t)) /
++ (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t)))
++ * sizeof(xfs_bmbt_key_t) + sizeof(xfs_btree_block_t);
++
++ return 1;
++}
++
++int
++xfs_read (char *buf, int len)
++{
++ xad_t *xad;
++ xfs_fileoff_t endofprev, endofcur, offset;
++ xfs_filblks_t xadlen;
++ int toread, startpos, endpos;
++
++ if (icore.di_format == XFS_DINODE_FMT_LOCAL) {
++ grub_memmove (buf, inode->di_u.di_c + filepos, len);
++ filepos += len;
++ return len;
++ }
++
++ startpos = filepos;
++ endpos = filepos + len;
++ endofprev = (xfs_fileoff_t)-1;
++ init_extents ();
++ while (len > 0 && (xad = next_extent ())) {
++ offset = xad->offset;
++ xadlen = xad->len;
++ if (isinxt (filepos >> xfs.blklog, offset, xadlen)) {
++ endofcur = (offset + xadlen) << xfs.blklog;
++ toread = (endofcur >= endpos)
++ ? len : (endofcur - filepos);
++#ifndef STAGE1_5
++ disk_read_func = disk_read_hook;
++#endif /* STAGE1_5 */
++ devread (fsb2daddr (xad->start),
++ filepos - (offset << xfs.blklog), toread, buf);
++#ifndef STAGE1_5
++ disk_read_func = NULL;
++#endif /* STAGE1_5 */
++ buf += toread;
++ len -= toread;
++ filepos += toread;
++ } else if (offset > endofprev) {
++ toread = ((offset << xfs.blklog) >= endpos)
++ ? len : ((offset - endofprev) << xfs.blklog);
++ len -= toread;
++ filepos += toread;
++ for (; toread; toread--) {
++ *buf++ = 0;
++ }
++ continue;
++ }
++ endofprev = offset + xadlen;
++ }
++
++ return filepos - startpos;
++}
++
++int
++xfs_dir (char *dirname)
++{
++ xfs_ino_t ino, parent_ino, new_ino;
++ xfs_fsize_t di_size;
++ int di_mode;
++ int cmp, n, link_count;
++ char linkbuf[xfs.bsize];
++ char *rest, *name, ch;
++
++ parent_ino = ino = xfs.rootino;
++ link_count = 0;
++ for (;;) {
++ di_read (ino);
++ di_size = le64 (icore.di_size);
++ di_mode = le16 (icore.di_mode);
++
++ if ((di_mode & IFMT) == IFLNK) {
++ if (++link_count > MAX_LINK_COUNT) {
++ errnum = ERR_SYMLINK_LOOP;
++ return 0;
++ }
++ if (di_size < xfs.bsize - 1) {
++ filepos = 0;
++ filemax = di_size;
++ n = xfs_read (linkbuf, filemax);
++ } else {
++ errnum = ERR_FILELENGTH;
++ return 0;
++ }
++
++ ino = (linkbuf[0] == '/') ? xfs.rootino : parent_ino;
++ while (n < (xfs.bsize - 1) && (linkbuf[n++] = *dirname++));
++ linkbuf[n] = 0;
++ dirname = linkbuf;
++ continue;
++ }
++
++ if (!*dirname || isspace (*dirname)) {
++ if ((di_mode & IFMT) != IFREG) {
++ errnum = ERR_BAD_FILETYPE;
++ return 0;
++ }
++ filepos = 0;
++ filemax = di_size;
++ return 1;
++ }
++
++ if ((di_mode & IFMT) != IFDIR) {
++ errnum = ERR_BAD_FILETYPE;
++ return 0;
++ }
++
++ for (; *dirname == '/'; dirname++);
++
++ for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
++ *rest = 0;
++
++ name = first_dentry (&new_ino);
++ for (;;) {
++ cmp = (!*dirname) ? -1 : substring (dirname, name);
++#ifndef STAGE1_5
++ if (print_possibilities && ch != '/' && cmp <= 0) {
++ if (print_possibilities > 0)
++ print_possibilities = -print_possibilities;
++ print_a_completion (name);
++ } else
++#endif
++ if (cmp == 0) {
++ parent_ino = ino;
++ if (new_ino)
++ ino = new_ino;
++ *(dirname = rest) = ch;
++ break;
++ }
++ name = next_dentry (&new_ino);
++ if (name == NULL) {
++ if (print_possibilities < 0)
++ return 1;
++
++ errnum = ERR_FILE_NOT_FOUND;
++ *rest = ch;
++ return 0;
++ }
++ }
++ }
++}
++
++#endif /* FSYS_XFS */
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/jfs.h grub-0.90.jfs+xfs/stage2/jfs.h
+--- grub-0.90/stage2/jfs.h Thu Jan 1 03:00:00 1970
++++ grub-0.90.jfs+xfs/stage2/jfs.h Mon Aug 27 12:57:53 2001
+@@ -0,0 +1,601 @@
++/*
++ * jfs.h - an extractions from linux/include/linux/jfs/jfs* into one file
++ *
++ * Copyright (c) International Business Machines Corp., 2000
++ *
++ * 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
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
++ * the GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#ifndef _JFS_H_
++#define _JFS_H_
++
++/* those are from jfs_filsys.h */
++
++/*
++ * file system option (superblock flag)
++ */
++/* platform option (conditional compilation) */
++#define JFS_AIX 0x80000000 /* AIX support */
++/* POSIX name/directory support */
++
++#define JFS_OS2 0x40000000 /* OS/2 support */
++/* case-insensitive name/directory support */
++
++#define JFS_LINUX 0x10000000 /* Linux support */
++/* case-sensitive name/directory support */
++
++/* directory option */
++#define JFS_UNICODE 0x00000001 /* unicode name */
++
++/* bba */
++#define JFS_SWAP_BYTES 0x00100000 /* running on big endian computer */
++
++
++/*
++ * buffer cache configuration
++ */
++/* page size */
++#ifdef PSIZE
++#undef PSIZE
++#endif
++#define PSIZE 4096 /* page size (in byte) */
++
++/*
++ * fs fundamental size
++ *
++ * PSIZE >= file system block size >= PBSIZE >= DISIZE
++ */
++#define PBSIZE 512 /* physical block size (in byte) */
++#define DISIZE 512 /* on-disk inode size (in byte) */
++#define L2DISIZE 9
++#define INOSPERIAG 4096 /* number of disk inodes per iag */
++#define L2INOSPERIAG 12
++#define INOSPEREXT 32 /* number of disk inode per extent */
++#define L2INOSPEREXT 5
++
++/* Minimum number of bytes supported for a JFS partition */
++#define MINJFS (0x1000000)
++
++/*
++ * fixed byte offset address
++ */
++#define SUPER1_OFF 0x8000 /* primary superblock */
++
++#define AITBL_OFF (SUPER1_OFF + PSIZE + (PSIZE << 1))
++
++/*
++ * fixed reserved inode number
++ */
++/* aggregate inode */
++#define AGGREGATE_I 1 /* aggregate inode map inode */
++#define FILESYSTEM_I 16 /* 1st/only fileset inode in ait:
++ * fileset inode map inode
++ */
++
++/* per fileset inode */
++#define ROOT_I 2 /* fileset root inode */
++
++/*
++ * directory configuration
++ */
++#define JFS_NAME_MAX 255
++#define JFS_PATH_MAX PSIZE
++
++typedef unsigned char u8;
++typedef char s8;
++typedef unsigned short u16;
++typedef short s16;
++typedef unsigned int u32;
++typedef int s32;
++typedef unsigned long long u64;
++typedef long long s64;
++
++typedef u16 UniChar;
++
++/* these from jfs_btree.h */
++
++/* btpaget_t flag */
++#define BT_TYPE 0x07 /* B+-tree index */
++#define BT_ROOT 0x01 /* root page */
++#define BT_LEAF 0x02 /* leaf page */
++#define BT_INTERNAL 0x04 /* internal page */
++#define BT_RIGHTMOST 0x10 /* rightmost page */
++#define BT_LEFTMOST 0x20 /* leftmost page */
++
++/* those are from jfs_types.h */
++
++struct timestruc_t {
++ u32 tv_sec;
++ u32 tv_nsec;
++};
++
++/*
++ * physical xd (pxd)
++ */
++typedef struct {
++ unsigned len:24;
++ unsigned addr1:8;
++ u32 addr2;
++} pxd_t;
++
++/* xd_t field extraction */
++#define lengthPXD(pxd) ((pxd)->len)
++#define addressPXD(pxd) (((s64)((pxd)->addr1)) << 32 | ((pxd)->addr2))
++
++/*
++ * data extent descriptor (dxd)
++ */
++typedef struct {
++ unsigned flag:8; /* 1: flags */
++ unsigned rsrvd:24; /* 3: */
++ u32 size; /* 4: size in byte */
++ unsigned len:24; /* 3: length in unit of fsblksize */
++ unsigned addr1:8; /* 1: address in unit of fsblksize */
++ u32 addr2; /* 4: address in unit of fsblksize */
++} dxd_t; /* - 16 - */
++
++/*
++ * DASD limit information - stored in directory inode
++ */
++typedef struct dasd {
++ u8 thresh; /* Alert Threshold (in percent) */
++ u8 delta; /* Alert Threshold delta (in percent) */
++ u8 rsrvd1;
++ u8 limit_hi; /* DASD limit (in logical blocks) */
++ u32 limit_lo; /* DASD limit (in logical blocks) */
++ u8 rsrvd2[3];
++ u8 used_hi; /* DASD usage (in logical blocks) */
++ u32 used_lo; /* DASD usage (in logical blocks) */
++} dasd_t;
++
++
++/* from jfs_superblock.h */
++
++#define JFS_MAGIC 0x3153464A /* "JFS1" */
++
++struct jfs_superblock
++{
++ u32 s_magic; /* 4: magic number */
++ u32 s_version; /* 4: version number */
++
++ s64 s_size; /* 8: aggregate size in hardware/LVM blocks;
++ * VFS: number of blocks
++ */
++ s32 s_bsize; /* 4: aggregate block size in bytes;
++ * VFS: fragment size
++ */
++ s16 s_l2bsize; /* 2: log2 of s_bsize */
++ s16 s_l2bfactor; /* 2: log2(s_bsize/hardware block size) */
++ s32 s_pbsize; /* 4: hardware/LVM block size in bytes */
++ s16 s_l2pbsize; /* 2: log2 of s_pbsize */
++ s16 pad; /* 2: padding necessary for alignment */
++
++ u32 s_agsize; /* 4: allocation group size in aggr. blocks */
++
++ u32 s_flag; /* 4: aggregate attributes:
++ * see jfs_filsys.h
++ */
++ u32 s_state; /* 4: mount/unmount/recovery state:
++ * see jfs_filsys.h
++ */
++ s32 s_compress; /* 4: > 0 if data compression */
++
++ pxd_t s_ait2; /* 8: first extent of secondary
++ * aggregate inode table
++ */
++
++ pxd_t s_aim2; /* 8: first extent of secondary
++ * aggregate inode map
++ */
++ u32 s_logdev; /* 4: device address of log */
++ s32 s_logserial; /* 4: log serial number at aggregate mount */
++ pxd_t s_logpxd; /* 8: inline log extent */
++
++ pxd_t s_fsckpxd; /* 8: inline fsck work space extent */
++
++ struct timestruc_t s_time; /* 8: time last updated */
++
++ s32 s_fsckloglen; /* 4: Number of filesystem blocks reserved for
++ * the fsck service log.
++ * N.B. These blocks are divided among the
++ * versions kept. This is not a per
++ * version size.
++ * N.B. These blocks are included in the
++ * length field of s_fsckpxd.
++ */
++ s8 s_fscklog; /* 1: which fsck service log is most recent
++ * 0 => no service log data yet
++ * 1 => the first one
++ * 2 => the 2nd one
++ */
++ char s_fpack[11]; /* 11: file system volume name
++ * N.B. This must be 11 bytes to
++ * conform with the OS/2 BootSector
++ * requirements
++ */
++
++ /* extendfs() parameter under s_state & FM_EXTENDFS */
++ s64 s_xsize; /* 8: extendfs s_size */
++ pxd_t s_xfsckpxd; /* 8: extendfs fsckpxd */
++ pxd_t s_xlogpxd; /* 8: extendfs logpxd */
++ /* - 128 byte boundary - */
++
++ /*
++ * DFS VFS support (preliminary)
++ */
++ char s_attach; /* 1: VFS: flag: set when aggregate is attached
++ */
++ u8 rsrvd4[7]; /* 7: reserved - set to 0 */
++
++ u64 totalUsable; /* 8: VFS: total of 1K blocks which are
++ * available to "normal" (non-root) users.
++ */
++ u64 minFree; /* 8: VFS: # of 1K blocks held in reserve for
++ * exclusive use of root. This value can be 0,
++ * and if it is then totalUsable will be equal
++ * to # of blocks in aggregate. I believe this
++ * means that minFree + totalUsable = # blocks.
++ * In that case, we don't need to store both
++ * totalUsable and minFree since we can compute
++ * one from the other. I would guess minFree
++ * would be the one we should store, and
++ * totalUsable would be the one we should
++ * compute. (Just a guess...)
++ */
++
++ u64 realFree; /* 8: VFS: # of free 1K blocks can be used by
++ * "normal" users. It may be this is something
++ * we should compute when asked for instead of
++ * storing in the superblock. I don't know how
++ * often this information is needed.
++ */
++ /*
++ * graffiti area
++ */
++};
++
++/* from jfs_dtree.h */
++
++/*
++ * entry segment/slot
++ *
++ * an entry consists of type dependent head/only segment/slot and
++ * additional segments/slots linked vi next field;
++ * N.B. last/only segment of entry is terminated by next = -1;
++ */
++/*
++ * directory page slot
++ */
++typedef struct {
++ s8 next; /* 1: */
++ s8 cnt; /* 1: */
++ UniChar name[15]; /* 30: */
++} dtslot_t; /* (32) */
++
++#define DTSLOTDATALEN 15
++
++/*
++ * internal node entry head/only segment
++ */
++typedef struct {
++ pxd_t xd; /* 8: child extent descriptor */
++
++ s8 next; /* 1: */
++ u8 namlen; /* 1: */
++ UniChar name[11]; /* 22: 2-byte aligned */
++} idtentry_t; /* (32) */
++
++/*
++ * leaf node entry head/only segment
++ *
++ * For legacy filesystems, name contains 13 unichars -- no index field
++ */
++typedef struct {
++ u32 inumber; /* 4: 4-byte aligned */
++ s8 next; /* 1: */
++ u8 namlen; /* 1: */
++ UniChar name[11]; /* 22: 2-byte aligned */
++ u32 index; /* 4: index into dir_table */
++} ldtentry_t; /* (32) */
++
++#define DTLHDRDATALEN 11
++
++/*
++ * dir_table used for directory traversal during readdir
++*/
++
++/*
++ * Maximum entry in inline directory table
++ */
++
++typedef struct dir_table_slot {
++ u8 rsrvd; /* 1: */
++ u8 flag; /* 1: 0 if free */
++ u8 slot; /* 1: slot within leaf page of entry */
++ u8 addr1; /* 1: upper 8 bits of leaf page address */
++ u32 addr2; /* 4: lower 32 bits of leaf page address -OR-
++ index of next entry when this entry was deleted */
++} dir_table_slot_t; /* (8) */
++
++/*
++ * directory root page (in-line in on-disk inode):
++ *
++ * cf. dtpage_t below.
++ */
++typedef union {
++ struct {
++ dasd_t DASD; /* 16: DASD limit/usage info F226941 */
++
++ u8 flag; /* 1: */
++ s8 nextindex; /* 1: next free entry in stbl */
++ s8 freecnt; /* 1: free count */
++ s8 freelist; /* 1: freelist header */
++
++ u32 idotdot; /* 4: parent inode number */
++
++ s8 stbl[8]; /* 8: sorted entry index table */
++ } header; /* (32) */
++
++ dtslot_t slot[9];
++} dtroot_t;
++
++/*
++ * directory regular page:
++ *
++ * entry slot array of 32 byte slot
++ *
++ * sorted entry slot index table (stbl):
++ * contiguous slots at slot specified by stblindex,
++ * 1-byte per entry
++ * 512 byte block: 16 entry tbl (1 slot)
++ * 1024 byte block: 32 entry tbl (1 slot)
++ * 2048 byte block: 64 entry tbl (2 slot)
++ * 4096 byte block: 128 entry tbl (4 slot)
++ *
++ * data area:
++ * 512 byte block: 16 - 2 = 14 slot
++ * 1024 byte block: 32 - 2 = 30 slot
++ * 2048 byte block: 64 - 3 = 61 slot
++ * 4096 byte block: 128 - 5 = 123 slot
++ *
++ * N.B. index is 0-based; index fields refer to slot index
++ * except nextindex which refers to entry index in stbl;
++ * end of entry stot list or freelist is marked with -1.
++ */
++typedef union {
++ struct {
++ s64 next; /* 8: next sibling */
++ s64 prev; /* 8: previous sibling */
++
++ u8 flag; /* 1: */
++ s8 nextindex; /* 1: next entry index in stbl */
++ s8 freecnt; /* 1: */
++ s8 freelist; /* 1: slot index of head of freelist */
++
++ u8 maxslot; /* 1: number of slots in page slot[] */
++ s8 stblindex; /* 1: slot index of start of stbl */
++ u8 rsrvd[2]; /* 2: */
++
++ pxd_t self; /* 8: self pxd */
++ } header; /* (32) */
++
++ dtslot_t slot[128];
++} dtpage_t;
++
++/* from jfs_xtree.h */
++
++/*
++ * extent allocation descriptor (xad)
++ */
++typedef struct xad {
++ unsigned flag:8; /* 1: flag */
++ unsigned rsvrd:16; /* 2: reserved */
++ unsigned off1:8; /* 1: offset in unit of fsblksize */
++ u32 off2; /* 4: offset in unit of fsblksize */
++ unsigned len:24; /* 3: length in unit of fsblksize */
++ unsigned addr1:8; /* 1: address in unit of fsblksize */
++ u32 addr2; /* 4: address in unit of fsblksize */
++} xad_t; /* (16) */
++
++/* xad_t field extraction */
++#define offsetXAD(xad) (((s64)((xad)->off1)) << 32 | ((xad)->off2))
++#define addressXAD(xad) (((s64)((xad)->addr1)) << 32 | ((xad)->addr2))
++#define lengthXAD(xad) ((xad)->len)
++
++/* possible values for maxentry */
++#define XTPAGEMAXSLOT 256
++#define XTENTRYSTART 2
++
++/*
++ * xtree page:
++ */
++typedef union {
++ struct xtheader {
++ s64 next; /* 8: */
++ s64 prev; /* 8: */
++
++ u8 flag; /* 1: */
++ u8 rsrvd1; /* 1: */
++ s16 nextindex; /* 2: next index = number of entries */
++ s16 maxentry; /* 2: max number of entries */
++ s16 rsrvd2; /* 2: */
++
++ pxd_t self; /* 8: self */
++ } header; /* (32) */
++
++ xad_t xad[XTPAGEMAXSLOT]; /* 16 * maxentry: xad array */
++} xtpage_t;
++
++/* from jfs_dinode.h */
++
++struct dinode {
++ /*
++ * I. base area (128 bytes)
++ * ------------------------
++ *
++ * define generic/POSIX attributes
++ */
++ u32 di_inostamp; /* 4: stamp to show inode belongs to fileset */
++ s32 di_fileset; /* 4: fileset number */
++ u32 di_number; /* 4: inode number, aka file serial number */
++ u32 di_gen; /* 4: inode generation number */
++
++ pxd_t di_ixpxd; /* 8: inode extent descriptor */
++
++ s64 di_size; /* 8: size */
++ s64 di_nblocks; /* 8: number of blocks allocated */
++
++ u32 di_nlink; /* 4: number of links to the object */
++
++ u32 di_uid; /* 4: user id of owner */
++ u32 di_gid; /* 4: group id of owner */
++
++ u32 di_mode; /* 4: attribute, format and permission */
++
++ struct timestruc_t di_atime; /* 8: time last data accessed */
++ struct timestruc_t di_ctime; /* 8: time last status changed */
++ struct timestruc_t di_mtime; /* 8: time last data modified */
++ struct timestruc_t di_otime; /* 8: time created */
++
++ dxd_t di_acl; /* 16: acl descriptor */
++
++ dxd_t di_ea; /* 16: ea descriptor */
++
++ s32 di_next_index; /* 4: Next available dir_table index */
++
++ s32 di_acltype; /* 4: Type of ACL */
++
++ /*
++ * Extension Areas.
++ *
++ * Historically, the inode was partitioned into 4 128-byte areas,
++ * the last 3 being defined as unions which could have multiple
++ * uses. The first 96 bytes had been completely unused until
++ * an index table was added to the directory. It is now more
++ * useful to describe the last 3/4 of the inode as a single
++ * union. We would probably be better off redesigning the
++ * entire structure from scratch, but we don't want to break
++ * commonality with OS/2's JFS at this time.
++ */
++ union {
++ struct {
++ /*
++ * This table contains the information needed to
++ * find a directory entry from a 32-bit index.
++ * If the index is small enough, the table is inline,
++ * otherwise, an x-tree root overlays this table
++ */
++ dir_table_slot_t _table[12]; /* 96: inline */
++
++ dtroot_t _dtroot; /* 288: dtree root */
++ } _dir; /* (384) */
++#define di_dirtable u._dir._table
++#define di_dtroot u._dir._dtroot
++#define di_parent di_dtroot.header.idotdot
++#define di_DASD di_dtroot.header.DASD
++
++ struct {
++ union {
++ u8 _data[96]; /* 96: unused */
++ struct {
++ void *_imap; /* 4: unused */
++ u32 _gengen; /* 4: generator */
++ } _imap;
++ } _u1; /* 96: */
++#define di_gengen u._file._u1._imap._gengen
++
++ union {
++ xtpage_t _xtroot;
++ struct {
++ u8 unused[16]; /* 16: */
++ dxd_t _dxd; /* 16: */
++ union {
++ u32 _rdev; /* 4: */
++ u8 _fastsymlink[128];
++ } _u;
++ u8 _inlineea[128];
++ } _special;
++ } _u2;
++ } _file;
++#define di_xtroot u._file._u2._xtroot
++#define di_dxd u._file._u2._special._dxd
++#define di_btroot di_xtroot
++#define di_inlinedata u._file._u2._special._u
++#define di_rdev u._file._u2._special._u._rdev
++#define di_fastsymlink u._file._u2._special._u._fastsymlink
++#define di_inlineea u._file._u2._special._inlineea
++ } u;
++};
++
++typedef struct dinode dinode_t;
++
++/* di_mode */
++#define IFMT 0xF000 /* S_IFMT - mask of file type */
++#define IFDIR 0x4000 /* S_IFDIR - directory */
++#define IFREG 0x8000 /* S_IFREG - regular file */
++#define IFLNK 0xA000 /* S_IFLNK - symbolic link */
++
++/* extended mode bits (on-disk inode di_mode) */
++#define INLINEEA 0x00040000 /* inline EA area free */
++
++/* from jfs_imap.h */
++
++#define EXTSPERIAG 128 /* number of disk inode extent per iag */
++#define SMAPSZ 4 /* number of words per summary map */
++#define MAXAG 128 /* maximum number of allocation groups */
++
++/*
++ * inode allocation map:
++ *
++ * inode allocation map consists of
++ * . the inode map control page and
++ * . inode allocation group pages (per 4096 inodes)
++ * which are addressed by standard JFS xtree.
++ */
++/*
++ * inode allocation group page (per 4096 inodes of an AG)
++ */
++typedef struct {
++ s64 agstart; /* 8: starting block of ag */
++ s32 iagnum; /* 4: inode allocation group number */
++ s32 inofreefwd; /* 4: ag inode free list forward */
++ s32 inofreeback; /* 4: ag inode free list back */
++ s32 extfreefwd; /* 4: ag inode extent free list forward */
++ s32 extfreeback; /* 4: ag inode extent free list back */
++ s32 iagfree; /* 4: iag free list */
++
++ /* summary map: 1 bit per inode extent */
++ s32 inosmap[SMAPSZ]; /* 16: sum map of mapwords w/ free inodes;
++ * note: this indicates free and backed
++ * inodes, if the extent is not backed the
++ * value will be 1. if the extent is
++ * backed but all inodes are being used the
++ * value will be 1. if the extent is
++ * backed but at least one of the inodes is
++ * free the value will be 0.
++ */
++ s32 extsmap[SMAPSZ]; /* 16: sum map of mapwords w/ free extents */
++ s32 nfreeinos; /* 4: number of free inodes */
++ s32 nfreeexts; /* 4: number of free extents */
++ /* (72) */
++ u8 pad[1976]; /* 1976: pad to 2048 bytes */
++ /* allocation bit map: 1 bit per inode (0 - free, 1 - allocated) */
++ u32 wmap[EXTSPERIAG]; /* 512: working allocation map */
++ u32 pmap[EXTSPERIAG]; /* 512: persistent allocation map */
++ pxd_t inoext[EXTSPERIAG]; /* 1024: inode extent addresses */
++} iag_t; /* (4096) */
++
++#endif /* _JFS_H_ */
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/shared.h grub-0.90.jfs+xfs/stage2/shared.h
+--- grub-0.90/stage2/shared.h Fri Jun 22 06:32:56 2001
++++ grub-0.90.jfs+xfs/stage2/shared.h Thu Aug 23 17:49:01 2001
+@@ -206,7 +206,9 @@
+ #define STAGE2_ID_FAT_STAGE1_5 3
+ #define STAGE2_ID_MINIX_STAGE1_5 4
+ #define STAGE2_ID_REISERFS_STAGE1_5 5
+-#define STAGE2_ID_VSTAFS_STAGE1_5 6
++#define STAGE2_ID_JFS_STAGE1_5 6
++#define STAGE2_ID_XFS_STAGE1_5 7
++#define STAGE2_ID_VSTAFS_STAGE1_5 8
+
+ #ifndef STAGE1_5
+ # define STAGE2_ID STAGE2_ID_STAGE2
+@@ -221,6 +223,10 @@
+ # define STAGE2_ID STAGE2_ID_MINIX_STAGE1_5
+ # elif defined(FSYS_REISERFS)
+ # define STAGE2_ID STAGE2_ID_REISERFS_STAGE1_5
++# elif defined(FSYS_JFS)
++# define STAGE2_ID STAGE2_ID_JFS_STAGE1_5
++# elif defined(FSYS_XFS)
++# define STAGE2_ID STAGE2_ID_XFS_STAGE1_5
+ # elif defined(FSYS_VSTAFS)
+ # define STAGE2_ID STAGE2_ID_VSTAFS_STAGE1_5
+ # else
+diff -urN --exclude-from=xlist-core grub-0.90/stage2/xfs.h grub-0.90.jfs+xfs/stage2/xfs.h
+--- grub-0.90/stage2/xfs.h Thu Jan 1 03:00:00 1970
++++ grub-0.90.jfs+xfs/stage2/xfs.h Wed Aug 29 02:00:47 2001
+@@ -0,0 +1,545 @@
++/*
++ * xfs.h - an extraction from xfsprogs-1.3.5/include/xfs* into one file
++ *
++ * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of version 2 of the GNU General Public License as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it would be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * Further, this software is distributed without any warranty that it is
++ * free of the rightful claim of any third person regarding infringement
++ * or the like. Any license provided herein, whether implied or
++ * otherwise, applies only to this software file. Patent licenses, if
++ * any, provided herein do not apply to combinations of this program with
++ * other software, or any other product whatsoever.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write the Free Software Foundation, Inc., 59
++ * Temple Place - Suite 330, Boston MA 02111-1307, USA.
++ *
++ * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
++ * Mountain View, CA 94043, or:
++ *
++ * http://www.sgi.com
++ *
++ * For further information regarding this notice, see:
++ *
++ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
++ */
++
++#ifndef _BITS_TYPES_H
++typedef signed char __int8_t;
++typedef unsigned char __uint8_t;
++typedef short __int16_t;
++typedef unsigned short __uint16_t;
++typedef int __int32_t;
++typedef unsigned int __uint32_t;
++typedef long long __int64_t;
++typedef unsigned long long __uint64_t;
++#endif
++
++typedef __uint64_t xfs_ino_t;
++typedef __uint32_t xfs_agino_t;
++typedef __int64_t xfs_daddr_t;
++typedef __int64_t xfs_off_t;
++typedef __uint8_t uuid_t[16];
++
++
++/* those are from xfs_types.h */
++
++typedef __uint32_t xfs_agblock_t; /* blockno in alloc. group */
++typedef __uint32_t xfs_extlen_t; /* extent length in blocks */
++typedef __uint32_t xfs_agnumber_t; /* allocation group number */
++typedef __int32_t xfs_extnum_t; /* # of extents in a file */
++typedef __int16_t xfs_aextnum_t; /* # extents in an attribute fork */
++typedef __int64_t xfs_fsize_t; /* bytes in a file */
++
++typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */
++typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */
++
++/*
++ * Disk based types:
++ */
++typedef __uint64_t xfs_dfsbno_t; /* blockno in filesystem (agno|agbno) */
++typedef __uint64_t xfs_drfsbno_t; /* blockno in filesystem (raw) */
++typedef __uint64_t xfs_drtbno_t; /* extent (block) in realtime area */
++typedef __uint64_t xfs_dfiloff_t; /* block number in a file */
++
++typedef __uint64_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */
++typedef __uint64_t xfs_fileoff_t; /* block number in a file */
++typedef __uint64_t xfs_filblks_t; /* number of blocks in a file */
++
++
++/* those are from xfs_sb.h */
++
++#define XFS_SB_MAGIC 0x58465342 /* 'XFSB'*/
++#define XFS_SB_VERSION_4 4 /* 6.2+ - bitmask version */
++#define XFS_SB_VERSION_NUMBITS 0x000f
++
++typedef struct xfs_sb
++{
++ __uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */
++ __uint32_t sb_blocksize; /* logical block size, bytes */
++ xfs_drfsbno_t sb_dblocks; /* number of data blocks */
++ xfs_drfsbno_t sb_rblocks; /* number of realtime blocks */
++ xfs_drtbno_t sb_rextents; /* number of realtime extents */
++ uuid_t sb_uuid; /* file system unique id */
++ xfs_dfsbno_t sb_logstart; /* starting block of log if internal */
++ xfs_ino_t sb_rootino; /* root inode number */
++ xfs_ino_t sb_rbmino; /* bitmap inode for realtime extents */
++ xfs_ino_t sb_rsumino; /* summary inode for rt bitmap */
++ xfs_agblock_t sb_rextsize; /* realtime extent size, blocks */
++ xfs_agblock_t sb_agblocks; /* size of an allocation group */
++ xfs_agnumber_t sb_agcount; /* number of allocation groups */
++ xfs_extlen_t sb_rbmblocks; /* number of rt bitmap blocks */
++ xfs_extlen_t sb_logblocks; /* number of log blocks */
++ __uint16_t sb_versionnum; /* header version == XFS_SB_VERSION */
++ __uint16_t sb_sectsize; /* volume sector size, bytes */
++ __uint16_t sb_inodesize; /* inode size, bytes */
++ __uint16_t sb_inopblock; /* inodes per block */
++ char sb_fname[12]; /* file system name */
++ __uint8_t sb_blocklog; /* log2 of sb_blocksize */
++ __uint8_t sb_sectlog; /* log2 of sb_sectsize */
++ __uint8_t sb_inodelog; /* log2 of sb_inodesize */
++ __uint8_t sb_inopblog; /* log2 of sb_inopblock */
++ __uint8_t sb_agblklog; /* log2 of sb_agblocks (rounded up) */
++ __uint8_t sb_rextslog; /* log2 of sb_rextents */
++ __uint8_t sb_inprogress; /* mkfs is in progress, don't mount */
++ __uint8_t sb_imax_pct; /* max % of fs for inode space */
++ /* statistics */
++ /*
++ * These fields must remain contiguous. If you really
++ * want to change their layout, make sure you fix the
++ * code in xfs_trans_apply_sb_deltas().
++ */
++ __uint64_t sb_icount; /* allocated inodes */
++ __uint64_t sb_ifree; /* free inodes */
++ __uint64_t sb_fdblocks; /* free data blocks */
++ __uint64_t sb_frextents; /* free realtime extents */
++ /*
++ * End contiguous fields.
++ */
++ xfs_ino_t sb_uquotino; /* user quota inode */
++ xfs_ino_t sb_gquotino; /* group quota inode */
++ __uint16_t sb_qflags; /* quota flags */
++ __uint8_t sb_flags; /* misc. flags */
++ __uint8_t sb_shared_vn; /* shared version number */
++ xfs_extlen_t sb_inoalignmt; /* inode chunk alignment, fsblocks */
++ __uint32_t sb_unit; /* stripe or raid unit */
++ __uint32_t sb_width; /* stripe or raid width */
++ __uint8_t sb_dirblklog; /* log2 of dir block size (fsbs) */
++ __uint8_t sb_dummy[7]; /* padding */
++} xfs_sb_t;
++
++
++/* those are from xfs_btree.h */
++
++/*
++ * Long form header: bmap btrees.
++ */
++typedef struct xfs_btree_lblock
++{
++ __uint32_t bb_magic; /* magic number for block type */
++ __uint16_t bb_level; /* 0 is a leaf */
++ __uint16_t bb_numrecs; /* current # of data records */
++ xfs_dfsbno_t bb_leftsib; /* left sibling block or NULLDFSBNO */
++ xfs_dfsbno_t bb_rightsib; /* right sibling block or NULLDFSBNO */
++} xfs_btree_lblock_t;
++
++/*
++ * Combined header and structure, used by common code.
++ */
++typedef struct xfs_btree_hdr
++{
++ __uint32_t bb_magic; /* magic number for block type */
++ __uint16_t bb_level; /* 0 is a leaf */
++ __uint16_t bb_numrecs; /* current # of data records */
++} xfs_btree_hdr_t;
++
++typedef struct xfs_btree_block
++{
++ xfs_btree_hdr_t bb_h; /* header */
++ union {
++ struct {
++ xfs_agblock_t bb_leftsib;
++ xfs_agblock_t bb_rightsib;
++ } s; /* short form pointers */
++ struct {
++ xfs_dfsbno_t bb_leftsib;
++ xfs_dfsbno_t bb_rightsib;
++ } l; /* long form pointers */
++ } bb_u; /* rest */
++} xfs_btree_block_t;
++
++/* those are from xfs_bmap_btree.h */
++
++/*
++ * Bmap root header, on-disk form only.
++ */
++typedef struct xfs_bmdr_block
++{
++ __uint16_t bb_level; /* 0 is a leaf */
++ __uint16_t bb_numrecs; /* current # of data records */
++} xfs_bmdr_block_t;
++
++/*
++ * Bmap btree record and extent descriptor.
++ * For 32-bit kernels,
++ * l0:31 is an extent flag (value 1 indicates non-normal).
++ * l0:0-30 and l1:9-31 are startoff.
++ * l1:0-8, l2:0-31, and l3:21-31 are startblock.
++ * l3:0-20 are blockcount.
++ * For 64-bit kernels,
++ * l0:63 is an extent flag (value 1 indicates non-normal).
++ * l0:9-62 are startoff.
++ * l0:0-8 and l1:21-63 are startblock.
++ * l1:0-20 are blockcount.
++ */
++
++#define BMBT_USE_64 1
++
++typedef struct xfs_bmbt_rec_32
++{
++ __uint32_t l0, l1, l2, l3;
++} xfs_bmbt_rec_32_t;
++typedef struct xfs_bmbt_rec_64
++{
++ __uint64_t l0, l1;
++} xfs_bmbt_rec_64_t;
++
++#if BMBT_USE_64
++typedef __uint64_t xfs_bmbt_rec_base_t; /* use this for casts */
++typedef xfs_bmbt_rec_64_t xfs_bmbt_rec_t, xfs_bmdr_rec_t;
++#else /* !BMBT_USE_64 */
++typedef __uint32_t xfs_bmbt_rec_base_t; /* use this for casts */
++typedef xfs_bmbt_rec_32_t xfs_bmbt_rec_t, xfs_bmdr_rec_t;
++#endif /* BMBT_USE_64 */
++
++/*
++ * Key structure for non-leaf levels of the tree.
++ */
++typedef struct xfs_bmbt_key
++{
++ xfs_dfiloff_t br_startoff; /* starting file offset */
++} xfs_bmbt_key_t, xfs_bmdr_key_t;
++
++typedef xfs_dfsbno_t xfs_bmbt_ptr_t, xfs_bmdr_ptr_t; /* btree pointer type */
++ /* btree block header type */
++typedef struct xfs_btree_lblock xfs_bmbt_block_t;
++
++
++/* those are from xfs_dir2.h */
++/*
++ * Directory version 2.
++ * There are 4 possible formats:
++ * shortform
++ * single block - data with embedded leaf at the end
++ * multiple data blocks, single leaf+freeindex block
++ * data blocks, node&leaf blocks (btree), freeindex blocks
++ *
++ * The shortform format is in xfs_dir2_sf.h.
++ * The single block format is in xfs_dir2_block.h.
++ * The data block format is in xfs_dir2_data.h.
++ * The leaf and freeindex block formats are in xfs_dir2_leaf.h.
++ * Node blocks are the same as the other version, in xfs_da_btree.h.
++ */
++
++/*
++ * Byte offset in data block and shortform entry.
++ */
++typedef __uint16_t xfs_dir2_data_off_t;
++
++/*
++ * Byte offset in a directory.
++ */
++typedef xfs_off_t xfs_dir2_off_t;
++
++/* those are from xfs_da_btree.h */
++/*========================================================================
++ * Directory Structure when greater than XFS_LBSIZE(mp) bytes.
++ *========================================================================*/
++
++/*
++ * This structure is common to both leaf nodes and non-leaf nodes in the Btree.
++ *
++ * Is is used to manage a doubly linked list of all blocks at the same
++ * level in the Btree, and to identify which type of block this is.
++ */
++#define XFS_DIR2_LEAF1_MAGIC 0xd2f1 /* magic number: v2 dirlf single blks */
++#define XFS_DIR2_LEAFN_MAGIC 0xd2ff /* magic number: v2 dirlf multi blks */
++
++typedef struct xfs_da_blkinfo {
++ xfs_dablk_t forw; /* previous block in list */
++ xfs_dablk_t back; /* following block in list */
++ __uint16_t magic; /* validity check on block */
++ __uint16_t pad; /* unused */
++} xfs_da_blkinfo_t;
++
++/*
++ * This is the structure of the root and intermediate nodes in the Btree.
++ * The leaf nodes are defined above.
++ *
++ * Entries are not packed.
++ *
++ * Since we have duplicate keys, use a binary search but always follow
++ * all match in the block, not just the first match found.
++ */
++
++typedef struct xfs_da_intnode {
++ struct xfs_da_node_hdr { /* constant-structure header block */
++ xfs_da_blkinfo_t info; /* block type, links, etc. */
++ __uint16_t count; /* count of active entries */
++ __uint16_t level; /* level above leaves (leaf == 0) */
++ } hdr;
++ struct xfs_da_node_entry {
++ xfs_dahash_t hashval; /* hash value for this descendant */
++ xfs_dablk_t before; /* Btree block before this key */
++ } btree[1]; /* variable sized array of keys */
++} xfs_da_intnode_t;
++
++
++/* those are from xfs_dir2_data.h */
++/*
++ * Directory format 2, data block structures.
++ */
++
++/*
++ * Constants.
++ */
++#define XFS_DIR2_DATA_FREE_TAG 0xffff
++#define XFS_DIR2_DATA_FD_COUNT 3
++
++/*
++ * Structures.
++ */
++
++/*
++ * Describe a free area in the data block.
++ * The freespace will be formatted as a xfs_dir2_data_unused_t.
++ */
++typedef struct xfs_dir2_data_free {
++ xfs_dir2_data_off_t offset; /* start of freespace */
++ xfs_dir2_data_off_t length; /* length of freespace */
++} xfs_dir2_data_free_t;
++
++/*
++ * Header for the data blocks.
++ * Always at the beginning of a directory-sized block.
++ * The code knows that XFS_DIR2_DATA_FD_COUNT is 3.
++ */
++typedef struct xfs_dir2_data_hdr {
++ __uint32_t magic; /* XFS_DIR2_DATA_MAGIC */
++ /* or XFS_DIR2_BLOCK_MAGIC */
++ xfs_dir2_data_free_t bestfree[XFS_DIR2_DATA_FD_COUNT];
++} xfs_dir2_data_hdr_t;
++
++/*
++ * Active entry in a data block. Aligned to 8 bytes.
++ * Tag appears as the last 2 bytes.
++ */
++typedef struct xfs_dir2_data_entry {
++ xfs_ino_t inumber; /* inode number */
++ __uint8_t namelen; /* name length */
++ __uint8_t name[1]; /* name bytes, no null */
++ /* variable offset */
++ xfs_dir2_data_off_t tag; /* starting offset of us */
++} xfs_dir2_data_entry_t;
++
++/*
++ * Unused entry in a data block. Aligned to 8 bytes.
++ * Tag appears as the last 2 bytes.
++ */
++typedef struct xfs_dir2_data_unused {
++ __uint16_t freetag; /* XFS_DIR2_DATA_FREE_TAG */
++ xfs_dir2_data_off_t length; /* total free length */
++ /* variable offset */
++ xfs_dir2_data_off_t tag; /* starting offset of us */
++} xfs_dir2_data_unused_t;
++
++typedef union {
++ xfs_dir2_data_entry_t entry;
++ xfs_dir2_data_unused_t unused;
++} xfs_dir2_data_union_t;
++
++
++/* those are from xfs_dir2_leaf.h */
++/*
++ * Directory version 2, leaf block structures.
++ */
++
++/*
++ * Leaf block header.
++ */
++typedef struct xfs_dir2_leaf_hdr {
++ xfs_da_blkinfo_t info; /* header for da routines */
++ __uint16_t count; /* count of entries */
++ __uint16_t stale; /* count of stale entries */
++} xfs_dir2_leaf_hdr_t;
++
++
++/* those are from xfs_dir2_block.h */
++/*
++ * xfs_dir2_block.h
++ * Directory version 2, single block format structures
++ */
++
++/*
++ * The single block format is as follows:
++ * xfs_dir2_data_hdr_t structure
++ * xfs_dir2_data_entry_t and xfs_dir2_data_unused_t structures
++ * xfs_dir2_leaf_entry_t structures
++ * xfs_dir2_block_tail_t structure
++ */
++
++#define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */
++
++typedef struct xfs_dir2_block_tail {
++ __uint32_t count; /* count of leaf entries */
++ __uint32_t stale; /* count of stale lf entries */
++} xfs_dir2_block_tail_t;
++
++
++/* those are from xfs_dir2_sf.h */
++
++/*
++ * Directory layout when stored internal to an inode.
++ *
++ * Small directories are packed as tightly as possible so as to
++ * fit into the literal area of the inode.
++ */
++
++/*
++ * Inode number stored as 8 8-bit values.
++ */
++typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t;
++
++/*
++ * Inode number stored as 4 8-bit values.
++ * Works a lot of the time, when all the inode numbers in a directory
++ * fit in 32 bits.
++ */
++typedef struct { __uint8_t i[4]; } xfs_dir2_ino4_t;
++
++typedef union {
++ xfs_dir2_ino8_t i8;
++ xfs_dir2_ino4_t i4;
++} xfs_dir2_inou_t;
++
++/*
++ * Normalized offset (in a data block) of the entry, really xfs_dir2_data_off_t.
++ * Only need 16 bits, this is the byte offset into the single block form.
++ */
++typedef struct { __uint8_t i[2]; } xfs_dir2_sf_off_t;
++
++/*
++ * The parent directory has a dedicated field, and the self-pointer must
++ * be calculated on the fly.
++ *
++ * Entries are packed toward the top as tightly as possible. The header
++ * and the elements must be bcopy()'d out into a work area to get correct
++ * alignment for the inode number fields.
++ */
++typedef struct xfs_dir2_sf_hdr {
++ __uint8_t count; /* count of entries */
++ __uint8_t i8count; /* count of 8-byte inode #s */
++ xfs_dir2_inou_t parent; /* parent dir inode number */
++} xfs_dir2_sf_hdr_t;
++
++typedef struct xfs_dir2_sf_entry {
++ __uint8_t namelen; /* actual name length */
++ xfs_dir2_sf_off_t offset; /* saved offset */
++ __uint8_t name[1]; /* name, variable size */
++ xfs_dir2_inou_t inumber; /* inode number, var. offset */
++} xfs_dir2_sf_entry_t;
++
++typedef struct xfs_dir2_sf {
++ xfs_dir2_sf_hdr_t hdr; /* shortform header */
++ xfs_dir2_sf_entry_t list[1]; /* shortform entries */
++} xfs_dir2_sf_t;
++
++/* those are from xfs_dinode.h */
++
++#define XFS_DINODE_VERSION_1 1
++#define XFS_DINODE_VERSION_2 2
++#define XFS_DINODE_MAGIC 0x494e /* 'IN' */
++
++/*
++ * Disk inode structure.
++ * This is just the header; the inode is expanded to fill a variable size
++ * with the last field expanding. It is split into the core and "other"
++ * because we only need the core part in the in-core inode.
++ */
++typedef struct xfs_timestamp {
++ __int32_t t_sec; /* timestamp seconds */
++ __int32_t t_nsec; /* timestamp nanoseconds */
++} xfs_timestamp_t;
++
++/*
++ * Note: Coordinate changes to this structure with the XFS_DI_* #defines
++ * below and the offsets table in xfs_ialloc_log_di().
++ */
++typedef struct xfs_dinode_core
++{
++ __uint16_t di_magic; /* inode magic # = XFS_DINODE_MAGIC */
++ __uint16_t di_mode; /* mode and type of file */
++ __int8_t di_version; /* inode version */
++ __int8_t di_format; /* format of di_c data */
++ __uint16_t di_onlink; /* old number of links to file */
++ __uint32_t di_uid; /* owner's user id */
++ __uint32_t di_gid; /* owner's group id */
++ __uint32_t di_nlink; /* number of links to file */
++ __uint16_t di_projid; /* owner's project id */
++ __uint8_t di_pad[10]; /* unused, zeroed space */
++ xfs_timestamp_t di_atime; /* time last accessed */
++ xfs_timestamp_t di_mtime; /* time last modified */
++ xfs_timestamp_t di_ctime; /* time created/inode modified */
++ xfs_fsize_t di_size; /* number of bytes in file */
++ xfs_drfsbno_t di_nblocks; /* # of direct & btree blocks used */
++ xfs_extlen_t di_extsize; /* basic/minimum extent size for file */
++ xfs_extnum_t di_nextents; /* number of extents in data fork */
++ xfs_aextnum_t di_anextents; /* number of extents in attribute fork*/
++ __uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */
++ __int8_t di_aformat; /* format of attr fork's data */
++ __uint32_t di_dmevmask; /* DMIG event mask */
++ __uint16_t di_dmstate; /* DMIG state info */
++ __uint16_t di_flags; /* random flags, XFS_DIFLAG_... */
++ __uint32_t di_gen; /* generation number */
++} xfs_dinode_core_t;
++
++typedef struct xfs_dinode
++{
++ xfs_dinode_core_t di_core;
++ xfs_agino_t di_next_unlinked;/* agi unlinked list ptr */
++ union {
++ xfs_bmdr_block_t di_bmbt; /* btree root block */
++ xfs_bmbt_rec_32_t di_bmx[1]; /* extent list */
++ xfs_dir2_sf_t di_dir2sf; /* shortform directory v2 */
++ char di_c[1]; /* local contents */
++ } di_u;
++} xfs_dinode_t;
++
++/*
++ * Values for di_format
++ */
++typedef enum xfs_dinode_fmt
++{
++ XFS_DINODE_FMT_DEV, /* CHR, BLK: di_dev */
++ XFS_DINODE_FMT_LOCAL, /* DIR, REG: di_c */
++ /* LNK: di_symlink */
++ XFS_DINODE_FMT_EXTENTS, /* DIR, REG, LNK: di_bmx */
++ XFS_DINODE_FMT_BTREE, /* DIR, REG, LNK: di_bmbt */
++ XFS_DINODE_FMT_UUID /* MNT: di_uuid */
++} xfs_dinode_fmt_t;
++
++/*
++ * File types (mode field)
++ */
++#define IFMT 0170000 /* type of file */
++#define IFDIR 0040000 /* directory */
++#define IFREG 0100000 /* regular */
++#define IFLNK 0120000 /* symbolic link */
diff --git a/sys-apps/grub/grub-0.90-r4.ebuild b/sys-apps/grub/grub-0.90-r4.ebuild
new file mode 100644
index 000000000000..4d0274934c96
--- /dev/null
+++ b/sys-apps/grub/grub-0.90-r4.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Mikael Hallendal <hallski@gentoo.org>
+# /home/cvsroot/gentoo-x86/sys-apps/grub/grub-0.5.96.1-r2.ebuild,v 1.2 2001/02/07 20:05:43 achim Exp
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/grub/grub-0.90-r4.ebuild,v 1.1 2001/12/29 02:17:55 gbevin Exp $
+
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="GNU GRUB boot loader"
+SRC_URI="ftp://alpha.gnu.org/gnu/grub/${A}"
+HOMEPAGE="http://www.gnu.org/software/grub"
+
+DEPEND="virtual/glibc
+ >=sys-libs/ncurses-5.2-r2"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ patch -p1 < ${FILESDIR}/${P}/grub-0.5.97-vga16.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-0.5.96.1-special-raid-devices.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-0.5.96.1-dont-give-mem-to-kernel.patch || die
+# patch -p1 < ${FILESDIR}/${P}/grub-0.90-configfile.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-0.90-vga16-keypressclear.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-0.90-passwordprompt.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-jfs+xfs-1.0-core.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-jfs+xfs-1.0-build.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-0.90-install.in.patch || die
+ patch -p1 < ${FILESDIR}/${P}/grub-0.90-installcopyonly.patch || die
+ cp -a ${FILESDIR}/${P}/configure .
+}
+
+src_compile() {
+
+ ./configure --prefix=/usr --sbindir=/sbin \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --host=${CHOST}
+ assert "Configuration of package failed."
+
+ # Have to do this since the configure-script seems a little brooken
+ echo "#define VGA16 1" >> config.h
+
+ emake -e CPPFLAGS="-Wall -Wmissing-prototypes -Wunused \
+ -Wshadow -malign-jumps=1 -malign-loops=1 \
+ -malign-functions=1 -Wundef"
+ assert "Building failed."
+}
+
+src_install() {
+
+ make prefix=${D}/usr sbindir=${D}/sbin mandir=${D}/usr/share/man \
+ infodir=${D}/usr/share/info install
+ assert "Installation failed."
+
+ if [ -z "`use bootcd`" ]
+ then
+ dodir /boot/grub
+ cd ${D}/usr/share/grub/i386-pc
+ cp stage1 stage2 *stage1_5 ${D}/boot/grub
+ cp ${FILESDIR}/${P}/splash.xpm.gz ${D}/boot/grub
+
+ cd ${S}
+ dodoc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO
+ else
+ rm -rf ${D}/usr/share/{man,info,doc}
+ fi
+}