merge with mainline

This commit is contained in:
BVK Chaitanya 2010-11-25 19:54:50 +05:30
commit 2c7859b36f
12 changed files with 132 additions and 22 deletions

View file

@ -1,4 +1,4 @@
2010-11-19 BVK Chaitanya <bvk.groups@gmail.com> 2010-11-25 BVK Chaitanya <bvk.groups@gmail.com>
Fix cmdline argument quotes for setparams command of menuentry Fix cmdline argument quotes for setparams command of menuentry
definitions. definitions.
@ -10,6 +10,94 @@
* include/grub/misc.h (grub_strchrsub): New function. * include/grub/misc.h (grub_strchrsub): New function.
2010-11-24 Colin Watson <cjwatson@ubuntu.com>
* util/deviceiter.c (grub_util_iterate_devices): Save a bit of
effort by skipping "." and ".." entries up-front.
Suggested by: Michael Lazarev.
2010-11-24 Colin Watson <cjwatson@ubuntu.com>
* grub-core/Makefile.core.def (xz_decompress): Move -lgcc from
ldflags to ldadd, to fix link line ordering.
(none_decompress): Likewise.
2010-11-24 Colin Watson <cjwatson@ubuntu.com>
* grub-core/Makefile.core.def (kernel): Add kern/emu/cache.S for emu
platforms.
(grub-emu-lite): Remove kern/emu/cache.S.
2010-11-23 Colin Watson <cjwatson@ubuntu.com>
* util/deviceiter.c (compare_devices): If the by-id link for a
device couldn't be resolved, fall back to sorting by the by-id link
rather than segfaulting.
Reported and tested by: Daniel Mierswa.
2010-11-23 Colin Watson <cjwatson@ubuntu.com>
* Makefile.util.def (grub-menulst2cfg): List libraries in ldadd, not
ldflags, to fix link line ordering.
2010-11-23 Colin Watson <cjwatson@ubuntu.com>
* grub-core/Makefile.am (gentrigtables): Put -lm after $<; some
linkers are picky about this.
2010-11-23 Colin Watson <cjwatson@ubuntu.com>
* grub-core/Makefile.am (command.lst): Adjust sed expression
ordering so that extended and priority commands aren't treated as
ordinary commands.
2010-11-23 Colin Watson <cjwatson@ubuntu.com>
* include/grub/gpt_partition.h (GRUB_GPT_PARTITION_TYPE_BIOS_BOOT):
Remove byte-swapping function calls, which are not valid in
structure initialisers.
* grub-core/partmap/gpt.c (grub_gpt_partition_type_bios_boot): Make
non-const.
(GRUB_MOD_INIT): Byte-swap data1, data2, and data3 fields of
grub_gpt_partition_type_bios_boot.
2010-11-22 Colin Watson <cjwatson@ubuntu.com>
Fix test program build on GNU/kFreeBSD.
* Makefile.util.def (example_unit_test): Add `$(LIBZFS)
$(LIBNVPAIR)' library dependencies.
2010-11-22 Colin Watson <cjwatson@ubuntu.com>
* util/grub-install.in: Fix parsing of --grub-mkrelpath= option.
2010-11-22 Colin Watson <cjwatson@ubuntu.com>
* util/grub-install.in: Remove excessive quoting that broke
installations to RAID devices.
2010-11-19 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/loader/i386/linux.c (grub_cmd_linux): Pass correctly the
bootloader version instead of 0.
2010-11-19 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Fix spurious
warning.
2010-11-19 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Don't try to
retrieve the metadat sector if size isn't known.
* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise.
2010-11-18 Robert Millan <rmh@gnu.org>
* grub-core/fs/btrfs.c (grub_btrfs_mount): Replace grub_strncmp()
with grub_memcmp().
2010-11-18 Vladimir Serbinenko <phcoder@gmail.com> 2010-11-18 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/normal/menu_entry.c (print_up): Fix displacement of up * grub-core/normal/menu_entry.c (print_up): Fix displacement of up

View file

@ -607,7 +607,7 @@ program = {
ldadd = libgrubmods.a; ldadd = libgrubmods.a;
ldadd = libgrubkern.a; ldadd = libgrubkern.a;
ldadd = grub-core/gnulib/libgnu.a; ldadd = grub-core/gnulib/libgnu.a;
ldadd = '$(LIBDEVMAPPER)'; ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR)';
}; };
program = { program = {
@ -620,5 +620,5 @@ program = {
ldadd = libgrubmods.a; ldadd = libgrubmods.a;
ldadd = libgrubkern.a; ldadd = libgrubkern.a;
ldadd = grub-core/gnulib/libgnu.a; ldadd = grub-core/gnulib/libgnu.a;
ldflags = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR)'; ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR)';
}; };

View file

@ -30,7 +30,7 @@ CCASFLAGS_LIBRARY += $(CCASFLAGS_PLATFORM)
# gentrigtables # gentrigtables
gentrigtables: gentrigtables.c gentrigtables: gentrigtables.c
$(BUILD_CC) -o $@ -I$(top_srcdir)/include $(CPPFLAGS) -lm $< $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(CPPFLAGS) $< -lm
CLEANFILES += gentrigtables CLEANFILES += gentrigtables
# trigtables.c # trigtables.c
@ -237,9 +237,9 @@ command.lst: $(MARKER_FILES)
(for pp in $^; do \ (for pp in $^; do \
b=`basename $$pp .marker`; \ b=`basename $$pp .marker`; \
sed -n \ sed -n \
-e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" \
-e "/EXTCOMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \ -e "/EXTCOMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \
-e "/P1COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" $$pp; \ -e "/P1COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/*\1: $$b/;p;}" \
-e "/COMMAND_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/\1: $$b/;p;}" $$pp; \
done) | sort -u > $@ done) | sort -u > $@
platform_DATA += command.lst platform_DATA += command.lst
CLEANFILES += command.lst CLEANFILES += command.lst

View file

@ -162,6 +162,7 @@ kernel = {
emu = disk/host.c; emu = disk/host.c;
emu = gnulib/progname.c; emu = gnulib/progname.c;
emu = gnulib/error.c; emu = gnulib/error.c;
emu = kern/emu/cache.S;
emu = kern/emu/console.c; emu = kern/emu/console.c;
emu = kern/emu/getroot.c; emu = kern/emu/getroot.c;
emu = kern/emu/hostdisk.c; emu = kern/emu/hostdisk.c;
@ -208,7 +209,6 @@ program = {
name = grub-emu-lite; name = grub-emu-lite;
emu = kern/emu/lite.c; emu = kern/emu/lite.c;
emu = kern/emu/cache.S;
emu_nodist = symlist.c; emu_nodist = symlist.c;
ldadd = 'kernel.img$(EXEEXT)'; ldadd = 'kernel.img$(EXEEXT)';
@ -300,7 +300,8 @@ image = {
mips_cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -DGRUB_EMBED_DECOMPRESSOR=1 -DGRUB_MACHINE_LINK_ADDR=0x80200000'; mips_cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -DGRUB_EMBED_DECOMPRESSOR=1 -DGRUB_MACHINE_LINK_ADDR=0x80200000';
objcopyflags = '-O binary'; objcopyflags = '-O binary';
ldflags = '-lgcc -static-libgcc -Wl,-Ttext,0x80100000'; ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
ldadd = '-lgcc';
cflags = '-static-libgcc'; cflags = '-static-libgcc';
enable = mips; enable = mips;
}; };
@ -313,7 +314,8 @@ image = {
mips_cppflags = '-DGRUB_EMBED_DECOMPRESSOR=1 -DGRUB_MACHINE_LINK_ADDR=0x80200000'; mips_cppflags = '-DGRUB_EMBED_DECOMPRESSOR=1 -DGRUB_MACHINE_LINK_ADDR=0x80200000';
objcopyflags = '-O binary'; objcopyflags = '-O binary';
ldflags = '-lgcc -static-libgcc -Wl,-Ttext,0x80100000'; ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
ldadd = '-lgcc';
cflags = '-static-libgcc'; cflags = '-static-libgcc';
enable = mips; enable = mips;
}; };

View file

@ -105,7 +105,7 @@ static grub_err_t
grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array, grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array,
grub_disk_addr_t *start_sector) grub_disk_addr_t *start_sector)
{ {
grub_disk_addr_t sector; grub_disk_addr_t sector = 0;
grub_uint64_t size; grub_uint64_t size;
struct grub_raid_super_1x sb; struct grub_raid_super_1x sb;
grub_uint8_t minor_version; grub_uint8_t minor_version;
@ -123,6 +123,9 @@ grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array,
for (minor_version = 0; minor_version < 3; ++minor_version) for (minor_version = 0; minor_version < 3; ++minor_version)
{ {
if (size == GRUB_DISK_SIZE_UNKNOWN && minor_version == 0)
continue;
switch (minor_version) switch (minor_version)
{ {
case 0: case 0:

View file

@ -170,6 +170,8 @@ grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array,
/* The sector where the mdraid 0.90 superblock is stored, if available. */ /* The sector where the mdraid 0.90 superblock is stored, if available. */
size = grub_disk_get_size (disk); size = grub_disk_get_size (disk);
if (size == GRUB_DISK_SIZE_UNKNOWN)
return grub_error (GRUB_ERR_OUT_OF_RANGE, "not 0.9x raid");
sector = NEW_SIZE_SECTORS (size); sector = NEW_SIZE_SECTORS (size);
if (grub_disk_read (disk, sector, 0, SB_BYTES, &sb)) if (grub_disk_read (disk, sector, 0, SB_BYTES, &sb))

View file

@ -51,7 +51,7 @@ grub_btrfs_mount (grub_disk_t disk)
&data->sblock) != GRUB_ERR_NONE) &data->sblock) != GRUB_ERR_NONE)
goto fail; goto fail;
if (grub_strncmp ((char *) data->sblock.signature, BTRFS_SIGNATURE, sizeof (BTRFS_SIGNATURE) - 1)) if (grub_memcmp ((char *) data->sblock.signature, BTRFS_SIGNATURE, sizeof (BTRFS_SIGNATURE) - 1))
{ {
grub_error (GRUB_ERR_BAD_FS, "not a Btrfs filesystem"); grub_error (GRUB_ERR_BAD_FS, "not a Btrfs filesystem");
goto fail; goto fail;

View file

@ -655,7 +655,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
goto fail; goto fail;
} }
params->type_of_loader = (LINUX_LOADER_ID_GRUB << 4); params->type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE;
/* These two are used (instead of cmd_line_ptr) by older versions of Linux, /* These two are used (instead of cmd_line_ptr) by older versions of Linux,
and otherwise ignored. */ and otherwise ignored. */

View file

@ -33,7 +33,7 @@ static grub_uint8_t grub_gpt_magic[8] =
static const grub_gpt_part_type_t grub_gpt_partition_type_empty = GRUB_GPT_PARTITION_TYPE_EMPTY; static const grub_gpt_part_type_t grub_gpt_partition_type_empty = GRUB_GPT_PARTITION_TYPE_EMPTY;
#ifdef GRUB_UTIL #ifdef GRUB_UTIL
static const grub_gpt_part_type_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT; static grub_gpt_part_type_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT;
#endif #endif
/* 512 << 7 = 65536 byte sectors. */ /* 512 << 7 = 65536 byte sectors. */
@ -198,6 +198,14 @@ static struct grub_partition_map grub_gpt_partition_map =
GRUB_MOD_INIT(part_gpt) GRUB_MOD_INIT(part_gpt)
{ {
grub_partition_map_register (&grub_gpt_partition_map); grub_partition_map_register (&grub_gpt_partition_map);
#ifdef GRUB_UTIL
grub_gpt_partition_type_bios_boot.data1 =
grub_cpu_to_le32 (grub_gpt_partition_type_bios_boot.data1);
grub_gpt_partition_type_bios_boot.data2 =
grub_cpu_to_le16 (grub_gpt_partition_type_bios_boot.data2);
grub_gpt_partition_type_bios_boot.data3 =
grub_cpu_to_le16 (grub_gpt_partition_type_bios_boot.data3);
#endif
} }
GRUB_MOD_FINI(part_gpt) GRUB_MOD_FINI(part_gpt)

View file

@ -36,7 +36,7 @@ typedef struct grub_gpt_part_type grub_gpt_part_type_t;
} }
#define GRUB_GPT_PARTITION_TYPE_BIOS_BOOT \ #define GRUB_GPT_PARTITION_TYPE_BIOS_BOOT \
{ grub_cpu_to_le32 (0x21686148), grub_cpu_to_le16 (0x6449), grub_cpu_to_le16 (0x6e6f), \ { 0x21686148, 0x6449, 0x6e6f, \
{ 0x74, 0x4e, 0x65, 0x65, 0x64, 0x45, 0x46, 0x49 } \ { 0x74, 0x4e, 0x65, 0x65, 0x64, 0x45, 0x46, 0x49 } \
} }

View file

@ -485,12 +485,15 @@ compare_devices (const void *a, const void *b)
{ {
const struct device *left = (const struct device *) a; const struct device *left = (const struct device *) a;
const struct device *right = (const struct device *) b; const struct device *right = (const struct device *) b;
int ret;
ret = strcmp (left->kernel, right->kernel); if (left->kernel && right->kernel)
if (ret) {
return ret; int ret = strcmp (left->kernel, right->kernel);
else if (ret)
return strcmp (left->stable, right->stable); return ret;
}
return strcmp (left->stable, right->stable);
} }
#endif /* __linux__ */ #endif /* __linux__ */
@ -533,6 +536,10 @@ grub_util_iterate_devices (int NESTED_FUNC_ATTR (*hook) (const char *, int),
necessary. */ necessary. */
for (entry = readdir (dir); entry; entry = readdir (dir)) for (entry = readdir (dir); entry; entry = readdir (dir))
{ {
/* Skip current and parent directory entries. */
if (strcmp (entry->d_name, ".") == 0 ||
strcmp (entry->d_name, "..") == 0)
continue;
/* Skip partition entries. */ /* Skip partition entries. */
if (strstr (entry->d_name, "-part")) if (strstr (entry->d_name, "-part"))
continue; continue;

View file

@ -205,7 +205,7 @@ do
--grub-mkrelpath) --grub-mkrelpath)
grub_mkrelpath="`argument "$option" "$@"`"; shift;; grub_mkrelpath="`argument "$option" "$@"`"; shift;;
--grub-mkimage=*) --grub-mkrelpath=*)
grub_mkrelpath="`echo "$option" | sed 's/--grub-mkrelpath=//'`" ;; grub_mkrelpath="`echo "$option" | sed 's/--grub-mkrelpath=//'`" ;;
--grub-mkdevicemap) --grub-mkdevicemap)
@ -473,7 +473,7 @@ fi
# this command is allowed to fail (--target=fs already grants us that the # this command is allowed to fail (--target=fs already grants us that the
# filesystem will be accessible). # filesystem will be accessible).
partmap_module= partmap_module=
for x in "`"$grub_probe" --device-map="${device_map}" --target=partmap --device "${grub_device}" 2> /dev/null`"; do for x in `"$grub_probe" --device-map="${device_map}" --target=partmap --device "${grub_device}" 2> /dev/null`; do
case "$x" in case "$x" in
netbsd | openbsd) netbsd | openbsd)
partmap_module="$partmap_module part_bsd";; partmap_module="$partmap_module part_bsd";;