Reviewed-by: Liming Gao <[email protected]>

>-----Original Message-----
>From: Ard Biesheuvel [mailto:[email protected]]
>Sent: Friday, May 19, 2017 6:48 PM
>To: [email protected]
>Cc: [email protected]; Zhu, Yonghong <[email protected]>; Gao,
>Liming <[email protected]>; Ard Biesheuvel <[email protected]>
>Subject: [PATCH] BaseTools/Scripts: discard .gnu.hash section in GCC builds
>
>Some builds of GCC/binutils will default to using the GNU flavor of
>the symbol hash table, and will emit it into a section called .gnu.hash
>rather than .hash. We have no use for its contents, and GenFw ignores
>it anyway, so it shouldn't really matter what we do with it.
>
>However, due to a workaround for AARCH64 we have in GenFw to deal with
>older GCCs that corrupt section-based relocations when merging sections
>during the final link, we need the ELF and PE/COFF views of the binary
>to be identical. Since we don't place the .gnu.hash section explicitly,
>it may end up at the beginning of the ELF binary, causing other sections
>to be shifted in the ELF view but not in the PE/COFF view.
>
>So let's add .gnu.hash to the GCC linker script. We don't care about its
>contents so add it to the /DISCARD/ section.
>
>Contributed-under: TianoCore Contribution Agreement 1.0
>Signed-off-by: Ard Biesheuvel <[email protected]>
>---
> BaseTools/Scripts/GccBase.lds | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds
>index 41e5c0b4a769..a43e0072f2b4 100644
>--- a/BaseTools/Scripts/GccBase.lds
>+++ b/BaseTools/Scripts/GccBase.lds
>@@ -78,7 +78,7 @@ SECTIONS {
>     *(.dynsym)
>     *(.dynstr)
>     *(.dynamic)
>-    *(.hash)
>+    *(.hash .gnu.hash)
>     *(.comment)
>     *(COMMON)
>   }
>--
>2.9.3

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to