Let user specify OpenBSD root device.
* loader/i386/bsd.c (openbsd_root): New variable.
(openbsd_opts): New option 'root'.
(OPENBSD_ROOT_ARG): New macro.
(grub_openbsd_boot): Use 'openbsd_root'.
(grub_cmd_openbsd): Fill 'openbsd_root'.
* configure.ac (TARGET_CFLAGS): Add -mno-mmx -mno-sse -mno-sse2
-mno-3dnow on x86 architectures. Some toolchains enable these
features by default, but they rely on registers that aren't enabled
in GRUB. Thanks to Vladimir Serbinenko for the suggestion.
Revert 2009-06-10 Pavel Roskin <proski@gnu.org>
* configure.ac: Put checks for __bswapsi2 and __bswapdi2.
* include/grub/powerpc/libgcc.h: Don't use weak attribute for all
exports.
* include/grub/sparc64/libgcc.h: Likewise. Use
preprocessor conditionals.
Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between
the Operating System (FreeBSD) and its kernel (kernel of FreeBSD).
* loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment
from "kFreeBSD" namespace (rather than "FreeBSD"). Update all
users.
(GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd",
"openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv"
to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module",
and "freebsd_module_elf" to "kfreebsd_module_elf". Update all
users.
Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU.
* include/grub/i386/cpuid.h: New file.
* commands/i386/cpuid.c: Include `<grub/i386/cpuid.h>'.
(has_longmode): Rename to ...
(grub_cpuid_has_longmode): ... this. Update all users. Remove
`static' attribute.
* loader/i386/bsd.c: Include `<grub/i386/cpuid.h>'.
(grub_bsd_load_elf): Fail if load of 64-bit kernel was requested
on a CPU that doesn't implement AMD64 instruction set.
* util/i386/pc/grub-install.in: Source
${libdir}/grub/grub-mkconfig_lib before option processing, in order
that the --grub-probe option will work.
* util/sparc64/ieee1275/grub-install.in: Likewise.