On 16 November 2017 at 15:31, Gao, Liming <liming....@intel.com> wrote: > Ard: > Does this error only happen on ACPI table compiling? But, I see -no-pie is > also in normal DLINK flag. Why is the driver not compiled failed? >
The main difference is that the ACPI tables don't tolerate any padding at the start of the binary image. This is different for ELF binaries that are converted to PE/COFF, given that the entry point is exposed in the header, so the padding is just ignored. However, we should still try to omit those sections if we can. >> -----Original Message----- >> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] >> Sent: Thursday, November 16, 2017 11:09 PM >> To: Marcin Wojtas <m...@semihalf.com> >> Cc: Gao, Liming <liming....@intel.com>; edk2-devel@lists.01.org; >> daniel.thomp...@linaro.org; leif.lindh...@linaro.org >> Subject: Re: [edk2] [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE >> linking for .aslc sources >> >> On 16 November 2017 at 15:07, Marcin Wojtas <m...@semihalf.com> wrote: >> > Hi Ard, >> > >> > 2017-11-16 15:48 GMT+01:00 Ard Biesheuvel <ard.biesheu...@linaro.org>: >> >> On 16 November 2017 at 14:38, Marcin Wojtas <m...@semihalf.com> wrote: >> >>> Hi Ard, >> >>> >> >>> With both PIE disabling patches for AARCH64, when compiling ACPI tables >> >>> with >> >>> gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- >> >>> I get following errors: >> >>> [...] >> >>> aarch64-linux-gnu-gcc: error: unrecognized command line option '-no-pie' >> >>> Do I understand correctly, that I should either revert those patches >> >>> or upgrade to the newer toolchain? >> >>> >> >> >> >> Ugh. >> >> >> >> I thought GCC 5 and later implemented -no-pie, but apparently not. >> >> >> >> Does this fix your build? I will need to check whether it fixes the >> >> original issue, but hopefully your toolchain doesn't choke on this: >> >> >> >> diff --git a/BaseTools/Conf/tools_def.template >> >> b/BaseTools/Conf/tools_def.template >> >> index aebd7d558633..111fe8da7773 100755 >> >> --- a/BaseTools/Conf/tools_def.template >> >> +++ b/BaseTools/Conf/tools_def.template >> >> @@ -4496,10 +4496,10 @@ DEFINE GCC5_AARCH64_CC_FLAGS = >> >> DEF(GCC49_AARCH64_CC_FLAGS) >> >> DEFINE GCC5_AARCH64_CC_XIPFLAGS = DEF(GCC49_AARCH64_CC_XIPFLAGS) >> >> DEFINE GCC5_ARM_DLINK_FLAGS = DEF(GCC49_ARM_DLINK_FLAGS) -no-pie >> >> DEFINE GCC5_ARM_DLINK2_FLAGS = DEF(GCC49_ARM_DLINK2_FLAGS) >> >> -Wno-error >> >> -DEFINE GCC5_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS) >> >> -no-pie >> >> +DEFINE GCC5_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS) >> >> -Wl,-no-pie >> >> DEFINE GCC5_AARCH64_DLINK2_FLAGS = >> >> DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error >> >> DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) >> >> -no-pie >> >> -DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = >> >> DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -no-pie >> >> +DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = >> >> DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -Wl,-no-pie >> >> >> >> >> >> #################################################################################### >> >> # >> >> >> > >> > Unfortunately no change, still: >> > aarch64-linux-gnu-gcc: error: unrecognized command line option '-no-pie' >> > In order to make sure, I double checked twice cleaninig everything and >> > rebuilding from scratch. >> > >> >> Thanks, but it doesn't matter anyway: it doesn't fix the original >> issues on affected toolchains. >> >> It appears the only way we can deal with this is introducing GCC6 and >> move the workaround there. >> >> Thanks, >> Ard. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel