From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.41.94; helo=nam03-dm3-obe.outbound.protection.outlook.com; envelope-from=kurt.kennett@microsoft.com; receiver=edk2-devel@lists.01.org Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0094.outbound.protection.outlook.com [104.47.41.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 41257220D4C16 for ; Tue, 14 Nov 2017 08:12:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ZICw0YqYScc4XnRHk+zzQQUBBdtYoGRHofqMcUbxEB8=; b=OwSFlOkVTmtyejidXcue0M6VCrGCKNQBDtI1urJnd5oGptpsvSmF7A+95TNI7oC8DM6wEU/SogUePNxZXClJGV6PmhYv0r1cSX+GyJjfk0oowQiV0bqhViLalLSMAz5eid1p1q5VFYJK/DDb4T7GzCgOhRADxVo2NHxpDJtLHcA= Received: from BN6PR21MB0468.namprd21.prod.outlook.com (10.172.111.146) by BN6PR21MB0833.namprd21.prod.outlook.com (10.173.205.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.0; Tue, 14 Nov 2017 16:16:46 +0000 Received: from BN6PR21MB0468.namprd21.prod.outlook.com ([10.172.111.146]) by BN6PR21MB0468.namprd21.prod.outlook.com ([10.172.111.146]) with mapi id 15.20.0260.001; Tue, 14 Nov 2017 16:16:46 +0000 From: Kurt Kennett To: Pete Batard , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH 0/4] BaseTools: Add VS2017 support, including ARM and AARCH64 Thread-Index: AQHTXUSv00b/X5wvJUKSSlwSfc/pMaMUDSaA Date: Tue, 14 Nov 2017 16:16:46 +0000 Message-ID: References: <20171114123229.3516-1-pete@akeo.ie> In-Reply-To: <20171114123229.3516-1-pete@akeo.ie> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2001:4898:80e8::595] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BN6PR21MB0833; 6:BpnNAo92rnaWMX56Fl6FPJx5h85xMG/cAVVuIjvcbPpA77tzYfzQWvtPKgYgyBOdZuZedxr1NRHTdp7JBHnkb/Ijc+8MaG2gaLmUSPi9G+2wpXOiOLffzmiAqH71OH1OZCUWaWVjobNL7nsj0Ka3K0i9ydXFsI6QP+dtSu8Bowdca5BQ1pxYBLIglbw2a8p3eueDZ5pFr5EhZqlX6bo491f/Ka6vZCcd45y1a4r4pc0UDUmQTtDPQxQhNSU1voLBd+cQzsZxd4ykM5CS7icfTWUG422047zlQ8bCrcq/4/WVcP/A6FKYOgvCkFTSploq+tuJhcKI2bHKUt+PJfB9DNBF8F82zR12jH+6Zh/v1QI=; 5:xHAetY9gjFH/ihMBUgG/0H6E4M8H9ib+U4WJGM/Ui/llE72cQq1MxpxM+UZqWU7/FPL4nBeg7o7ZF2Z8OXzKh+JPMDVeNFrrx29/tomRQ0t1LRJsO4QddLIXPj6IApBRDByAlWgjjyR1yOqPN8+VLzUtuYQMDarn6JSKkgPIMsw=; 24:sg00+C7582hmMBrmFwGChB+CPD0MpMYW9VUHdLj7pTOaDpnxL+jcvwScTPI9WGoBcsKIeqsBGImq+ENLazf7Cmrj24WpBWs/rxZJuJ1Wv9M=; 7:q4kjVEsfZI6/cEG4FhAtMTY6E0P8LFiOYZnJ90PwqLGe+GDPRtfXJV9DX4HZJocrfUrUTFvo10miEmxge3MMYXpPfuZ3FwOkAu3hedDzZlqzGe1ckYVQ6cmC05vMrE2bK+grAWnxVhc+NvEEhP6H1FPYgYMoy6G2BYBXVEVtAl5XlhL1skZ37frfhMXUdoTzduBJ0D0cgogHJlsCiM2wJesBNWppIrZ6IgeY5aA6blDRP9iEEe19VOmKwxkY0kIa x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 8abf9230-31d1-445b-b114-08d52b7b1a85 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603258); SRVR:BN6PR21MB0833; x-ms-traffictypediagnostic: BN6PR21MB0833: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(189930954265078)(162533806227266)(219752817060721); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(2401047)(8121501046)(5005006)(3231022)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6055026)(61426038)(61427038)(6041248)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR21MB0833; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR21MB0833; x-forefront-prvs: 04916EA04C x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(376002)(39860400002)(346002)(47760400005)(13464003)(189002)(199003)(6246003)(25786009)(8936002)(50986999)(76176999)(54356999)(305945005)(316002)(22452003)(74316002)(81156014)(110136005)(81166006)(5660300001)(8676002)(72206003)(2950100002)(14454004)(86362001)(7736002)(99286004)(7696004)(966005)(86612001)(101416001)(105586002)(6506006)(6116002)(102836003)(106356001)(10290500003)(478600001)(8990500004)(77096006)(6306002)(9686003)(53546010)(68736007)(3660700001)(55016002)(2906002)(33656002)(3280700002)(97736004)(2900100001)(6436002)(2501003)(10090500001)(229853002)(53936002)(189998001)(19627235001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR21MB0833; H:BN6PR21MB0468.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Kurt.Kennett@microsoft.com; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8abf9230-31d1-445b-b114-08d52b7b1a85 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2017 16:16:46.6546 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR21MB0833 Subject: Re: [PATCH 0/4] BaseTools: Add VS2017 support, including ARM and AARCH64 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: Tue, 14 Nov 2017 16:12:41 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Does this build and boot a platform? This should not be committed until a platform is building and booting to UE= FI shell, IMO. K2 -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Pete= Batard Sent: Tuesday, November 14, 2017 4:32 AM To: edk2-devel@lists.01.org Subject: [edk2] [PATCH 0/4] BaseTools: Add VS2017 support, including ARM an= d AARCH64 Seeing that Visual Studio Update 4 finally added native ARM64 compilation s= upport and this is an open task: https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.c= om%2Ftianocore%2Ftianocore.github.io%2Fwiki%2FTasks&data=3D02%7C01%7Ckurt.k= ennett%40microsoft.com%7C0062ea8181264455563b08d52b5bd042%7C72f988bf86f141a= f91ab2d7cd011db47%7C1%7C0%7C636462595702607346&sdata=3DL4JTYL92%2FYzobAaoY5= GiTevCKF2f3KhByhmJHFCeVc4%3D&reserved=3D0 This series is broken down into: - A preliminary patch, to eliminate new warnings that would be produced for VS2017/IA32 - IA32 + X64 support - ARM support - AARCH64 support Notes: - Considering that the multiplication of toolchain flavours is probably not= in our best interest when it comes to maintenance, I deliberately chose not = to create extra VS2017 variants (for x64, ASL and EBC). For one thing, I had some issues with the x64 tools for ARM compilation (which may very well h= ave been my own), and I'd rather see the variants being added after their nee= d has been justified by their potential users, rather than preemptively. - ARM and ARM64 should be considered EXPERIMENTAL at this stage. I've had some good success compiling and running moderately complex drive= rs (e.g. ZFS file system driver) using the proposed patches on ARM/ARM64, an= d I am also confident that simple applications should be fine, but more work = is required to produce QEMU ARM/AARCH64 firmware images, mostly due to missi= ng .asm files. Since most of the RVCT .asm files can be reused mostly unchan= ged for MSFT, I was able to cajole the ARM process to go up to the QEMU image generation (which failed due to some alignment issue), which gives me som= e confidence that we should eventually be able to use the MSFT toolchain to produce working images for ARM and ARM64, but this will require some work= . - While the VS2017 version of IA32 and X64 do not silence any level 4 warni= ngs by default, to bring them to par with VS2015, the ARM and ARM64 versions have to silence 3 of them, as VS is a bit less leniant than gcc/Clang. Again, it should be possible to remove the silencing of these warnings eventually, but this will require some work. - Finally, you'll see that a whole section of build_rule.template had to be duplicated just so that we could remove the --convert-hex option for the MSFT ARM/ARM64 assemblers. Maybe there is a better way to achieve the removal of that option, but I haven't found it. Regards, /Pete Pete Batard (4): MdeModulePkg, NetworkPkg: Fix VS2017 IA32 warnings BaseTools: Add VS2017 IA32 and X64 support BaseTools: Add VS2017 ARM support BaseTools: Add VS2017 AARCH64 support ArmPkg/Library/CompilerIntrinsicsLib/Arm/rtdiv.asm = | 255 ++++++++++++++++++++ ArmPkg/Library/CompilerIntrinsicsLib/Arm/rtsrsh.asm = | 45 ++++ ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf = | 13 +- ArmPkg/Library/CompilerIntrinsicsLib/memcpy_ms.c = | 30 +++ ArmPkg/Library/CompilerIntrinsicsLib/memset_ms.c = | 29 +++ BaseTools/Conf/build_rule.template = | 30 +++ BaseTools/Conf/tools_def.template = | 168 +++++++++++++ BaseTools/set_vsprefix_envs.bat = | 9 + MdeModulePkg/Application/UiApp/FrontPageCustomizedUiSupport.c = | 2 +- MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerCus= tomizedUiSupport.c | 2 +- MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c = | 2 +- MdeModulePkg/Universal/Network/MnpDxe/MnpMain.c = | 2 +- MdePkg/Include/Base.h = | 15 ++ MdePkg/Library/BaseLib/AArch64/CpuBreakpoint.asm = | 39 +++ MdePkg/Library/BaseLib/AArch64/DisableInterrupts.asm = | 37 +++ MdePkg/Library/BaseLib/AArch64/EnableInterrupts.asm = | 37 +++ MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm = | 49 ++++ MdePkg/Library/BaseLib/AArch64/MemoryFence.asm = | 38 +++ MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm = | 101 ++++++++ MdePkg/Library/BaseLib/AArch64/SwitchStack.asm = | 69 ++++++ MdePkg/Library/BaseLib/Arm/CpuBreakpoint.asm = | 5 +- MdePkg/Library/BaseLib/BaseLib.inf = | 27 ++- MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf = | 5 +- MdePkg/Library/BaseStackCheckLib/BaseStackCheckNull.c = | 18 ++ NetworkPkg/HttpBootDxe/HttpBootImpl.c = | 2 +- NetworkPkg/HttpBootDxe/HttpBootSupport.c = | 2 +- Nt32Pkg/Sec/SecMain.inf = | 2 + 27 files changed, 1019 insertions(+), 14 deletions(-) create mode 100644 = ArmPkg/Library/CompilerIntrinsicsLib/Arm/rtdiv.asm create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/Arm/rtsrsh.asm create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memcpy_ms.c create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memset_ms.c create mode 100644 MdePkg/Library/BaseLib/AArch64/CpuBreakpoint.asm create mode 100644 MdePkg/Library/BaseLib/AArch64/DisableInterrupts.asm create mode 100644 MdePkg/Library/BaseLib/AArch64/EnableInterrupts.asm create mode 100644 MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm create mode 100644 MdePkg/Library/BaseLib/AArch64/MemoryFence.asm create mode 100644 MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm create mode 100644 MdePkg/Library/BaseLib/AArch64/SwitchStack.asm create mode 100644 MdePkg/Library/BaseStackCheckLib/BaseStackCheckNull.c -- 2.14.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Flists.01= .org%2Fmailman%2Flistinfo%2Fedk2-devel&data=3D02%7C01%7Ckurt.kennett%40micr= osoft.com%7C0062ea8181264455563b08d52b5bd042%7C72f988bf86f141af91ab2d7cd011= db47%7C1%7C0%7C636462595702607346&sdata=3DbQcyjBCjCRoXCWXiEcTKhFoKPaOvzlGxR= ozfwXYA35U%3D&reserved=3D0