Commit graph

2902 commits

Author SHA1 Message Date
Colin King
463ac55fac Shrink the pre-partition-table part of boot.img by eight bytes.
* boot/i386/pc/boot.S (ERR): New macro.
(chs_mode): Use ERR.
(geometry_error): Likewise.
(hd_probe_error): Remove.  This is only used once, so we wrwite
it inline instead.
(read_error): Instead of printing read_error_string, just set up
%si and fall through to ...
(error_message): ... this new function, also used by ERR.

	Also-By: Colin Watson <cjwatson@ubuntu.com>
2010-03-14 15:47:05 +00:00
Colin Watson
08e46ededa Speed up consecutive hostdisk operations on the same device.
* util/hostdisk.c (struct grub_util_biosdisk_data): New structure.
(grub_util_biosdisk_open): Initialise disk->data.
(struct linux_partition_cache): New structure.
(linux_find_partition): Cache partition start positions; these are
expensive to compute on every read and write.
(open_device): Cache open file descriptor in disk->data, so that we
don't have to reopen it and flush the buffer cache for consecutive
operations on the same device.
(grub_util_biosdisk_close): New function.
(grub_util_biosdisk_dev): Set `close' member.

* conf/common.rmk (grub_probe_SOURCES): Add kern/list.c.
* conf/i386-efi.rmk (grub_setup_SOURCES): Likewise.
* conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
* conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Likewise.
* conf/x86_64-efi.rmk (grub_setup_SOURCES): Likewise.
2010-03-14 15:39:14 +00:00
Vladimir 'phcoder' Serbinenko
4a6d2d06db Compile parts of grub-emu as modules.
* Makefile.in (TARGET_CPPFLAGS) [emu]: Remove -nostdinc -isystem.
	(pkglib_DATA) [emu]: Remove moddep.lst command.lst fs.lst
	partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst.
	(all-local): Add $(GRUB_EMU).
	(install-local): Install $(GRUB_EMU).
	(uninstall): Uninstall $(GRUB_EMU).
	* commands/parttool.c: Replace GRUB_UTIL with GRUB_NO_MODULES.
	* kern/dl.c: Likewise.
	* commands/sleep.c: Not include machine/time.h.
	* conf/any-emu.rmk (COMMON_LDFLAGS): New variable.
	(COMMON_CFLAGS): Likewise.
	(sbin_UTILITIES): Remove grub-emu.
	(grub_emu_SOURCES): Removed.
	(kernel_img_RELOCATABLE): New variable.
	(pkglib_PROGRAMS): Add kernel.img.
	(kernel_img_SOURCES): New variable
	(kernel_img_CFLAGS): Likewise.
	(kernel_img_LDFLAGS): Likewise.
	(TARGET_NO_STRIP): Likewise.
	(TARGET_NO_DYNAMIC_MODULES): Likewise.
	(pkglib_MODULES): Add progname.mod, hostfs.mod, host.mod, reboot.mod,
	halt.mod, cpuid.mod, usb.mod, sdl.mod and pci.mod.
	(grub-emu): New target.
	(GRUB_EMU): New variable.
	* configure.ac: Whitelist -emu as possible x86_64 architecture.
	* efiemu/main.c: Replace GRUB_UTIL with GRUB_MACHINE_EMU.
	* loader/xnu.c: Likewise.
	* include/grub/pci.h: Likewise.
	* genemuinit.sh: New file.
	* genemuinitheader.sh: Likewise.
	* genmk.rb: Don't strip if TARGET_NO_STRIP is yes.
	Support TARGET_NO_DYNAMIC_MODULES.
	* include/grub/dl.h (GRUB_NO_MODULES): New variable.
	* commands/search.c: Fix GRUB_MOD_INIT and GRUB_MOD_FINI arguments.
	* disk/loopback.c: Likewise.
	* font/font_cmd.c: Likewise.
	* partmap/acorn.c: Likewise.
	* partmap/amiga.c: Likewise.
	* partmap/apple.c: Likewise.
	* partmap/gpt.c: Likewise.
	* partmap/msdos.c: Likewise.
	* partmap/sun.c: Likewise.
	* parttool/msdospart.c: Likewise.
	* term/gfxterm.c: Likewise.
	* video/bitmap.c: Likewise.
	* video/readers/jpeg.c: Likewise.
	* video/readers/png.c: Likewise.
	* video/readers/tga.c: Likewise.
	* video/video.c: Likewise.
	* util/grub-emu.c (read_command_list): Removed.
	(main): Don't call util_init_nls.
	* util/misc.c (grub_err_printf) [!GRUB_UTIL]: Removed.
	(grub_util_init_nls) [!GRUB_UTIL]: Likewise.
2010-03-14 16:29:52 +01:00
Vladimir 'phcoder' Serbinenko
dae79b6b05 Merge mainline into emu-mod 2010-03-14 16:27:54 +01:00
Vladimir 'phcoder' Serbinenko
91fdd2ed34 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add datetime.mod,
date.mod, datehook.mod.
	(datetime_mod_SOURCES): New variable.
	(datetime_mod_CFLAGS): Likewise.
	(datetime_mod_LDFLAGS): Likewise.
	(date_mod_SOURCES): Likewise.
	(date_mod_CFLAGS): Likewise.
	(date_mod_LDFLAGS): Likewise.
	(datehook_mod_SOURCES): Likewise.
	(datehook_mod_CFLAGS): Likewise.
	(datehook_mod_LDFLAGS): Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.
	* lib/ieee1275/datetime.c: New file.
2010-03-14 15:51:08 +01:00
Vladimir 'phcoder' Serbinenko
8328a81bc4 Merge mainline info ofwclock 2010-03-14 15:49:56 +01:00
Vladimir 'phcoder' Serbinenko
873ccae6c2 2010-03-14 Vladimir Serbinenko <phcoder@gmail.com>
* conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add ieee1275_fb.mod.
	(ieee1275_fb_mod_SOURCES): New variable.
	(ieee1275_fb_mod_CFLAGS): Likewise.
	(ieee1275_fb_mod_LDFLAGS): Likewise.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_devices_iterate):
	New proto.
	* kern/ieee1275/init.c (HEAP_MAX_SIZE): Increased.
	(HEAP_MAX_ADDR): Likewise.
	* kern/ieee1275/openfw.c (grub_children_iterate): Don't skip empty
	type.
	Correct stop condition.
	(grub_ieee1275_devices_iterate): New function.
	* video/ieee1275.c: New file.
2010-03-14 15:49:07 +01:00
Vladimir 'phcoder' Serbinenko
9a1e70432b Merge mainline into ofwfb 2010-03-14 15:43:22 +01:00
Vladimir 'phcoder' Serbinenko
eb46c85c07 Merge mainline into ofwclock 2010-03-14 15:41:30 +01:00
Vladimir 'phcoder' Serbinenko
601c97c035 Merge sparc grub-mkimage into generic grub-mkimage and a.out support.
* boot/sparc64/ieee1275/boot.S (boot_continue): Use SCRATCH_PAD_BOOT
	as scratch.
	* boot/sparc64/ieee1275/diskboot.S (after_info_block): Use
	SCRATCH_PAD_DISKBOOT as scratch.
	(bootit): Pass Openfirmware pointer in %o4.
	* conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link at 0x4400 instead
	of 0x200000.
	(grub_mkimage_SOURCES): Replace util/sparc64/ieee1275/grub-mkimage.c
	with util/grub-mkrawimage.c.
	* configure.ac: Handle GRUB_MACHINE_SPARC64 and GRUB_MACHINE_MIPS.
	* include/grub/aout.h (AOUT_MID_SUN): New definition.
	(grub_aout_get_type) [GRUB_UTIL]: Removed.
	(grub_aout_load) [GRUB_UTIL]: Likewise.
	* include/grub/kernel.h (grub_modules_get_end): New proto.
	* include/grub/sparc64/ieee1275/boot.h (SCRATCH_PAD): Removed.
	(SCRATCH_PAD_BOOT): New definition.
	(SCRATCH_PAD_DISKBOOT): Likewise.
	(GRUB_BOOT_MACHINE_IMAGE_ADDRESS): Set to 0x4400.
	* include/grub/sparc64/ieee1275/ieee1275.h
	(grub_ieee1275_original_stack): New variable
	* include/grub/sparc64/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
	New definition
	(GRUB_KERNEL_MACHINE_STACK_SIZE): Likewise.
	(GRUB_PLATFORM_IMAGE_FORMATS): Likewise.
	(GRUB_PLATFORM_IMAGE_DEFAULT_FORMAT): Likewise.
	(GRUB_PLATFORM_IMAGE_DEFAULT): Likewise.
	(GRUB_PLATFORM_IMAGE_RAW): Likewise.
	(GRUB_PLATFORM_IMAGE_AOUT): Likewise.
	(grub_platform_image_format_t): New type.
	* kern/mips/yeeloong/init.c (grub_modules_get_end): Move from here ...
	* kern/main.c (grub_modules_get_end)
	[GRUB_MACHINE_MIPS_YEELOONG || GRUB_MACHINE_SPARC64]: ... here.
	* kern/sparc64/ieee1275/crt0.S: Store firmware entry point in %o0.
	(codestart): Switch stacks.
	* kern/sparc64/ieee1275/init.c (grub_ieee1275_original_stack): New
	variable.
	(grub_heap_init): Use grub_modules_get_end.
	* loader/sparc64/ieee1275/linux.c (grub_linux_boot): Restore original
	stack.
	* util/grub-mkrawimage.c (generate_image): Support sparc64.
	(main): Likewise.
	* util/sparc64/ieee1275/grub-mkimage.c: Removed.
2010-03-14 15:38:17 +01:00
Vladimir 'phcoder' Serbinenko
313df2f552 Merge mainline into sparc-mkimage 2010-03-14 15:21:04 +01:00
Thorsten Glaser
d68b491ee2 * util/grub-mkrescue.in: Base ISO UUID on UTC. 2010-03-14 13:48:55 +01:00
Matt Kraai
4e02ed5014 2010-03-08 Matt Kraai <kraai@ftbfs.org>
* util/i386/pc/grub-setup.c (setup): Fix a grammatical error (Debian
	bug #559005).
2010-03-08 22:20:02 +00:00
Vladimir 'phcoder' Serbinenko
1f15fc1e0a 2010-03-07 Vladimir Serbinenko <phcoder@gmail.com>
* genmoddep.awk: Output all missing symbols and not only first.
2010-03-07 23:02:13 +01:00
Vladimir 'phcoder' Serbinenko
fce5d8ff62 2010-03-06 Vladimir Serbinenko <phcoder@gmail.com>
* NEWS: Put the date of 1.98 release.
2010-03-06 21:49:59 +01:00
Vladimir 'phcoder' Serbinenko
d1e8a02f11 2010-03-06 Vladimir Serbinenko <phcoder@gmail.com>
* configure.ac: Update CPPFLAGS and not CFLAGS when checking for
	ft2build.h.
2010-03-06 21:27:04 +01:00
Vladimir 'phcoder' Serbinenko
696fd607c6 2010-03-06 Vladimir Serbinenko <phcoder@gmail.com>
* normal/cmdline.c (grub_cmdline_get): Fix gabled line after
	completition in the middle of string.
2010-03-06 17:48:15 +01:00
Vladimir 'phcoder' Serbinenko
33e2e6f373 2010-03-06 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub-mkrescue.in: Use mktemp with explicit template.
2010-03-06 17:28:25 +01:00
Vladimir 'phcoder' Serbinenko
b1f6d291ad 2010-03-06 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/bsd.c (grub_bsd_get_device): Fix a memory leak.
2010-03-06 17:27:28 +01:00
Vladimir 'phcoder' Serbinenko
2ac227c7f4 2010-03-06 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/multiboot_mbi.c (grub_multiboot_set_bootdev): Free the
	right pointer.
2010-03-06 17:25:40 +01:00
Vladimir 'phcoder' Serbinenko
8f9a632b96 2010-03-05 Vladimir Serbinenko <phcoder@gmail.com>
Fix FreeBSD compilation.

	* Makefile.in (TARGET_CPPFLAGS): Remove -nostdinc -isystem.
	* configure.ac: Add -nostdinc -isystem to TARGET_CPPFLAGS if it works.
2010-03-06 17:22:04 +01:00
Vladimir 'phcoder' Serbinenko
60b03859e8 2010-03-05 Vladimir Serbinenko <phcoder@gmail.com>
* util/import_gcry.py: Add autogenerated files to MAINTAINER_CLEANFILES.
2010-03-05 15:38:04 +01:00
Vladimir 'phcoder' Serbinenko
48a5a769a2 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* gettext/gettext.c (grub_gettext_init_ext): Fix a memory leak.
2010-03-05 15:30:44 +01:00
Vladimir 'phcoder' Serbinenko
3ab4bd77dd 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* disk/scsi.c (grub_scsi_iterate): Fix a memory leak.
2010-03-05 15:29:28 +01:00
Robert Millan
d116e0d8d1 2010-03-04 Robert Millan <rmh.grub@aybabtu.com>
Support relative image path in theme file.

	* gfxmenu/gui_image.c (grub_gui_image): New member theme_dir.
	(image_set_property): Handle theme_dir and relative path.
2010-03-04 23:16:34 +01:00
Vladimir 'phcoder' Serbinenko
c7ef54aab1 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* configure.ac: Alias amd64 to x86_64.
2010-03-04 22:33:49 +01:00
Vladimir 'phcoder' Serbinenko
fcee14ed5f 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* NEWS: mention multiboot on EFI.
2010-03-04 21:35:36 +01:00
Vladimir 'phcoder' Serbinenko
d078036308 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* kern/main.c (grub_load_modules): Handle errors from init functions of
	embeded modules.
2010-03-04 21:32:11 +01:00
Vladimir 'phcoder' Serbinenko
41168ea49c 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* normal/autofs.c (autoload_fs_module): Handle errors.
2010-03-04 21:30:58 +01:00
Vladimir 'phcoder' Serbinenko
b54d93ac1b 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
Disable linux.mod on qemu-mips since it's not functional and leads
	to compilation failure.

	* conf/mips.rmk (pkglib_MODULES): Remove linux.mod.
	* conf/mips-yeeloong.rmk (pkglib_MODULES): Add linux.mod.
	* conf/mips.rmk (linux_mod_SOURCES): Move from here ...
	* conf/mips-yeeloong.rmk (linux_mod_SOURCES): ... here
	* conf/mips.rmk (linux_mod_CFLAGS): Move from here ...
	* conf/mips-yeeloong.rmk (linux_mod_CFLAGS): ... here
	* conf/mips.rmk (linux_mod_ASFLAGS): Move from here ...
	* conf/mips-yeeloong.rmk (linux_mod_ASFLAGS): ... here
	* conf/mips.rmk (linux_mod_LDFLAGS): Move from here ...
	* conf/mips-yeeloong.rmk (linux_mod_LDFLAGS): ... here
	Reported by: BVK Chaitanya
2010-03-04 17:03:43 +01:00
Jordan Uggla
fc8345da98 2010-03-04 Jordan Uggla <jordan.uggla@gmail.com>
* INSTALL: Add gettext as a dependency and add qemu to a new section
	"Prerequisites for make-check".
2010-03-04 16:28:57 +01:00
Christian Franke
4760f97911 2010-03-04 Christian Franke <franke@computer.org>
* util/grub-pe2elf.c: Add missing include "progname.h".
2010-03-04 16:25:26 +01:00
Vladimir 'phcoder' Serbinenko
f209b5b230 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* normal/crypto.c (read_crypto_list): Fix a typo.
	Reported by: Seth Goldberg.
2010-03-04 16:13:35 +01:00
Vladimir 'phcoder' Serbinenko
b4b7be98db 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* Makefile.in (DISTCLEANFILES): Add stamp-h1.
2010-03-04 16:08:46 +01:00
Vladimir 'phcoder' Serbinenko
c0ee0385c9 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* Makefile.in (CLEANFILES) [FONT_SOURCE && grub_mkfont]: Add
	ascii.bitmaps.
2010-03-04 15:50:57 +01:00
Vladimir 'phcoder' Serbinenko
a8efbf649e 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* genmk.rb: Remove terminal*.lst in make clean.
2010-03-04 15:41:32 +01:00
Vladimir 'phcoder' Serbinenko
08dcd91370 2010-03-04 Vladimir Serbinenko <phcoder@gmail.com>
* util/i386/efi/grub-install.in: Copy gettext files.
2010-03-04 15:12:34 +01:00
Colin Watson
c6293875f9 reopen device when the requested access mode changes 2010-03-03 20:03:50 +00:00
Colin Watson
22d7b6137a 2010-03-03 Colin Watson <cjwatson@ubuntu.com>
* util/hostdisk.c (struct grub_util_biosdisk_data): New structure.
	(grub_util_biosdisk_open): Initialise disk->data.
	(struct linux_partition_cache): New structure.
	(linux_find_partition): Cache partition start positions; these are
	expensive to compute on every read and write.
	(open_device): Cache open file descriptor in disk->data, so that we
	don't have to reopen it and flush the buffer cache for consecutive
	operations on the same device.
	(grub_util_biosdisk_close): New function.
	(grub_util_biosdisk_dev): Set `close' member.

	* conf/common.rmk (grub_probe_SOURCES): Add kern/list.c.
	* conf/i386-efi.rmk (grub_setup_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_setup_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_setup_SOURCES): Likewise.
2010-03-03 10:44:12 +00:00
Vladimir 'phcoder' Serbinenko
14532662ee merge mainline into sparc-mkimage 2010-03-03 11:24:36 +01:00
Vladimir 'phcoder' Serbinenko
c4d0b332c5 2010-03-01 Vladimir Serbinenko <phcoder@gmail.com>
* fs/ext2.c (grub_ext2_read_block): Fix an integer overflow.
2010-03-01 21:00:02 +01:00
Vladimir 'phcoder' Serbinenko
c6f2fe52f1 2010-03-01 Vladimir Serbinenko <phcoder@gmail.com>
Wait for user entry basing on presence of output rather than on errors.

	* include/grub/normal.h (grub_normal_get_line_counter): New proto.
	(grub_install_newline_hook): Likewise.
	* normal/main.c (GRUB_MOD_INIT): Call grub_install_newline_hook.
	* normal/menu.c (show_menu): Check line_counter to determine presence
	of output.
	* normal/term.c (grub_normal_line_counter): New variable.
	(grub_normal_get_line_counter): New function.
	(grub_install_newline_hook): Likewise.
2010-03-01 20:58:45 +01:00
Vladimir 'phcoder' Serbinenko
5382b1e4a8 2010-03-01 Vladimir Serbinenko <phcoder@gmail.com>
* commands/cat.c (grub_cmd_cat): Propagate grub_gzfile_open error.
2010-03-01 20:24:34 +01:00
Vladimir 'phcoder' Serbinenko
5519963bf6 2010-03-01 Vladimir Serbinenko <phcoder@gmail.com>
* configure.ac: Update version to 1.98.
2010-03-01 19:07:48 +01:00
Vladimir 'phcoder' Serbinenko
72b286313a 2010-02-26 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub.d/10_linux.in (linux_entry): Don't default to
	gfxpayload=keep if Linux doesn't support video handover.
2010-02-26 14:32:24 +01:00
Vladimir 'phcoder' Serbinenko
c140a18037 2010-02-25 Vladimir Serbinenko <phcoder@gmail.com>
Don't compile video modules on yeeloong since video subsystem is part
	of kernel.

	* conf/common.rmk (pkglib_MODULES) [yeeloong]: Remove video.mod,
	video_fb.mod, bitmap.mod, font.mod, gfxterm.mod and bufio.mod
	* conf/mips-yeeloong.rmk (kernel_img_HEADERS): Add bitmap.h,
	video.h, gfxterm.h, font.h, bitmap_scale.h and bufio.h.
	* conf/mips.rmk (kernel_img_HEADERS): Add values instead of overwriting.
	* include/grub/bitmap.h: Add EXPORT_FUNC and EXPORT_VAR.
	* include/grub/bitmap_scale.h: Likewise.
	* include/grub/bufio.h: Likewise.
	* include/grub/font.h: Likewise.
	* include/grub/gfxterm.h: Likewise.
	* include/grub/video.h: Likewise.
	* include/grub/vbe.h: Don't include video_fb.h.
	* video/i386/pc/vbe.c: Include video_fb.h.
	* commands/i386/pc/vbetest.c: Include video.h.
2010-02-25 15:10:18 +01:00
Colin Watson
a0ca21c2d2 2010-02-25 Jordan Uggla <jordan.uggla@gmail.com>
* util/grub-mkconfig.in (GRUB_SAVEDEFAULT): Export new variable.
	* util/grub-mkconfig_lib.in (save_default_entry): Only save a new
	default entry if GRUB_SAVEDEFAULT=true.  This allows using
	GRUB_DEFAULT=saved on its own to let grub-reboot work, without
	saving a new default on every boot.
2010-02-25 13:30:50 +00:00
Vladimir 'phcoder' Serbinenko
4a8a763c7b 2010-02-24 Vladimir Serbinenko <phcoder@gmail.com>
* normal/crypto.c (read_crypto_list): Fix a memory leak.
	* normal/term.c (read_terminal_list): Likewise.
	* normal/main.c (grub_normal_init_page): Likewise.
	(grub_normal_read_line_real): Likewise.
2010-02-24 15:24:21 +01:00
Vladimir 'phcoder' Serbinenko
607ffde2ca 2010-02-24 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/multiboot_mbi.c (grub_multiboot_set_bootdev): Fix a
	memory leak.
	Reported by: Seth Goldberg.
2010-02-24 15:21:36 +01:00
Vladimir 'phcoder' Serbinenko
f17d332e49 Remove trailing spaces in kern/device.c 2010-02-24 11:29:11 +01:00