* [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