On Wed, Jul 21, 2010 at 3:23 AM, Geoff Lywood <glyw...@vmware.com> wrote:
> Currently, if elf2efi.c is compiled using a 32-bit HOST_CC, then the 
> resulting elf2efi64 binary will generate 32-bit EFI binaries instead of 
> 64-bit EFI binaries.
>
> The problem is, elf2efi.c uses the MDE_CPU_* definitions to decide whether to 
> output a 32-bit or 64-bit PE binary. However, MDE_CPU_* gets defined in 
> ProcessorBind.h, depending on the compiler's target architecture. Overriding 
> them on the command line doesn't work in the expected way, and you can end up 
> in cases where both MDE_CPU_IA32 and MDE_CPU_X64 are defined.
>
> The patch below should fix the problem. I tested this patch by building with 
> all 4 combinations of 32- and 64-bit toolchains, targeting both 32- and 
> 64-bit EFI. In each case, I used objdump to verify that the file format of 
> bin-*-efi/snponly.efi matched what was expected. I also booted the 64-bit 
> executable that was generated using the 32-bit toolchain.
>
> Thanks,
> Geoff
>
> VMware, Inc. is providing this patch to you under the terms of the GPL 
> version 2 and any later version. This patch is provided as is, with no 
> warranties or support. VMware disclaims all liability in connection with the 
> use/inability to use this patch. Any use of the attached is considered 
> acceptance of the above.
>
>
> Signed-off-by: Geoff Lywood <glyw...@vmware.com>
> ---
>  src/Makefile.housekeeping |    4 ++--
>  src/util/elf2efi.c        |   20 ++++++++++----------
>  2 files changed, 12 insertions(+), 12 deletions(-)

Applied, thanks!

http://git.etherboot.org/?p=gpxe.git;a=commitdiff;h=c542da3f3d167a79903c6d4cfdbd97891513b954

Stefan
_______________________________________________
gPXE-devel mailing list
gPXE-devel@etherboot.org
http://etherboot.org/mailman/listinfo/gpxe-devel

Reply via email to