On 23 November 2017 at 10:21, Gao, Liming <liming....@intel.com> wrote:
> OK. I see the change to add DEF(GCC_DLINK2_FLAGS_COMMON) into ASLDLINK_FLAGS.
>
> Reviewed-by: Liming Gao <liming....@intel.com>
>

Thanks all

Pushed as 14ca435fb6c059eaeb7fe6eedbe4738ffaf336d0

>>-----Original Message-----
>>From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
>>Sent: Thursday, November 23, 2017 6:19 PM
>>To: Gao, Liming <liming....@intel.com>
>>Cc: edk2-devel@lists.01.org; leif.lindh...@linaro.org; m...@semihalf.com;
>>Zhu, Yonghong <yonghong....@intel.com>; daniel.thomp...@linaro.org
>>Subject: Re: [PATCH] BaseTools/tools_def AARCH64 ARM: suppres PIE
>>sections via linker script
>>
>>On 23 November 2017 at 10:16, Gao, Liming <liming....@intel.com> wrote:
>>> Ard:
>>>   Have you own GCC linker script? Is it not in BaseTools?
>>>
>>
>>No it is just GccBase.lds like we use for PE/COFF binaries, but this
>>patch uses it for .aslc files as well.
>>
>>>>-----Original Message-----
>>>>From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
>>>>Sent: Wednesday, November 22, 2017 12:11 AM
>>>>To: edk2-devel@lists.01.org; leif.lindh...@linaro.org
>>>>Cc: m...@semihalf.com; Zhu, Yonghong <yonghong....@intel.com>; Gao,
>>>>Liming <liming....@intel.com>; daniel.thomp...@linaro.org; Ard
>>Biesheuvel
>>>><ard.biesheu...@linaro.org>
>>>>Subject: [PATCH] BaseTools/tools_def AARCH64 ARM: suppres PIE sections
>>>>via linker script
>>>>
>>>>Recent distro builds of GCC 6 enable PIE linking by default, and allow
>>>>the previous behavior to be restored by passing the -no-pie command line
>>>>argument. This was implemented by commits 1894a7c64c0a and
>>3380a591232d
>>>>but unfortunately, it turns out that GCC 5 does not support this command
>>>>line argument, and exits with an error.
>>>>
>>>>To avoid the need for yet another toolchain tag, to distinguish between
>>>>GCC 5 and GCC 6, let's use our GCC linker scripts when building objects
>>>>from .aslc files. This will ensure that the extra sections that are added
>>>>by the PIE linker are discarded from the ELF binary, and so they will not
>>>>corrupt the resulting .acpi file.
>>>>
>>>>This reverts
>>>>
>>>>1894a7c64c0a BaseTools/tools_def AARCH64 ARM: disable PIE linking
>>>>3380a591232d BaseTools/tools_def AARCH64 ARM: disable PIE linking
>>for .aslc
>>>>sources
>>>>
>>>>Contributed-under: TianoCore Contribution Agreement 1.1
>>>>Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
>>>>---
>>>> BaseTools/Conf/tools_def.template | 13 +++++++------
>>>> 1 file changed, 7 insertions(+), 6 deletions(-)
>>>>
>>>>diff --git a/BaseTools/Conf/tools_def.template
>>>>b/BaseTools/Conf/tools_def.template
>>>>index aebd7d558633..4d2a3b7dbe56 100755
>>>>--- a/BaseTools/Conf/tools_def.template
>>>>+++ b/BaseTools/Conf/tools_def.template
>>>>@@ -4356,9 +4356,10 @@ DEFINE GCC_IA32_X64_DLINK_COMMON   =
>>>>DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
>>>> DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -
>>nostdlib -
>>>>Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-
>>>>e,$(IMAGE_ENTRY_POINT),-
>>Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
>>>> DEFINE GCC_ARM_DLINK_FLAGS         =
>>>>DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20
>>>> DEFINE GCC_AARCH64_DLINK_FLAGS     =
>>>>DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20
>>>>+DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = -Wl,--
>>>>defsym=PECOFF_HEADER_SIZE=0 DEF(GCC_DLINK2_FLAGS_COMMON) -z
>>>>common-page-size=0x20
>>>> DEFINE GCC_IA32_X64_ASLDLINK_FLAGS =
>>>>DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u
>>>>$(IMAGE_ENTRY_POINT)
>>>>-DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -
>>>>Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
>>>>-DEFINE GCC_AARCH64_ASLDLINK_FLAGS  =
>>>>DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u
>>>>$(IMAGE_ENTRY_POINT)
>>>>+DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -
>>>>Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
>>>>DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
>>>>+DEFINE GCC_AARCH64_ASLDLINK_FLAGS  =
>>>>DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u
>>>>$(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
>>>> DEFINE GCC_IA32_X64_DLINK_FLAGS    =
>>>>DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) -
>>-
>>>>file-alignment 0x20 --section-alignment 0x20 -Map
>>>>$(DEST_DIR_DEBUG)/$(BASE_NAME).map
>>>> DEFINE GCC_IPF_DLINK_FLAGS         = -nostdlib -O2 --gc-sections --dll 
>>>> -static
>>--
>>>>entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map
>>>>$(DEST_DIR_DEBUG)/$(BASE_NAME).map
>>>> DEFINE GCC_IPF_OBJCOPY_FLAGS       = -I elf64-ia64-little -O efi-bsdrv-ia64
>>>>@@ -4494,12 +4495,12 @@ DEFINE GCC5_ARM_CC_FLAGS             =
>>>>DEF(GCC49_ARM_CC_FLAGS)
>>>> DEFINE GCC5_ARM_CC_XIPFLAGS          = DEF(GCC49_ARM_CC_XIPFLAGS)
>>>> 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_DLINK_FLAGS          = DEF(GCC49_ARM_DLINK_FLAGS)
>>>> 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)
>>>> 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_ARM_ASLDLINK_FLAGS       =
>>>>DEF(GCC49_ARM_ASLDLINK_FLAGS)
>>>>+DEFINE GCC5_AARCH64_ASLDLINK_FLAGS   =
>>>>DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
>>>>
>>>>
>>>>#########################################################
>>##
>>>>#########################
>>>> #
>>>>--
>>>>2.11.0
>>>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to