1999-08-09 OKUJI Yoshinori * stage2/cmdline.c (commands): Added geometry. (enter_cmdline): If CUR_HEAP has the string "geometry", print out the information about a drive that the argument represents. 1999-08-09 OKUJI Yoshinori * stage2/stage2.c (run_menu): Terminate the string PASSWORD before checking if ENTERED is identical to PASSWORD. Reported by Mark Lundeberg . 1999-08-08 OKUJI Yoshinori * stage2/stage2.c (set_line_normal): New function. (set_line_highlight): Likewise. (run_menu): Do not call the function set_line directly any longer, call set_line_normal and set_line_highlight instead. From Pavel Roskin: * stage2/stage2.c (run_menu) [GRUB_UTIL]: Quit when pushing the key `q'. 1999-08-05 OKUJI Yoshinori * acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): New function. * configure.in: Call grub_ASM_PREFIX_REQUIREMENT, and define ADDR32 and DATA32 based on the result. * stage2/asm.S: Replace addr32 and data32 prefixes with ADDR32 and DATA32 respectively. 1999-08-05 Pavel Roskin * stage2/boot.c (load_image): Use RAW_ADDR macro when loading an a.out kernel. 1999-08-04 OKUJI Yoshinori * stage2/asm.S: Make each of the addr32 and data32 prefixes appear in the same line as it modifies, as the gas manual in binutils-2.9.5.0.4 says "it must be in the same line". 1999-08-04 OKUJI Yoshinori * boot.c (load_image): Fix a strcmp test. Reported by Pavel Roskin . 1999-08-03 OKUJI Yoshinori From "Dan J. Walters" : * stage2/i386-elf.h (EI_BRAND): New macro. * stage2/boot.c (load_image): If the kernel is ELF, check if it is a FreeBSD kernel as well as a Multiboot kernel, and if it is a FreeBSD kernel, then mask ENTRY_ADDR since FreeBSD requires that. Likewise, mask MEMADDR. (bsd_boot): Set the bi_symtab and the bi_esymtab members of BI only if MBI.FLAGS has the flag MB_INFO_AOUT_SYMS. Otherwise, clear them. 1999-07-30 OKUJI Yoshinori From Pavel Roskin : * grub/getopt.c: New file. Copied from texinfo-3.12n. * grub/getopt1.c: Likewise. * grub/getopt.h: Likewise. * grub/Makefile.am (grub_SOURCES): Added getopt.c, getopt1.c and getopt.h. * configure.in: Check for string.h and strings.h. * grub/asmstub.c (grub_stage2): Fix a misordering in the output format of the inline assembly. 1999-07-30 OKUJI Yoshinori From Pavel Roskin : * stage2/asm.S (get_diskinfo_standard): If the number of sectors returned is zero, then return an error code, even if non-carrier. 1999-07-15 Gordon Matzigkeit * docs/Makefile.am (grub.info): Use an ugly hack to downgrade grub.texi so that it works with Debian's version of texinfo. 1999-07-26 OKUJI Yoshinori * stage2/bios.c (get_diskinfo): When DRIVE is a floppy drive, try standard probe routine at first. Reported by Peter Astrand . * grub/main.c (main): Call printf instead of grub_printf. Reported by Klaus Reichl . 1999-07-15 OKUJI Yoshinori * stage2/cmdline.c (skip_to): Don't increase CMDLINE if the character to which CMDLINE points is NUL. * stage2/Makefile.am (EXTRA_DIST): Removed smp-imps.c. (stage2_exec_SOURCES): Added smp-imps.c. * stage2/cmdline.c [!GRUB_UTIL] (IMPS_DEBUG) (KERNEL_PRINT) (CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL) (VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte) (cmos_read_byte): These are now defined in ... * stage2/smp-imps.c (IMPS_DEBUG) (KERNEL_PRINT) (CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL) (VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte) (cmos_read_byte): ... here. * stage2/cmdline.c [!GRUB_UTIL]: Include apic.h and smp-imps.h. 1999-07-14 OKUJI Yoshinori The function ungetch is simulated so that the user can use a buggy curses. * grub/asmstub.c [HAVE_LIBCURSES] (save_char): New variable. (getkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return SAVE_CHAR and clear it. (checkkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return SAVE_CHAR. If C is not ERR, set SAVE_CHAR to C. 1999-07-14 Pavel Roskin * stage2/char_io.c (get_cmdline) [GRUB_UTIL]: Recognize backspace when ncurses fails to do this. * grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call wtimeout instead of nodelay. (getkey) [HAVE_LIBCURSES]: Likewise. 1999-07-14 OKUJI Yoshinori * stage1/stage1_lba.S (probe_values): New variable. This is not used actually, but prevents `install' command from failing bogusly. 1999-07-14 OKUJI Yoshinori All constants in stage1s are moved to stage1.h and renamed appropriately, and include stage1.h instead. * grub/Makefile.am (AM_CFLAGS): Added the include path to stage1. * stage2/Makefile.am (INCLUDES): New variable. * stage1/Makefile.am (stage1_exec_SOURCES): Added stage1.h (stage1_lba_exec_SOURCES): Likewise. * stage1/stage1.h: New file. * stage1/stage1.S (SIGNATURE): Renamed to ... * stage1/stage1.h (STAGE1_SIGNATURE): ... this. * stage1/stage1.S (BPBEND): Renamed to ... * stage1/stage1.h (STAGE1_BPBEND): ... this. * stage1/stage1.S (PARTSTART): Renamed to ... * stage1/stage1.h (STAGE1_PARTSTART): ... this. * stage1/stage1.S (MINPARMSIZ): Renamed to ... * stage1/stage1.h (STAGE1_MINPARMSIZE): ... this. * stage1/stage1.S (LISTSIZ): Renamed to ... * stage1/stage1.h (STAGE1_LISTSIZE): ... this. * stage1/stage1.S (REALSTACK): Renamed to ... * stage1/stage1.h (STAGE1_STACKSEG): ... this. * stage1/stage1.S (BUFFERSEG): Renamed to ... * stage1/stage1.h (STAGE1_BUFFERSEG): ... this. * stage1/stage1.S (BIOS_HD_FLAG): Renamed to ... * stage1/stage1.h (STAGE1_BIOS_HD_FLAG): ... this. * stage1/stage1_lba.S (SIGNATURE): Removed. * stage1/stage1_lba.S (BPBEND): Likewise. * stage1/stage1_lba.S (PARTSTART): Likewise. * stage1/stage1_lba.S (MINPARMSIZ): Likewise. * stage1/stage1_lba.S (LISTSIZ): Likewise. * stage1/stage1_lba.S (REALSTACK): Likewise. * stage1/stage1_lba.S (BUFFERSEG): Likewise. * stage1/stage1_lba.S (BIOS_HD_FLAG): Likewise. * stage1/stage1.S (stage1_id): New variable. * stage1/stage1_lba.S (stage1_id): Likewise. * stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 2. (STAGE1_ID_OFFSET): New macro. (STAGE1_ID_CHS): Likewise. (STAGE1_ID_LBA): Likewise. * stage2/cmdline.c (enter_cmdline) [!GRUB_UTIL]: When running the command `install' and STAGE1_FILE is stage1_lba, check if LBA is supported. (enter_cmdline) [GRUB_UTIL]: In the same case above, check only if CURRENT_DRIVE is a hard disk and, if so, print a warning message, because /sbin/grub cannot detect if LBA is supported or not. * stage1/stage1_lba.S: Fix a bug that incorrectly assigns the segment of buffer address. 1999-07-13 OKUJI Yoshinori * stage2/boot.c (load_image): When removing "vga=...", memmove the length of VGA_END plus one. 1999-07-12 OKUJI Yoshinori * stage2/bios.c (get_diskinfo): In LBA mode, compute TOTAL_SECTORS from DRP instead of GEOMETRY. Clear GEOMETRY->FLAGS first. * stage2/boot.c (load_image): Fix inverted lines. 1999-07-12 OKUJI Yoshinori Support Linux video mode selection. * stage2/shared.h (LINUX_VID_MODE_OFFSET): New macro. (LINUX_VID_MODE_NORMAL): Likewise. (LINUX_VID_MODE_EXTENDED): Likewise. (LINUX_VID_MODE_ASK): Likewise. [!WITHOUT_LIBC_STUBS] (strlen): Likewise. (grub_strlen): Declared. * stage2/boot.c (load_image): Added Linux video mode selection. * stage2/char_io.c [!STAGE1_5] (grub_strlen): New function. 1999-07-12 OKUJI Yoshinori * stage2/char_io.c (print_error): Print ERRNUM in the format of %u instead of %d. (convert_to_ascii) [STAGE1_5]: Eliminate the `x' and `d' handling code. (grub_printf): Declare FORMAT as `const char *'. (grub_printf) [STAGE1_5]: Eliminate the `x' and `d' handling code. (get_based_digit): Removed. (safe_parse_maxint): Remove unnecessary `register' prefixes, because GCC does better optimization. Declare DIGIT as `unsigned int' and calculate the value by more compact instructions. [!STAGE1_5] (grub_strncat): Declare S2 as `const char *'. [!STAGE1_5] (grub_strcmp): Declare S1 and S2 as `const char *'. [!STAGE1_5] (grub_strstr): Likewise. (grub_memmove): Declare FROM as `const char *'. The copy code is replaced with inline assembly code stolen from Linux-2.2.2. * stage2/shared.h (grub_printf) : Corrected. (grub_strncat): Likewise. (grub_memmove): Likewise. (grub_strstr): Likewise. (grub_strcmp): Likewise. 1999-07-11 OKUJI Yoshinori * stage1/stage1.S (sectors): Change the size to long. (heads): Likewise. (sector_start): New variable. (head_start): Likewise. (cylinder_start): Likewise. (final_init): Set %si to SECTORS first, and use %si for memory references. Zero %eax so that the high 16 bits are always zero. Set %di to FIRSTLIST - LISTSIZ instead of FIRSTLIST. (bootloop): Omit the complex CHS recomputation, and always compute them from LBA address instead. Call 32bits div instructions instead of 16bits div instructions. Update the position where to load data from at the end of this loop, instead of the beginning. * stage1/stage1_lba.S: New file. * stage1/Makefile.am (nodist_pkgdata_DATA): Added stage1_lba. (LDFLAGS): New variable. (noinst_PROGRAMS): Added stage1_lba.exec. (stage1_lba_exec_SOURCES): New variable. (%: %.exec): New rule. 1999-06-28 OKUJI Yoshinori * grub/main.c (main): The third argument for strtoul is changed to 0 in the case where an option is OPT_INSTALL_PARTIION. Reported by Pavel Roskin . 1999-06-27 OKUJI Yoshinori * stage2/shared.h (STAGE2_STAGE2_ID): New macro. (STAGE2_VER_STR_OFFS): Set to 0xd. (STAGE2_ID_STAGE2): New macro. (STAGE2_ID_FFS_STAGE1_5): Likewise. (STAGE2_ID_E2FS_STAGE1_5): Likewise. (STAGE2_ID_FAT_STAGE1_5): Likewise. (STAGE2_ID) [!STAGE1_5]: Defined as STAGE2_ID_STAGE2. (STAGE2_ID) [STAGE1_5] [FSYS_FFS]: Defined as STAGE2_ID_FFS_STAGE1_5. (STAGE2_ID) [STAGE1_5] [FSYS_EXT2FS]: Defined as STAGE2_ID_STAGE1_5. (STAGE2_ID) [STAGE1_5] [FSYS_FAT]: Defined as STAGE2_ID_FAT_STAGE1_5. (COMPAT_VERSION_MINOR): Set to 1. * stage2/asm.S (stage2_id): New variable. * stage1/stage1.S: Change the minor version to 1. 1999-06-27 OKUJI Yoshinori * configure.in (CFLAGS): Set to "-g", since only this flag is always sharable. (STAGE1_CFLAGS): Set to "-O2", and AC_SUBST this. (GRUB_CFLAGS): Likewise. (saved_CFLAGS): New variable for temporarily saving CFLAGS. (STAGE2_CFLAGS): Set to "-Os" if this option is available, otherwise set to "-fno-strength-reduce -fno-unroll-loops", and then AC_SUBST this. * grub/Makefile.am (AM_CFLAGS): Prepended @GRUB_CFLAGS@. * stage1/Makefile.am (AM_CFLAGS): Prepended @STAGE1_CFLAGS@. * stage2/Makefile.am (libgrub_a_CFLAGS): Prepened @GRUB_CFLAGS@. (STAGE2_COMPILE): Prepended @STAGE2_CFLAGS@. * stage2/asm.S (chain_stage2): Pass CURRENT_PARTITION and CURRENT_DRIVE, instead of INSTALL_PARTITION and BOOT_DRIVE. 1999-06-27 Pavel Roskin * configure.in: set CFLAGS to "-Os -g" for compilers which understand "-Os" if CFLAGS is not already set. Use "-O2 -fno-strength-reduce -fno-unroll-loops -g" for older gcc versions. 1999-06-25 OKUJI Yoshinori * stage2/disk_io.c (attempt_mount) [STAGE1_5]: Set FSYS_TYPE to 0, and set it to NUM_FSYS if mount fails. (real_open_partition): Call rawread in Stage 1.5 as well. 1999-06-24 OKUJI Yoshinori * Makefile.am (SUBDIRS): Change the order of the directories so that a directory will be made after the dependent directories are made. `grub' depends on `stage2', and `docs' depends on `grub'. Do not make in parallel. * docs/help2man: Copied from help2man-1.012, which contains my previous change. * docs/grub.8: Regenerated. 1999-06-24 OKUJI Yoshinori Build process is cleaned up. Stage 2 and Stage 1.5's are all built in the directory stage2. From Pavel Roskin : * Makefile.am (SUBDIRS): e2fs_stage1_5, ffs_stage1_5, fat_stage1_5 and shared_src are removed. (DISTCLEANFILES): Deleted. * configure.in: Call AC_PROG_RANLIB. (AC_INIT): Change the argument to stage2/stage2.c. (LIBS): Renamed to ... (GRUB_LIBS): ... this, and call AC_SUBST for this. Our own rules are removed. (AC_OUTPUT): e2fs_stage1_5/Makefile, ffs_stage1_5/Makefile, fat_stage1_5/Makefile and shared_src/Makefile are removed. * docs/Makefile.am (HELP2MAN): The prefix $(srcdir) is removed. [GRUB_MAINT]: Prepend $(srcdir) to $(HELP2MAN). * e2fs_stage1_5/Makefile.am: Deleted. * e2fs_stage1_5/Makefile.in: Likewise. * fat_stage1_5/Makefile.am: Likewise. * fat_stage1_5/Makefile.in: Likewise. * ffs_stage1_5/Makefile.am: Likewise. * ffs_stage1_5/Makefile.in: Likewise. * grub/Makefile.am (CLEANFILES): Likewise. (COMPILE): Likewise. (INCLUDES): Likewise. (DEP_FILES): Likewise. (@SHARED_SRC_RULES@): Likewise. (AM_CFLAGS): New variable. (grub_LDADD): Set to the library libgrub.a and @GRUB_LIBS@. * shared_src/Makefile.am: Deleted. * shared_src/Makefile.in: Likewise. * shared_src/apic.h: Moved to ... * stage2/apic.h: ... here. * shared_src/asm.S: Moved to ... * stage2/asm.S: ... here. * shared_src/bios.c: Moved to ... * stage2/bios.c: ... here. * shared_src/boot.c: Moved to ... * stage2/boot.c: ... here. * shared_src/char_io.c: Moved to ... * stage2/char_io.c: ... here. * shared_src/cmdline.c: Moved to ... * stage2/cmdline.c: ... here. * shared_src/common.c: Moved to ... * stage2/common.c: ... here. * shared_src/defs.h: Moved to ... * stage2/defs.h: ... here. * shared_src/dir.h: Moved to ... * stage2/dir.h: ... here. * shared_src/disk_inode.h: Moved to ... * stage2/disk_inode.h: ... here. * shared_src/disk_inode_ffs.h: Moved to ... * stage2/disk_inode_ffs.h: ... here. * shared_src/disk_io.c: Moved to ... * stage2/disk_io.c: ... here. * shared_src/fat.h: Moved to ... * stage2/fat.h: ... here. * shared_src/filesys.h: Moved to ... * stage2/filesys.h: ... here. * shared_src/freebsd.h: Moved to ... * stage2/freebsd.h: ... here. * shared_src/fs.h: Moved to ... * stage2/fs.h: ... here. * shared_src/fsys_ext2fs.c: Moved to ... * stage2/fsys_ext2fs.c: ... here. * shared_src/fsys_fat.c: Moved to ... * stage2/fsys_fat.c: ... here. * shared_src/fsys_ffs.c: Moved to ... * stage2/fsys_ffs.c: ... here. * shared_src/gunzip.c: Moved to ... * stage2/gunzip.c: ... here. * shared_src/i386-elf.h: Moved to ... * stage2/i386-elf.h: ... here. * shared_src/imgact_aout.h: Moved to ... * stage2/imgact_aout.h: ... here. * shared_src/mb_header.h: Moved to ... * stage2/mb_header.h: ... here. * shared_src/mb_info.h: Moved to ... * stage2/mb_info.h: ... here. * shared_src/pc_slice.h: Moved to ... * stage2/pc_slice.h: ... here. * shared_src/shared.h: Moved to ... * stage2/shared.h: ... here. * shared_src/smp-imps.c: Moved to ... * stage2/smp-imps.c: ... here. * shared_src/smp-imps.h: Moved to ... * stage2/smp-imps.h: ... here. * shared_src/stage1_5.c: Moved to ... * stage2/stage1_5.c: ... here. * shared_src/stage2.c: Moved to ... * stage2/stage2.c: ... here. * stage1/Makefile.am (pkgdata_DATA): Renamed to ... (nodist_pkgdata_DATA): ... this. (COMPILE): Deleted. (AM_CFLAGS): New variable. * stage2/Makefile.am: Completely rewritten from scratch. (TESTS): New variable. (noinst_SCRIPTS): Likewise. (noinst_HEADERS): Likewise. (EXTRA_DIST): Set to smp-imps.c and $(noinst_SCRIPTS). (noinst_LIBRARIES): New variable. (libgrub_a_SOURCES): Likewise. (libgrub_a_CFLAGS): Likewise. (pkgdata_DATA): Deleted. (nodist_pkgdata_DATA): New variable. (MOSTLYCLEANFILES): Set to $(noinst_PROGRAMS). (COMPILE): Deleted. (INCLUDES): Likewise. (stage2_exec_LDADD): Likewise. (DEP_FILES): Likewise. (stage2_exec_SOURCES): Set to the actual source files instead of dummy. (DISTFILES): Deleted. (stage2.exec): Likewise. (stage2): Likewise. (@SHARED_SRC_RULES@): Likewise. (noinst_PROGRAMS): Set to executable formats of Stage 2 and Stage 1.5's. (STAGE2_LINK): New variable. (STAGE2_COMPILE): Likewise. (STAGE1_5_LINK): Likewise. (STAGE1_5_COMPILE): Likewise. (stage2_exec_CFLAGS): Likewise. (stage2_exec_LDFLAGS): Likewise. (e2fs_stage1_5_exec_SOURCES): Likewise. (e2fs_stage1_5_exec_CFLAGS): Likewise. (e2fs_stage1_5_exec_LDFLAGS): Likewise. (fat_stage1_5_exec_SOURCES): Likewise. (fat_stage1_5_exec_CFLAGS): Likewise. (fat_stage1_5_exec_LDFLAGS): Likewise. (ffs_stage1_5_exec_SOURCES): Likewise. (ffs_stage1_5_exec_CFLAGS): Likewise. (ffs_stage1_5_exec_LDFLAGS): Likewise. (% : %.exec): New rule. * stage2/size_test: New file, for checking for the sizes of Stage 2 and Stage 1.5's. 1999-06-24 OKUJI Yoshinori * stage1/stage1.S: Call testb instead of andb when checking if the drive is a floppy. 1999-06-23 OKUJI Yoshinori * grub/asmstub.c [__linux__]: Include linux/fs.h for BLKFLSBUF. (grub_stage2): Call sync before and after calling doit. (gurb_stage2) [__linux__]: Invalidate buffer caches by BLKFLSBUF ioctl. * grub/main.c (main): Call sync first. Suggested by Pavel Roskin . * configure.in: Curses libraries are always checked. (--enable-sbin-grub): Deleted. Now /sbin/grub is always built. (--enable-maintainer-mode): New option. * grub/Makefile.am (EXTRA_PROGRAMS): Deleted. (sbin_PROGRAMS): Just set to grub. * docs/Makefile.am (man_MANS): New variable. (HELP2MAN): Likewise. (noinst_SCRIPTS): Likewise. (EXTRA_DIST): Add $(man_MANS) and $(noinst_SCRIPTS). [GRUB_MAINT]: Define the rule for the /sbin/grub manual. * docs/help2man: Copied from texinfo-3.12i. (--section): New option to specify which section a manual belongs to. (opt_section): New variable. (section): Likewise. * docs/grub.8: Produced by help2man automatically. 1999-06-22 OKUJI Yoshinori * shared_src/char_io.c (get_cmdline): Add two missing `break's. * shared_src/cmdline.c (commands): Add quit. (enter_cmdline): Change the return type to cmdline_t, and return CMDLINE_OK if successful, otherwise CMDLINE_ERROR if fail. (enter_cmdline) [GRUB_UTIL]: Return CMDLINE_ABORT if CUR_HEAP contains "quit". [!GRUB_UTIL]: Just print an annotation message. * shared_src/shared.h (cmdline_t): New enum type. (enter_cmdline): Change the return type to cmdline_t. (cmain): Remove ``noreturn'' attribute. * shared_src/stage2.c (menu_t): New enum type. (run_menu): Change the return type to menu_t. If enter_cmdline returns CMDLINE_ABORT, then return MENU_ABORT, otherwise return MENU_OK. (cmain): If enter_cmdline aborts, then break the command-line loop and return. If run_menu aborts, then return. 1999-06-22 OKUJI Yoshinori * shared_src/Makefile.am (EXTRA_DIST): Add bios.c. Reported by Pavel Roskin . 1999-06-21 OKUJI Yoshinori * docs/Makefile.am (html): Deleted. (txt): Likewise. (EXTRA_DIST): $(txt) and $(html) are removed. * docs/boot-proposal.html: Removed. * docs/errors.html: Likewise. * docs/faq.html: Likewise. * docs/grub.html: Likewise. * docs/install.html: Likewise. * docs/mem64mb.html: Likewise. * docs/technical.html: Likewise. * docs/using.html: Likewise. * docs/PC_partitioning.txt: Likewise. * docs/bios_mapping.txt: Likewise. * docs/commands.txt: Likewise. * docs/embedded_data.txt: Likewise. * docs/filesystem.txt: Likewise. 1999-06-21 OKUJI Yoshinori From Alexander K. Hudek : * shared_src/disk_io.c (real_open_partition): Check if CURRENT_SLICE is equal to PC_SLICE_TYPE_WIN95_EXTENDED as well. * shared_src/pc_slice.c (PC_SLICE_TYPE_WIN95_EXTENDED): New macro. * shared_src/bios.c (biosdisk): Clear the reserved member of DAP. 1999-06-08 OKUJI Yoshinori Color-menu support based on Peter Astrand 's patch. * shared_src/asm.S (nocursor): New function. * shared_src/cmdline.c (normal_color): New variable. (highlight_color): Likewise. (commands): Added "color" command. (enter_cmdline): Handle the color command. * shared_src/shared.h (normal_color): Declared. (highlight_color): Likewise. [!GRUB_UTIL] (nocursor): Likewise. * shared_src/stage2.c (print_border) [!GRUB_UTIL]: Color the menu. (run_menu) [!GRUB_UTIL]: Call nocursor, and call set_line with the second argument HIGHLIGHT_COLOR when highlighting a line, and NORMAL_COLOR when drawing a normal line. (cmain): Initialize normal_color and highlight_color. Handle the color command in the same way as the command-line interface. 1999-06-07 OKUJI Yoshinori * e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 31744. * fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise. 1999-06-06 OKUJI Yoshinori The debug version of Stage 2 is removed. * shared_src/cmdline.c: The imps code is now defined if GRUB_UTIL is not defined, but not if DEBUG. (debug): New global variable. (commands): All commands are always enabled, and added "debug". (debug_fs_print_func): Defined unconditionally. (debug_fs_blocklist_func): If DEBUG is true, then call printf. (enter_cmdline): Handle "testload", "read", "fstest", "impsprobe" and "displaymem" unconditionally, and added "debug" handling. [GRUB_UTIL]: If a command is impsprobe, just fails. * shared_src/disk_io.c (devread) [!STAGE1_5]: If DEBUG_FS and DEBUG are true, then call printf. * shared_src/asm.S (patch_code): Defined unconditionally. (patch_code_end): Likewise. * stage1/stage1.S (firstlist) [!FFS_STAGE1_5]: Increase the number of sectors to 90, because Stage 2 is larger than 80 sectors. * configure.in: The option --enable-debug is removed, and do not output "stage2_debug/Makefile". * Makefile.am (SUBDIRS): stage2_debug is removed. * stage2_debug/Makefile.am: Deleted. * stage2_debug/Makefile.in: Likewise. 1999-06-02 OKUJI Yoshinori * grub/main.c (verbose): New variable. (read_only): Likewise. (OPT_VERBOSE): New macro. (OPT_READ_ONLY): Likewise. (longopts): Add --read-only and --verbose options. (usage): Add the descriptions about --read-only and --verbose. (main): Handle OPT_VERBOSE and OPT_READ_ONLY. If HOLD and VERBOSE are non-zero, then display the message about how to restart /sbin/grub. * shared_src/shared.h (verbose) [GRUB_UTIL]: Declared. (read_only) [GRUB_UTIL]: Likewise. * grub/asmstub.c (hex_dump): New function. (biosdisk): In the case where SUBFUNC is BIOSDISK_WRITE, check for READ_ONLY and call nwrite if READ_ONLY is zero. If VERBOSE is non-zero, display what GRUB will try to do. (get_diskinfo): Open DEVNAME with the mode O_RDWR if READ_ONLY is zero, and attempt to open DEVNAME with the mode O_RDONLY regardless of ERRNO if READ_ONLY is non-zero. If VERBOSE is non-zero, then display the drive DRIVE and the file DEVNAME. * shared_src/disk_io.c (set_device) [STAGE1_5]: Eliminate completion code. 1999-06-01 OKUJI Yoshinori * grub/asmstub.c: Do not use I_AM_VERY_BRAVE any more. (grub_stage2): Delete first_scsi_disk and add a variable num_hd, which is used for counting how many drives are detected. Initialize the flags member of each element of disks to -1 instead of 0, and check if it is equal to -1 instead of 0 when close it. (get_diskinfo): Treat -1 as non-caching state instead of 0. 1999-06-01 OKUJI Yoshinori Reported from Klaus Reichl : * docs/.cvsignore: New file. * shared_src/disk_io.c (print_a_completion): New function which saves what has been printed to UNIQUE_STRING and printf it. (unique) [!STAGE1_5]: New variable. (unique_string): Likewise. (print_completions): Use print_a_completion, and improve the completion facility. * shared_src/fsys_ext2fs.c (ext2fs_dir) [!STAGE1_5]: Use print_a_completion instead of just printf. * shared_src/fsys_ffs.c (ffs_dir) [!STAGE1_5]: Likewise. * shared_src/fsys_fat.c (fat_dir) [!STAGE1_5]: Likewise. * shared_src/shared.h (print_a_completion): Declared. * shared_src/cmdline.c (enter_cmdline): Explicitly cast int to pointer to char for grub_read. * grub/asmstub.c (grub_stage2) [__linux__]: Don't use /dev/fd1. Probe 4 IDE drives instead of 2. (biosdisk) [__linux__]: Add a prototype for _llseek. * shared_src/char_io.c (get_cmdline): Update LPOS and LLEN_OLD when the functon print_completion modifies CMDLINE. * shared_src/stage2.c (get_line_from_config): Fix LITERAL handling. 1999-05-25 OKUJI Yoshinori * grub/asmstub.c (grub_stage2): Fix a memory leak that FP is not closed. 1999-05-25 OKUJI Yoshinori * grub/main.c: Replace OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES with OPT_NO_CONFIG_FILE and OPT_NO_CURSES respectively. (longopts): Rename from "disable-config-file" to "no-config-file", and from "disable-curses" to "no-curses". (usage): Use "grub" instead of ARGV[0], read the standards. Change the help message according to the changes above. (main): Handle OPT_NO_CONFIG_FILE and OPT_NO_CURSES, instead of OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES. 1999-05-21 OKUJI Yoshinori * docs/TODO: Moved to ... * TODO: ... here. * docs/BUGS: Moved to ... * BUGS: ... here. * docs/COPYING: Removed. * docs/Makefile.am (EXTRA_DIST): Get rid of BUGS. * Makefile.am (EXTRA_DIST): Set to BUGS. 1999-05-17 OKUJI Yoshinori * acinclude.m4 (grub_ASM_EXT_C): Do not overrun the command shift. Reported by Pavel Roskin . 1999-05-14 OKUJI Yoshinori * docs/Makefile.am (info_TEXINFOS): Added multiboot.texi. * docs/multiboot.texi: New file. From Kunihiro Ishiguro. 1999-05-12 OKUJI Yoshinori * grub/asmstub.c: Include . Reported by Kunihiro Ishiguro . 1999-05-11 OKUJI Yoshinori Reported by Brian Brunswick : * shared_src/asm.S (start) [STAGE1_5]: Jump to 0x0:0x2000. * shared_src/cmdline.c (enter_cmdline): Doesn't check for the jump address in stage2. We are not paranoid. Add a missing RAW_ADDR macro. * shared_src/diskio.c (grub_open): Call setup_part even in stage1.5. And, include necessary functions that were eliminated incorrectly. * shared_src/char_io.c [STAGE1_5]: Eliminate unnecessary functions for stage1.5. * grub/asmstub.c (nread): New function. Handle EINTR. (nwrite): Likewise. (biosdisk) [I_AM_VERY_BRAVE]: When SUBFUNC is BIOSDISK_WRITE, call nwrite. Reported by Pavel Roskin : * shared_src/fsys_ext2fs.c (off_t): Renamed to ... (linux_off_t): ... this. * shared_src/defs.h (off_t): Renamed to ... (mach_off_t): ... this. * shared_src/fs.h (BBOFF): Use mach_off_t instead of off_t. (SBOFF): Likewise. * e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 81920. * fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise. * ffs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 7168. 1999-05-03 Gordon Matzigkeit From Pavel Roskin: * shared_src/shared.h: Redeclare. * grub/main.c (main): Use strncpy rather than pointer assignment to set the config file name. * grub/asmstub.c: Make config_file a static array, not a pointer. Correct the value of VERSION_STRING. 1999-04-10 Gordon Matzigkeit * debian/rules (build): Install into /lib instead of /share. 1999-05-03 OKUJI Yoshinori Preliminary non-interactive use support. * grub/main.c (use_config_file): New variable. (use_curses): Likewise. (OPT_DISABLE_CONFIG_FILE): New constant. (OPT_DISABLE_CURSES): Likewise. (OPT_BATCH): Likewise. (longopts): Add new options, --disable-config-file, --disable-curses, and --batch. (usage): Print the help messages about these new options. (main): Handle them. * grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: If ! USE_CURSES, fallback non-curses code. (stop) [HAVE_LIBCURSES]: Likewise. (cls) [HAVE_LIBCURSES]: Likewise. (getxy) [HAVE_LIBCURSES]: Likewise. (gotoxy) [HAVE_LIBCURSES]: Likewise. (grub_putchar) [HAVE_LIBCURSES]: Likewise. (getkey) [HAVE_LIBCURSES]: Likewise. (checkkey) [HAVE_LIBCURSES]: Likewise. (set_attrib) [HAVE_LIBCURSES]: Likewise. * shared_src/cmdline.c (enter_cmdline): Do not use getc, but use getkey. * shared_src/stage2.c (cmain) [GRUB_UTIL]: Check if USE_CONFIG_FILE is non-zero or not. * shared_src/shared.h (getc): Removed. (use_config_file) [GRUB_UTIL]: Add the declaration. (use_curses) [GRUB_UTIL]: Likewise. 1999-05-02 OKUJI Yoshinori * shared_src/asm.S (biosdisk_standard): Pop %ebp correctly, reported by Pavel Roskin . 1999-04-25 OKUJI Yoshinori * docs/menu.lst: Rewritten, so that it contains up-to-date information and FAQish configuration examples. 1999-04-09 OKUJI Yoshinori * shared_src/asm.S (get_diskinfo_floppy): Correct the number of heads and the one of cylinders. 1999-04-06 OKUJI Yoshinori * grub/asmstub.c (get_diskinfo): Compute the total number of sectors for DRIVE. * shared_src/asm.S (get_diskinfo_standard): Clear the data segment after calling int 0x13. Restore the base pointer after returning to protected mode. (get_diskinfo_floppy): Likewise. * shared_src/bios.c (get_diskinfo): Always set the size of DRP to the max size of DRP, regardless of the major version of extensions. 1999-04-03 OKUJI Yoshinori * shared_src/shared.h (struct geometry): Declare total_sectors as unsigned long instead of unsigned long long, because GRUB represents a sector number by 4bytes integer, so it doesn't make sense. * shared_src/bios.c (biosdisk) [!NO_INT13_FALLBACK]: Recompute TOTAL_SECTORS according to CHS information. (get_diskinfo) [DEBUG]: Print the geometry of DRIVE. * shared_src/disk_io.c (real_open_partition): Set PART_LENGTH to BUF_GEOM.TOTAL_SECTORS. 1999-04-01 OKUJI Yoshinori * docs/texinfo.tex: Copied from automake-1.4a. * configure.in (SHARED_SRC_RULES): Add bios into shared sources. * e2fs_stage1_5/Makefile.am (e2fs_stage1_5_exec_LDADD): Added bios.o. * fat_stage1_5/Makefile.am (fat_stage1_5_exec_LDADD): Likewise. * ffs_stage1_5/Makefile.am (ffs_stage1_5_exec_LDADD): Likewise. * stage2/Makefile.am (stage2_exec_LDADD): Likewise. * stage2_debug/Makefile.am (stage2_debug_exec_LDADD): Likewise. * shared_src/Makefile.am (EXTRA_DIST): Added bios.c. * shared_src/asm.S (biosdisk): Deleted. Now defined in bios.c. (get_diskinfo): Likewise. (biosdisk_int13_extensions): New function. (biosdisk_standard): Likewise. (check_int13_extensions): Likewise. (get_diskinfo_int13_extensions): Likewise. (get_diskinfo_standard): Likewise. (get_diskinfo_floppy): Likewise. * shared_src/bios.c: New file. * shared_src/shared.h (struct geometry): Added new member, total_sectors. 1999-03-28 OKUJI Yoshinori * shared_src/stage2.c (print_entries): Correctly assign MENU_ENTRIES the entries starting from FIRST. 1999-03-27 Gordon Matzigkeit * Change everything to use memset and memmove instead of bzero and bcopy. GNB's Not BSD. * shared_src/shared.h (grub_memset): Adapted from grub_bzero. (grub_memmove): Adapted from grub_bcopy. * grub/asmstub.c (checkkey): Fix unterminated comment. * shared_src/char_io.c (grub_printf): Renamed from printf. (grub_tolower): Renamed from tolower. (grub_isspace): Renamed from isspace. (grub_strncat): Renamed from strncat. (grub_strstr): Renamed from strstr. (grub_bcopy): Renamed from bcopy. (grub_bzero): Renamed from bzero. From Bradford Hovinen: * shared_src/char_io.c (get_cmdline): Add new argument to hide password entry. (grub_strcmp): New function. * shared_src/shared.h (get_cmdline): Fix declaration. (grub_strcmp): Declare. * shared_src/stage2.c (run_menu): Use get_cmdline with an ECHO_CHAR of `*'. This protects against both brute-force and sidelong-glance password cracking attempts. * grub/main.c (usage): Display defaults for stage2 options. * grub/asmstub.c [WITHOUT_LIBC_STUBS]: Renamed from NO_REMAPPING_LIBC_FUNCTIONS. * grub/main.c: Likewise. * shared_src/shared.h: Likewise. 1999-03-27 OKUJI Yoshinori * grub/asmstub.c (set_attrib): Use inch and addch, instead of chgat, because chgat doesn't work as expected. 1999-03-26 OKUJI Yoshinori * grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call nodelay. (checkkey) [HAVE_LIBCURSES]: If getting an input character, then ungetch it, because checkkey shouldn't modify the input queue. Use file descriptors instead of file pointers to support >4GB disks in Linux. * grub/asmstub.c (grub_stage2): Call close instead of fclose. (get_diskinfo): Call open instead of fopen. (biosdisk) [__linux__]: Use _llseek instead of lseek. (biosdisk): Call read instead of fread. Add options so that the user can specify the config file. * grub/Makefile.am (CPPFLAGS): Use -fwritable-strings, because grub assumes that all strings resides at the data section. * grub/main.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including shared.h. (OPT_CONFIG_FILE): New macro. (OPT_INSTALL_PARTITION): Likewise. (OPT_BOOT_DRIVE): Likewise. (longopts): Add new options, config-file, install-partition and boot-drive. (usage): Add the documentation for them. (main): Add handling code for OPT_CONFIG_FILE, OPT_INSTALL_PARTITION and OPT_BOOT_DRIVE. * grub/asmstub.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including shared.h. (config_file): Make it char * instead of char []. (getrtsecs): Return current time instead of 0xff. * shared_src/shared.h [NO_REMAPPING_LIBC_FUNCTIONS]: Don't define libc-API-compatible function names. (config_file): Change the prototype from char [] to char *. (grub_putchar): Renamed from putchar. 1999-03-25 OKUJI Yoshinori * char_io.c (get_cmdline): Call cl_setcpos even if lpos == llen, because ncurses won't update the cursor position. * grub/main.c (OPT_HOLD): New macro. (longopts): New option --hold. (usage): Add the documentation about --hold. (main): Set hold if --hold is specified. Wait until cleared. 1999-03-22 Gordon Matzigkeit * shared_src/cmdline.c (enter_cmdline): Check the return value of set_device in the `root' command. * shared_src/char_io.c (memcheck): Special-case cur_part_desc and reenable memory checking. 1999-03-21 Gordon Matzigkeit * shared_src/boot.c (load_image): Make sure we use the mapped address before actually writing data to memaddr. * shared_src/char_io.c (get_cmdline): Only zero-terminate if there were leading blanks. This prevents accidental truncation of commands. * grub/asmstub.c (get_diskinfo): Cache device geometries as well as file handles. Use the Linux HDIO_GETGEO ioctl to make a better guess at hard disk geometries. 1999-03-16 Gordon Matzigkeit * shared_src/shared.h (geometry_t): Delete typedef, until we actually use it. 1999-03-16 OKUJI Yoshinori * shared_src/asm.S (biosdisk): Use a structure for geometry instead of a integer. (get_diskinfo): Take a pointer to a geometry structure as the second argument, and fill a geometry in it. Return 1 if an error occurs, otherwise return 0. * shared_src/boot.c (bsd_boot): Compute BIOS geometries for BSD. * shared_src/cmdline.c (enter_cmdline): Declare dest_geom as struct geometry. * shared_src/disk_io.c (buf_geom): Declare as struct geometry. * shared_src/filesys.h (SECTORS): Deleted. (HEADS): Likewise. (CYLINDERS): Likewise. * shared_src/shared.h (BIOSDISK_FLAG_LBA_EXTENSION): New macro. (struct geometry): New structure. (buf_geom): Correct the prototype. (get_diskinfo): Likewise. (biosdisk): Likewise. 1999-03-15 Gordon Matzigkeit * grub/asmstub.c (doit): Nested function to get a clean stack frame while in grub_stage2. Use different assembler magic. From OKUJI Yoshinori. 1999-03-14 Gordon Matzigkeit * shared_src/stage2.c (run_menu): Use A_REVERSE and A_NORMAL constants instead of magic numbers. * shared_src/shared.h (A_REVERSE): Renamed from ATTR_INVERSE for compatibility with curses. (A_NORMAL): Renamed from ATTR_NORMAL. * shared_src/cmdline.c (enter_cmdline): Change prompt to "grub> ". (enter_cmdline): Only abort the boot if we are in a script. * shared_src/stage2.c (run_menu): Change prompts to "grub edit> ". * shared_src/char_io.c (memcheck): Use RAW_ADDR to compute memory locations. (get_cmdline): Change the `goto next line' code to account for newlines deleting to end of line under curses. * Innumerable cleanups to fix warnings. There are still too many typecasts in the wrong places (int variables used to hold pointers, then casted to a pointer type), but things look better. * configure.in (CPPFLAGS): Bump up GCC warnings to -Wall -Wmissing-prototypes -Wunused. * shared_src/shared.h: Delete stupid declarations, and totally rearrange for clarity. (inb, outb): Move to cmdline.c, since it's only used there. (print_possibilities, fsmax, fsys_table): Move definitions to disk_io.c. * grub/asmstub.c: Fill in more stubs. 1999-03-13 Gordon Matzigkeit * shared_src/gunzip.c (border): Rename to bitorder, to resolve clash with curses. * shared_src/stage2.c (timeout): Rename to grub_timeout. * configure.in: Check for curses libraries for use with /sbin/grub. * shared_src/shared.h (KEY_DELETE): Rename to KEY_DC, for compatibility with curses. (KEY_INSERT): Rename to KEY_IC. (KEY_PGDN): Rename to KEY_NPAGE. (KEY_PGUP): Rename to KEY_PPAGE. * shared_src/asm.S (asm_getkey): Renamed to getkey. * shared_src/char_io.c (getkey): Delete, because it's useless. * shared_src/shared.h: Resolve name clashes with libc by renaming overlapping functions to have grub_ prefixes, then defining macros. * grub/asmstub.c (start_stage2): Make some assertions about our scratch memory area. * shared_src/shared.h (end): Delete declaration. (RAW_ADDR, RAW_SEG): Macros to redirect /sbin/grub memory requests through grub_scratch_mem. * grub/asmstub.c (get_mem_map): Implement, simulating 4MB contiguous memory. (get_code_end): Implement, simulating with a malloced area. grub/asmstub.c (start_stage2): Initialize grub_scratch_mem. * shared_src/asm.S (get_mem_map): Some BIOSes expect the high word of %eax to be zero. (get_code_end): Move this from common.c so that we can stub it out in the simulator. * debian/rules: Make sure info files end up in /usr/info, not /info. 1999-03-10 Gordon Matzigkeit * shared_src/asm.S (biosdisk): Make LBA mode work correctly. From OKUJI Yoshinori. Unconditionally define NO_INT13_FALLBACK until we release GRUB 0.6. This will help debug any problems with the LBA support until then. 1999-03-09 Gordon Matzigkeit * shared_src/asm.S (biosdisk): Compute location of disk_address_packet correctly. From OKUJI Yoshinori. 1999-03-08 Gordon Matzigkeit * docs/grub.texi: New Texinfo documentation. * shared_src/disk_io.c (set_device): First stab at interpreting Mach-style partition naming. * shared_src/stage2.c (run_menu): Don't say it was a failure if enter_cmdline returns nonzero... just wait for a key. * shared_src/cmdline.c (enter_cmdline): Return nonzero, and avoid the fallback command if we did an install. * shared_src/asm.S (_start): New explicit symbol to supress warnings. * e2fs_stage1_5/Makefile.am (NO_FANCY_STUFF): Renamed to STAGE1_5, since that describes this conditional more accurately. * fat_stage1_5/Makefile.am: Likewise. * ffs_stage1_5/Makefile.am: Likewise. * shared_src/asm.S: Likewise. * shared_src/char_io.c: Likewise. * shared_src/common.c: Likewise. * shared_src/disk_io.c: Likewise. * shared_src/fsys_ext2fs.c: Likewise. * shared_src/fsys_ffs.c: Likewise. * shared_src/shared.h: Likewise. 1999-03-07 Gordon Matzigkeit * configure.in (SHARED_SRC_RULES): Automatically generate Makefile dependencies for files in shared_src. e2fs_stage1_5/Makefile.am: Use them. fat_stage1_5/Makefile.am: Likewise. ffs_stage1_5/Makefile.am: Likewise. grub/Makefile.am: Likewise. stage2/Makefile.am: Likewise. stage2_debug/Makefile.am: Likewise. * shared_src/disk_inode.h: Fix typo: i_ic shouldn't be defined. * shared_src/fsys_ffs.c (block_map): Make static, since this function isn't used outside of its defining file. * shared_src/disk_io.c [NO_FANCY_STUFF]: Eliminate a whole bunch more functions from the stage1.5. From OKUJI Yoshinori. * shared_src/fsys_ffs.c: Likewise. * shared_src/char_io.c: Likewise. 1999-03-05 Gordon Matzigkeit * shared_src/char_io.c (getkey): Don't set BUF_DRIVE to -1. BUF_DRIVE has nothing at all to do with getkey. * shared_src/common.c (err_list): Change description of ERR_GEOM to be more informative. * Makefile.am (configure): Depend on debian/changelog. * configure.in (host_cpu): Make all fully i386-compatible CPUs be identified as i386. (AM_INIT_AUTOMAKE): Fetch values for PACKAGE and VERSION from debian/changelog, so that we only have one file to update. * shared_src/asm.S (get_diskinfo): Fix a few bit-twiddling bugs in the BIOS extension detection code. (biosdisk) [AWARD_INT13_EXTENSIONS]: Preliminary implementation of Award's encoding of cylinder bits 10 and 11. (biosdisk) [NO_INT13_FALLBACK]: If defined, don't use the standard disk interface if the extended interface fails. * configure.in: Make sure $(host_cpu) and $(host_vendor) are substituted into the Makefile. * e2fs_stage1_5/Makefile.am (pkgdatadir): Install files in $(datadir)/grub/$(host_cpu)-$(host_vendor). * fat_stage1_5/Makefile.am: Likewise. * ffs_stage1_5/Makefile.am: Likewise. * stage1/Makefile.am: Likewise. * stage2/Makefile.am: Likewise. * stage2_debug/Makefile.am: Likewise. 1999-03-03 Gordon Matzigkeit * shared_src/asm.S (biosdisk): Use LBA mode if high nibble of GEOMETRY is nonzero. (get_diskinfo): Set high nibble of GEOMETRY (0xf0000000) to 1 if LBA mode is detected. 1999-03-02 Gordon Matzigkeit * shared_src/disk_io.c (make_saved_active): Use BIOSDISK_READ and BIOSDISK_WRITE. * shared_src/cmdline.c (enter_cmdline): Use BIOSDISK_WRITE. * shared_src/shared.h (BIOSDISK_SUBFUNC_READ, BIOSDISK_SUBFUNC_WRITE): Delete constants. * shared_src/asm.S (biosdisk): Change subfunc argument to be read=0, write=1. * configure.in: Drop redundant AC_PROG_INSTALL. From OKUJI Yoshinori. 1999-03-01 Gordon Matzigkeit * debian/rules (binary-arch): Properly install README.debian. * acinclude.m4 (grub_OBJCOPY_ABSOLUTE): Don't forget to move the old binary out of the way before reentering the loop. (grub_ASM_ADDR32): Delete conftest files after running the test. * debian/rules (binary-arch): Remove empty /sbin directory until /sbin/grub is installed. Use $(DESTDIR) instead of $(prefix) to install files. * shared_src/asm.S (version_string): Set the version string from the VERSION specified in configure.in. * Change all Makefiles into Makefile.ams. Many major build environment changes to get Automake/Autoconf working nicely. 1999-02-28 Gordon Matzigkeit * NEWS: Moved from docs/NEWS. * configure.in, acinclude.m4: New files for Autoconf. From OKUJI Yoshinori. * AUTHORS, INSTALL: New files. 1999-02-24 Gordon Matzigkeit * stage1/stage1.S (after_BPB): Do a hard disk probe first, so that we can work with IDE floppies (like the LS-120). * Run GNU Indent on */*.[ch]. 1999-02-21 Gordon Matzigkeit * debian: Add to the distribution, since we maintain the GRUB Debian package ourselves. * grub/asmstub.c: New file to implement stubbed assembly functions under Unix. * stage1/Makefile: Delete spurious dependencies on Makefile. * stage2/Makefile: Likewise. * stage2_debug/Makefile: Likewise. * grub/Makefile: Likewise. * shared_src/fsys_ext2fs.c (ext2fs_dir): Follow symbolic links rather than giving an error. * shared_src/common.c (err_list): Use labeled elements to associate messages with error codes. * shared_src/shared.h: Make error codes into an enumerated type. * shared_src/common.c (err_list): Add ERR_SYMLINK_LOOP. * shared_src/shared.h: Likewise. * shared_src/char_io.c (bcopy): Don't make any assumptions about the length of an unsigned long. * grub/Makefile: Treat CFLAGS, CPPFLAGS, LDFLAGS according to GNU standards. * stage2/Makefile: Likewise. * e2fs_stage1_5/Makefile: Likewise. * fat_stage1_5/Makefile: Likewise. * ffs_stage1_5/Makefile: Likewise. 1999-02-20 Gordon Matzigkeit * docs/index.html: Rename to grub.html, so that we don't hide files in this directory from a web browser. 1999-02-15 Gordon Matzigkeit * Makefile.end (PROGS): Add grub. * grub/main.c: New file. * grub/Makefile: New directory to contain the stage2 Unix program. * shared_src/cmdline.c: Use substring. * shared_src/fsys_ext2fs.c: Likewise. * shared_src/fsys_fat.c: Likewise. * shared_src/fsys_ffs.c: Likewise. * shared_src/stage2.c: Likewise. * shared_src/shared.h: Delete strcmp, declare substring. * shared_src/char_io.c (strcmp): Rename to `substring', because this function doesn't behave the same as libc's strcmp. 1999-02-14 Gordon Matzigkeit * shared_src/shared.h: (addr32, data32): Delete definitions. * stage1/stage1.S: Modify to use GAS's new .code16 semantics. shared_src/asm.S: Likewise. * configure: Test to see if the `addr32' instruction is supported. Ian Lance Taylor says that GAS's interpretation of `.code16' has changed. Older versions always generated 32-bit code, but implicitly inserted addr32 and data32 when .code16 was given. Newer versions generate 16-bit code, and require manual addr32 and data32 overrides. * shared_src/shared.h: Add some assertions to check that buffer addresses are properly defined. 1999-02-12 Gordon Matzigkeit * shared_src/stage2.c (run_menu): Pause if we failed to boot both the default and fallback entries. * configure: Check to make sure that GAS actually honors .code16 directives. 1999-02-02 Gordon Matzigkeit * shared_src/asm.S: Fix typo that called interrupt 0xd (decimal 13) instead of 0x13. 1999-01-31 Gordon Matzigkeit * e2fs_stage1_5/Makefile: Avoid gratuitous dependencies on Makefile. * fat_stage1_5/Makefile: Likewise. * ffs_stage1_5/Makefile: Likewise. * Makefile.end (PROGS): Add e2fs_stage1_5, fat_stage1_5, and grubinst. (distclean): New GNU standard rule. 1998-10-23 Gordon Matzigkeit * configure: Accept `--host' as a synonym for `--target', and accept a non-optional argument as the target name. Join the prefix to the tool name with a hyphen. * shared_src/disk_io.c (print_fsys_type): Always print the partition type. * shared_src/stage2.c (run_menu): Check to make sure that the fallback entry is nonnegative. (run_menu): For consistency, use `e' rather than enter to edit the command entry.