On Fri, May 19, 2017 at 11:47:40AM +0100, Ard Biesheuvel wrote: > 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]>
Tested-by: Leif Lindholm <[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

