IA64 PE/COFF (efi-app-ia64) image has bad VirtualSize field

Brian J. Johnson bjohnson@sgi.com
Mon Jan 5 19:49:00 GMT 2004


On Fri, 2 Jan 2004, Nick Clifton wrote:
>
> Not really.  Internally the VirtualSize value is stored as the s_paddr
> field of the bfd section structure, so my guess would be that at some
> point this field is being set to zero.
>
> > and how to fix it?
>
> You could put a watchpoint on the relevant s_paddr field and find out
> when/where it is set to zero.
>
> If you can provide a *small* reproducible test case and post it to
> this list then we may be able to investigate ourselves.

Small reproducible test case attached below.  When run with binutils
2.11.90.0.8, the VirtualSize field is nonzero.  When run with binutils
2.14.90.0.4, the VirtualSize field is zero.

						Brian J. Johnson

--------------------------------------------------------------------
#!/bin/sh
set -x

cat > try.c <<END
#include <efi.h>
#include <efilib.h>

EFI_STATUS
efi_main (EFI_HANDLE image, EFI_SYSTEM_TABLE *system_tab)
{
  return EFI_SUCCESS;
}
END

gcc -I. -I/usr/include/efi -I/usr/include/efi/ia64 -I/usr/include/efi/protocol -O2  -fpic -fshort-wchar -Wall -fno-merge-constants -mfixed-range=f32-f127 -DCONFIG_ia64  -c try.c -o try.o

ld -nostdlib -T /usr/lib/gnuefi/elf_ia64_efi.lds -shared -Bsymbolic -L/usr/lib /usr/lib/gnuefi/crt0-efi-ia64.o try.o -o try.so -L/usr/lib -lefi -lgnuefi

objcopy -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .reloc --target=efi-app-ia64 try.so try.efi



More information about the Binutils mailing list