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

Reply via email to