From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:400c:c09::242; helo=mail-wm0-x242.google.com; envelope-from=pete@akeo.ie; receiver=edk2-devel@lists.01.org Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) (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 6B4442216114C for ; Wed, 14 Feb 2018 05:03:23 -0800 (PST) Received: by mail-wm0-x242.google.com with SMTP id b21so21899258wme.4 for ; Wed, 14 Feb 2018 05:09:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akeo-ie.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+jmXkiw7qDQ/WGqTk6+FBYyOz156HPz2N3GZVVuSwIg=; b=eqBf0efU56urMa57ZACngquPMqpa/NGYlm4q8lTRBlspCjkmkO7ub7LuK5jHXUtooj CgXIjOxbytiltF7QbF3jgEz94NdPUk/rGqMTLyo9q8YshDaWGw+gdokIcpNaer/Nr8sd mUAg+nQFTPHQn1nqyk12vOHtEB9LLQKQj8P8ukPoZO7navIVffVNTk9JApGsM4bS3gBx 9ciNjjJMUwyQh82OsCttfxJnlPt/N5CP950JxE418bxIXAuZXWB7e4THQDrXhdMWtSJ3 lynPoxf9yIh3W96hBogsrVgxaftCTLy5kwowGPgR2iWO3OSjZ4W8nEFm9e7ejUFO5jtR hyPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+jmXkiw7qDQ/WGqTk6+FBYyOz156HPz2N3GZVVuSwIg=; b=Lgnq7EH09gISwBjaBgE4wuga3U7/1TQ9huGwumqXyjwidUZfsHed9JcKjTqw7tzkmw wIodFJ0YGAmUHVFG5kJmiLUDwuL+6CJ5tsipFrNdjHOyhRXo/hOuuajELo2CNMuC6eKX yXaPWBks0WtT1C0n5ww6PFX8mZOTndT6xwmusr7C1W6EDkQzAlFip2h3fBnS/3jxSCWb f+2ZhbeGhepNvBRMJhV5fZ1qmUjf10XZ1YSBH4BLMr37pVICgRjRXXEggA+Kfa1ZM1KM KHJcnP966g5+AkBZD5tgglb2os28jM7uuCc2CtEyjbI+NiadRTuUUzi0qdjA+JDDIX/j KJhw== X-Gm-Message-State: APf1xPAQLRAwOa1nZzE/o8+R4HRWpyiFPlXFEK0EGaobDZP9hKtqgypj iOzUaFfaEkCi4Ed87By+MaVxaFHVWwE= X-Google-Smtp-Source: AH8x227etn61EeMYoxFGlm4F9djDFleOZo3ONTIq7p/p6WN+YmQtrcjGdgASGxzhYqE9dtchl/GECw== X-Received: by 10.80.214.141 with SMTP id r13mr6956705edi.288.1518613753504; Wed, 14 Feb 2018 05:09:13 -0800 (PST) Received: from localhost.localdomain ([84.203.84.137]) by smtp.gmail.com with ESMTPSA id b13sm1262955edk.59.2018.02.14.05.09.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 14 Feb 2018 05:09:12 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Cc: liming.gao@intel.com, ard.biesheuvel@linaro.org Date: Wed, 14 Feb 2018 13:08:57 +0000 Message-Id: <20180214130857.5020-5-pete@akeo.ie> X-Mailer: git-send-email 2.9.3.windows.2 In-Reply-To: <20180214130857.5020-1-pete@akeo.ie> References: <20180214130857.5020-1-pete@akeo.ie> Subject: [PATCH 4/4] BaseTools/Conf: Add VS2017/ARM64 support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Feb 2018 13:03:24 -0000 Build options for ARM64 are the same as for ARM, except for /BASE:0 which is removed from DLINK flags to avoid LNK1355 error: invalid base address 0x0; ARM64 image cannot have base address below 4GB Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pete Batard --- BaseTools/Conf/build_rule.template | 2 +- BaseTools/Conf/tools_def.template | 32 ++++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 77ed282e0311..308505b3dca5 100755 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -206,7 +206,7 @@ # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii -[Assembly-Code-File.COMMON.ARM] +[Assembly-Code-File.COMMON.ARM,Assembly-Code-File.COMMON.AARCH64] # Remove --convert-hex for ARM as it breaks MSFT assemblers ?.asm, ?.Asm, ?.ASM diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 427ad60b0e26..703019129f79 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -80,6 +80,7 @@ DEFINE VS2017_BIN_HOST = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\DEF(VS2017_HOST DEFINE VS2017_BIN_IA32 = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x86 DEFINE VS2017_BIN_X64 = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x64 DEFINE VS2017_BIN_ARM = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm +DEFINE VS2017_BIN_AARCH64 = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm64 DEFINE WINSDK_BIN = ENV(WINSDK_PREFIX) DEFINE WINSDKx86_BIN = ENV(WINSDKx86_PREFIX) @@ -329,7 +330,7 @@ DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc # Intel(r) ACPI Compiler (iasl.exe) from # https://acpica.org/downloads # VS2017 -win32- Requires: -# Microsoft Visual Studio 2017 version 15.2 or later +# Microsoft Visual Studio 2017 version 15.2 (15.4 for ARM64) or later # Optional: # Required to build EBC drivers: # Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler) @@ -337,7 +338,7 @@ DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc # Intel(r) ACPI Compiler (iasl.exe) from # https://acpica.org/downloads # Note: -# Building of XIP firmware images for ARM is not currently supported (only applications). +# Building of XIP firmware images for ARM/ARM64 is not currently supported (only applications). # /FILEALIGN:4096 and other changes are needed for ARM firmware builds. # DDK3790 -win32- Requires: # Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830 @@ -4200,6 +4201,33 @@ NOOPT_VS2017_ARM_ASM_FLAGS = /nologo RELEASE_VS2017_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data NOOPT_VS2017_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +##################### +# AARCH64 definitions +##################### +*_VS2017_AARCH64_CC_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe +*_VS2017_AARCH64_VFRPP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe +*_VS2017_AARCH64_SLINK_PATH = DEF(VS2017_BIN_AARCH64)\lib.exe +*_VS2017_AARCH64_DLINK_PATH = DEF(VS2017_BIN_AARCH64)\link.exe +*_VS2017_AARCH64_APP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe +*_VS2017_AARCH64_PP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe +*_VS2017_AARCH64_ASM_PATH = DEF(VS2017_BIN_AARCH64)\armasm64.exe +*_VS2017_AARCH64_ASLCC_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe +*_VS2017_AARCH64_ASLPP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe +*_VS2017_AARCH64_ASLDLINK_PATH = DEF(VS2017_BIN_AARCH64)\link.exe + + *_VS2017_AARCH64_MAKE_FLAGS = /nologo + DEBUG_VS2017_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi- +RELEASE_VS2017_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi- +NOOPT_VS2017_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi- + + DEBUG_VS2017_AARCH64_ASM_FLAGS = /nologo /g +RELEASE_VS2017_AARCH64_ASM_FLAGS = /nologo +NOOPT_VS2017_AARCH64_ASM_FLAGS = /nologo + + DEBUG_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG +RELEASE_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data +NOOPT_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG + ################## # EBC definitions ################## -- 2.9.3.windows.2