add reiserfs support.

This commit is contained in:
okuji 2000-04-15 13:39:38 +00:00
parent cf37f79b94
commit 3792b0a01e
21 changed files with 406 additions and 192 deletions

View file

@ -12,7 +12,10 @@ bugs, added symbolic link support to shared_src/fsys_ext2fs.c, and
began the implementation of /sbin/grub.
OKUJI Yoshinori contributed many bugfixes and new features, such as
working LBA support, and /sbin/grub support for configuration files.
working LBA support, /sbin/grub support for configuration files, the
script /sbin/grub-install, the utility /bin/mbchk, the new engine for
builtin commands, disk swapping support, keyboard configuration support,
network support, online help support, and command-line history support.
Peter Astrand added support for a color menu.
@ -22,3 +25,6 @@ support for the grub shell, and configure process cleanups.
Klaus Reichl wrote stage2/fsys_minix.c.
Per Lundberg added graphics support to the Multiboot Specification.
Jochen Hoenicke rewrote stage2/fsys_fat.c and wrote
stage2/fsys_reiserfs.c.

View file

@ -1,3 +1,54 @@
2000-04-15 Jochen Hoenicke <jochen@gnu.org>
* configure.in: Added --disable-reiserfs option.
* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_reiserfs.c.
(libgrub_a_CFLAGS): Added -DFSYS_REISERFS=1.
(pkgdata_DATA): Added reiserfs_stage1_5.
(noinst_PROGRAMS): Added reiserfs_stage1_5.exec.
(pre_stage2_exec_SOURCES): Added fsys_reiserfs.c.
(reiserfs_stage1_5_exec_SOURCES): New variable.
(reiserfs_stage1_5_exec_CFLAGS): Likewise.
(reiserfs_stage1_5_exec_LDFLAGS): Likewise.
* stage2/disk_io.c (fsys_table): Added reiserfs entry.
* stage2/filesys.h (FSYS_REISERFS_NUM): New macro.
[FSYS_REISERFS] (reiserfs_mount, reiserfs_read, reiserfs_dir,
reiserfs_embed): Declare external function from fsys_reiserfs.c.
[!NUM_FSYS] (NUM_FSYS): Added FSYS_REISERFS_NUM.
* stage2/builtins.c (setup_func): Added reiserfs to
STAGE1_5_MAP.
* stage2/shared.h (STAGE2_ID_REISERFS_STAGE1_5): New macro.
[STAGE1_5] [FSYS_REISERFS] (STAGE2_ID): Defined to
STAGE2_ID_REISERFS_STAGE1_5.
* stage2/fsys_reiserfs.c: New file.
* stage2/builtins.c (embed_func): Call open_device instead of
open_partition.
Don't check if the filesystem is FFS. Instead, check if
FSYS_TABLE[FSYS_TYPE].EMBED_FUNC is NULL and, if not, call it.
(find_func): When CURRENT_SLICE is not a BSD slice, check if the
file can be opened, only if open_device succeeds.
* stage2/filesys.h (fsys_table): New entry embed_func.
(ffs_embed): Declared.
* stage2/disk_io.c (fsys_table): Fill embed_func entries. The
entry for FFS is ffs_embed and the others are NULLs.
* stage2/fsys_ffs.c (ffs_embed): New function.
* stage2/shared.h (SECTOR_SHIFT): New constant with
(1 << SECTOR_SHIFT) == SECTOR_SIZE.
* stage2/shared.h [!NO_BLOCK_FILES] (block_files): No longer
extern.
* stage2/disk_io.c [!NO_BLOCK_FILES] (block_files): Likewise.
(rawread, devread): Use SECTOR_BITS.
(rawread): Fixed calculation of BUFADDR if an error occured. Set
it to BUFFERADDR + BYTE_OFFSET instead of BUFFERSEG +
BYTE_OFFSET.
(grub_close) [!NO_BLOCK_FILES]: If BLOCK_FILE is non-zero,
return immediately.
(grub_close): Don't check if FSYS_TYPE is NUM_FSYS.
* stage2/fsys_fat.c (log2): New inline function.
(fat_mount): Use log2 instead of calculating the size/bit by a
loop.
2000-04-12 OKUJI Yoshinori <okuji@gnu.org>
* configure.in: Use AC_PATH_PROG instead of AC_PATH_TOOL,

View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

1
NEWS
View file

@ -9,6 +9,7 @@ New in 0.5.95 - XXXX-XX-XX:
"multiboot". Actually, this option will be necessary only if you want
to load a NetBSD ELF kernel, because GRUB can automatically determine
a kernel type in the other cases.
* ReiserFS support is added.
New in 0.5.94 - 2000-03-06:
* Stage 1 supports both the LBA mode and the CHS mode.

169
configure vendored
View file

@ -32,6 +32,8 @@ 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-gunzip disable decompression in Stage 2"
ac_help="$ac_help
@ -645,7 +647,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# 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:649: checking for a BSD compatible install" >&5
echo "configure:651: 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
@ -698,7 +700,7 @@ 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:702: checking whether build environment is sane" >&5
echo "configure:704: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@ -770,7 +772,7 @@ 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:774: checking for $ac_word" >&5
echo "configure:776: 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
@ -800,7 +802,7 @@ test -n "$AWK" && break
done
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
echo "configure:804: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo "configure:806: 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
@ -935,7 +937,7 @@ 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:939: checking host system type" >&5
echo "configure:941: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@ -969,7 +971,7 @@ esac
#
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:973: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:975: 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"
@ -995,7 +997,7 @@ 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:999: checking for $ac_word" >&5
echo "configure:1001: 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
@ -1042,7 +1044,7 @@ fi
#
echo $ac_n "checking build system type""... $ac_c" 1>&6
echo "configure:1046: checking build system type" >&5
echo "configure:1048: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@ -1068,7 +1070,7 @@ 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:1072: checking for $ac_word" >&5
echo "configure:1074: 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
@ -1100,7 +1102,7 @@ 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:1104: checking for $ac_word" >&5
echo "configure:1106: 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
@ -1130,7 +1132,7 @@ 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:1134: checking for $ac_word" >&5
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
@ -1181,7 +1183,7 @@ fi
# 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:1185: checking for $ac_word" >&5
echo "configure:1187: 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
@ -1213,7 +1215,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
echo "configure:1217: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
echo "configure:1219: 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.
@ -1224,12 +1226,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
#line 1228 "configure"
#line 1230 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
if { (eval echo configure:1233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1235: \"$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
@ -1255,12 +1257,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; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
echo "configure:1259: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "configure:1261: 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:1264: checking whether we are using GNU C" >&5
echo "configure:1266: 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
@ -1269,7 +1271,7 @@ else
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1273: \"$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:1275: \"$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
@ -1288,7 +1290,7 @@ 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:1292: checking whether ${CC-cc} accepts -g" >&5
echo "configure:1294: 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
@ -1321,7 +1323,7 @@ fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:1325: checking how to run the C preprocessor" >&5
echo "configure:1327: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@ -1336,13 +1338,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 1340 "configure"
#line 1342 "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:1346: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1348: \"$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
:
@ -1353,13 +1355,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1357 "configure"
#line 1359 "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:1363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1365: \"$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
:
@ -1370,13 +1372,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
#line 1374 "configure"
#line 1376 "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:1380: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1382: \"$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
:
@ -1409,7 +1411,7 @@ echo "$ac_t""$CPP" 1>&6
depcc="$CC"
depcpp="$CPP"
echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
echo "configure:1413: checking dependency style of $depcc" >&5
echo "configure:1415: 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
@ -1465,7 +1467,7 @@ 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:1469: checking for $ac_word" >&5
echo "configure:1471: 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
@ -1502,7 +1504,7 @@ 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:1506: checking for $ac_word" >&5
echo "configure:1508: 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
@ -1542,7 +1544,7 @@ if test "x$ac_cv_prog_gcc" = xyes; then
STAGE1_CFLAGS="-O2"
GRUB_CFLAGS="-O2"
echo $ac_n "checking whether optimization for size works""... $ac_c" 1>&6
echo "configure:1546: checking whether optimization for size works" >&5
echo "configure:1548: 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
@ -1550,14 +1552,14 @@ else
saved_CFLAGS=$CFLAGS
CFLAGS="-Os -g"
cat > conftest.$ac_ext <<EOF
#line 1554 "configure"
#line 1556 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:1561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
size_flag=yes
else
@ -1591,7 +1593,7 @@ 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:1595: checking for $ac_word" >&5
echo "configure:1597: 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
@ -1627,7 +1629,7 @@ 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:1631: checking for $ac_word" >&5
echo "configure:1633: 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
@ -1661,7 +1663,7 @@ fi
# Defined in acinclude.m4.
echo $ac_n "checking if C symbols get an underscore after compilation""... $ac_c" 1>&6
echo "configure:1665: checking if C symbols get an underscore after compilation" >&5
echo "configure:1667: 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
@ -1674,7 +1676,7 @@ func (int *list)
}
EOF
if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1678: \"$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:1680: \"$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; }
@ -1700,7 +1702,7 @@ 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:1704: checking whether ${OBJCOPY} works for absolute addresses" >&5
echo "configure:1706: 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
@ -1712,21 +1714,21 @@ cmain (void)
}
EOF
if { (eval echo configure:1716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
if { (eval echo configure:1718: \"$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:1722: \"$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:1724: \"$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:1726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1728: \"$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:1730: \"$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:1732: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
mv -f conftest conftest.old
else
grub_cv_prog_objcopy_absolute=no
@ -1743,7 +1745,7 @@ fi
echo $ac_n "checking whether addr32 must be in the same line as the instruction""... $ac_c" 1>&6
echo "configure:1747: checking whether addr32 must be in the same line as the instruction" >&5
echo "configure:1749: 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
@ -1752,7 +1754,7 @@ else
l1: addr32 movb %al, l1
EOF
if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1756: \"$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:1758: \"$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
@ -1784,7 +1786,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 "configure:1788: checking for .code16 addr32 assembler support" >&5
echo "configure:1790: 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
@ -1799,7 +1801,7 @@ else
sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
fi
if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1803: \"$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:1805: \"$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
@ -1816,19 +1818,19 @@ fi
echo $ac_n "checking if start is defined by the compiler""... $ac_c" 1>&6
echo "configure:1820: checking if start is defined by the compiler" >&5
echo "configure:1822: 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 1825 "configure"
#line 1827 "configure"
#include "confdefs.h"
int main() {
asm ("incl start")
; return 0; }
EOF
if { (eval echo configure:1832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1834: \"$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
@ -1852,19 +1854,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 "configure:1856: checking if _start is defined by the compiler" >&5
echo "configure:1858: 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 1861 "configure"
#line 1863 "configure"
#include "confdefs.h"
int main() {
asm ("incl _start")
; return 0; }
EOF
if { (eval echo configure:1868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1870: \"$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
@ -1893,19 +1895,19 @@ fi
echo $ac_n "checking if __bss_start is defined by the compiler""... $ac_c" 1>&6
echo "configure:1897: checking if __bss_start is defined by the compiler" >&5
echo "configure:1899: 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 1902 "configure"
#line 1904 "configure"
#include "confdefs.h"
int main() {
asm ("incl __bss_start")
; return 0; }
EOF
if { (eval echo configure:1909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1911: \"$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
@ -1929,19 +1931,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 "configure:1933: checking if _edata is defined by the compiler" >&5
echo "configure:1935: 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 1938 "configure"
#line 1940 "configure"
#include "confdefs.h"
int main() {
asm ("incl _edata")
; return 0; }
EOF
if { (eval echo configure:1945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1947: \"$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
@ -1965,19 +1967,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 "configure:1969: checking if edata is defined by the compiler" >&5
echo "configure:1971: 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 1974 "configure"
#line 1976 "configure"
#include "confdefs.h"
int main() {
asm ("incl edata")
; return 0; }
EOF
if { (eval echo configure:1981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1983: \"$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
@ -2007,19 +2009,19 @@ fi
echo $ac_n "checking if end is defined by the compiler""... $ac_c" 1>&6
echo "configure:2011: checking if end is defined by the compiler" >&5
echo "configure:2013: 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 2016 "configure"
#line 2018 "configure"
#include "confdefs.h"
int main() {
asm ("incl end")
; return 0; }
EOF
if { (eval echo configure:2023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2025: \"$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
@ -2043,19 +2045,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 "configure:2047: checking if _end is defined by the compiler" >&5
echo "configure:2049: 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 2052 "configure"
#line 2054 "configure"
#include "confdefs.h"
int main() {
asm ("incl _end")
; return 0; }
EOF
if { (eval echo configure:2059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2061: \"$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
@ -2093,7 +2095,7 @@ 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:2097: checking for opendisk in -lutil" >&5
echo "configure:2099: 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
@ -2101,7 +2103,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lutil $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2105 "configure"
#line 2107 "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
@ -2112,7 +2114,7 @@ int main() {
opendisk()
; return 0; }
EOF
if { (eval echo configure:2116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2118: \"$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
@ -2140,7 +2142,7 @@ 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:2144: checking for wgetch in -lncurses" >&5
echo "configure:2146: 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
@ -2148,7 +2150,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2152 "configure"
#line 2154 "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
@ -2159,7 +2161,7 @@ int main() {
wgetch()
; return 0; }
EOF
if { (eval echo configure:2163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2165: \"$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
@ -2182,7 +2184,7 @@ EOF
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for wgetch in -lcurses""... $ac_c" 1>&6
echo "configure:2186: checking for wgetch in -lcurses" >&5
echo "configure:2188: 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
@ -2190,7 +2192,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcurses $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2194 "configure"
#line 2196 "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
@ -2201,7 +2203,7 @@ int main() {
wgetch()
; return 0; }
EOF
if { (eval echo configure:2205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2207: \"$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
@ -2236,17 +2238,17 @@ 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:2240: checking for $ac_hdr" >&5
echo "configure:2242: 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 2245 "configure"
#line 2247 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2252: \"$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*
@ -2335,6 +2337,17 @@ 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-gunzip or --disable-gunzip was given.
if test "${enable_gunzip+set}" = set; then

View file

@ -201,6 +201,13 @@ if test x"$enable_minix" != xno; then
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1"
fi
AC_ARG_ENABLE(reiserfs,
[ --disable-reiserfs disable ReiserFS support in Stage 2])
if test x"$enable_reiserfs" != xno; then
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
fi
dnl AC_ARG_ENABLE(tftp,
dnl [ --enable-tftp enable TFTP support in Stage 2])
dnl

2
debian/Makefile.in vendored
View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

View file

@ -30,8 +30,6 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@

View file

@ -15,18 +15,19 @@ INCLUDES = -I$(top_srcdir)/stage1
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 stage2.c
fsys_minix.c fsys_reiserfs.c stage2.c
libgrub_a_CFLAGS = $(GRUB_CFLAGS) -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 \
-DFSYS_FAT=1 -DFSYS_FFS=1 -DFSYS_MINIX=1 -fwritable-strings
-DFSYS_FAT=1 -DFSYS_FFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
-fwritable-strings
# Stage 2 and Stage 1.5's.
pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
minix_stage1_5
minix_stage1_5 reiserfs_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
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
MOSTLYCLEANFILES = $(noinst_PROGRAMS)
PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
@ -44,7 +45,8 @@ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
# For stage2 target.
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 smp-imps.c stage2.c
fsys_fat.c fsys_ffs.c fsys_minix.c fsys_reiserfs.c smp-imps.c \
stage2.c
pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
@ -103,6 +105,13 @@ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
-DNO_BLOCK_FILES=1
minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
# For reiserfs_stage1_5 target.
reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
disk_io.c stage1_5.c fsys_reiserfs.c bios.c
reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
-DNO_BLOCK_FILES=1
reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
# General rule for making a raw binary.
%: %.exec
$(OBJCOPY) -O binary $< $@

View file

@ -30,8 +30,6 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
@ -106,21 +104,22 @@ INCLUDES = -I$(top_srcdir)/stage1
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 stage2.c
fsys_minix.c fsys_reiserfs.c stage2.c
libgrub_a_CFLAGS = $(GRUB_CFLAGS) -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 \
-DFSYS_FAT=1 -DFSYS_FFS=1 -DFSYS_MINIX=1 -fwritable-strings
-DFSYS_FAT=1 -DFSYS_FFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
-fwritable-strings
# Stage 2 and Stage 1.5's.
pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
minix_stage1_5
minix_stage1_5 reiserfs_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
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
MOSTLYCLEANFILES = $(noinst_PROGRAMS)
@ -136,7 +135,8 @@ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
# For stage2 target.
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 smp-imps.c stage2.c
fsys_fat.c fsys_ffs.c fsys_minix.c fsys_reiserfs.c smp-imps.c \
stage2.c
pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
@ -186,6 +186,15 @@ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
-DNO_BLOCK_FILES=1
minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
# For reiserfs_stage1_5 target.
reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
disk_io.c stage1_5.c fsys_reiserfs.c bios.c
reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
-DNO_BLOCK_FILES=1
reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
subdir = stage2
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
@ -203,7 +212,7 @@ am_libgrub_a_OBJECTS = libgrub_a-boot.o libgrub_a-builtins.o \
libgrub_a-common.o libgrub_a-char_io.o libgrub_a-cmdline.o \
libgrub_a-disk_io.o libgrub_a-gunzip.o libgrub_a-fsys_ffs.o \
libgrub_a-fsys_ext2fs.o libgrub_a-fsys_fat.o libgrub_a-fsys_minix.o \
libgrub_a-stage2.o
libgrub_a-fsys_reiserfs.o libgrub_a-stage2.o
libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS)
AR = ar
PROGRAMS = $(noinst_PROGRAMS)
@ -247,10 +256,19 @@ pre_stage2_exec-char_io.o pre_stage2_exec-cmdline.o \
pre_stage2_exec-disk_io.o pre_stage2_exec-gunzip.o \
pre_stage2_exec-fsys_ext2fs.o pre_stage2_exec-fsys_fat.o \
pre_stage2_exec-fsys_ffs.o pre_stage2_exec-fsys_minix.o \
pre_stage2_exec-smp-imps.o pre_stage2_exec-stage2.o
pre_stage2_exec-fsys_reiserfs.o pre_stage2_exec-smp-imps.o \
pre_stage2_exec-stage2.o
pre_stage2_exec_OBJECTS = $(am_pre_stage2_exec_OBJECTS)
@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_DEPENDENCIES = \
@NETBOOT_SUPPORT_TRUE@../netboot/libdrivers.a
am_reiserfs_stage1_5_exec_OBJECTS = reiserfs_stage1_5_exec-start.o \
reiserfs_stage1_5_exec-asm.o reiserfs_stage1_5_exec-common.o \
reiserfs_stage1_5_exec-char_io.o reiserfs_stage1_5_exec-disk_io.o \
reiserfs_stage1_5_exec-stage1_5.o \
reiserfs_stage1_5_exec-fsys_reiserfs.o reiserfs_stage1_5_exec-bios.o
reiserfs_stage1_5_exec_OBJECTS = $(am_reiserfs_stage1_5_exec_OBJECTS)
reiserfs_stage1_5_exec_LDADD = $(LDADD)
reiserfs_stage1_5_exec_DEPENDENCIES =
am_start_exec_OBJECTS = start_exec-start.o
start_exec_OBJECTS = $(am_start_exec_OBJECTS)
start_exec_LDADD = $(LDADD)
@ -264,7 +282,7 @@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(libgrub_a_SOURCES) $(e2fs_stage1_5_exec_SOURCES) \
$(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) \
$(minix_stage1_5_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
$(start_exec_SOURCES)
$(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES)
DATA = $(noinst_DATA) $(pkgdata_DATA)
HEADERS = $(noinst_HEADERS)
@ -296,8 +314,9 @@ $(DEPDIR)/libgrub_a-builtins.Po $(DEPDIR)/libgrub_a-char_io.Po \
$(DEPDIR)/libgrub_a-cmdline.Po $(DEPDIR)/libgrub_a-common.Po \
$(DEPDIR)/libgrub_a-disk_io.Po $(DEPDIR)/libgrub_a-fsys_ext2fs.Po \
$(DEPDIR)/libgrub_a-fsys_fat.Po $(DEPDIR)/libgrub_a-fsys_ffs.Po \
$(DEPDIR)/libgrub_a-fsys_minix.Po $(DEPDIR)/libgrub_a-gunzip.Po \
$(DEPDIR)/libgrub_a-stage2.Po $(DEPDIR)/minix_stage1_5_exec-asm.Po \
$(DEPDIR)/libgrub_a-fsys_minix.Po $(DEPDIR)/libgrub_a-fsys_reiserfs.Po \
$(DEPDIR)/libgrub_a-gunzip.Po $(DEPDIR)/libgrub_a-stage2.Po \
$(DEPDIR)/minix_stage1_5_exec-asm.Po \
$(DEPDIR)/minix_stage1_5_exec-bios.Po \
$(DEPDIR)/minix_stage1_5_exec-char_io.Po \
$(DEPDIR)/minix_stage1_5_exec-common.Po \
@ -315,17 +334,26 @@ $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po \
$(DEPDIR)/pre_stage2_exec-fsys_fat.Po \
$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po \
$(DEPDIR)/pre_stage2_exec-fsys_minix.Po \
$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po \
$(DEPDIR)/pre_stage2_exec-gunzip.Po \
$(DEPDIR)/pre_stage2_exec-smp-imps.Po \
$(DEPDIR)/pre_stage2_exec-stage2.Po $(DEPDIR)/start_exec-start.Po
$(DEPDIR)/pre_stage2_exec-stage2.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-asm.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-common.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po \
$(DEPDIR)/reiserfs_stage1_5_exec-start.Po $(DEPDIR)/start_exec-start.Po
DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in compile
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
GZIP_ENV = --best
SOURCES = $(libgrub_a_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(start_exec_SOURCES)
OBJECTS = $(am_libgrub_a_OBJECTS) $(am_e2fs_stage1_5_exec_OBJECTS) $(am_fat_stage1_5_exec_OBJECTS) $(am_ffs_stage1_5_exec_OBJECTS) $(am_minix_stage1_5_exec_OBJECTS) $(am_pre_stage2_exec_OBJECTS) $(am_start_exec_OBJECTS)
SOURCES = $(libgrub_a_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES)
OBJECTS = $(am_libgrub_a_OBJECTS) $(am_e2fs_stage1_5_exec_OBJECTS) $(am_fat_stage1_5_exec_OBJECTS) $(am_ffs_stage1_5_exec_OBJECTS) $(am_minix_stage1_5_exec_OBJECTS) $(am_pre_stage2_exec_OBJECTS) $(am_reiserfs_stage1_5_exec_OBJECTS) $(am_start_exec_OBJECTS)
all: all-redirect
.SUFFIXES:
@ -367,6 +395,7 @@ libgrub_a-fsys_ffs.o: fsys_ffs.c
libgrub_a-fsys_ext2fs.o: fsys_ext2fs.c
libgrub_a-fsys_fat.o: fsys_fat.c
libgrub_a-fsys_minix.o: fsys_minix.c
libgrub_a-fsys_reiserfs.o: fsys_reiserfs.c
libgrub_a-stage2.o: stage2.c
libgrub.a: $(libgrub_a_OBJECTS) $(libgrub_a_DEPENDENCIES)
@ -452,12 +481,27 @@ pre_stage2_exec-fsys_ext2fs.o: fsys_ext2fs.c
pre_stage2_exec-fsys_fat.o: fsys_fat.c
pre_stage2_exec-fsys_ffs.o: fsys_ffs.c
pre_stage2_exec-fsys_minix.o: fsys_minix.c
pre_stage2_exec-fsys_reiserfs.o: fsys_reiserfs.c
pre_stage2_exec-smp-imps.o: smp-imps.c
pre_stage2_exec-stage2.o: stage2.c
pre_stage2.exec: $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_DEPENDENCIES)
@rm -f pre_stage2.exec
$(LINK) $(pre_stage2_exec_LDFLAGS) $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_LDADD) $(LIBS)
reiserfs_stage1_5_exec-start.o: start.S
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
reiserfs_stage1_5_exec-asm.o: asm.S
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-asm.o `test -f asm.S || echo '$(srcdir)/'`asm.S
reiserfs_stage1_5_exec-common.o: common.c
reiserfs_stage1_5_exec-char_io.o: char_io.c
reiserfs_stage1_5_exec-disk_io.o: disk_io.c
reiserfs_stage1_5_exec-stage1_5.o: stage1_5.c
reiserfs_stage1_5_exec-fsys_reiserfs.o: fsys_reiserfs.c
reiserfs_stage1_5_exec-bios.o: bios.c
reiserfs_stage1_5.exec: $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_DEPENDENCIES)
@rm -f reiserfs_stage1_5.exec
$(LINK) $(reiserfs_stage1_5_exec_LDFLAGS) $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_LDADD) $(LIBS)
start_exec-start.o: start.S
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_exec_CFLAGS) $(CFLAGS) -c -o start_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
@ -552,6 +596,7 @@ maintainer-clean-tags:
@AMDEP@include $(DEPDIR)/libgrub_a-fsys_fat.Po
@AMDEP@include $(DEPDIR)/libgrub_a-fsys_ffs.Po
@AMDEP@include $(DEPDIR)/libgrub_a-fsys_minix.Po
@AMDEP@include $(DEPDIR)/libgrub_a-fsys_reiserfs.Po
@AMDEP@include $(DEPDIR)/libgrub_a-gunzip.Po
@AMDEP@include $(DEPDIR)/libgrub_a-stage2.Po
@AMDEP@include $(DEPDIR)/minix_stage1_5_exec-asm.Po
@ -574,9 +619,18 @@ maintainer-clean-tags:
@AMDEP@include $(DEPDIR)/pre_stage2_exec-fsys_fat.Po
@AMDEP@include $(DEPDIR)/pre_stage2_exec-fsys_ffs.Po
@AMDEP@include $(DEPDIR)/pre_stage2_exec-fsys_minix.Po
@AMDEP@include $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po
@AMDEP@include $(DEPDIR)/pre_stage2_exec-gunzip.Po
@AMDEP@include $(DEPDIR)/pre_stage2_exec-smp-imps.Po
@AMDEP@include $(DEPDIR)/pre_stage2_exec-stage2.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-asm.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-bios.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-common.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po
@AMDEP@include $(DEPDIR)/reiserfs_stage1_5_exec-start.Po
@AMDEP@include $(DEPDIR)/start_exec-start.Po
mostlyclean-depend:
@ -687,6 +741,14 @@ libgrub_a-fsys_minix.o: fsys_minix.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
libgrub_a-fsys_reiserfs.o: fsys_reiserfs.c
@AMDEP@ source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/libgrub_a-fsys_reiserfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_reiserfs.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.o `test -f fsys_reiserfs.c || echo '$(srcdir)/'`fsys_reiserfs.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
libgrub_a-stage2.o: stage2.c
@AMDEP@ source='stage2.c' object='libgrub_a-stage2.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/libgrub_a-stage2.Po' tmpdepfile='$(DEPDIR)/libgrub_a-stage2.TPo' @AMDEPBACKSLASH@
@ -983,6 +1045,14 @@ pre_stage2_exec-fsys_minix.o: fsys_minix.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
pre_stage2_exec-fsys_reiserfs.o: fsys_reiserfs.c
@AMDEP@ source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.o `test -f fsys_reiserfs.c || echo '$(srcdir)/'`fsys_reiserfs.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
pre_stage2_exec-smp-imps.o: smp-imps.c
@AMDEP@ source='smp-imps.c' object='pre_stage2_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/pre_stage2_exec-smp-imps.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-smp-imps.TPo' @AMDEPBACKSLASH@
@ -996,6 +1066,54 @@ pre_stage2_exec-stage2.o: stage2.c
@AMDEP@ depfile='$(DEPDIR)/pre_stage2_exec-stage2.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-stage2.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.o `test -f stage2.c || echo '$(srcdir)/'`stage2.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
reiserfs_stage1_5_exec-common.o: common.c
@AMDEP@ source='common.c' object='reiserfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/reiserfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/reiserfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.o `test -f common.c || echo '$(srcdir)/'`common.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
reiserfs_stage1_5_exec-char_io.o: char_io.c
@AMDEP@ source='char_io.c' object='reiserfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/reiserfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-char_io.o `test -f char_io.c || echo '$(srcdir)/'`char_io.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
reiserfs_stage1_5_exec-disk_io.o: disk_io.c
@AMDEP@ source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-disk_io.o `test -f disk_io.c || echo '$(srcdir)/'`disk_io.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
reiserfs_stage1_5_exec-stage1_5.o: stage1_5.c
@AMDEP@ source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f stage1_5.c || echo '$(srcdir)/'`stage1_5.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
reiserfs_stage1_5_exec-fsys_reiserfs.o: fsys_reiserfs.c
@AMDEP@ source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po' tmpdepfile='$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f fsys_reiserfs.c || echo '$(srcdir)/'`fsys_reiserfs.c
@AMDEP@CCDEPMODE = @CCDEPMODE@
reiserfs_stage1_5_exec-bios.o: bios.c
@AMDEP@ source='bios.c' object='reiserfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/reiserfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.o `test -f bios.c || echo '$(srcdir)/'`bios.c
check-TESTS: $(TESTS)
@failed=0; all=0; xfail=0; xpass=0; \
srcdir=$(srcdir); export srcdir; \

View file

@ -831,7 +831,7 @@ embed_func (char *arg, int flags)
if (errnum)
return 1;
size = (len + SECTOR_SIZE - 1) / SECTOR_SIZE;
/* Get the device where the Stage 1.5 will be embedded. */
@ -874,35 +874,22 @@ embed_func (char *arg, int flags)
}
else
{
/* Embed it in the bootloader block in the FFS. */
/* Embed it in the bootloader block in the filesystem. */
int start_sector;
/* Open the partition. */
if (! open_partition ())
if (! open_device ())
return 1;
/* Check if the current slice is a BSD slice. */
if (grub_strcmp (fsys_table[fsys_type].name, "ffs") != 0)
/* Check if the current slice supports embedding. */
if (fsys_table[fsys_type].embed_func == 0
|| ! fsys_table[fsys_type].embed_func (&start_sector, size))
{
errnum = ERR_DEV_VALUES;
return 1;
}
/* Sanity check. */
if (size > 14)
{
errnum = ERR_BAD_VERSION;
return 1;
}
/* XXX: I don't know this is really correct. Someone who is
familiar with BSD should check for this. */
sector = part_start + 1;
#if 1
/* FIXME: Disable the embedding in FFS until someone checks if
the code above is correct. */
errnum = ERR_DEV_VALUES;
return 1;
#endif
sector = part_start + start_sector;
}
/* Clear the cache. */
@ -1003,7 +990,18 @@ find_func (char *arg, int flags)
{
errnum = ERR_NONE;
current_partition = (slice << 16) | 0xFFFF;
if (! open_device () && IS_PC_SLICE_TYPE_BSD (current_slice))
if (open_device ())
{
errnum = ERR_NONE;
saved_drive = current_drive;
saved_partition = current_partition;
if (grub_open (filename))
{
grub_close ();
grub_printf (" (hd%d,%d)", drive - 0x80, slice);
}
}
else if (IS_PC_SLICE_TYPE_BSD (current_slice))
{
unsigned long part;
@ -1024,17 +1022,6 @@ find_func (char *arg, int flags)
}
}
}
else
{
errnum = ERR_NONE;
saved_drive = current_drive;
saved_partition = current_partition;
if (grub_open (filename))
{
grub_close ();
grub_printf (" (hd%d,%d)", drive - 0x80, slice);
}
}
}
}
@ -2587,7 +2574,8 @@ setup_func (char *arg, int flags)
{"ext2fs", "/boot/grub/e2fs_stage1_5"},
{"ffs", "/boot/grub/ffs_stage1_5"},
{"fat", "/boot/grub/fat_stage1_5"},
{"minix", "/boot/grub/minix_stage1_5"}
{"minix", "/boot/grub/minix_stage1_5"},
{"reiserfs", "/boot/grub/reiserfs_stage1_5"}
};
/* Initialize some strings. */
@ -2689,10 +2677,10 @@ setup_func (char *arg, int flags)
else
goto fail;
}
else if (grub_strcmp (fsys, "ffs") == 0)
else if (fsys_table[fsys_type].embed_func != 0)
{
/* We can embed the Stage 1.5 into the "bootloader"
area in the FFS partition. */
area in the FFS or ReiserFS partition. */
/* FIXME */
}

View file

@ -42,23 +42,26 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] =
{
/* TFTP should come first because others don't handle net device. */
# ifdef FSYS_TFTP
{"tftp", tftp_mount, tftp_read, tftp_dir, tftp_close},
{"tftp", tftp_mount, tftp_read, tftp_dir, tftp_close, 0},
# endif
# ifdef FSYS_FAT
{"fat", fat_mount, fat_read, fat_dir, 0},
{"fat", fat_mount, fat_read, fat_dir, 0, 0},
# endif
# ifdef FSYS_EXT2FS
{"ext2fs", ext2fs_mount, ext2fs_read, ext2fs_dir, 0},
{"ext2fs", ext2fs_mount, ext2fs_read, ext2fs_dir, 0, 0},
# endif
# ifdef FSYS_MINIX
{"minix", minix_mount, minix_read, minix_dir, 0},
{"minix", minix_mount, minix_read, minix_dir, 0, 0},
# endif
# ifdef FSYS_REISERFS
{"reiserfs", reiserfs_mount, reiserfs_read, reiserfs_dir, 0, reiserfs_embed},
# endif
/* XX FFS should come last as it's superblock is commonly crossing tracks
on floppies from track 1 to 2, while others only use 1. */
# ifdef FSYS_FFS
{"ffs", ffs_mount, ffs_read, ffs_dir, 0},
{"ffs", ffs_mount, ffs_read, ffs_dir, 0, ffs_embed},
# endif
{0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 0}
};
@ -85,7 +88,7 @@ int bsd_evil_hack;
/* filesystem type */
int fsys_type = NUM_FSYS;
#ifndef NO_BLOCK_FILES
int block_file = 0;
static int block_file = 0;
#endif /* NO_BLOCK_FILES */
/* these are the translated numbers for the open partition */
@ -107,7 +110,7 @@ int filemax;
int
rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
{
int slen = (byte_offset + byte_len + SECTOR_SIZE - 1) / SECTOR_SIZE;
int slen = (byte_offset + byte_len + SECTOR_SIZE - 1) >> SECTOR_BITS;
if (byte_len <= 0)
return 1;
@ -172,7 +175,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
sector, slen, BUFFERSEG))
errnum = ERR_READ;
bufaddr = BUFFERSEG + byte_offset;
bufaddr = BUFFERADDR + byte_offset;
}
}
else
@ -216,7 +219,8 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
* Check partition boundaries
*/
if (sector < 0
|| (sector + ((byte_offset + byte_len - 1) / SECTOR_SIZE)) >= part_length)
|| ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS))
>= part_length))
{
errnum = ERR_OUTSIDE_PART;
return 0;
@ -225,11 +229,8 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
/*
* Get the read to the beginning of a partition.
*/
while (byte_offset >= SECTOR_SIZE)
{
byte_offset -= SECTOR_SIZE;
sector++;
}
sector += byte_offset >> SECTOR_BITS;
byte_offset &= SECTOR_SIZE - 1;
#if !defined(STAGE1_5)
if (disk_read_hook && debug)
@ -1502,11 +1503,11 @@ dir (char *dirname)
void
grub_close (void)
{
if (fsys_type == NUM_FSYS)
#ifndef NO_BLOCK_FILES
if (block_file)
return;
#endif /* NO_BLOCK_FILES */
if (fsys_table[fsys_type].close_func == 0)
return;
(*(fsys_table[fsys_type].close_func)) ();
if (fsys_table[fsys_type].close_func != 0)
(*(fsys_table[fsys_type].close_func)) ();
}

View file

@ -2,7 +2,7 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1996 Erich Boleyn <erich@uruk.org>
* Copyright (C) 1999 Free Software Foundation, Inc.
* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -26,6 +26,7 @@
int ffs_mount (void);
int ffs_read (char *buf, int len);
int ffs_dir (char *dirname);
int ffs_embed (int *start_sector, int needed_sectors);
#else
#define FSYS_FFS_NUM 0
#endif
@ -57,6 +58,16 @@ int minix_dir (char *dirname);
#define FSYS_MINIX_NUM 0
#endif
#ifdef FSYS_REISERFS
#define FSYS_REISERFS_NUM 1
int reiserfs_mount (void);
int reiserfs_read (char *buf, int len);
int reiserfs_dir (char *dirname);
int reiserfs_embed (int *start_sector, int needed_sectors);
#else
#define FSYS_REISERFS_NUM 0
#endif
#ifdef FSYS_TFTP
#define FSYS_TFTP_NUM 1
int tftp_mount (void);
@ -70,7 +81,7 @@ void tftp_close (void);
#ifndef NUM_FSYS
#define NUM_FSYS \
(FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \
+ FSYS_TFTP_NUM)
+ FSYS_REISERFS_NUM + FSYS_TFTP_NUM)
#endif
/* defines for the block filesystem info area */
@ -94,6 +105,7 @@ struct fsys_entry
int (*read_func) (char *buf, int len);
int (*dir_func) (char *dirname);
void (*close_func) (void);
int (*embed_func) (int *start_sector, int needed_sectors);
};
#ifdef STAGE1_5

View file

@ -54,11 +54,19 @@ struct fat_superblock
#define FAT_CACHE_SIZE 2048
static __inline__ unsigned long
log2 (unsigned long word)
{
__asm__ ("bsfl %1,%0"
: "=r" (word)
: "r" (word));
return word;
}
int
fat_mount (void)
{
struct fat_bpb bpb;
int i;
/* Check partition type for harddisk */
if (((current_drive & 0x80) || (current_slice != 0))
@ -75,12 +83,9 @@ fat_mount (void)
if (bpb.sects_per_clust == 0)
return 0;
for (i = 0; (1 << i) < FAT_CVT_U16 (bpb.bytes_per_sect); i++)
;
FAT_SUPER->sectsize_bits = i;
for (i = 0; (1 << i) < bpb.sects_per_clust; i++)
;
FAT_SUPER->clustsize_bits = FAT_SUPER->sectsize_bits + i;
FAT_SUPER->sectsize_bits = log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
FAT_SUPER->clustsize_bits
= FAT_SUPER->sectsize_bits + log2 (bpb.sects_per_clust);
/* Fill in info about super block */
FAT_SUPER->num_sectors = FAT_CVT_U16 (bpb.short_sectors)

View file

@ -1,6 +1,7 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1996 Erich Boleyn <erich@uruk.org>
* Copyright (C) 1996 Erich Boleyn <erich@uruk.org>
* Copyright (C) 2000 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -293,4 +294,22 @@ loop:
goto loop;
}
int
ffs_embed (int *start_sector, int needed_sectors)
{
/* XXX: I don't know if this is really correct. Someone who is
familiar with BSD should check for this. */
if (needed_sectors > 14)
return 0;
*start_sector = 1;
#if 1
/* FIXME: Disable the embedding in FFS until someone checks if
the code above is correct. */
return 0;
#else
return 1;
#endif
}
#endif /* FSYS_FFS */

View file

@ -169,8 +169,9 @@ extern char *grub_scratch_mem;
* General disk stuff
*/
#define SECTOR_SIZE 0x200
#define BIOS_FLAG_FIXED_DISK 0x80
#define SECTOR_SIZE 0x200
#define SECTOR_BITS 9
#define BIOS_FLAG_FIXED_DISK 0x80
#define BOOTSEC_LOCATION RAW_ADDR (0x7C00)
#define BOOTSEC_SIGNATURE 0xAA55
@ -202,6 +203,7 @@ extern char *grub_scratch_mem;
#define STAGE2_ID_E2FS_STAGE1_5 2
#define STAGE2_ID_FAT_STAGE1_5 3
#define STAGE2_ID_MINIX_STAGE1_5 4
#define STAGE2_ID_REISERFS_STAGE1_5 5
#ifndef STAGE1_5
# define STAGE2_ID STAGE2_ID_STAGE2
@ -214,6 +216,8 @@ extern char *grub_scratch_mem;
# define STAGE2_ID STAGE2_ID_FAT_STAGE1_5
# elif defined(FSYS_MINIX)
# define STAGE2_ID STAGE2_ID_MINIX_STAGE1_5
# elif defined(FSYS_REISERFS)
# define STAGE2_ID STAGE2_ID_REISERFS_STAGE1_5
# else
# error "unknown Stage 2"
# endif
@ -477,10 +481,6 @@ extern unsigned long current_partition;
extern int fsys_type;
#ifndef NO_BLOCK_FILES
extern int block_file;
#endif /* NO_BLOCK_FILES */
/* The information for a disk geometry. The CHS information is only for
DOS/Partition table compatibility, and the real number of sectors is
stored in TOTAL_SECTORS. */

View file

@ -31,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@