make the LBA support bitmap checks configurable at the installation time.
This commit is contained in:
parent
215f9012d5
commit
92fca67cf5
15 changed files with 283 additions and 216 deletions
55
ChangeLog
55
ChangeLog
|
@ -1,3 +1,58 @@
|
||||||
|
2000-04-17 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
|
The user doesn't have to recompile GRUB for his/her buggy BIOS
|
||||||
|
any longer. It is configurable to ignore the LBA support bitmap
|
||||||
|
at the installation time.
|
||||||
|
|
||||||
|
* stage1/stage1.S (force_lba): New variable.
|
||||||
|
(stage2_address): Moved forwards, to align some variables in
|
||||||
|
natural boundaries.
|
||||||
|
(real_start): Check if FORCE_LBA is non-zero, if so, jump to
|
||||||
|
skip_lba_bitmap_check, otherwise, check if bit 0 of the support
|
||||||
|
bitmap is non-zero.
|
||||||
|
Don't use #ifdef for CHECK_LBA_SUPPORT_BITMAP.
|
||||||
|
(skip_lba_bitmap_check): New label.
|
||||||
|
* stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 1.
|
||||||
|
(STAGE1_FORCE_LBA): New macro.
|
||||||
|
(STAGE1_STAGE2_ADDRESS): Set to 0x42.
|
||||||
|
(STAGE1_STAGE2_SECTOR): Set to 0x44.
|
||||||
|
(STAGE1_STAGE2_SEGMENT): Set to 0x48.
|
||||||
|
* stage2/asm.S (force_lba): New variable.
|
||||||
|
* stage2/bios.c (get_diskinfo): Don't use #ifdef for
|
||||||
|
CHECK_LBA_SUPPORT_BITMAP. Instead, check if FORCE_LBA is
|
||||||
|
non-zero. If so, don't check the bit 0 of DRP.FLAG.
|
||||||
|
* stage2/builtins.c (install_func): Check if a new option
|
||||||
|
`--force-lba' is specified. If specified, set IS_FORCE_LBA to 1
|
||||||
|
and set ARG to a value returned by skip_to. Otherwise,
|
||||||
|
IS_FORCE_LBA is zero.
|
||||||
|
Set the "force LBA" flag in STAGE1_BUFFER (the offset is
|
||||||
|
STAGE1_FORCE_LBA) to IS_FORCE_LBA.
|
||||||
|
Likewise, set the "force LBA" flag in STAGE2_SECOND_BUFFER
|
||||||
|
(the offset is STAGE2_FORCE_LBA) to IS_FORCE_LBA.
|
||||||
|
If IS_STAGE1_5 is true, then modify the Stage2, regardless of
|
||||||
|
the presence of the option REAL_CONFIG_FILE. Set the "force LBA"
|
||||||
|
flag in SCRATCHADDR (the offset is STAGE2_FORCE_LBA) to
|
||||||
|
IS_FORCE_LBA.
|
||||||
|
(builtin_install): Added description about `--force-lba' into
|
||||||
|
the docs.
|
||||||
|
(setup_func): Check if `--force-lba' is specified in ARG. If
|
||||||
|
specified, set IS_FORCE_LBA to 1 and set ARG to a value returned
|
||||||
|
by skip_to. Otherwise, IS_FORCE_LBA is zero.
|
||||||
|
If IS_FORCE_LBA is true, prepend "--force-lba " to CMD_ARG.
|
||||||
|
(builtin_setup): Added descriptions about `--force-lba' into the
|
||||||
|
docs.
|
||||||
|
* stage2/shared.h (STAGE2_FORCE_LBA): New macro.
|
||||||
|
(STAGE2_VER_STR_OFFS): Set to 0xe.
|
||||||
|
(force_lba): Declared.
|
||||||
|
* util/grub-install.in (force_lba): New variable. Set to an
|
||||||
|
empty sting by default.
|
||||||
|
(usage): Added a description about `--force-lba'.
|
||||||
|
(--force-lba): Checked in the option handling code. If
|
||||||
|
specified, set FORCE_LBA to "--force-lba".
|
||||||
|
Run the command "setup" with $force_lba added before
|
||||||
|
$install_drive.
|
||||||
|
* configure.in (--disable-lba-support-bitmap): Removed.
|
||||||
|
|
||||||
2000-04-15 OKUJI Yoshinori <okuji@gnu.org>
|
2000-04-15 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
* util/grub-install.in (root_device): Append `/' to ${rootdir},
|
* util/grub-install.in (root_device): Append `/' to ${rootdir},
|
||||||
|
|
8
INSTALL
8
INSTALL
|
@ -188,14 +188,6 @@ operates.
|
||||||
confusing) to the casual installer. If you are a GRUB developer,
|
confusing) to the casual installer. If you are a GRUB developer,
|
||||||
it is a good idea to specify this option.
|
it is a good idea to specify this option.
|
||||||
|
|
||||||
`--disable-lba-support-bitmap-check'
|
|
||||||
Disable the check for LBA support bitmap. Specify this option
|
|
||||||
if you are sure that your BIOS has the INT 13 extension support,
|
|
||||||
but GRUB doesn't access your drives in LBA mode. This is
|
|
||||||
necessary because an incorrect LBA support bitmap is returned in
|
|
||||||
several buggy BIOSes. You can check if GRUB recognizes the INT 13
|
|
||||||
extension support by the command `geometry'.
|
|
||||||
|
|
||||||
`--disable-ext2fs'
|
`--disable-ext2fs'
|
||||||
Omit the ext2fs support in Stage 2.
|
Omit the ext2fs support in Stage 2.
|
||||||
|
|
||||||
|
|
6
NEWS
6
NEWS
|
@ -10,6 +10,12 @@ New in 0.5.95 - XXXX-XX-XX:
|
||||||
to load a NetBSD ELF kernel, because GRUB can automatically determine
|
to load a NetBSD ELF kernel, because GRUB can automatically determine
|
||||||
a kernel type in the other cases.
|
a kernel type in the other cases.
|
||||||
* ReiserFS support is added.
|
* ReiserFS support is added.
|
||||||
|
* Added a new option `--force-lba' into the command "install". This
|
||||||
|
option disables some sanity checks for LBA mode (but not all). If you
|
||||||
|
are sure that your machine supports LBA mode but GRUB doesn't work in
|
||||||
|
LBA mode, you should specify it. It is necessary if your BIOS is too
|
||||||
|
buggy. In the previous version, it was a compile-time option, but you
|
||||||
|
don't have to recompile GRUB any longer.
|
||||||
|
|
||||||
New in 0.5.94 - 2000-03-06:
|
New in 0.5.94 - 2000-03-06:
|
||||||
* Stage 1 supports both the LBA mode and the CHS mode.
|
* Stage 1 supports both the LBA mode and the CHS mode.
|
||||||
|
|
|
@ -24,6 +24,3 @@
|
||||||
|
|
||||||
/* Defined if _end is defined. */
|
/* Defined if _end is defined. */
|
||||||
#undef HAVE_USCORE_END_SYMBOL
|
#undef HAVE_USCORE_END_SYMBOL
|
||||||
|
|
||||||
/* Defined if --disable-lba-support-bitmap is specified. */
|
|
||||||
#undef CHECK_LBA_SUPPORT_BITMAP
|
|
||||||
|
|
57
config.h.in
57
config.h.in
|
@ -24,8 +24,29 @@
|
||||||
/* Defined if _end is defined. */
|
/* Defined if _end is defined. */
|
||||||
#undef HAVE_USCORE_END_SYMBOL
|
#undef HAVE_USCORE_END_SYMBOL
|
||||||
|
|
||||||
/* Defined if --disable-lba-support-bitmap is specified. */
|
/* Define if you have the <curses.h> header file. */
|
||||||
#undef CHECK_LBA_SUPPORT_BITMAP
|
#undef HAVE_CURSES_H
|
||||||
|
|
||||||
|
/* Define if you have the <ncurses.h> header file. */
|
||||||
|
#undef HAVE_NCURSES_H
|
||||||
|
|
||||||
|
/* Define if you have the <ncurses/curses.h> header file. */
|
||||||
|
#undef HAVE_NCURSES_CURSES_H
|
||||||
|
|
||||||
|
/* Define if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* Define if C symbols get an underscore after compilation */
|
||||||
|
#undef HAVE_ASM_USCORE
|
||||||
|
|
||||||
/* Define it to "addr32" or "addr32;" to make GAS happy */
|
/* Define it to "addr32" or "addr32;" to make GAS happy */
|
||||||
#undef ADDR32
|
#undef ADDR32
|
||||||
|
@ -33,38 +54,6 @@
|
||||||
/* Define it to "data32" or "data32;" to make GAS happy */
|
/* Define it to "data32" or "data32;" to make GAS happy */
|
||||||
#undef DATA32
|
#undef DATA32
|
||||||
|
|
||||||
/* Define if C symbols get an underscore after compilation */
|
|
||||||
#undef HAVE_ASM_USCORE
|
|
||||||
|
|
||||||
/* Define if you have the <curses.h> header file. */
|
|
||||||
#undef HAVE_CURSES_H
|
|
||||||
|
|
||||||
/* Define if you have the `curses' library (-lcurses). */
|
|
||||||
#undef HAVE_LIBCURSES
|
|
||||||
|
|
||||||
/* Define if you have the `ncurses' library (-lncurses). */
|
|
||||||
#undef HAVE_LIBNCURSES
|
|
||||||
|
|
||||||
/* Define if you have the `util' library (-lutil). */
|
|
||||||
#undef HAVE_LIBUTIL
|
|
||||||
|
|
||||||
/* Define if you have the <ncurses/curses.h> header file. */
|
|
||||||
#undef HAVE_NCURSES_CURSES_H
|
|
||||||
|
|
||||||
/* Define if you have the <ncurses.h> header file. */
|
|
||||||
#undef HAVE_NCURSES_H
|
|
||||||
|
|
||||||
/* Define if opendisk() in -lutil can be used */
|
/* Define if opendisk() in -lutil can be used */
|
||||||
#undef HAVE_OPENDISK
|
#undef HAVE_OPENDISK
|
||||||
|
|
||||||
/* Define if you have the <strings.h> header file. */
|
|
||||||
#undef HAVE_STRINGS_H
|
|
||||||
|
|
||||||
/* Define if you have the <string.h> header file. */
|
|
||||||
#undef HAVE_STRING_H
|
|
||||||
|
|
||||||
/* Name of package */
|
|
||||||
#undef PACKAGE
|
|
||||||
|
|
||||||
/* Version number of package */
|
|
||||||
#undef VERSION
|
|
||||||
|
|
174
configure
vendored
174
configure
vendored
|
@ -21,9 +21,6 @@ ac_help="$ac_help
|
||||||
--with-binutils=DIR search the directory DIR to find binutils"
|
--with-binutils=DIR search the directory DIR to find binutils"
|
||||||
ac_help="$ac_help
|
ac_help="$ac_help
|
||||||
--without-curses do not use curses"
|
--without-curses do not use curses"
|
||||||
ac_help="$ac_help
|
|
||||||
--disable-lba-support-bitmap-check
|
|
||||||
disable a check for LBA support bitmap"
|
|
||||||
ac_help="$ac_help
|
ac_help="$ac_help
|
||||||
--disable-ext2fs disable ext2fs support in Stage 2"
|
--disable-ext2fs disable ext2fs support in Stage 2"
|
||||||
ac_help="$ac_help
|
ac_help="$ac_help
|
||||||
|
@ -647,7 +644,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
||||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||||
# ./install, which can be erroneously created by make from ./install.sh.
|
# ./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 $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||||
echo "configure:651: checking for a BSD compatible install" >&5
|
echo "configure:648: checking for a BSD compatible install" >&5
|
||||||
if test -z "$INSTALL"; then
|
if test -z "$INSTALL"; then
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
@ -700,7 +697,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
||||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||||
|
|
||||||
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
|
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
|
||||||
echo "configure:704: checking whether build environment is sane" >&5
|
echo "configure:701: checking whether build environment is sane" >&5
|
||||||
# Just in case
|
# Just in case
|
||||||
sleep 1
|
sleep 1
|
||||||
echo timestamp > conftestfile
|
echo timestamp > conftestfile
|
||||||
|
@ -772,7 +769,7 @@ do
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
set dummy $ac_prog; ac_word=$2
|
set dummy $ac_prog; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:776: checking for $ac_word" >&5
|
echo "configure:773: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -802,7 +799,7 @@ test -n "$AWK" && break
|
||||||
done
|
done
|
||||||
|
|
||||||
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
|
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
|
||||||
echo "configure:806: checking whether ${MAKE-make} sets \${MAKE}" >&5
|
echo "configure:803: checking whether ${MAKE-make} sets \${MAKE}" >&5
|
||||||
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
|
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
|
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
@ -937,7 +934,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $ac_n "checking host system type""... $ac_c" 1>&6
|
echo $ac_n "checking host system type""... $ac_c" 1>&6
|
||||||
echo "configure:941: checking host system type" >&5
|
echo "configure:938: checking host system type" >&5
|
||||||
|
|
||||||
host_alias=$host
|
host_alias=$host
|
||||||
case "$host_alias" in
|
case "$host_alias" in
|
||||||
|
@ -971,7 +968,7 @@ esac
|
||||||
#
|
#
|
||||||
|
|
||||||
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
|
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
|
||||||
echo "configure:975: checking whether to enable maintainer-specific portions of Makefiles" >&5
|
echo "configure:972: checking whether to enable maintainer-specific portions of Makefiles" >&5
|
||||||
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
|
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
|
||||||
if test "${enable_maintainer_mode+set}" = set; then
|
if test "${enable_maintainer_mode+set}" = set; then
|
||||||
enableval="$enable_maintainer_mode"
|
enableval="$enable_maintainer_mode"
|
||||||
|
@ -997,7 +994,7 @@ if test "x$enable_maintainer_mode" = xyes; then
|
||||||
# Extract the first word of "perl", so it can be a program name with args.
|
# Extract the first word of "perl", so it can be a program name with args.
|
||||||
set dummy perl; ac_word=$2
|
set dummy perl; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1001: checking for $ac_word" >&5
|
echo "configure:998: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1044,7 +1041,7 @@ fi
|
||||||
#
|
#
|
||||||
|
|
||||||
echo $ac_n "checking build system type""... $ac_c" 1>&6
|
echo $ac_n "checking build system type""... $ac_c" 1>&6
|
||||||
echo "configure:1048: checking build system type" >&5
|
echo "configure:1045: checking build system type" >&5
|
||||||
|
|
||||||
build_alias=$build
|
build_alias=$build
|
||||||
case "$build_alias" in
|
case "$build_alias" in
|
||||||
|
@ -1070,7 +1067,7 @@ fi
|
||||||
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
|
# 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
|
set dummy ${ac_tool_prefix}gcc; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1074: checking for $ac_word" >&5
|
echo "configure:1071: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1102,7 +1099,7 @@ fi
|
||||||
# Extract the first word of "gcc", so it can be a program name with args.
|
# Extract the first word of "gcc", so it can be a program name with args.
|
||||||
set dummy gcc; ac_word=$2
|
set dummy gcc; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1106: checking for $ac_word" >&5
|
echo "configure:1103: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1132,7 +1129,7 @@ if test -z "$CC"; then
|
||||||
# Extract the first word of "cc", so it can be a program name with args.
|
# Extract the first word of "cc", so it can be a program name with args.
|
||||||
set dummy cc; ac_word=$2
|
set dummy cc; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1136: checking for $ac_word" >&5
|
echo "configure:1133: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1183,7 +1180,7 @@ fi
|
||||||
# Extract the first word of "cl", so it can be a program name with args.
|
# Extract the first word of "cl", so it can be a program name with args.
|
||||||
set dummy cl; ac_word=$2
|
set dummy cl; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1187: checking for $ac_word" >&5
|
echo "configure:1184: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1215,7 +1212,7 @@ fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
|
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
|
||||||
echo "configure:1219: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
|
echo "configure:1216: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
|
||||||
|
|
||||||
ac_ext=c
|
ac_ext=c
|
||||||
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||||
|
@ -1226,12 +1223,12 @@ cross_compiling=$ac_cv_prog_cc_cross
|
||||||
|
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
|
|
||||||
#line 1230 "configure"
|
#line 1227 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
main(){return(0);}
|
main(){return(0);}
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:1232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
ac_cv_prog_cc_works=yes
|
ac_cv_prog_cc_works=yes
|
||||||
# If we can't run a trivial program, we are probably using a cross compiler.
|
# If we can't run a trivial program, we are probably using a cross compiler.
|
||||||
if (./conftest; exit) 2>/dev/null; then
|
if (./conftest; exit) 2>/dev/null; then
|
||||||
|
@ -1257,12 +1254,12 @@ 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; }
|
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
|
||||||
fi
|
fi
|
||||||
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
|
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
|
||||||
echo "configure:1261: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
|
echo "configure:1258: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
|
||||||
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
|
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
|
||||||
cross_compiling=$ac_cv_prog_cc_cross
|
cross_compiling=$ac_cv_prog_cc_cross
|
||||||
|
|
||||||
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
|
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
|
||||||
echo "configure:1266: checking whether we are using GNU C" >&5
|
echo "configure:1263: checking whether we are using GNU C" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1271,7 +1268,7 @@ else
|
||||||
yes;
|
yes;
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1275: \"$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:1272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||||
ac_cv_prog_gcc=yes
|
ac_cv_prog_gcc=yes
|
||||||
else
|
else
|
||||||
ac_cv_prog_gcc=no
|
ac_cv_prog_gcc=no
|
||||||
|
@ -1290,7 +1287,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
|
||||||
ac_save_CFLAGS="$CFLAGS"
|
ac_save_CFLAGS="$CFLAGS"
|
||||||
CFLAGS=
|
CFLAGS=
|
||||||
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
|
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
|
||||||
echo "configure:1294: checking whether ${CC-cc} accepts -g" >&5
|
echo "configure:1291: checking whether ${CC-cc} accepts -g" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1323,7 +1320,7 @@ fi
|
||||||
|
|
||||||
|
|
||||||
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
|
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
|
||||||
echo "configure:1327: checking how to run the C preprocessor" >&5
|
echo "configure:1324: checking how to run the C preprocessor" >&5
|
||||||
# On Suns, sometimes $CPP names a directory.
|
# On Suns, sometimes $CPP names a directory.
|
||||||
if test -n "$CPP" && test -d "$CPP"; then
|
if test -n "$CPP" && test -d "$CPP"; then
|
||||||
CPP=
|
CPP=
|
||||||
|
@ -1338,13 +1335,13 @@ else
|
||||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||||
# not just through cpp.
|
# not just through cpp.
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1342 "configure"
|
#line 1339 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
Syntax Error
|
Syntax Error
|
||||||
EOF
|
EOF
|
||||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||||
{ (eval echo configure:1348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
{ (eval echo configure:1345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||||
if test -z "$ac_err"; then
|
if test -z "$ac_err"; then
|
||||||
:
|
:
|
||||||
|
@ -1355,13 +1352,13 @@ else
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
CPP="${CC-cc} -E -traditional-cpp"
|
CPP="${CC-cc} -E -traditional-cpp"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1359 "configure"
|
#line 1356 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
Syntax Error
|
Syntax Error
|
||||||
EOF
|
EOF
|
||||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||||
{ (eval echo configure:1365: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
{ (eval echo configure:1362: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||||
if test -z "$ac_err"; then
|
if test -z "$ac_err"; then
|
||||||
:
|
:
|
||||||
|
@ -1372,13 +1369,13 @@ else
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
CPP="${CC-cc} -nologo -E"
|
CPP="${CC-cc} -nologo -E"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1376 "configure"
|
#line 1373 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
Syntax Error
|
Syntax Error
|
||||||
EOF
|
EOF
|
||||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||||
{ (eval echo configure:1382: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
{ (eval echo configure:1379: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||||
if test -z "$ac_err"; then
|
if test -z "$ac_err"; then
|
||||||
:
|
:
|
||||||
|
@ -1411,7 +1408,7 @@ echo "$ac_t""$CPP" 1>&6
|
||||||
depcc="$CC"
|
depcc="$CC"
|
||||||
depcpp="$CPP"
|
depcpp="$CPP"
|
||||||
echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
|
echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
|
||||||
echo "configure:1415: checking dependency style of $depcc" >&5
|
echo "configure:1412: checking dependency style of $depcc" >&5
|
||||||
if eval "test \"`echo '$''{'am_cv_CC_dependencies_compiler_type'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'am_cv_CC_dependencies_compiler_type'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1467,7 +1464,7 @@ if test "x$with_binutils" != x; then
|
||||||
# Extract the first word of "ranlib", so it can be a program name with args.
|
# Extract the first word of "ranlib", so it can be a program name with args.
|
||||||
set dummy ranlib; ac_word=$2
|
set dummy ranlib; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1471: checking for $ac_word" >&5
|
echo "configure:1468: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_RANLIB'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_RANLIB'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1504,7 +1501,7 @@ else
|
||||||
# Extract the first word of "ranlib", so it can be a program name with args.
|
# Extract the first word of "ranlib", so it can be a program name with args.
|
||||||
set dummy ranlib; ac_word=$2
|
set dummy ranlib; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1508: checking for $ac_word" >&5
|
echo "configure:1505: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1544,7 +1541,7 @@ if test "x$ac_cv_prog_gcc" = xyes; then
|
||||||
STAGE1_CFLAGS="-O2"
|
STAGE1_CFLAGS="-O2"
|
||||||
GRUB_CFLAGS="-O2"
|
GRUB_CFLAGS="-O2"
|
||||||
echo $ac_n "checking whether optimization for size works""... $ac_c" 1>&6
|
echo $ac_n "checking whether optimization for size works""... $ac_c" 1>&6
|
||||||
echo "configure:1548: checking whether optimization for size works" >&5
|
echo "configure:1545: checking whether optimization for size works" >&5
|
||||||
if eval "test \"`echo '$''{'size_flag'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'size_flag'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1552,14 +1549,14 @@ else
|
||||||
saved_CFLAGS=$CFLAGS
|
saved_CFLAGS=$CFLAGS
|
||||||
CFLAGS="-Os -g"
|
CFLAGS="-Os -g"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1556 "configure"
|
#line 1553 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
if { (eval echo configure:1560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
size_flag=yes
|
size_flag=yes
|
||||||
else
|
else
|
||||||
|
@ -1593,7 +1590,7 @@ if test "x$with_binutils" != x; then
|
||||||
# Extract the first word of "objcopy", so it can be a program name with args.
|
# Extract the first word of "objcopy", so it can be a program name with args.
|
||||||
set dummy objcopy; ac_word=$2
|
set dummy objcopy; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1597: checking for $ac_word" >&5
|
echo "configure:1594: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1629,7 +1626,7 @@ else
|
||||||
# Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
|
# 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
|
set dummy ${ac_tool_prefix}objcopy; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:1633: checking for $ac_word" >&5
|
echo "configure:1630: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1663,7 +1660,7 @@ fi
|
||||||
# Defined in acinclude.m4.
|
# Defined in acinclude.m4.
|
||||||
|
|
||||||
echo $ac_n "checking if C symbols get an underscore after compilation""... $ac_c" 1>&6
|
echo $ac_n "checking if C symbols get an underscore after compilation""... $ac_c" 1>&6
|
||||||
echo "configure:1667: checking if C symbols get an underscore after compilation" >&5
|
echo "configure:1664: checking if C symbols get an underscore after compilation" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_asm_uscore'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_asm_uscore'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1676,7 +1673,7 @@ func (int *list)
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1680: \"$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:1677: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.s; then
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
{ echo "configure: error: ${CC-cc} failed to produce assembly code" 1>&2; exit 1; }
|
{ echo "configure: error: ${CC-cc} failed to produce assembly code" 1>&2; exit 1; }
|
||||||
|
@ -1702,7 +1699,7 @@ fi
|
||||||
echo "$ac_t""$grub_cv_asm_uscore" 1>&6
|
echo "$ac_t""$grub_cv_asm_uscore" 1>&6
|
||||||
|
|
||||||
echo $ac_n "checking whether ${OBJCOPY} works for absolute addresses""... $ac_c" 1>&6
|
echo $ac_n "checking whether ${OBJCOPY} works for absolute addresses""... $ac_c" 1>&6
|
||||||
echo "configure:1706: checking whether ${OBJCOPY} works for absolute addresses" >&5
|
echo "configure:1703: checking whether ${OBJCOPY} works for absolute addresses" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_prog_objcopy_absolute'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_prog_objcopy_absolute'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1714,21 +1711,21 @@ cmain (void)
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if { (eval echo configure:1718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
|
if { (eval echo configure:1715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
|
||||||
else
|
else
|
||||||
{ echo "configure: error: ${CC-cc} cannot compile C source code" 1>&2; exit 1; }
|
{ echo "configure: error: ${CC-cc} cannot compile C source code" 1>&2; exit 1; }
|
||||||
fi
|
fi
|
||||||
grub_cv_prog_objcopy_absolute=yes
|
grub_cv_prog_objcopy_absolute=yes
|
||||||
for link_addr in 2000 8000 7C00; do
|
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:1724: \"$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:1721: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
|
||||||
else
|
else
|
||||||
{ echo "configure: error: ${CC-cc} cannot link at address $link_addr" 1>&2; exit 1; }
|
{ echo "configure: error: ${CC-cc} cannot link at address $link_addr" 1>&2; exit 1; }
|
||||||
fi
|
fi
|
||||||
if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
|
if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
|
||||||
else
|
else
|
||||||
{ echo "configure: error: ${OBJCOPY-objcopy} cannot create binary files" 1>&2; exit 1; }
|
{ echo "configure: error: ${OBJCOPY-objcopy} cannot create binary files" 1>&2; exit 1; }
|
||||||
fi
|
fi
|
||||||
if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'; { (eval echo configure:1732: \"$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:1729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||||
mv -f conftest conftest.old
|
mv -f conftest conftest.old
|
||||||
else
|
else
|
||||||
grub_cv_prog_objcopy_absolute=no
|
grub_cv_prog_objcopy_absolute=no
|
||||||
|
@ -1745,7 +1742,7 @@ fi
|
||||||
|
|
||||||
|
|
||||||
echo $ac_n "checking whether addr32 must be in the same line as the instruction""... $ac_c" 1>&6
|
echo $ac_n "checking whether addr32 must be in the same line as the instruction""... $ac_c" 1>&6
|
||||||
echo "configure:1749: checking whether addr32 must be in the same line as the instruction" >&5
|
echo "configure:1746: 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
|
if eval "test \"`echo '$''{'grub_cv_asm_prefix_requirement'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1754,7 +1751,7 @@ else
|
||||||
l1: addr32 movb %al, l1
|
l1: addr32 movb %al, l1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1758: \"$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:1755: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
|
||||||
grub_cv_asm_prefix_requirement=yes
|
grub_cv_asm_prefix_requirement=yes
|
||||||
else
|
else
|
||||||
grub_cv_asm_prefix_requirement=no
|
grub_cv_asm_prefix_requirement=no
|
||||||
|
@ -1786,7 +1783,7 @@ echo "$ac_t""$grub_cv_asm_prefix_requirement" 1>&6
|
||||||
|
|
||||||
|
|
||||||
echo $ac_n "checking for .code16 addr32 assembler support""... $ac_c" 1>&6
|
echo $ac_n "checking for .code16 addr32 assembler support""... $ac_c" 1>&6
|
||||||
echo "configure:1790: checking for .code16 addr32 assembler support" >&5
|
echo "configure:1787: checking for .code16 addr32 assembler support" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_asm_addr32'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_asm_addr32'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -1801,7 +1798,7 @@ else
|
||||||
sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
|
sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1805: \"$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:1802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
|
||||||
grub_cv_asm_addr32=yes
|
grub_cv_asm_addr32=yes
|
||||||
else
|
else
|
||||||
grub_cv_asm_addr32=no
|
grub_cv_asm_addr32=no
|
||||||
|
@ -1818,19 +1815,19 @@ fi
|
||||||
|
|
||||||
|
|
||||||
echo $ac_n "checking if start is defined by the compiler""... $ac_c" 1>&6
|
echo $ac_n "checking if start is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:1822: checking if start is defined by the compiler" >&5
|
echo "configure:1819: checking if start is defined by the compiler" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_check_start_symbol'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_check_start_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1827 "configure"
|
#line 1824 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl start")
|
asm ("incl start")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:1831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_start_symbol=yes
|
grub_cv_check_start_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -1854,19 +1851,19 @@ 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 $ac_n "checking if _start is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:1858: checking if _start is defined by the compiler" >&5
|
echo "configure:1855: checking if _start is defined by the compiler" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_check_uscore_start_symbol'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_check_uscore_start_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1863 "configure"
|
#line 1860 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl _start")
|
asm ("incl _start")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:1867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_uscore_start_symbol=yes
|
grub_cv_check_uscore_start_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -1895,19 +1892,19 @@ fi
|
||||||
|
|
||||||
|
|
||||||
echo $ac_n "checking if __bss_start is defined by the compiler""... $ac_c" 1>&6
|
echo $ac_n "checking if __bss_start is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:1899: checking if __bss_start is defined by the compiler" >&5
|
echo "configure:1896: 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
|
if eval "test \"`echo '$''{'grub_cv_check_uscore_uscore_bss_start_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1904 "configure"
|
#line 1901 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl __bss_start")
|
asm ("incl __bss_start")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:1908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_uscore_uscore_bss_start_symbol=yes
|
grub_cv_check_uscore_uscore_bss_start_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -1931,19 +1928,19 @@ 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 $ac_n "checking if _edata is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:1935: checking if _edata is defined by the compiler" >&5
|
echo "configure:1932: checking if _edata is defined by the compiler" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_check_uscore_edata_symbol'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_check_uscore_edata_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1940 "configure"
|
#line 1937 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl _edata")
|
asm ("incl _edata")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:1944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_uscore_edata_symbol=yes
|
grub_cv_check_uscore_edata_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -1967,19 +1964,19 @@ 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 $ac_n "checking if edata is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:1971: checking if edata is defined by the compiler" >&5
|
echo "configure:1968: checking if edata is defined by the compiler" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_check_edata_symbol'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_check_edata_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 1976 "configure"
|
#line 1973 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl edata")
|
asm ("incl edata")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:1983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:1980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_edata_symbol=yes
|
grub_cv_check_edata_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -2009,19 +2006,19 @@ fi
|
||||||
|
|
||||||
|
|
||||||
echo $ac_n "checking if end is defined by the compiler""... $ac_c" 1>&6
|
echo $ac_n "checking if end is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:2013: checking if end is defined by the compiler" >&5
|
echo "configure:2010: checking if end is defined by the compiler" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_check_end_symbol'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_check_end_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2018 "configure"
|
#line 2015 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl end")
|
asm ("incl end")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
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:2022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_end_symbol=yes
|
grub_cv_check_end_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -2045,19 +2042,19 @@ 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 $ac_n "checking if _end is defined by the compiler""... $ac_c" 1>&6
|
||||||
echo "configure:2049: checking if _end is defined by the compiler" >&5
|
echo "configure:2046: checking if _end is defined by the compiler" >&5
|
||||||
if eval "test \"`echo '$''{'grub_cv_check_uscore_end_symbol'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'grub_cv_check_uscore_end_symbol'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2054 "configure"
|
#line 2051 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
asm ("incl _end")
|
asm ("incl _end")
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:2061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:2058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
grub_cv_check_uscore_end_symbol=yes
|
grub_cv_check_uscore_end_symbol=yes
|
||||||
else
|
else
|
||||||
|
@ -2095,7 +2092,7 @@ fi
|
||||||
# Get the filename or the whole disk and open it.
|
# Get the filename or the whole disk and open it.
|
||||||
# Known to work on NetBSD.
|
# Known to work on NetBSD.
|
||||||
echo $ac_n "checking for opendisk in -lutil""... $ac_c" 1>&6
|
echo $ac_n "checking for opendisk in -lutil""... $ac_c" 1>&6
|
||||||
echo "configure:2099: checking for opendisk in -lutil" >&5
|
echo "configure:2096: checking for opendisk in -lutil" >&5
|
||||||
ac_lib_var=`echo util'_'opendisk | sed 'y%./+-%__p_%'`
|
ac_lib_var=`echo util'_'opendisk | sed 'y%./+-%__p_%'`
|
||||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
@ -2103,7 +2100,7 @@ else
|
||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="-lutil $LIBS"
|
LIBS="-lutil $LIBS"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2107 "configure"
|
#line 2104 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* Override any gcc2 internal prototype to avoid an error. */
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
/* We use char because int might match the return type of a gcc2
|
/* We use char because int might match the return type of a gcc2
|
||||||
|
@ -2114,7 +2111,7 @@ int main() {
|
||||||
opendisk()
|
opendisk()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:2118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:2115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
else
|
else
|
||||||
|
@ -2142,7 +2139,7 @@ fi
|
||||||
# Unless the user specify --without-curses, check for curses.
|
# Unless the user specify --without-curses, check for curses.
|
||||||
if test "x$with_curses" != "xno"; then
|
if test "x$with_curses" != "xno"; then
|
||||||
echo $ac_n "checking for wgetch in -lncurses""... $ac_c" 1>&6
|
echo $ac_n "checking for wgetch in -lncurses""... $ac_c" 1>&6
|
||||||
echo "configure:2146: checking for wgetch in -lncurses" >&5
|
echo "configure:2143: checking for wgetch in -lncurses" >&5
|
||||||
ac_lib_var=`echo ncurses'_'wgetch | sed 'y%./+-%__p_%'`
|
ac_lib_var=`echo ncurses'_'wgetch | sed 'y%./+-%__p_%'`
|
||||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
@ -2150,7 +2147,7 @@ else
|
||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="-lncurses $LIBS"
|
LIBS="-lncurses $LIBS"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2154 "configure"
|
#line 2151 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* Override any gcc2 internal prototype to avoid an error. */
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
/* We use char because int might match the return type of a gcc2
|
/* We use char because int might match the return type of a gcc2
|
||||||
|
@ -2161,7 +2158,7 @@ int main() {
|
||||||
wgetch()
|
wgetch()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:2165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:2162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
else
|
else
|
||||||
|
@ -2184,7 +2181,7 @@ EOF
|
||||||
else
|
else
|
||||||
echo "$ac_t""no" 1>&6
|
echo "$ac_t""no" 1>&6
|
||||||
echo $ac_n "checking for wgetch in -lcurses""... $ac_c" 1>&6
|
echo $ac_n "checking for wgetch in -lcurses""... $ac_c" 1>&6
|
||||||
echo "configure:2188: checking for wgetch in -lcurses" >&5
|
echo "configure:2185: checking for wgetch in -lcurses" >&5
|
||||||
ac_lib_var=`echo curses'_'wgetch | sed 'y%./+-%__p_%'`
|
ac_lib_var=`echo curses'_'wgetch | sed 'y%./+-%__p_%'`
|
||||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
@ -2192,7 +2189,7 @@ else
|
||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="-lcurses $LIBS"
|
LIBS="-lcurses $LIBS"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2196 "configure"
|
#line 2193 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* Override any gcc2 internal prototype to avoid an error. */
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
/* We use char because int might match the return type of a gcc2
|
/* We use char because int might match the return type of a gcc2
|
||||||
|
@ -2203,7 +2200,7 @@ int main() {
|
||||||
wgetch()
|
wgetch()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
EOF
|
||||||
if { (eval echo configure:2207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
else
|
else
|
||||||
|
@ -2238,17 +2235,17 @@ for ac_hdr in string.h strings.h ncurses/curses.h ncurses.h curses.h
|
||||||
do
|
do
|
||||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||||
echo "configure:2242: checking for $ac_hdr" >&5
|
echo "configure:2239: checking for $ac_hdr" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2247 "configure"
|
#line 2244 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
#include <$ac_hdr>
|
#include <$ac_hdr>
|
||||||
EOF
|
EOF
|
||||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||||
{ (eval echo configure:2252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
{ (eval echo configure:2249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||||
if test -z "$ac_err"; then
|
if test -z "$ac_err"; then
|
||||||
rm -rf conftest*
|
rm -rf conftest*
|
||||||
|
@ -2277,21 +2274,6 @@ done
|
||||||
|
|
||||||
# Check for user options.
|
# Check for user options.
|
||||||
|
|
||||||
# some compile-time options.
|
|
||||||
# Check whether --enable-lba-support-bitmap-check or --disable-lba-support-bitmap-check was given.
|
|
||||||
if test "${enable_lba_support_bitmap_check+set}" = set; then
|
|
||||||
enableval="$enable_lba_support_bitmap_check"
|
|
||||||
:
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$enable_lba_support_bitmap_check" != xno; then
|
|
||||||
cat >> confdefs.h <<\EOF
|
|
||||||
#define CHECK_LBA_SUPPORT_BITMAP 1
|
|
||||||
EOF
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# filesystems support.
|
# filesystems support.
|
||||||
# Check whether --enable-ext2fs or --disable-ext2fs was given.
|
# Check whether --enable-ext2fs or --disable-ext2fs was given.
|
||||||
if test "${enable_ext2fs+set}" = set; then
|
if test "${enable_ext2fs+set}" = set; then
|
||||||
|
|
|
@ -163,15 +163,6 @@ AC_CHECK_HEADERS(string.h strings.h ncurses/curses.h ncurses.h curses.h)
|
||||||
|
|
||||||
# Check for user options.
|
# Check for user options.
|
||||||
|
|
||||||
# some compile-time options.
|
|
||||||
AC_ARG_ENABLE(lba-support-bitmap-check,
|
|
||||||
[ --disable-lba-support-bitmap-check
|
|
||||||
disable a check for LBA support bitmap])
|
|
||||||
|
|
||||||
if test "x$enable_lba_support_bitmap_check" != xno; then
|
|
||||||
AC_DEFINE(CHECK_LBA_SUPPORT_BITMAP)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# filesystems support.
|
# filesystems support.
|
||||||
AC_ARG_ENABLE(ext2fs,
|
AC_ARG_ENABLE(ext2fs,
|
||||||
[ --disable-ext2fs disable ext2fs support in Stage 2])
|
[ --disable-ext2fs disable ext2fs support in Stage 2])
|
||||||
|
|
|
@ -20,6 +20,10 @@ instead of the root directory.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-grub\-shell\fR=\fIFILE\fR
|
\fB\-\-grub\-shell\fR=\fIFILE\fR
|
||||||
use FILE as the grub shell.
|
use FILE as the grub shell.
|
||||||
|
.TP
|
||||||
|
\fB\-\-force\-lba\fR
|
||||||
|
Force GRUB to use LBA mode even for a buggy
|
||||||
|
BIOS.
|
||||||
.PP
|
.PP
|
||||||
INSTALL_DEVICE can be a GRUB device name or a system device filename.
|
INSTALL_DEVICE can be a GRUB device name or a system device filename.
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -91,10 +91,12 @@ stage1_version:
|
||||||
boot_drive:
|
boot_drive:
|
||||||
.byte 0xff /* the disk to load stage2 from */
|
.byte 0xff /* the disk to load stage2 from */
|
||||||
/* 0xff means use the boot drive */
|
/* 0xff means use the boot drive */
|
||||||
stage2_sector:
|
force_lba:
|
||||||
.long 1
|
.byte 0
|
||||||
stage2_address:
|
stage2_address:
|
||||||
.word 0x8000
|
.word 0x8000
|
||||||
|
stage2_sector:
|
||||||
|
.long 1
|
||||||
stage2_segment:
|
stage2_segment:
|
||||||
.word 0x800
|
.word 0x800
|
||||||
|
|
||||||
|
@ -149,12 +151,15 @@ real_start:
|
||||||
cmpw $0xaa55, %bx
|
cmpw $0xaa55, %bx
|
||||||
jne chs_mode
|
jne chs_mode
|
||||||
|
|
||||||
#ifdef CHECK_LBA_SUPPORT_BITMAP
|
/* check if AH=0x42 is supported if FORCE_LBA is zero */
|
||||||
/* check if AH=0x42 is supported */
|
movb ABS(force_lba), %al
|
||||||
|
testb %al, %al
|
||||||
|
jnz skip_lba_bitmap_check
|
||||||
andw $1, %cx
|
andw $1, %cx
|
||||||
jz chs_mode
|
jz chs_mode
|
||||||
#endif /* CHECK_LBA_SUPPORT_BITMAP */
|
|
||||||
|
skip_lba_bitmap_check:
|
||||||
|
|
||||||
/* get the geometry (limited to 2TB!) */
|
/* get the geometry (limited to 2TB!) */
|
||||||
movb $0x48, %ah
|
movb $0x48, %ah
|
||||||
movw $STAGE1_DRP_ADDR, %si
|
movw $STAGE1_DRP_ADDR, %si
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
/* Define the version numbers here, so that Stage 1 can know them. */
|
/* Define the version numbers here, so that Stage 1 can know them. */
|
||||||
#define COMPAT_VERSION_MAJOR 3
|
#define COMPAT_VERSION_MAJOR 3
|
||||||
#define COMPAT_VERSION_MINOR 0
|
#define COMPAT_VERSION_MINOR 1
|
||||||
#define COMPAT_VERSION ((COMPAT_VERSION_MINOR << 8) \
|
#define COMPAT_VERSION ((COMPAT_VERSION_MINOR << 8) \
|
||||||
| COMPAT_VERSION_MAJOR)
|
| COMPAT_VERSION_MAJOR)
|
||||||
|
|
||||||
|
@ -33,21 +33,24 @@
|
||||||
/* The offset of the end of BPB (BIOS Parameter Block). */
|
/* The offset of the end of BPB (BIOS Parameter Block). */
|
||||||
#define STAGE1_BPBEND 0x3e
|
#define STAGE1_BPBEND 0x3e
|
||||||
|
|
||||||
/* The offset of STAGE2_SECTOR. */
|
|
||||||
#define STAGE1_STAGE2_SECTOR 0x41
|
|
||||||
|
|
||||||
/* The offset of STAGE2_ADDRESS. */
|
|
||||||
#define STAGE1_STAGE2_ADDRESS 0x45
|
|
||||||
|
|
||||||
/* The offset of STAGE2_SEGMENT. */
|
|
||||||
#define STAGE1_STAGE2_SEGMENT 0x47
|
|
||||||
|
|
||||||
/* The offset of the major version. */
|
/* The offset of the major version. */
|
||||||
#define STAGE1_VER_MAJ_OFFS 0x3e
|
#define STAGE1_VER_MAJ_OFFS 0x3e
|
||||||
|
|
||||||
/* The offset of BOOT_DRIVE. */
|
/* The offset of BOOT_DRIVE. */
|
||||||
#define STAGE1_BOOT_DRIVE 0x40
|
#define STAGE1_BOOT_DRIVE 0x40
|
||||||
|
|
||||||
|
/* The offset of FORCE_LBA. */
|
||||||
|
#define STAGE1_FORCE_LBA 0x41
|
||||||
|
|
||||||
|
/* The offset of STAGE2_ADDRESS. */
|
||||||
|
#define STAGE1_STAGE2_ADDRESS 0x42
|
||||||
|
|
||||||
|
/* The offset of STAGE2_SECTOR. */
|
||||||
|
#define STAGE1_STAGE2_SECTOR 0x44
|
||||||
|
|
||||||
|
/* The offset of STAGE2_SEGMENT. */
|
||||||
|
#define STAGE1_STAGE2_SEGMENT 0x48
|
||||||
|
|
||||||
/* The offset of the start of the partition table. */
|
/* The offset of the start of the partition table. */
|
||||||
#define STAGE1_PARTSTART 0x1be
|
#define STAGE1_PARTSTART 0x1be
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,8 @@ VARIABLE(install_partition)
|
||||||
.long 0x020000
|
.long 0x020000
|
||||||
VARIABLE(stage2_id)
|
VARIABLE(stage2_id)
|
||||||
.byte STAGE2_ID
|
.byte STAGE2_ID
|
||||||
|
VARIABLE(force_lba)
|
||||||
|
.byte 0
|
||||||
VARIABLE(version_string)
|
VARIABLE(version_string)
|
||||||
.string VERSION
|
.string VERSION
|
||||||
VARIABLE(config_file)
|
VARIABLE(config_file)
|
||||||
|
|
|
@ -163,20 +163,17 @@ get_diskinfo (int drive, struct geometry *geometry)
|
||||||
read/write is supported, so we cannot help assuming
|
read/write is supported, so we cannot help assuming
|
||||||
that the functions are supported by default and
|
that the functions are supported by default and
|
||||||
clearing the flag when either of them fails. *sigh* */
|
clearing the flag when either of them fails. *sigh* */
|
||||||
#ifdef CHECK_LBA_SUPPORT_BITMAP
|
|
||||||
/* Make sure that LBA read/write functions are supported. */
|
/* Make sure that LBA read/write functions are supported. */
|
||||||
if (drp.flags & 1)
|
if (force_lba || (drp.flags & 1))
|
||||||
{
|
{
|
||||||
#endif
|
|
||||||
geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION;
|
geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION;
|
||||||
|
|
||||||
/* FIXME: when the 2TB limit becomes critical, we must
|
/* FIXME: when the 2TB limit becomes critical, we must
|
||||||
change the type of TOTAL_SECTORS to unsigned long
|
change the type of TOTAL_SECTORS to unsigned long
|
||||||
long. */
|
long. */
|
||||||
total_sectors = drp.total_sectors & ~0L;
|
total_sectors = drp.total_sectors & ~0L;
|
||||||
#ifdef CHECK_LBA_SUPPORT_BITMAP
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1387,7 +1387,9 @@ install_func (char *arg, int flags)
|
||||||
int is_stage1_5 = 0;
|
int is_stage1_5 = 0;
|
||||||
/* Must call grub_close? */
|
/* Must call grub_close? */
|
||||||
int is_open = 0;
|
int is_open = 0;
|
||||||
|
/* If LBA is forced? */
|
||||||
|
int is_force_lba = 0;
|
||||||
|
|
||||||
/* Save the first sector of Stage2 in STAGE2_SECT. */
|
/* Save the first sector of Stage2 in STAGE2_SECT. */
|
||||||
static void disk_read_savesect_func (int sector)
|
static void disk_read_savesect_func (int sector)
|
||||||
{
|
{
|
||||||
|
@ -1423,6 +1425,13 @@ install_func (char *arg, int flags)
|
||||||
installaddr += 512;
|
installaddr += 512;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* First, check the GNU-style long option. */
|
||||||
|
if (grub_memcmp ("--force-lba", arg, 11) == 0)
|
||||||
|
{
|
||||||
|
is_force_lba = 1;
|
||||||
|
arg = skip_to (0, arg);
|
||||||
|
}
|
||||||
|
|
||||||
stage1_file = arg;
|
stage1_file = arg;
|
||||||
dest_dev = skip_to (0, stage1_file);
|
dest_dev = skip_to (0, stage1_file);
|
||||||
if (*dest_dev == 'd')
|
if (*dest_dev == 'd')
|
||||||
|
@ -1486,6 +1495,8 @@ install_func (char *arg, int flags)
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* This below is not true any longer. But should we leave this alone? */
|
||||||
|
|
||||||
/* If DEST_DRIVE is a floppy, Stage 2 must have the iteration probe
|
/* If DEST_DRIVE is a floppy, Stage 2 must have the iteration probe
|
||||||
routine. */
|
routine. */
|
||||||
if (! (dest_drive & 0x80)
|
if (! (dest_drive & 0x80)
|
||||||
|
@ -1514,8 +1525,12 @@ install_func (char *arg, int flags)
|
||||||
" be installed on a\ndifferent drive than the drive where"
|
" be installed on a\ndifferent drive than the drive where"
|
||||||
" the Stage 2 resides.\n");
|
" the Stage 2 resides.\n");
|
||||||
|
|
||||||
|
/* Set the boot drive. */
|
||||||
*((unsigned char *) (stage1_buffer + STAGE1_BOOT_DRIVE)) = new_drive;
|
*((unsigned char *) (stage1_buffer + STAGE1_BOOT_DRIVE)) = new_drive;
|
||||||
|
|
||||||
|
/* Set the "force LBA" flag. */
|
||||||
|
*((unsigned char *) (stage1_buffer + STAGE1_FORCE_LBA)) = is_force_lba;
|
||||||
|
|
||||||
/* Read the first sector of Stage 2. */
|
/* Read the first sector of Stage 2. */
|
||||||
disk_read_hook = disk_read_savesect_func;
|
disk_read_hook = disk_read_savesect_func;
|
||||||
if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
|
if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
|
||||||
|
@ -1594,6 +1609,10 @@ install_func (char *arg, int flags)
|
||||||
while (*(config_file_location++))
|
while (*(config_file_location++))
|
||||||
;
|
;
|
||||||
|
|
||||||
|
/* Set the "force LBA" flag for Stage2. */
|
||||||
|
*((unsigned char *) (stage2_second_buffer + STAGE2_FORCE_LBA))
|
||||||
|
= is_force_lba;
|
||||||
|
|
||||||
if (*ptr == 'p')
|
if (*ptr == 'p')
|
||||||
{
|
{
|
||||||
*((long *) (stage2_second_buffer + STAGE2_INSTALLPART))
|
*((long *) (stage2_second_buffer + STAGE2_INSTALLPART))
|
||||||
|
@ -1649,40 +1668,44 @@ install_func (char *arg, int flags)
|
||||||
grub_strcpy (config_file_location + sizeof (device), config_file);
|
grub_strcpy (config_file_location + sizeof (device), config_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if the configuration filename is specified, if a Stage 1.5
|
/* If a Stage 1.5 is used, then we need to modify the Stage2. */
|
||||||
is used. */
|
|
||||||
if (is_stage1_5)
|
if (is_stage1_5)
|
||||||
{
|
{
|
||||||
char *real_config_filename = skip_to (0, ptr);
|
char *real_config_filename = skip_to (0, ptr);
|
||||||
|
|
||||||
|
is_open = grub_open (config_filename);
|
||||||
|
if (! is_open)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
/* Skip the first sector. */
|
||||||
|
grub_seek (SECTOR_SIZE);
|
||||||
|
|
||||||
|
disk_read_hook = disk_read_savesect_func;
|
||||||
|
if (grub_read ((char *) SCRATCHADDR, SECTOR_SIZE) != SECTOR_SIZE)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
disk_read_hook = 0;
|
||||||
|
grub_close ();
|
||||||
|
is_open = 0;
|
||||||
|
|
||||||
|
/* Sanity check. */
|
||||||
|
if (*((unsigned char *) SCRATCHADDR + STAGE2_STAGE2_ID)
|
||||||
|
!= STAGE2_ID_STAGE2)
|
||||||
|
{
|
||||||
|
errnum = ERR_BAD_VERSION;
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the "force LBA" flag for Stage2. */
|
||||||
|
*((unsigned char *) (SCRATCHADDR + STAGE2_FORCE_LBA))
|
||||||
|
= is_force_lba;
|
||||||
|
|
||||||
|
/* If REAL_CONFIG_FILENAME is specified, copy it to the Stage2. */
|
||||||
if (*real_config_filename)
|
if (*real_config_filename)
|
||||||
{
|
{
|
||||||
/* Specified */
|
/* Specified */
|
||||||
char *location;
|
char *location;
|
||||||
|
|
||||||
is_open = grub_open (config_filename);
|
|
||||||
if (! is_open)
|
|
||||||
goto fail;
|
|
||||||
|
|
||||||
/* Skip the first sector. */
|
|
||||||
grub_seek (SECTOR_SIZE);
|
|
||||||
|
|
||||||
disk_read_hook = disk_read_savesect_func;
|
|
||||||
if (grub_read ((char *) SCRATCHADDR, SECTOR_SIZE) != SECTOR_SIZE)
|
|
||||||
goto fail;
|
|
||||||
|
|
||||||
disk_read_hook = 0;
|
|
||||||
grub_close ();
|
|
||||||
is_open = 0;
|
|
||||||
|
|
||||||
/* Sanity check. */
|
|
||||||
if (*((unsigned char *) SCRATCHADDR + STAGE2_STAGE2_ID)
|
|
||||||
!= STAGE2_ID_STAGE2)
|
|
||||||
{
|
|
||||||
errnum = ERR_BAD_VERSION;
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Find a string for the configuration filename. */
|
/* Find a string for the configuration filename. */
|
||||||
location = (char *) SCRATCHADDR + STAGE2_VER_STR_OFFS;
|
location = (char *) SCRATCHADDR + STAGE2_VER_STR_OFFS;
|
||||||
while (*(location++))
|
while (*(location++))
|
||||||
|
@ -1690,15 +1713,16 @@ install_func (char *arg, int flags)
|
||||||
|
|
||||||
/* Copy the name. */
|
/* Copy the name. */
|
||||||
grub_strcpy (location, real_config_filename);
|
grub_strcpy (location, real_config_filename);
|
||||||
|
|
||||||
/* Write it to the disk. */
|
}
|
||||||
buf_track = -1;
|
|
||||||
if (biosdisk (BIOSDISK_WRITE, current_drive, &buf_geom,
|
/* Write it to the disk. */
|
||||||
saved_sector, 1, SCRATCHSEG))
|
buf_track = -1;
|
||||||
{
|
if (biosdisk (BIOSDISK_WRITE, current_drive, &buf_geom,
|
||||||
errnum = ERR_WRITE;
|
saved_sector, 1, SCRATCHSEG))
|
||||||
goto fail;
|
{
|
||||||
}
|
errnum = ERR_WRITE;
|
||||||
|
goto fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1751,7 +1775,7 @@ static struct builtin builtin_install =
|
||||||
"install",
|
"install",
|
||||||
install_func,
|
install_func,
|
||||||
BUILTIN_CMDLINE,
|
BUILTIN_CMDLINE,
|
||||||
"install STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]",
|
"install [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]",
|
||||||
"Install STAGE1 on DEVICE, and install a blocklist for loading STAGE2"
|
"Install STAGE1 on DEVICE, and install a blocklist for loading STAGE2"
|
||||||
" as a Stage 2. If the option `d' is present, the Stage 1 will always"
|
" as a Stage 2. If the option `d' is present, the Stage 1 will always"
|
||||||
" look for the disk where STAGE2 was installed, rather than using"
|
" look for the disk where STAGE2 was installed, rather than using"
|
||||||
|
@ -1763,6 +1787,8 @@ static struct builtin builtin_install =
|
||||||
" this is the name of the true Stage 2) at boot time. If STAGE2 is a Stage"
|
" this is the name of the true Stage 2) at boot time. If STAGE2 is a Stage"
|
||||||
" 1.5 and REAL_CONFIG_FILE is present, then the Stage 2 CONFIG_FILE is"
|
" 1.5 and REAL_CONFIG_FILE is present, then the Stage 2 CONFIG_FILE is"
|
||||||
" patched with the configuration filename REAL_CONFIG_FILE."
|
" patched with the configuration filename REAL_CONFIG_FILE."
|
||||||
|
" If the option `--force-lba' is specified, disable some sanity checks"
|
||||||
|
" for LBA mode."
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -2544,6 +2570,7 @@ setup_func (char *arg, int flags)
|
||||||
char cmd_arg[256];
|
char cmd_arg[256];
|
||||||
char device[16];
|
char device[16];
|
||||||
char *buffer = (char *) RAW_ADDR (0x100000);
|
char *buffer = (char *) RAW_ADDR (0x100000);
|
||||||
|
int is_force_lba = 0;
|
||||||
|
|
||||||
static void sprint_device (int drive, int partition)
|
static void sprint_device (int drive, int partition)
|
||||||
{
|
{
|
||||||
|
@ -2585,6 +2612,13 @@ setup_func (char *arg, int flags)
|
||||||
|
|
||||||
tmp_drive = saved_drive;
|
tmp_drive = saved_drive;
|
||||||
tmp_partition = saved_partition;
|
tmp_partition = saved_partition;
|
||||||
|
|
||||||
|
/* Check if the user specifies --force-lba. */
|
||||||
|
if (grub_memcmp ("--force-lba", arg, 11) == 0)
|
||||||
|
{
|
||||||
|
is_force_lba = 1;
|
||||||
|
arg = skip_to (0, arg);
|
||||||
|
}
|
||||||
|
|
||||||
install_ptr = arg;
|
install_ptr = arg;
|
||||||
image_ptr = skip_to (0, install_ptr);
|
image_ptr = skip_to (0, install_ptr);
|
||||||
|
@ -2697,7 +2731,8 @@ setup_func (char *arg, int flags)
|
||||||
|
|
||||||
#ifdef NO_BUGGY_BIOS_IN_THE_WORLD
|
#ifdef NO_BUGGY_BIOS_IN_THE_WORLD
|
||||||
/* I prefer this, but... */
|
/* I prefer this, but... */
|
||||||
grub_sprintf (cmd_arg, "%s %s%s %s p %s",
|
grub_sprintf (cmd_arg, "%s%s %s%s %s p %s",
|
||||||
|
is_force_lba? "--force-lba " : "",
|
||||||
stage1,
|
stage1,
|
||||||
(install_drive != image_drive) ? "d " : "",
|
(install_drive != image_drive) ? "d " : "",
|
||||||
device,
|
device,
|
||||||
|
@ -2708,7 +2743,8 @@ setup_func (char *arg, int flags)
|
||||||
may not expect that your BIOS will pass a booting drive to stage1
|
may not expect that your BIOS will pass a booting drive to stage1
|
||||||
correctly. Thus, always specify the option `d', whether
|
correctly. Thus, always specify the option `d', whether
|
||||||
INSTALL_DRIVE is identical with IMAGE_DRIVE or not. *sigh* */
|
INSTALL_DRIVE is identical with IMAGE_DRIVE or not. *sigh* */
|
||||||
grub_sprintf (cmd_arg, "%s d %s %s p %s",
|
grub_sprintf (cmd_arg, "%s%s d %s %s p %s",
|
||||||
|
is_force_lba? "--force-lba " : "",
|
||||||
stage1,
|
stage1,
|
||||||
device,
|
device,
|
||||||
stage2,
|
stage2,
|
||||||
|
@ -2738,13 +2774,14 @@ static struct builtin builtin_setup =
|
||||||
"setup",
|
"setup",
|
||||||
setup_func,
|
setup_func,
|
||||||
BUILTIN_CMDLINE,
|
BUILTIN_CMDLINE,
|
||||||
"setup INSTALL_DEVICE [IMAGE_DEVICE]",
|
"setup [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]",
|
||||||
"Set up the installation of GRUB automatically. This command uses"
|
"Set up the installation of GRUB automatically. This command uses"
|
||||||
" the more flexible command \"install\" in the backend and installs"
|
" the more flexible command \"install\" in the backend and installs"
|
||||||
" GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is specified,"
|
" GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is specified,"
|
||||||
" then find the GRUB images in the device IMAGE_DEVICE, otherwise"
|
" then find the GRUB images in the device IMAGE_DEVICE, otherwise"
|
||||||
" use the current \"root device\", which can be set by the command"
|
" use the current \"root device\", which can be set by the command"
|
||||||
" \"root\"."
|
" \"root\". If you know that your BIOS should support LBA but GRUB"
|
||||||
|
" doesn't work in LBA mode, specify the option `--force-lba'."
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -192,10 +192,11 @@ extern char *grub_scratch_mem;
|
||||||
|
|
||||||
#include <stage1.h>
|
#include <stage1.h>
|
||||||
|
|
||||||
#define STAGE2_VER_MAJ_OFFS 0x6
|
#define STAGE2_VER_MAJ_OFFS 0x6
|
||||||
#define STAGE2_INSTALLPART 0x8
|
#define STAGE2_INSTALLPART 0x8
|
||||||
#define STAGE2_STAGE2_ID 0xc
|
#define STAGE2_STAGE2_ID 0xc
|
||||||
#define STAGE2_VER_STR_OFFS 0xd
|
#define STAGE2_FORCE_LBA 0xd
|
||||||
|
#define STAGE2_VER_STR_OFFS 0xe
|
||||||
|
|
||||||
/* Stage 2 identifiers */
|
/* Stage 2 identifiers */
|
||||||
#define STAGE2_ID_STAGE2 0
|
#define STAGE2_ID_STAGE2 0
|
||||||
|
@ -423,6 +424,7 @@ extern unsigned long install_partition;
|
||||||
extern unsigned long boot_drive;
|
extern unsigned long boot_drive;
|
||||||
extern unsigned long boot_part_addr;
|
extern unsigned long boot_part_addr;
|
||||||
extern unsigned long boot_part_offset;
|
extern unsigned long boot_part_offset;
|
||||||
|
extern unsigned char force_lba;
|
||||||
extern char version_string[];
|
extern char version_string[];
|
||||||
extern char config_file[];
|
extern char config_file[];
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@ log_file=/tmp/grub-install.log.$$
|
||||||
rootdir=
|
rootdir=
|
||||||
|
|
||||||
install_device=
|
install_device=
|
||||||
|
force_lba=
|
||||||
debug=no
|
debug=no
|
||||||
|
|
||||||
# Usage: usage
|
# Usage: usage
|
||||||
|
@ -48,6 +49,8 @@ Install GRUB on your drive.
|
||||||
--root-directory=DIR install GRUB images under the directory DIR
|
--root-directory=DIR install GRUB images under the directory DIR
|
||||||
instead of the root directory.
|
instead of the root directory.
|
||||||
--grub-shell=FILE use FILE as the grub shell.
|
--grub-shell=FILE use FILE as the grub shell.
|
||||||
|
--force-lba Force GRUB to use LBA mode even for a buggy
|
||||||
|
BIOS.
|
||||||
|
|
||||||
INSTALL_DEVICE can be a GRUB device name or a system device filename.
|
INSTALL_DEVICE can be a GRUB device name or a system device filename.
|
||||||
|
|
||||||
|
@ -125,6 +128,8 @@ for option; do
|
||||||
rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
|
rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
|
||||||
--grub-shell=*)
|
--grub-shell=*)
|
||||||
grub_shell=`echo "$option" | sed 's/--grub-shell=//'` ;;
|
grub_shell=`echo "$option" | sed 's/--grub-shell=//'` ;;
|
||||||
|
--force-lba)
|
||||||
|
force_lba="--force-lba" ;;
|
||||||
# This is an undocumented feature...
|
# This is an undocumented feature...
|
||||||
--debug)
|
--debug)
|
||||||
debug=yes ;;
|
debug=yes ;;
|
||||||
|
@ -239,7 +244,7 @@ test -x /bin/tempfile && log_file=`tempfile --prefix=grub`
|
||||||
# Now perform the installation.
|
# Now perform the installation.
|
||||||
$grub_shell --batch --device-map=$device_map <<EOF >$log_file
|
$grub_shell --batch --device-map=$device_map <<EOF >$log_file
|
||||||
root $root_drive
|
root $root_drive
|
||||||
setup $install_drive
|
setup $force_lba $install_drive
|
||||||
quit
|
quit
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue