Message ID | 1436449678-19930-1-git-send-email-leif.lindholm@linaro.org |
---|---|
State | New |
Headers | show |
On Thu, Jul 09, 2015 at 03:59:38PM +0200, Laszlo Ersek wrote: > Am I right to think this is a verbatim repost from > > http://thread.gmane.org/gmane.comp.bios.tianocore.devel/12482 Rebased onto 0f895683da0613f27ac460a69745a15571d2a2a9, but yes, otherwise identical. / Leif > ? If so, then I think Olivier should review it and then just go ahead > and commit it, preferably with: > > Tested-by: Wei Huang <wei@redhat.com> > > based on Wei's message with Message-Id <54F740B4.3050104@redhat.com>. > > Unfortunately I can't find that email at the moment in the gmane > archive, but I'm attaching it. > > Thanks > Laszlo > Date: Wed, 04 Mar 2015 11:28:20 -0600 > From: Wei Huang <wei@redhat.com> > To: Laszlo Ersek <lersek@redhat.com>, edk2-devel@lists.sourceforge.net > CC: linaro-uefi@lists.linaro.org, "Leif Lindholm (Linaro address)" > <leif.lindholm@linaro.org> > Subject: Re: [edk2] [PATCH] BaseTools: aarch64: add > -fno-asynchronous-unwind-tables to cflags > User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 > Thunderbird/31.2.0 > > I can confirm that this patch fixes my problem. The machine is a native > AArch64 server, with Fedora GCC 4.8.3. > > Thanks, > -Wei > > On 03/04/2015 03:13 AM, Laszlo Ersek wrote: > > On 02/06/15 14:52, Leif Lindholm wrote: > >> Some toolchains, at least Fedora GCC, generate inline unwind tables in > >> object files. These confuses GenFw to no end, leading to build failures: > >> GenFw: ERROR 3000: Invalid WriteSections64(): ... > >> unsupported ELF EM_AARCH64 relocation 0x105. > >> GenFw: ERROR 3000: Invalid WriteSections64(): ... > >> unsupported ELF EM_AARCH64 relocation 0x0. > >> > >> I am aware of no current use of these tables, so explicitly disable > >> their generation for aarch64. > >> > >> Contributed-under: TianoCore Contribution Agreement 1.0 > >> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> > >> --- > >> BaseTools/Conf/tools_def.template | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > >> index f008024..04fdeba 100644 > >> --- a/BaseTools/Conf/tools_def.template > >> +++ b/BaseTools/Conf/tools_def.template > >> @@ -3817,7 +3817,7 @@ DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double - > >> DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe > >> DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency > >> DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft > >> -DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address > >> +DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address -fno-asynchronous-unwind-tables > >> DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie > >> DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections > >> DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Ttext=0x0 --emit-relocs -nostdlib --gc-sections -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map > > > > Ping -- a colleague of mine has just run into this. (I don't use Fedora, > > but many of my colleagues do.) > > > > Thanks > > Laszlo > > ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 7edd759..8e5750e 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -3818,7 +3818,7 @@ DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double - DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address +DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address -fno-asynchronous-unwind-tables DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections DEFINE GCC_ARM_AARCH64_DLINK_COMMON= --emit-relocs -nostdlib --gc-sections -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
Some toolchains, at least Fedora GCC, generate inline unwind tables in object files. These confuses GenFw to no end, leading to build failures: GenFw: ERROR 3000: Invalid WriteSections64(): ... unsupported ELF EM_AARCH64 relocation 0x105. GenFw: ERROR 3000: Invalid WriteSections64(): ... unsupported ELF EM_AARCH64 relocation 0x0. I am aware of no current use of these tables, so explicitly disable their generation for aarch64. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> --- BaseTools/Conf/tools_def.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)