From patchwork Wed Jul 27 11:26:02 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 72851 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp248547qga; Wed, 27 Jul 2016 04:26:21 -0700 (PDT) X-Received: by 10.66.170.44 with SMTP id aj12mr48718924pac.131.1469618781109; Wed, 27 Jul 2016 04:26:21 -0700 (PDT) Return-Path: Received: from ml01.01.org (ml01.01.org. [198.145.21.10]) by mx.google.com with ESMTPS id d16si6047075pfe.260.2016.07.27.04.26.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Jul 2016 04:26:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id AB4381A1E14; Wed, 27 Jul 2016 04:26:20 -0700 (PDT) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (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 681E71A1E0F for ; Wed, 27 Jul 2016 04:26:18 -0700 (PDT) Received: by mail-wm0-x236.google.com with SMTP id f65so208956331wmi.0 for ; Wed, 27 Jul 2016 04:26:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+n1GqJ6sszP7y/xSGZwTUqqEVCQrt8YcIPDOXgL8xKw=; b=PpeDcH7DDW3zt9y22WGtOWwF3+ezYef2Z2ts0rzY3UeqctZwtP1S8gHRqPoFytY6mp sz3TDjmJ/bNS7cE8Wsj1FQT2DfgReKn0WuYSbplbGQuvLLa1gW1EkabQFqEqNvGa+c58 0NVFJ2eu/unl7xCOgrCS8jmXoiV92/VeWTmhM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+n1GqJ6sszP7y/xSGZwTUqqEVCQrt8YcIPDOXgL8xKw=; b=eb5IkY/ZfWrUzkI3ePZWxlVx/cftPJMoWcCAT4k62x4JfKjKvfbgduLdEZprnR7AIF bT+gv89WtL45VgKNL/Y70m/OUlMSyUlhCVdyL96pyGIlUWNk67NIoMlzTQKvrsuvn5Wb Xe01jUG1RSBKBBZsQC1yPCpbRWXy30cWR5s1Sf6EUkxvPeYpXiOKI1EHlCWKH6QfyhXt Az4LRyclmsamJhxyKF6FD+lYrpI1Mgb7fJIpH9ZBaJw/gNe0cyFTykpoZoGARe+XPrw6 gQnl1VJQBjuHT11UYtfxoGyw8oCqNVexTVfGVLg81wnZ5ZwTgoPbRM1JD/rKwxYaRrzf psaQ== X-Gm-Message-State: AEkoouuw6SuGgXGeqAahtbbWuumFmcPO7YhZRGuSpSQOg2jWbu10VkMAm4AKQmNxdj0HhpGK X-Received: by 10.194.54.166 with SMTP id k6mr30285669wjp.48.1469618771554; Wed, 27 Jul 2016 04:26:11 -0700 (PDT) Received: from localhost.localdomain (154.red-83-36-182.dynamicip.rima-tde.net. [83.36.182.154]) by smtp.gmail.com with ESMTPSA id 190sm6638401wmk.13.2016.07.27.04.26.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 27 Jul 2016 04:26:10 -0700 (PDT) From: Ard Biesheuvel To: edk2-devel@lists.01.org, liming.gao@intel.com, yonghong.zhu@intel.com Date: Wed, 27 Jul 2016 13:26:02 +0200 Message-Id: <1469618762-7648-2-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1469618762-7648-1-git-send-email-ard.biesheuvel@linaro.org> References: <1469618762-7648-1-git-send-email-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 2/2] BaseTools AARCH64: override XIP module linker alignment to 32 bytes X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Ard Biesheuvel , leif.lindholm@linaro.org, eugene@hp.com MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" Now that GenFw converts small code model ADRP instructions to ADR on the fly, we can reduce the alignment for XIP modules, where large alignment values may cause considerable waste of flash space due to excessive padding. This limits the module size to 1 MB, but this is not a concern in practice. So set the XIP section alignment to 0x20 for DEBUG_GCC49, DEBUG_GCC5 and *_CLANG35, all of which use the small code model. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel --- BaseTools/Conf/build_rule.template | 15 +++++++++++++++ BaseTools/Conf/tools_def.template | 3 +++ 2 files changed, 18 insertions(+) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index eb4ae749fda5..9adf3918e42e 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -310,6 +310,21 @@ "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) +[Static-Library-File.SEC.AARCH64, Static-Library-File.PEI_CORE.AARCH64, Static-Library-File.PEIM.AARCH64] + + *.lib + + + $(MAKE_FILE) + + + $(DEBUG_DIR)(+)$(MODULE_NAME).dll + + + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_XIPFLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS) + "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} + + [Static-Library-File.USER_DEFINED] *.lib diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 389969408078..53a2dc6ec0ed 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -5204,6 +5204,7 @@ RELEASE_GCC49_ARM_CC_FLAGS = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-v DEBUG_GCC49_AARCH64_CC_FLAGS = DEF(GCC49_AARCH64_CC_FLAGS) -O0 -mcmodel=small DEBUG_GCC49_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 + DEBUG_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 RELEASE_GCC49_AARCH64_CC_FLAGS = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable -mcmodel=tiny RELEASE_GCC49_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS) @@ -5338,6 +5339,7 @@ RELEASE_GCC5_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS) -Os -L$(WORKSPACE)/ DEBUG_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -O0 -mcmodel=small DEBUG_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 + DEBUG_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 RELEASE_GCC5_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -mcmodel=tiny RELEASE_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -Os -L$(WORKSPACE)/ArmPkg/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 @@ -5407,6 +5409,7 @@ RELEASE_CLANG35_ARM_CC_FLAGS = DEF(CLANG35_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(P *_CLANG35_AARCH64_ASLDLINK_FLAGS = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS) *_CLANG35_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments *_CLANG35_AARCH64_DLINK_FLAGS = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 +*_CLANG35_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 *_CLANG35_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 *_CLANG35_AARCH64_PLATFORM_FLAGS = *_CLANG35_AARCH64_PP_FLAGS = DEF(GCC_PP_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)