From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4001:c06::243; helo=mail-io0-x243.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-io0-x243.google.com (mail-io0-x243.google.com [IPv6:2607:f8b0:4001:c06::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 91ECF220C1C31 for ; Thu, 23 Nov 2017 02:42:08 -0800 (PST) Received: by mail-io0-x243.google.com with SMTP id q64so13374311iof.13 for ; Thu, 23 Nov 2017 02:46:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XJPcl+hkW/vGG0MvM/v4W5y6NrMYhINRJHbKTn4s6VI=; b=SyfbNVEdTpxUWXKvzsKldD/1JKCgSB9GHxIq714EkFg7AGAfULlXqfGgJmoyi3l2Vk Cyw5KrVCvy/X8NdpQkm9nQ27buEAQzSdWIjckgogH84XgKOMFOHh4HMJK2MDqSrQ7i/u yDdcWEizv5Gna1lHNQFb1jDZps+p/U0ipIvQ0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XJPcl+hkW/vGG0MvM/v4W5y6NrMYhINRJHbKTn4s6VI=; b=L2kWCWiLUY7RBQlvs2VtKiGZQ0JewuFezwhF5pmizO5du3v2j/ForMnyHaJfaVu6AU 4eBXIK6vNkHtZ7Vt8tIiSregmey4y96XxfgAlpUFfP9Ef/RgzNz2PelYaWqElnZ+hWZ0 /Kp9Ipja7bSfd/Wvu4DKeJTGlnTExztbnEji2eqn5apTBWQmh1O4w4ZFCDaYtN7DKXwa kXQYhTxNMkhtWoh+4CCO03nBcwc+yYp0tmmtwi6lmDENGQiVVfNPHcuWj9BG/m8ReuWt NwCTwaZvwxp2OzPXudVr2uK6l3pxHvRA5rtUywr55nCLWDSuhIVmUqoeyUyLw0JnEDyH VC/A== X-Gm-Message-State: AJaThX5Kx73Nz0xOdRuyRYWqUtnu6vzRwBpxyrMtGxFBdwM+I2HLzUlH oHrd+VhB9b5hAYH6k+P9AG/sLbxDp4RQLdh/BKHyEw== X-Google-Smtp-Source: AGs4zMYpVTrM2NqjsBayN3qen0ml2lCVs/gN8b767Q+WL3FxZbY3f3EKDenhZrHOBwmDDYzl0PP6NFXemZlFtbn3Fbo= X-Received: by 10.107.2.137 with SMTP id 131mr27701836ioc.186.1511433984718; Thu, 23 Nov 2017 02:46:24 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.104.16 with HTTP; Thu, 23 Nov 2017 02:46:24 -0800 (PST) In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E1826D1@SHSMSX104.ccr.corp.intel.com> References: <20171121161037.26573-1-ard.biesheuvel@linaro.org> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1826B0@SHSMSX104.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1826D1@SHSMSX104.ccr.corp.intel.com> From: Ard Biesheuvel Date: Thu, 23 Nov 2017 10:46:24 +0000 Message-ID: To: "Gao, Liming" Cc: "edk2-devel@lists.01.org" , "leif.lindholm@linaro.org" , "mw@semihalf.com" , "Zhu, Yonghong" , "daniel.thompson@linaro.org" Subject: Re: [PATCH] BaseTools/tools_def AARCH64 ARM: suppres PIE sections via linker script X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Nov 2017 10:42:08 -0000 Content-Type: text/plain; charset="UTF-8" On 23 November 2017 at 10:21, Gao, Liming wrote: > OK. I see the change to add DEF(GCC_DLINK2_FLAGS_COMMON) into ASLDLINK_FLAGS. > > Reviewed-by: Liming Gao > Thanks all Pushed as 14ca435fb6c059eaeb7fe6eedbe4738ffaf336d0 >>-----Original Message----- >>From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] >>Sent: Thursday, November 23, 2017 6:19 PM >>To: Gao, Liming >>Cc: edk2-devel@lists.01.org; leif.lindholm@linaro.org; mw@semihalf.com; >>Zhu, Yonghong ; daniel.thompson@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 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.biesheuvel@linaro.org] >>>>Sent: Wednesday, November 22, 2017 12:11 AM >>>>To: edk2-devel@lists.01.org; leif.lindholm@linaro.org >>>>Cc: mw@semihalf.com; Zhu, Yonghong ; Gao, >>>>Liming ; daniel.thompson@linaro.org; Ard >>Biesheuvel >>>> >>>>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 >>>>--- >>>> 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 >>>