Reviewed-by: Liming Gao <liming....@intel.com>
> -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Thomas Palmer > Sent: Friday, July 22, 2016 10:57 AM > To: edk2-devel@lists.01.org > Cc: af...@apple.com; Gao, Liming <liming....@intel.com>; > ler...@redhat.com > Subject: [edk2] [PATCH v3] [BaseTools/Scripts]: Preserve hii section in GCC > binaries > > According to UEFI spec: > Once an image is loaded, LoadImage() installs > EFI_HII_PACKAGE_LIST_PROTOCOL on the handle if the image contains a > custom PE/COFF resource with the type 'HII'. The protocol's > interface pointer points to the HII package list which is contained > in the resource's data. > > This is controlled by the UEFI_HII_RESOURCE_SECTION define in the INF > file. When present the HII resource is linked with the module > binary. > > Unfortunately GCC-built binaries have been stripping the .hii section > entirely. See "[edk2] HII gEfiHiiPackageListProtocolGuid problem > with GCC48(VS2012x86 works)" > http://thread.gmane.org/gmane.comp.bios.tianocore.devel/13438 > http://thread.gmane.org/gmane.comp.bios.tianocore.devel/14899 > > This patch tells the linker to preserve the .hii sections > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Thomas Palmer <thomas.pal...@hpe.com> > --- > BaseTools/Scripts/GccBase.lds | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds > index 32310bc..7e4cdde 100644 > --- a/BaseTools/Scripts/GccBase.lds > +++ b/BaseTools/Scripts/GccBase.lds > @@ -4,6 +4,7 @@ > > Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR> > Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR> > + (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > > This program and the accompanying materials are licensed and made > available under > the terms and conditions of the BSD License that accompanies this > distribution. > @@ -57,6 +58,10 @@ SECTIONS { > *(.rela .rela.*) > } > > + .hii : ALIGN(CONSTANT(COMMONPAGESIZE)) { > + KEEP (*(.hii)) > + } > + > /DISCARD/ : { > *(.note.GNU-stack) > *(.gnu_debuglink) > -- > 1.9.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel