From: Vladimir 'phcoder' Serbinenko Date: Sat, 17 Apr 2010 00:32:05 +0000 (+0200) Subject: merge mainline into rescue-efi X-Git-Tag: 1.99~901^2~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1989170fd582fce14e7cff152ed90d6950a65268;p=thirdparty%2Fgrub.git merge mainline into rescue-efi --- 1989170fd582fce14e7cff152ed90d6950a65268 diff --cc conf/x86-efi.rmk index 000000000,46957d933..6d0654301 mode 000000,100644..100644 --- a/conf/x86-efi.rmk +++ b/conf/x86-efi.rmk @@@ -1,0 -1,113 +1,116 @@@ + # -*- makefile -*- + + # Utilities. + bin_UTILITIES = grub-mkimage + + # For grub-mkimage. + grub_mkimage_SOURCES = gnulib/progname.c util/i386/efi/grub-mkimage.c \ + util/misc.c util/resolve.c + util/i386/efi/grub-mkimage.c_DEPENDENCIES = Makefile + + # Scripts. + sbin_SCRIPTS = grub-install + + # For grub-install. + grub_install_SOURCES = util/i386/efi/grub-install.in + ++bin_SCRIPTS += grub-mkrescue ++grub_mkrescue_SOURCES = util/grub-mkrescue.in ++ + # Modules. + pkglib_PROGRAMS = kernel.img + pkglib_MODULES = chain.mod appleldr.mod \ + linux.mod halt.mod \ + datetime.mod loadbios.mod \ + fixvideo.mod mmap.mod acpi.mod + + # For kernel.img. + kernel_img_RELOCATABLE = yes + kernel_img_SOURCES = kern/$(target_cpu)/efi/startup.S kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/$(target_cpu)/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \ + kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \ + term/efi/console.c disk/efi/efidisk.c \ + kern/time.c kern/list.c kern/handler.c kern/command.c kern/corecmd.c \ + kern/i386/tsc.c kern/i386/pit.c \ + kern/generic/rtc_get_time_ms.c \ + kern/generic/millisleep.c + ifeq ($(target_cpu),x86_64) + kernel_img_SOURCES += kern/x86_64/efi/callwrap.S + endif + kernel_img_HEADERS += efi/efi.h efi/time.h efi/disk.h i386/pit.h + kernel_img_CFLAGS = $(COMMON_CFLAGS) + kernel_img_ASFLAGS = $(COMMON_ASFLAGS) + kernel_img_LDFLAGS += $(COMMON_LDFLAGS) + + # For acpi.mod. + acpi_mod_SOURCES = commands/acpi.c commands/efi/acpi.c + acpi_mod_CFLAGS = $(COMMON_CFLAGS) + acpi_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For mmap.mod. + mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c \ + mmap/efi/mmap.c + mmap_mod_CFLAGS = $(COMMON_CFLAGS) + mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For chain.mod. + chain_mod_SOURCES = loader/efi/chainloader.c + chain_mod_CFLAGS = $(COMMON_CFLAGS) + chain_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For appleldr.mod. + appleldr_mod_SOURCES = loader/efi/appleloader.c + appleldr_mod_CFLAGS = $(COMMON_CFLAGS) + appleldr_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For linux.mod. + linux_mod_SOURCES = loader/i386/efi/linux.c + ifeq ($(target_cpu), x86_64) + linux_mod_SOURCES += loader/i386/linux_trampoline.S + endif + linux_mod_CFLAGS = $(COMMON_CFLAGS) + linux_mod_ASFLAGS = $(COMMON_ASFLAGS) + linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For halt.mod. + halt_mod_SOURCES = commands/halt.c + halt_mod_CFLAGS = $(COMMON_CFLAGS) + halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For datetime.mod + datetime_mod_SOURCES = lib/efi/datetime.c + datetime_mod_CFLAGS = $(COMMON_CFLAGS) + datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For loadbios.mod + loadbios_mod_SOURCES = commands/efi/loadbios.c + loadbios_mod_CFLAGS = $(COMMON_CFLAGS) + loadbios_mod_LDFLAGS = $(COMMON_LDFLAGS) + + # For fixvideo.mod + fixvideo_mod_SOURCES = commands/efi/fixvideo.c + fixvideo_mod_CFLAGS = $(COMMON_CFLAGS) + fixvideo_mod_LDFLAGS = $(COMMON_LDFLAGS) + + pkglib_MODULES += efi_uga.mod + efi_uga_mod_SOURCES = video/efi_uga.c + efi_uga_mod_CFLAGS = $(COMMON_CFLAGS) + efi_uga_mod_LDFLAGS = $(COMMON_LDFLAGS) + + pkglib_MODULES += efi_gop.mod + efi_gop_mod_SOURCES = video/efi_gop.c + efi_gop_mod_CFLAGS = $(COMMON_CFLAGS) + efi_gop_mod_LDFLAGS = $(COMMON_LDFLAGS) + + pkglib_MODULES += xnu.mod + xnu_mod_SOURCES = loader/xnu_resume.c loader/i386/xnu.c loader/i386/efi/xnu.c \ + loader/macho32.c loader/macho64.c loader/macho.c loader/xnu.c + xnu_mod_CFLAGS = $(COMMON_CFLAGS) + xnu_mod_LDFLAGS = $(COMMON_LDFLAGS) + xnu_mod_ASFLAGS = $(COMMON_ASFLAGS) + + include $(srcdir)/conf/i386.mk + include $(srcdir)/conf/common.mk diff --cc util/grub-mkrescue.in index 30f319dc3,aafdfb059..b86be39e0 --- a/util/grub-mkrescue.in +++ b/util/grub-mkrescue.in @@@ -177,28 -187,14 +199,31 @@@ if test -e "${pc_dir}" ; the echo "source /boot/grub/grub.cfg") \ > ${iso9660_dir}/boot/grub/i386-pc/grub.cfg - grub_mkisofs_arguments="${grub_mkisofs_arguments} -b boot/grub/i386-pc/eltorito.img -boot-info-table" + grub_mkisofs_arguments="${grub_mkisofs_arguments} -b boot/grub/i386-pc/eltorito.img -no-emul-boot -boot-info-table \ + --embedded-boot ${embed_img}" fi +# build bootx64.efi +if test -e "${efi64_dir}" ; then + echo "Generates bootx64.efi" + mkdir -p ${iso9660_dir}/efi/boot + grub-mkimage -d ${efi64_dir}/ -o ${iso9660_dir}/efi/boot/bootx64.efi --prefix=/boot/grub/x86_64-efi \ + search iso9660 configfile sh + + modules="$(cat ${efi64_dir}/partmap.lst) ${modules}" + (for i in ${modules} ; do + if [ "x$i" != xkernel.mod ]; then + echo "insmod $i" + fi + done ; \ + echo "source /boot/grub/grub.cfg") \ + > ${iso9660_dir}/boot/grub/x86_64-efi/grub.cfg +fi + # build iso image - grub-mkisofs ${grub_mkisofs_arguments} -o ${output_image} -r ${iso9660_dir} ${source} + grub-mkisofs ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} ${source} rm -rf ${iso9660_dir} + rm -f ${embed_img} + exit 0