mirror of https://github.com/acidanthera/audk.git
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.palmer@hpe.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Bruce Cran <bruce.cran@gmail.com> Reviewed-by: Bruce Cran <bruce.cran@gmail.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
910e206238
commit
03630a8148
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue