Hi Ard,
2016-07-10 14:22 GMT+02:00 Ard Biesheuvel ard.biesheuvel@linaro.org:
On 10 July 2016 at 02:21, Marcin Wojtas mw@semihalf.com wrote:
From: Haim Boot hayim@marvell.com
The relocation type R_AARCH64_PREL32 in .rela.eh_frame (exception handling frame) does not fit the checking requirement of GenFw in EDK2.
Building EDK2 with aarch64-elf bare metal toolchain (no unwind table by default) will succeed. However build of EDK2 with aarch64-linux-gnueabi toolchain (default enable unwind table generation) will fail.
EABI is closely tied to 32-bit ARM/AArch32, and so there is no such thing as a 'aarch64-linux-gnueabi' compiler.
You are right, I checked, and the compiler in question is in fact aarch64-marvell-linux-gnu-
The issue can be fixed by adding -fno-unwind-tables, in order to disable generating unwind table info, which is used mainly for debug. This commit enables successful compilation of EDK2 both with aarch64-elf and aarch64-linux-gnueabi toolchains.
This has nothing to do with bare metal vs hosted. Are you using the RedHat build of GCC by any chance?
No, it's Marvell GCC toolchain. Do you have more remarks apart from s/gnueabi/gnu? I can ask Marvell to answer them, however I'd like to know your opinion if we can give a chance for such patch at all or it's a hopeless effort from the very beginning.
Best regards, Marcin