add a workaround for some BIOSes into stage1, remove our own rult to produce info files.
This commit is contained in:
parent
c17c927969
commit
9d7344365c
8 changed files with 42 additions and 221 deletions
|
@ -1,3 +1,11 @@
|
|||
1999-10-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||
|
||||
* stage1/stage1.S: Long jump to real_start, because some bogus
|
||||
BIOSes jump to 07C0:0000 instead of 0000:7C00.
|
||||
(real_start): New label.
|
||||
* docs/Makefile.am (grub.info): Removed. Use the default rule
|
||||
instead.
|
||||
|
||||
1999-10-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||
|
||||
* stage2/asm.S [DEFINE_TRACK_INT13] (int3_handler): Save the
|
||||
|
|
12
README
12
README
|
@ -15,7 +15,7 @@ See the file NEWS for a description of recent changes to GRUB.
|
|||
You need recent developmental environment to build GRUB. We recommend
|
||||
you use the following utilities:
|
||||
|
||||
* binutils 2.9.1.0.23 and later (Do not use early 2.9.1.0.x!)
|
||||
* binutils 2.9.1.0.23 or later (Do not use early 2.9.1.0.x!)
|
||||
|
||||
Binutils has changed the behavior of 16bit assembler between 2.9.1
|
||||
and 2.9.1.0.x, and we support only 2.9.1.0.x and higher. It is available
|
||||
|
@ -34,15 +34,21 @@ The latter is what you should see. If you have installed a recent
|
|||
version of binutils but this version number is not identical with it,
|
||||
you need to specify the option ``--with-binutils=DIR'' for configure.
|
||||
|
||||
* texinfo 4.0 or later
|
||||
|
||||
We use some new macros in the manuals, so you need a recent TeXinfo
|
||||
release. See http://www.gnu.org/software/texinfo/texinfo.html, for more
|
||||
information.
|
||||
|
||||
|
||||
These below are required when you develop GRUB or when you get it from
|
||||
the CVS:
|
||||
|
||||
* automake 19990620 and later
|
||||
* automake 19990620 or later
|
||||
|
||||
The new feature, per-executable flags, is requred, so you need to get
|
||||
an unreleased version from the CVS. See
|
||||
http://sourceware.cygnus.com/automake/ for more information.
|
||||
http://sourceware.cygnus.com/automake/, for more information.
|
||||
|
||||
|
||||
See the file INSTALL for instructions on how to build and install the
|
||||
|
|
183
acinclude.m4
183
acinclude.m4
|
@ -1,15 +1,3 @@
|
|||
dnl aclocal.m4 generated automatically by aclocal 1.4a
|
||||
|
||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
dnl grub_ASM_USCORE checks if C symbols get an underscore after
|
||||
dnl compiling to assembler.
|
||||
dnl Written by Pavel Roskin. Based on grub_ASM_EXT_C written by
|
||||
|
@ -295,174 +283,3 @@ fi
|
|||
|
||||
AC_MSG_RESULT([$grub_cv_check_uscore_end_symbol])
|
||||
])
|
||||
|
||||
# Do all the work for Automake. This macro actually does too much --
|
||||
# some checks are only needed if your package does certain things.
|
||||
# But this isn't really a big deal.
|
||||
|
||||
# serial 1
|
||||
|
||||
dnl Usage:
|
||||
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
|
||||
|
||||
AC_DEFUN(AM_INIT_AUTOMAKE,
|
||||
[AC_REQUIRE([AC_PROG_INSTALL])
|
||||
dnl We require 2.13 because we rely on SHELL being computed by configure.
|
||||
AC_PREREQ([2.13])
|
||||
PACKAGE=[$1]
|
||||
AC_SUBST(PACKAGE)
|
||||
VERSION=[$2]
|
||||
AC_SUBST(VERSION)
|
||||
dnl test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
ifelse([$3],,
|
||||
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
|
||||
AC_REQUIRE([AM_SANITY_CHECK])
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])
|
||||
dnl FIXME This is truly gross.
|
||||
missing_dir=`cd $ac_aux_dir && pwd`
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
|
||||
dnl Set install_sh for make dist
|
||||
install_sh="$missing_dir/install-sh"
|
||||
test -f "$install_sh" || install_sh="$missing_dir/install.sh"
|
||||
AC_SUBST(install_sh)
|
||||
dnl We check for tar when the user configures the end package.
|
||||
dnl This is sad, since we only need this for "dist". However,
|
||||
dnl there's no other good way to do it. We prefer GNU tar if
|
||||
dnl we can find it. If we can't find a tar, it doesn't really matter.
|
||||
AC_CHECK_PROGS(AMTAR, gnutar gtar tar)
|
||||
dnl We need awk for the "check" target. The system "awk" is bad on
|
||||
dnl some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])
|
||||
AMTARFLAGS=
|
||||
if test -n "$AMTAR"; then
|
||||
if $SHELL -c "$AMTAR --version" > /dev/null 2>&1; then
|
||||
dnl We have GNU tar.
|
||||
AMTARFLAGS=o
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(AMTARFLAGS)
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])])
|
||||
|
||||
#
|
||||
# Check to make sure that the build environment is sane.
|
||||
#
|
||||
|
||||
AC_DEFUN(AM_SANITY_CHECK,
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftestfile
|
||||
# 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 conftestfile 2> /dev/null`
|
||||
if test "[$]*" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftestfile`
|
||||
fi
|
||||
if test "[$]*" != "X $srcdir/configure conftestfile" \
|
||||
&& test "[$]*" != "X conftestfile $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".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "[$]2" = conftestfile
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
rm -f conftest*
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
|
||||
dnl The program must properly implement --version.
|
||||
AC_DEFUN(AM_MISSING_PROG,
|
||||
[AC_MSG_CHECKING(for working $2)
|
||||
# Run test in a subshell; some versions of sh will print an error if
|
||||
# an executable is not found, even if stderr is redirected.
|
||||
# Redirect stdin to placate older versions of autoconf. Sigh.
|
||||
if ($2 --version) < /dev/null > /dev/null 2>&1; then
|
||||
$1=$2
|
||||
AC_MSG_RESULT(found)
|
||||
else
|
||||
$1="$3/missing $2"
|
||||
AC_MSG_RESULT(missing)
|
||||
fi
|
||||
AC_SUBST($1)])
|
||||
|
||||
# Like AC_CONFIG_HEADER, but automatically create stamp file.
|
||||
|
||||
AC_DEFUN(AM_CONFIG_HEADER,
|
||||
[AC_PREREQ([2.12])
|
||||
AC_CONFIG_HEADER([$1])
|
||||
dnl When config.status generates a header, we must update the stamp-h file.
|
||||
dnl This file resides in the same directory as the config header
|
||||
dnl that is generated. We must strip everything past the first ":",
|
||||
dnl and everything past the last "/".
|
||||
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
|
||||
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
|
||||
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
|
||||
<<am_indx=1
|
||||
for am_file in <<$1>>; do
|
||||
case " <<$>>CONFIG_HEADERS " in
|
||||
*" <<$>>am_file "*<<)>>
|
||||
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
|
||||
;;
|
||||
esac
|
||||
am_indx=`expr "<<$>>am_indx" + 1`
|
||||
done<<>>dnl>>)
|
||||
changequote([,]))])
|
||||
|
||||
# Add --enable-maintainer-mode option to configure.
|
||||
# From Jim Meyering
|
||||
|
||||
# serial 1
|
||||
|
||||
AC_DEFUN(AM_MAINTAINER_MODE,
|
||||
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
||||
dnl maintainer-mode is disabled by default
|
||||
AC_ARG_ENABLE(maintainer-mode,
|
||||
[ --enable-maintainer-mode enable make rules and dependencies not useful
|
||||
(and sometimes confusing) to the casual installer],
|
||||
USE_MAINTAINER_MODE=$enableval,
|
||||
USE_MAINTAINER_MODE=no)
|
||||
AC_MSG_RESULT($USE_MAINTAINER_MODE)
|
||||
AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
|
||||
MAINT=$MAINTAINER_MODE_TRUE
|
||||
AC_SUBST(MAINT)dnl
|
||||
]
|
||||
)
|
||||
|
||||
# Define a conditional.
|
||||
|
||||
AC_DEFUN(AM_CONDITIONAL,
|
||||
[AC_SUBST($1_TRUE)
|
||||
AC_SUBST($1_FALSE)
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi])
|
||||
|
||||
|
|
13
aclocal.m4
vendored
13
aclocal.m4
vendored
|
@ -10,18 +10,6 @@ dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
dnl aclocal.m4 generated automatically by aclocal 1.4a
|
||||
|
||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
dnl grub_ASM_USCORE checks if C symbols get an underscore after
|
||||
dnl compiling to assembler.
|
||||
dnl Written by Pavel Roskin. Based on grub_ASM_EXT_C written by
|
||||
|
@ -478,4 +466,3 @@ else
|
|||
$1_FALSE=
|
||||
fi])
|
||||
|
||||
|
||||
|
|
|
@ -9,6 +9,15 @@
|
|||
/* Defined if _start is defined. */
|
||||
#undef HAVE_USCORE_START_SYMBOL
|
||||
|
||||
/* Defined if __bss_start is defined. */
|
||||
#undef HAVE_USCORE_USCORE_BSS_START_SYMBOL
|
||||
|
||||
/* Defined if edata is defined. */
|
||||
#undef HAVE_EDATA_SYMBOL
|
||||
|
||||
/* Defined if _edata is defined. */
|
||||
#undef HAVE_USCORE_EDATA_SYMBOL
|
||||
|
||||
/* Defined if end is defined. */
|
||||
#undef HAVE_END_SYMBOL
|
||||
|
||||
|
|
|
@ -24,12 +24,6 @@ EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
|
|||
%.S.texi: %.S $(srcdir)/$(SRC2TEXI)
|
||||
$(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
|
||||
|
||||
# FIXME: Use this rule until Debian has the new Texinfo.
|
||||
grub.info: grub.texi
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& sed 's/@command/@file/g; s/ifnottex/ifinfo/' grub.texi | $(MAKEINFO)
|
||||
|
||||
if MAINTAINER_MODE
|
||||
$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN)
|
||||
$(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \
|
||||
|
|
|
@ -83,6 +83,9 @@ install_sh = @install_sh@
|
|||
|
||||
|
||||
info_TEXINFOS = grub.texi multiboot.texi
|
||||
grub_TEXINFOS = tutorial.texi user-ref.texi prog-ref.texi \
|
||||
appendices.texi
|
||||
|
||||
EXAMPLES = boot.S kernel.c multiboot.h
|
||||
multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
|
||||
man_MANS = grub.8 mbchk.1
|
||||
|
@ -90,13 +93,8 @@ HELP2MAN = help2man
|
|||
SRC2TEXI = src2texi
|
||||
noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
|
||||
|
||||
# The unfinished manuals.
|
||||
UNFINISHED_MANUALS = new-grub.texi tutorial.texi user-ref.texi \
|
||||
prog-ref.texi appendices.texi
|
||||
|
||||
|
||||
EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
|
||||
$(EXAMPLES) $(multiboot_TEXINFOS) $(UNFINISHED_MANUALS)
|
||||
$(EXAMPLES) $(multiboot_TEXINFOS)
|
||||
|
||||
subdir = docs
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
|
@ -114,8 +112,8 @@ man8dir = $(mandir)/man8
|
|||
MANS = $(man_MANS)
|
||||
|
||||
NROFF = nroff
|
||||
DIST_COMMON = $(multiboot_TEXINFOS) Makefile.am Makefile.in mdate-sh \
|
||||
stamp-vti texinfo.tex version.texi
|
||||
DIST_COMMON = $(grub_TEXINFOS) $(multiboot_TEXINFOS) Makefile.am \
|
||||
Makefile.in mdate-sh stamp-vti texinfo.tex version.texi
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
@ -155,8 +153,8 @@ distclean-vti:
|
|||
maintainer-clean-vti:
|
||||
-@MAINTAINER_MODE_TRUE@rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
|
||||
|
||||
grub.info: grub.texi version.texi
|
||||
grub.dvi: grub.texi version.texi
|
||||
grub.info: grub.texi version.texi $(grub_TEXINFOS)
|
||||
grub.dvi: grub.texi version.texi $(grub_TEXINFOS)
|
||||
|
||||
|
||||
multiboot.info: multiboot.texi $(multiboot_TEXINFOS)
|
||||
|
@ -457,12 +455,6 @@ maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
|||
%.S.texi: %.S $(srcdir)/$(SRC2TEXI)
|
||||
$(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
|
||||
|
||||
# FIXME: Use this rule until Debian has the new Texinfo.
|
||||
grub.info: grub.texi
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& sed 's/@command/@file/g; s/ifnottex/ifinfo/' grub.texi | $(MAKEINFO)
|
||||
|
||||
@MAINTAINER_MODE_TRUE@$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN)
|
||||
@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \
|
||||
@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $<
|
||||
|
|
|
@ -102,6 +102,14 @@ after_BPB:
|
|||
/* general setup */
|
||||
cli /* we're not safe here! */
|
||||
|
||||
/*
|
||||
* ljmp to the next instruction because some bogus BIOSes
|
||||
* jump to 07C0:0000 instead of 0000:7C00.
|
||||
*/
|
||||
ljmp $0, $ABS(real_start)
|
||||
|
||||
real_start:
|
||||
|
||||
/* set up %ds and %ss as offset from 0 */
|
||||
xorw %ax, %ax
|
||||
movw %ax, %ds
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue