* [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources @ 2017-11-01 15:01 Ard Biesheuvel 2017-11-01 15:13 ` Gao, Liming 0 siblings, 1 reply; 10+ messages in thread From: Ard Biesheuvel @ 2017-11-01 15:01 UTC (permalink / raw) To: edk2-devel, leif.lindholm, liming.gao, yonghong.zhu Cc: daniel.thompson, Ard Biesheuvel Commit 1894a7c64c0a ("BaseTools/tools_def AARCH64 ARM: disable PIE linking") works around an issue that was caught due to the fact that PIE linking produces broken .acpi files. However, v2 of that fix inadvertently only applied the workaround to the normal linker command line, and not to the ASLD one, so the issue still persists. So add the missing -no-pie options for ASLD on ARM and AARCH64. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- BaseTools/Conf/tools_def.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 98df0ffc9294..aebd7d558633 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -4498,8 +4498,8 @@ 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_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error -DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) -DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) +DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) -no-pie +DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -no-pie #################################################################################### # -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-01 15:01 [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources Ard Biesheuvel @ 2017-11-01 15:13 ` Gao, Liming 2017-11-01 15:18 ` Ard Biesheuvel 0 siblings, 1 reply; 10+ messages in thread From: Gao, Liming @ 2017-11-01 15:13 UTC (permalink / raw) To: Ard Biesheuvel, edk2-devel@lists.01.org, leif.lindholm@linaro.org, Zhu, Yonghong Cc: daniel.thompson@linaro.org Reviewed-by: Liming Gao <liming.gao@intel.com> > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Wednesday, November 1, 2017 11:01 PM > To: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong > <yonghong.zhu@intel.com> > Cc: daniel.thompson@linaro.org; Ard Biesheuvel <ard.biesheuvel@linaro.org> > Subject: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources > > Commit 1894a7c64c0a ("BaseTools/tools_def AARCH64 ARM: disable PIE > linking") works around an issue that was caught due to the fact that > PIE linking produces broken .acpi files. However, v2 of that fix > inadvertently only applied the workaround to the normal linker command > line, and not to the ASLD one, so the issue still persists. > > So add the missing -no-pie options for ASLD on ARM and AARCH64. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > BaseTools/Conf/tools_def.template | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > index 98df0ffc9294..aebd7d558633 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -4498,8 +4498,8 @@ 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_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error > -DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) > -DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) > +DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) -no-pie > +DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -no-pie > > #################################################################################### > # > -- > 2.11.0 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-01 15:13 ` Gao, Liming @ 2017-11-01 15:18 ` Ard Biesheuvel 2017-11-16 14:38 ` Marcin Wojtas 0 siblings, 1 reply; 10+ messages in thread From: Ard Biesheuvel @ 2017-11-01 15:18 UTC (permalink / raw) To: Gao, Liming Cc: edk2-devel@lists.01.org, leif.lindholm@linaro.org, Zhu, Yonghong, daniel.thompson@linaro.org On 1 November 2017 at 15:13, Gao, Liming <liming.gao@intel.com> wrote: > Reviewed-by: Liming Gao <liming.gao@intel.com> > Thanks - pushed as 3380a591232de2ab3007ab051010a67c3d000d1c >> -----Original Message----- >> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >> Sent: Wednesday, November 1, 2017 11:01 PM >> To: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong >> <yonghong.zhu@intel.com> >> Cc: daniel.thompson@linaro.org; Ard Biesheuvel <ard.biesheuvel@linaro.org> >> Subject: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources >> >> Commit 1894a7c64c0a ("BaseTools/tools_def AARCH64 ARM: disable PIE >> linking") works around an issue that was caught due to the fact that >> PIE linking produces broken .acpi files. However, v2 of that fix >> inadvertently only applied the workaround to the normal linker command >> line, and not to the ASLD one, so the issue still persists. >> >> So add the missing -no-pie options for ASLD on ARM and AARCH64. >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> >> --- >> BaseTools/Conf/tools_def.template | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template >> index 98df0ffc9294..aebd7d558633 100755 >> --- a/BaseTools/Conf/tools_def.template >> +++ b/BaseTools/Conf/tools_def.template >> @@ -4498,8 +4498,8 @@ 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_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error >> -DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) >> -DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) >> +DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) -no-pie >> +DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -no-pie >> >> #################################################################################### >> # >> -- >> 2.11.0 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-01 15:18 ` Ard Biesheuvel @ 2017-11-16 14:38 ` Marcin Wojtas 2017-11-16 14:48 ` Ard Biesheuvel 0 siblings, 1 reply; 10+ messages in thread From: Marcin Wojtas @ 2017-11-16 14:38 UTC (permalink / raw) To: Ard Biesheuvel Cc: Gao, Liming, edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org 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? Best regards, Marcin 2017-11-01 16:18 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: > On 1 November 2017 at 15:13, Gao, Liming <liming.gao@intel.com> wrote: >> Reviewed-by: Liming Gao <liming.gao@intel.com> >> > > Thanks - pushed as 3380a591232de2ab3007ab051010a67c3d000d1c > >>> -----Original Message----- >>> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >>> Sent: Wednesday, November 1, 2017 11:01 PM >>> To: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong >>> <yonghong.zhu@intel.com> >>> Cc: daniel.thompson@linaro.org; Ard Biesheuvel <ard.biesheuvel@linaro.org> >>> Subject: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources >>> >>> Commit 1894a7c64c0a ("BaseTools/tools_def AARCH64 ARM: disable PIE >>> linking") works around an issue that was caught due to the fact that >>> PIE linking produces broken .acpi files. However, v2 of that fix >>> inadvertently only applied the workaround to the normal linker command >>> line, and not to the ASLD one, so the issue still persists. >>> >>> So add the missing -no-pie options for ASLD on ARM and AARCH64. >>> >>> Contributed-under: TianoCore Contribution Agreement 1.1 >>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> >>> --- >>> BaseTools/Conf/tools_def.template | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template >>> index 98df0ffc9294..aebd7d558633 100755 >>> --- a/BaseTools/Conf/tools_def.template >>> +++ b/BaseTools/Conf/tools_def.template >>> @@ -4498,8 +4498,8 @@ 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_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error >>> -DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) >>> -DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) >>> +DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) -no-pie >>> +DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -no-pie >>> >>> #################################################################################### >>> # >>> -- >>> 2.11.0 >> > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-16 14:38 ` Marcin Wojtas @ 2017-11-16 14:48 ` Ard Biesheuvel 2017-11-16 15:07 ` Marcin Wojtas 0 siblings, 1 reply; 10+ messages in thread From: Ard Biesheuvel @ 2017-11-16 14:48 UTC (permalink / raw) To: Marcin Wojtas Cc: Gao, Liming, edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org On 16 November 2017 at 14:38, Marcin Wojtas <mw@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 #################################################################################### # > > 2017-11-01 16:18 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: >> On 1 November 2017 at 15:13, Gao, Liming <liming.gao@intel.com> wrote: >>> Reviewed-by: Liming Gao <liming.gao@intel.com> >>> >> >> Thanks - pushed as 3380a591232de2ab3007ab051010a67c3d000d1c >> >>>> -----Original Message----- >>>> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >>>> Sent: Wednesday, November 1, 2017 11:01 PM >>>> To: edk2-devel@lists.01.org; leif.lindholm@linaro.org; Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong >>>> <yonghong.zhu@intel.com> >>>> Cc: daniel.thompson@linaro.org; Ard Biesheuvel <ard.biesheuvel@linaro.org> >>>> Subject: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources >>>> >>>> Commit 1894a7c64c0a ("BaseTools/tools_def AARCH64 ARM: disable PIE >>>> linking") works around an issue that was caught due to the fact that >>>> PIE linking produces broken .acpi files. However, v2 of that fix >>>> inadvertently only applied the workaround to the normal linker command >>>> line, and not to the ASLD one, so the issue still persists. >>>> >>>> So add the missing -no-pie options for ASLD on ARM and AARCH64. >>>> >>>> Contributed-under: TianoCore Contribution Agreement 1.1 >>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> >>>> --- >>>> BaseTools/Conf/tools_def.template | 4 ++-- >>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template >>>> index 98df0ffc9294..aebd7d558633 100755 >>>> --- a/BaseTools/Conf/tools_def.template >>>> +++ b/BaseTools/Conf/tools_def.template >>>> @@ -4498,8 +4498,8 @@ 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_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error >>>> -DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) >>>> -DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) >>>> +DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS) -no-pie >>>> +DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS) -no-pie >>>> >>>> #################################################################################### >>>> # >>>> -- >>>> 2.11.0 >>> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-16 14:48 ` Ard Biesheuvel @ 2017-11-16 15:07 ` Marcin Wojtas 2017-11-16 15:08 ` Ard Biesheuvel 0 siblings, 1 reply; 10+ messages in thread From: Marcin Wojtas @ 2017-11-16 15:07 UTC (permalink / raw) To: Ard Biesheuvel Cc: Gao, Liming, edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org Hi Ard, 2017-11-16 15:48 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: > On 16 November 2017 at 14:38, Marcin Wojtas <mw@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. Marcin ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-16 15:07 ` Marcin Wojtas @ 2017-11-16 15:08 ` Ard Biesheuvel 2017-11-16 15:31 ` Gao, Liming 0 siblings, 1 reply; 10+ messages in thread From: Ard Biesheuvel @ 2017-11-16 15:08 UTC (permalink / raw) To: Marcin Wojtas Cc: Gao, Liming, edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org On 16 November 2017 at 15:07, Marcin Wojtas <mw@semihalf.com> wrote: > Hi Ard, > > 2017-11-16 15:48 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: >> On 16 November 2017 at 14:38, Marcin Wojtas <mw@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. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-16 15:08 ` Ard Biesheuvel @ 2017-11-16 15:31 ` Gao, Liming 2017-11-16 15:45 ` Ard Biesheuvel 0 siblings, 1 reply; 10+ messages in thread From: Gao, Liming @ 2017-11-16 15:31 UTC (permalink / raw) To: Ard Biesheuvel, Marcin Wojtas Cc: edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org 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? Thanks Liming > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Thursday, November 16, 2017 11:09 PM > To: Marcin Wojtas <mw@semihalf.com> > Cc: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org; daniel.thompson@linaro.org; leif.lindholm@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 <mw@semihalf.com> wrote: > > Hi Ard, > > > > 2017-11-16 15:48 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: > >> On 16 November 2017 at 14:38, Marcin Wojtas <mw@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. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-16 15:31 ` Gao, Liming @ 2017-11-16 15:45 ` Ard Biesheuvel 2017-11-21 12:06 ` Marcin Wojtas 0 siblings, 1 reply; 10+ messages in thread From: Ard Biesheuvel @ 2017-11-16 15:45 UTC (permalink / raw) To: Gao, Liming Cc: Marcin Wojtas, edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org On 16 November 2017 at 15:31, Gao, Liming <liming.gao@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.biesheuvel@linaro.org] >> Sent: Thursday, November 16, 2017 11:09 PM >> To: Marcin Wojtas <mw@semihalf.com> >> Cc: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org; daniel.thompson@linaro.org; leif.lindholm@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 <mw@semihalf.com> wrote: >> > Hi Ard, >> > >> > 2017-11-16 15:48 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: >> >> On 16 November 2017 at 14:38, Marcin Wojtas <mw@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. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 2017-11-16 15:45 ` Ard Biesheuvel @ 2017-11-21 12:06 ` Marcin Wojtas 0 siblings, 0 replies; 10+ messages in thread From: Marcin Wojtas @ 2017-11-21 12:06 UTC (permalink / raw) To: Ard Biesheuvel Cc: Gao, Liming, edk2-devel@lists.01.org, daniel.thompson@linaro.org, leif.lindholm@linaro.org Hi Ard, 2017-11-16 16:45 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: > On 16 November 2017 at 15:31, Gao, Liming <liming.gao@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.biesheuvel@linaro.org] >>> Sent: Thursday, November 16, 2017 11:09 PM >>> To: Marcin Wojtas <mw@semihalf.com> >>> Cc: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org; daniel.thompson@linaro.org; leif.lindholm@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 <mw@semihalf.com> wrote: >>> > Hi Ard, >>> > >>> > 2017-11-16 15:48 GMT+01:00 Ard Biesheuvel <ard.biesheuvel@linaro.org>: >>> >> On 16 November 2017 at 14:38, Marcin Wojtas <mw@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. >>> Do you think it would be reasonable to revert: 3380a59 - BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources 1894a7c - BaseTools/tools_def AARCH64 ARM: disable PIE linking on the EDK2 master branch, so that the users are not affected before the actual workaround for problematic builds is moved to GCC6? Best regards, Marcin ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-11-21 12:02 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-11-01 15:01 [PATCH] BaseTools/tools_def AARCH64 ARM: disable PIE linking for .aslc sources Ard Biesheuvel 2017-11-01 15:13 ` Gao, Liming 2017-11-01 15:18 ` Ard Biesheuvel 2017-11-16 14:38 ` Marcin Wojtas 2017-11-16 14:48 ` Ard Biesheuvel 2017-11-16 15:07 ` Marcin Wojtas 2017-11-16 15:08 ` Ard Biesheuvel 2017-11-16 15:31 ` Gao, Liming 2017-11-16 15:45 ` Ard Biesheuvel 2017-11-21 12:06 ` Marcin Wojtas
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox