From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1KTi9H-0002hl-J0 for mharc-grub-devel@gnu.org; Thu, 14 Aug 2008 15:06:15 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KTi9F-0002hB-1U for grub-devel@gnu.org; Thu, 14 Aug 2008 15:06:13 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KTi9E-0002gw-7a for grub-devel@gnu.org; Thu, 14 Aug 2008 15:06:12 -0400 Received: from [199.232.76.173] (port=36681 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KTi9D-0002gm-Sv for grub-devel@gnu.org; Thu, 14 Aug 2008 15:06:11 -0400 Received: from aybabtu.com ([69.60.117.155]:50357) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KTi9D-0008W5-Es for grub-devel@gnu.org; Thu, 14 Aug 2008 15:06:11 -0400 Received: from [192.168.10.10] (helo=thorin) by aybabtu.com with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1KTi0x-0001fF-ST for grub-devel@gnu.org; Thu, 14 Aug 2008 20:57:41 +0200 Received: from rmh by thorin with local (Exim 4.63) (envelope-from ) id 1KTi7p-0005Jf-AX for grub-devel@gnu.org; Thu, 14 Aug 2008 21:04:45 +0200 Date: Thu, 14 Aug 2008 21:04:45 +0200 From: Robert Millan To: grub-devel@gnu.org Message-ID: <20080814190445.GA20140@thorin> References: <20080803210435.GA24267@thorin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080803210435.GA24267@thorin> Organization: free as in freedom X-Message-Flag: Worried about Outlook viruses? Switch to Thunderbird! www.mozilla.com/thunderbird X-Debbugs-No-Ack: true User-Agent: Mutt/1.5.13 (2006-08-11) X-detected-kernel: by monty-python.gnu.org: Genre and OS details not recognized. Subject: Re: [PATCH] grub-mkelfimage X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Aug 2008 19:06:13 -0000 Committed. On Sun, Aug 03, 2008 at 11:04:35PM +0200, Robert Millan wrote: > > The elf version of grub-mkimage is multiplatform, so it makes no sense to > keep it as arch-specific in the build system IMHO. > > This patch renames it to grub-mkelfimage, and arranges the build system & > headers so that its build parameters are shared between i386-ieee1275 and > i386-coreboot (and in the future, among powerpc-* platforms). > > Aside from making life easier for distributors (less duplicated space), the > big advantage in doing this is that one can now install grub-coreboot at > the same time as grub-pc without causing a file conflict. > > -- > Robert Millan > > The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and > how) you may access your data; but nobody's threatening your freedom: we > still allow you to remove your data and not access it at all." > Index: conf/common.rmk > =================================================================== > --- conf/common.rmk (revision 1767) > +++ conf/common.rmk (working copy) > @@ -1,5 +1,11 @@ > # -*- makefile -*- > > +# For grub-mkelfimage. > +bin_UTILITIES += grub-mkelfimage > +grub_mkelfimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \ > + util/resolve.c > +util/elf/grub-mkimage.c_DEPENDENCIES = Makefile > + > # For grub-probe. > sbin_UTILITIES += grub-probe > util/grub-probe.c_DEPENDENCIES = grub_probe_init.h > Index: conf/i386-coreboot.rmk > =================================================================== > --- conf/i386-coreboot.rmk (revision 1767) > +++ conf/i386-coreboot.rmk (working copy) > @@ -39,18 +39,11 @@ > /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) > > # Utilities. > -bin_UTILITIES = grub-mkimage > sbin_UTILITIES = grub-mkdevicemap > ifeq ($(enable_grub_emu), yes) > sbin_UTILITIES += grub-emu > endif > > -# For grub-mkimage. > -grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \ > - util/resolve.c > -grub_mkimage_LDFLAGS = $(LIBLZO) > -util/elf/grub-mkimage.c_DEPENDENCIES = Makefile > - > # For grub-mkdevicemap. > grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \ > util/i386/get_disk_name.c > Index: conf/powerpc-ieee1275.rmk > =================================================================== > --- conf/powerpc-ieee1275.rmk (revision 1767) > +++ conf/powerpc-ieee1275.rmk (working copy) > @@ -28,17 +28,11 @@ > pkglib_PROGRAMS = kernel.elf > > # Utilities. > -bin_UTILITIES = grub-mkimage > sbin_UTILITIES = grub-mkdevicemap > ifeq ($(enable_grub_emu), yes) > sbin_UTILITIES += grub-emu > endif > > -# For grub-mkimage. > -grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \ > - util/resolve.c > -util/elf/grub-mkimage.c_DEPENDENCIES = Makefile > - > # For grub-mkdevicemap. > grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \ > util/ieee1275/get_disk_name.c > Index: conf/i386-ieee1275.rmk > =================================================================== > --- conf/i386-ieee1275.rmk (revision 1767) > +++ conf/i386-ieee1275.rmk (working copy) > @@ -40,18 +40,11 @@ > /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) > > # Utilities. > -bin_UTILITIES = grub-mkimage > sbin_UTILITIES = grub-mkdevicemap > ifeq ($(enable_grub_emu), yes) > sbin_UTILITIES += grub-emu > endif > > -# For grub-mkimage. > -grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \ > - util/resolve.c > -grub_mkimage_LDFLAGS = $(LIBLZO) > -util/elf/grub-mkimage.c_DEPENDENCIES = Makefile > - > # For grub-mkdevicemap. > grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \ > util/i386/get_disk_name.c > Index: kern/ieee1275/init.c > =================================================================== > --- kern/ieee1275/init.c (revision 1767) > +++ kern/ieee1275/init.c (working copy) > @@ -30,6 +30,7 @@ > #include > #include > #include > +#include > #include > #include > > Index: kern/i386/ieee1275/startup.S > =================================================================== > --- kern/i386/ieee1275/startup.S (revision 1767) > +++ kern/i386/ieee1275/startup.S (working copy) > @@ -19,9 +19,9 @@ > #define ASM_FILE 1 > > #include > -#include > #include > #include > +#include > #include > #include > > @@ -45,7 +45,7 @@ > * This is a special data area at a fixed offset from the beginning. > */ > > - . = EXT_C(start) + GRUB_KERNEL_MACHINE_PREFIX > + . = EXT_C(start) + GRUB_KERNEL_CPU_PREFIX > > VARIABLE(grub_prefix) > /* to be filled by grub-mkimage */ > @@ -54,7 +54,7 @@ > * Leave some breathing room for the prefix. > */ > > - . = EXT_C(start) + GRUB_KERNEL_MACHINE_DATA_END > + . = EXT_C(start) + GRUB_KERNEL_CPU_DATA_END > > codestart: > movl %eax, EXT_C(grub_ieee1275_entry_fn) > Index: kern/i386/linuxbios/startup.S > =================================================================== > --- kern/i386/linuxbios/startup.S (revision 1767) > +++ kern/i386/linuxbios/startup.S (working copy) > @@ -19,9 +19,9 @@ > #define ASM_FILE 1 > > #include > -#include > #include > #include > +#include > #include > #include > > @@ -44,7 +44,7 @@ > * This is a special data area at a fixed offset from the beginning. > */ > > - . = EXT_C(start) + GRUB_KERNEL_MACHINE_PREFIX > + . = EXT_C(start) + GRUB_KERNEL_CPU_PREFIX > > VARIABLE(grub_prefix) > /* to be filled by grub-mkimage */ > @@ -53,7 +53,7 @@ > * Leave some breathing room for the prefix. > */ > > - . = EXT_C(start) + GRUB_KERNEL_MACHINE_DATA_END > + . = EXT_C(start) + GRUB_KERNEL_CPU_DATA_END > > #if 0 > /* > Index: kern/i386/linuxbios/init.c > =================================================================== > --- kern/i386/linuxbios/init.c (revision 1767) > +++ kern/i386/linuxbios/init.c (working copy) > @@ -33,6 +33,7 @@ > #include > #include > #include > +#include > > #define GRUB_FLOPPY_REG_DIGITAL_OUTPUT 0x3f2 > > Index: include/grub/powerpc/ieee1275/kernel.h > =================================================================== > --- include/grub/powerpc/ieee1275/kernel.h (revision 1767) > +++ include/grub/powerpc/ieee1275/kernel.h (working copy) > @@ -21,13 +21,6 @@ > > #include > > -#define GRUB_MOD_ALIGN 0x1000 > - > -/* Minimal gap between _end and the start of the modules. It's a hack > - for PowerMac to prevent "CLAIM failed" error. The real fix is to > - rewrite grub-mkimage to generate valid ELF files. */ > -#define GRUB_MOD_GAP 0x8000 > - > #ifndef ASM_FILE > > void EXPORT_FUNC (grub_reboot) (void); > Index: include/grub/powerpc/kernel.h > =================================================================== > --- include/grub/powerpc/kernel.h (revision 0) > +++ include/grub/powerpc/kernel.h (revision 0) > @@ -0,0 +1,33 @@ > +/* > + * GRUB -- GRand Unified Bootloader > + * Copyright (C) 2005,2006,2007,2008 Free Software Foundation, Inc. > + * > + * GRUB is free software: you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation, either version 3 of the License, or > + * (at your option) any later version. > + * > + * GRUB is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with GRUB. If not, see . > + */ > + > +#ifndef GRUB_KERNEL_CPU_HEADER > +#define GRUB_KERNEL_CPU_HEADER 1 > + > +#define GRUB_MOD_ALIGN 0x1000 > + > +/* Minimal gap between _end and the start of the modules. It's a hack > + for PowerMac to prevent "CLAIM failed" error. The real fix is to > + rewrite grub-mkimage to generate valid ELF files. */ > +#define GRUB_MOD_GAP 0x8000 > + > +/* prefix not supported on powerpc yet. */ > +#define GRUB_KERNEL_CPU_PREFIX 0 > +#define GRUB_KERNEL_CPU_DATA_END 0 > + > +#endif > Index: include/grub/i386/ieee1275/kernel.h > =================================================================== > --- include/grub/i386/ieee1275/kernel.h (revision 1767) > +++ include/grub/i386/ieee1275/kernel.h (working copy) > @@ -1,4 +1 @@ > #include > - > -#define GRUB_KERNEL_MACHINE_PREFIX 0x2 > -#define GRUB_KERNEL_MACHINE_DATA_END 0x42 > Index: include/grub/i386/kernel.h > =================================================================== > --- include/grub/i386/kernel.h (revision 0) > +++ include/grub/i386/kernel.h (revision 0) > @@ -0,0 +1,30 @@ > +/* > + * GRUB -- GRand Unified Bootloader > + * Copyright (C) 2005,2006,2007,2008 Free Software Foundation, Inc. > + * > + * GRUB is free software: you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation, either version 3 of the License, or > + * (at your option) any later version. > + * > + * GRUB is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with GRUB. If not, see . > + */ > + > +#ifndef GRUB_KERNEL_CPU_HEADER > +#define GRUB_KERNEL_CPU_HEADER 1 > + > +#define GRUB_MOD_ALIGN 0x1000 > + > +/* Non-zero value is only needed for PowerMacs. */ > +#define GRUB_MOD_GAP 0x0 > + > +#define GRUB_KERNEL_CPU_PREFIX 0x2 > +#define GRUB_KERNEL_CPU_DATA_END 0x42 > + > +#endif > Index: include/grub/i386/coreboot/kernel.h > =================================================================== > --- include/grub/i386/coreboot/kernel.h (revision 1767) > +++ include/grub/i386/coreboot/kernel.h (working copy) > @@ -21,16 +21,8 @@ > > #include > > -#define GRUB_MOD_ALIGN 0x1000 > - > -/* Non-zero value is only needed for some IEEE-1275 platforms. */ > -#define GRUB_MOD_GAP 0 > - > #ifndef ASM_FILE > extern char grub_prefix[]; > #endif > > -#define GRUB_KERNEL_MACHINE_PREFIX 0x2 > -#define GRUB_KERNEL_MACHINE_DATA_END 0x42 > - > #endif /* ! GRUB_KERNEL_MACHINE_HEADER */ > Index: util/ieee1275/grub-install.in > =================================================================== > --- util/ieee1275/grub-install.in (revision 1767) > +++ util/ieee1275/grub-install.in (working copy) > @@ -34,7 +34,7 @@ > platform=@platform@ > pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` > > -grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}` > +grub_mkimage=${bindir}/`echo grub-mkelfimage | sed ${transform}` > grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}` > grub_probe=${sbindir}/`echo grub-probe | sed ${transform}` > rootdir= > @@ -182,7 +182,7 @@ > modules="$modules $fs_module $partmap_module $devabstraction_module" > > # Now perform the installation. > -"$grub_mkimage" --output=${grubdir}/grub $modules || exit 1 > +"$grub_mkimage" --directory=${pkglibdir} --output=${grubdir}/grub $modules || exit 1 > > if test $update_nvram = yes; then > set $ofpathname dummy > Index: util/elf/grub-mkimage.c > =================================================================== > --- util/elf/grub-mkimage.c (revision 1767) > +++ util/elf/grub-mkimage.c (working copy) > @@ -30,7 +30,7 @@ > #include > #include > #include > -#include > +#include > > #define GRUB_IEEE1275_NOTE_NAME "PowerPC" > #define GRUB_IEEE1275_NOTE_TYPE 0x1275 > @@ -297,9 +297,9 @@ > > if (prefix) > { > - if (GRUB_KERNEL_MACHINE_PREFIX + strlen (prefix) + 1 > GRUB_KERNEL_MACHINE_DATA_END) > + if (GRUB_KERNEL_CPU_PREFIX + strlen (prefix) + 1 > GRUB_KERNEL_CPU_DATA_END) > grub_util_error ("prefix too long"); > - grub_util_write_image_at (prefix, strlen (prefix) + 1, first_segment + GRUB_KERNEL_MACHINE_PREFIX, out); > + grub_util_write_image_at (prefix, strlen (prefix) + 1, first_segment + GRUB_KERNEL_CPU_PREFIX, out); > } > > free (phdrs); > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all."