From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-x22a.google.com (mail-io0-x22a.google.com [IPv6:2607:f8b0:4001:c06::22a]) (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 6488721D1E2F3 for ; Fri, 25 Aug 2017 03:28:14 -0700 (PDT) Received: by mail-io0-x22a.google.com with SMTP id s101so6479478ioe.0 for ; Fri, 25 Aug 2017 03:30:50 -0700 (PDT) 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=h3JONObA/e7LxtLoUrj41k45JoFMhsjjjdzO3+gl/9w=; b=Ut1V4h0psg4mfA6gft06GR+fS/mj4WFyVsEm5kzi/oP3jT8V1WBJ4wEKTXXf72ybHQ +JiPWZBvhd0QBIv+09eBUYdgAnklmd5mlDz9PcKTZRmFa3J024iHCqt/RhUAse1pKONY Z8IiC6eNCnx3IX/Y56aA794uX4Vguk799nc3E= 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=h3JONObA/e7LxtLoUrj41k45JoFMhsjjjdzO3+gl/9w=; b=bNShUG/jXxcZP4sLHfEsxdgDByAVfM0mCHPSoyafYifrsFXC/wm23ZzXd3ZLAqbfVf Cv79cmoePhKdGGfmBdVYO2Oh2RqktDS77zvnhvuPGLsgtacds7RbruzfA4D69notULtF XdZzvXan1JNWsEz9GYoNxwHsgpUFOg7qSCT2qPZggD/ayoWWQpES81QwoDgn7AdI5Irx jepRlJPGbYcy38cDIjtUNPGxOOfixHaUOZnLI1pj+6P+QliiUwKmfm/76QAmpMgMWj5R hVxvoK5c6tla5wSBH3kB4ioPhBfCKG4MykCk82mJnoVwnt6UR/1AXawAjxaJGOv2vNJy z/yg== X-Gm-Message-State: AHYfb5jEUySsj722SaNRsPWf7SipF1RMR0P5CLGKLrNopVAveLfhob6W ODyv2pB3yTdOyRCmXPOwW6Oi/jR1PIV/fP0= X-Received: by 10.107.6.22 with SMTP id 22mr7831808iog.190.1503657049703; Fri, 25 Aug 2017 03:30:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.162.1 with HTTP; Fri, 25 Aug 2017 03:30:48 -0700 (PDT) In-Reply-To: References: <1503556125-7024-1-git-send-email-liming.gao@intel.com> From: Ard Biesheuvel Date: Fri, 25 Aug 2017 11:30:48 +0100 Message-ID: To: Laszlo Ersek Cc: Liming Gao , "edk2-devel@lists.01.org" Subject: Re: [Patch] BaseTools: Enable --whole-archive in GCC tool chain as the default option 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: Fri, 25 Aug 2017 10:28:14 -0000 Content-Type: text/plain; charset="UTF-8" On 25 August 2017 at 11:28, Laszlo Ersek wrote: > On 08/24/17 08:28, Liming Gao wrote: >> https://bugzilla.tianocore.org/show_bug.cgi?id=581 > > (1) I suggest adding one sentence (before you push the patch): > > "The --whole-archive linker option helps us catch multiply defined symbols." > >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Liming Gao >> Cc: Yonghong Zhu >> --- >> 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 24956e4..a85afd5 100755 >> --- a/BaseTools/Conf/tools_def.template >> +++ b/BaseTools/Conf/tools_def.template >> @@ -4377,7 +4377,7 @@ DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 >> DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables >> DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 >> DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable >> -DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map >> +DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive >> DEFINE GCC44_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) >> DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64 >> DEFINE GCC44_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON) >> @@ -4457,7 +4457,7 @@ DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) >> DEFINE GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) >> DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 >> DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable >> -DEFINE GCC49_IA32_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map >> +DEFINE GCC49_IA32_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive >> DEFINE GCC49_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) >> DEFINE GCC49_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64 >> DEFINE GCC49_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS) >> > > This patch doesn't apply directly on current master, due to context > differences introduced by 2f7f1e73c10f ("BaseTools: Add the missing -pie > link option in GCC tool chain", 2017-08-23). > > However, it does apply to the parent of 2f7f1e73c10f, and from there it > can be rebased without manual conflict resolution. > > I did just that, and tested the patch with GCC48, IA32, IA32X64, and X64 > OVMF. It works for me: > > Tested-by: Laszlo Ersek > > (2) If Ard agrees, can you please post a similar patch for ARM/AARCH64, > GCC? (I think that should be a separate patch, so that I don't have to > re-test the IA32/X64 change.) > Didn't we decide this should be DEBUG/NOOPT only, due to code size increase?