From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.9208.1622212289199331814 for ; Fri, 28 May 2021 07:31:29 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=qQDTCXEK; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: ray.ni@intel.com) IronPort-SDR: H8Dl/se/Kt0Ug5Se8/dgGKU5gICWcDhm3oX67JvWrI1SZKVa9iW1Xw5kmJKA3CCzUgeCFgf1YA lcaUXgGPKHZw== X-IronPort-AV: E=McAfee;i="6200,9189,9998"; a="264160380" X-IronPort-AV: E=Sophos;i="5.83,229,1616482800"; d="png'150?scan'150,208,217,150";a="264160380" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 May 2021 07:31:27 -0700 IronPort-SDR: gCillMxFQFU14NLfXyVKaiq+nwfL7DZdcy69cXvXtviXJmwOITYvBYYUqArTEnvCsPpnMP9uzL 0PjkVALiwPpQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,229,1616482800"; d="png'150?scan'150,208,217,150";a="548603937" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga001.fm.intel.com with ESMTP; 28 May 2021 07:31:27 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Fri, 28 May 2021 07:31:26 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Fri, 28 May 2021 07:31:26 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Fri, 28 May 2021 07:31:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P3d9p+AnVlnrhJtLCJSht/ZGgLyiCKwTmr05SjnJTgQBuPu6u9MelzP6T7i/yV5w19M3iiUGv3NZwSJaFKLKgxtOrLZo7ofzC2DjRrd1wDRjyigfMkjm4yWkZKxuatkCo42MNrc/QxxySCYzl5pZrXCsASgMoryxu7cCvqqP2zUEBzikRjwFadDCSQLpeYI/1PO8uDnrGNkfgWEtHogx3Q735fjdEAvNmcrZ0eB5Lw0c6upR17FhJ5irboG8+uLxDOOEOSQE2ah8dJ9bQP9XhcIj0beiOtnpyjkw2CetAIYq4fuU3m+Db5T/xkzFaE5uGbmaZ+m/kT6HZqjvudhjSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Nf3pXyQ8DfBcr5O2nyHQ81hQBBL32PmLYbN52/7SUs0=; b=VZHpqz6Riu2Zfj3yB4ROwAn2qlT4f+OPRazvDXpJV58GSxT3yAxhF3sBCxQrrAaSDMG/0ODQHTBUhnk5Br2DBAg7CpqC7lV4DLiOAC/a/UMIS5dl+/oTajIdSskNHixWAJhlTgjbcs/bwNxoJp3qNW/0iyk3l8iOv1d724u+Ehlaku7arzwmaMs2/i/ZJkuQT9DbRx72owh689sDZbN6cl3LJs+LlKMZc9r/lRWOlLMwXl/+KHxeWrFKFCjvDR7iLAvQwztgczs/rDEmLbgQpHcea3XcJxeA2xepb18xo3+GP+x/Fo76TSpa1B3WS7+GcYgugID84m9cuLQeQtvwMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Nf3pXyQ8DfBcr5O2nyHQ81hQBBL32PmLYbN52/7SUs0=; b=qQDTCXEK/2CxlQuZTjXRXwMXBJplivnuISUixOxAwY1zkTjPRB2ZK3hznnE7y8JwQtqSydejTEfo0PcrtEsYFWwprMPWs700B9bP/WoxFjtu5OUbpv4NQaARqmuqjjhtnqo9wSxAii2w0WzHYrEsCEJdBcz2MTE9AXNglbHtYLk= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MWHPR11MB1520.namprd11.prod.outlook.com (2603:10b6:301:b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.21; Fri, 28 May 2021 14:31:25 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::59d6:8b94:55bf:36e7]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::59d6:8b94:55bf:36e7%5]) with mapi id 15.20.4173.026; Fri, 28 May 2021 14:31:24 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "Shi, Steven" Subject: Re: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANGDWARF toolchain Thread-Topic: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANGDWARF toolchain Thread-Index: AQHXUiMs83C0YJ231USg24x1+Nto6qr4NJ0AgADBcug= Date: Fri, 28 May 2021 14:31:24 +0000 Message-ID: References: <20210526082310.1597-1-ray.ni@intel.com> <20210526082310.1597-2-ray.ni@intel.com> ,<000201d7536c$72484030$56d8c090$@byosoft.com.cn> In-Reply-To: <000201d7536c$72484030$56d8c090$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [124.77.195.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 087d0692-5728-44c5-73c5-08d921e545ab x-ms-traffictypediagnostic: MWHPR11MB1520: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dnzXfzxJdRnfbQXLhA+6DlDNBEKY1RmRjrrXdmTVQ8n5j48iYAHU5OGCSXMPDu4ae2u5gOvERZoVtfdaXwMwF44jbSgmSsW7hUnDsEj+fW5wfuM2sUo0vxo7vN7mB6n8O+k3hP9KkZpghFg4G8XRuseyEQ4+0YutvMxH+MMcys9smVA7jV/WCsKSDxiil4TP+WcIY5c+OIBgWsWWI3r1GJsgr3/UHw+LG3UOnNO1UGKrnjwy5OUphFdcUCTzvT8twk5+we0G8V0yhXaLIhpLub5iFCtL6eDKgVqRC1KRJJgjgfOmkJRVdhL3paKAJZBV8/ZGe2kKn6Ssi9pLxy5aqzgmpI6QGkX4i3Bi3t3rDEuR//Tt1+ki1IXy0iWIj3lr1nPzvqfxmLooIKtK1+VnV2sAYayTYzoB6LjAlOxgjZHQVmHxLFMPqjRsH+ELk/IozfAOTDpWYicmcfMjYAJ0PHgljpNorRN4UlXuNH7g15T2T9SyD7jyVUhWS7zsOs6yUZoEb7VSeCBg/bQg5iuEwak5cesbnbSxt+4G0FkE+PCA8e0e96qws1d31tvtX5FloWG54cdFntk++uWoSTUZNxwugYnQcTdh1LApGsxyaYupoKHkC0QwXz7gv4di7W5oJiaFPyFZ9OiBeiOcfmPxCXzfX/HZ2vsy89ipMsn1Tp35mS9mNMziiURER8FFLzUpd5LltqqtV1ULXHPEvneeFRy25vf8ap2ZdD+Y0vTzrTicMF4AOmp5hlaR8h/jLXCG x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(396003)(366004)(39860400002)(136003)(346002)(55016002)(66946007)(2906002)(99936003)(66616009)(52536014)(66476007)(86362001)(110136005)(166002)(19627235002)(76116006)(83380400001)(316002)(8936002)(38100700002)(91956017)(122000001)(186003)(66446008)(26005)(30864003)(9686003)(76236003)(33656002)(71200400001)(6506007)(53546011)(6636002)(478600001)(966005)(45080400002)(7696005)(64756008)(8676002)(5660300002)(66556008)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?RWpBaWY1NGsxT3lOVkNNM2V4WUgzM0F6R1FOZlZIK2dOODhoT3ZXQUdqZnAv?= =?gb2312?B?ZGY4RTVXeU9pUkQ3WVhBaWxPQjltM2kzMit4anZ0eDdwaUhJWVJwT0NrS0N0?= =?gb2312?B?UHVIZmwzQmVwWkY2RmptU3VhSW5yRWphTGtobWsxdVVGUzJFNmNKaHIybStB?= =?gb2312?B?bkJlZTJscDN3N1VQQUZtY0hZTDBlRXV6eGpvZUNORTNvbzlIS1o0cUFBdmU3?= =?gb2312?B?MWNGL1R4Z1dwNVBMQWptSnZUdEtjYTg4ajhNMnZqZ0QwOUpCekxVZkZaQkl6?= =?gb2312?B?OWZrK01UWnRZNFdwWlRoT04xV2pkR3BpU0xXT0xQSFFBQkx5NkVFWFE5NFFQ?= =?gb2312?B?aXo0dFVQQnNaSlhmcFpSM1NWSFNYdzJPcDV0cWs3Y3EzM24xNDdZUzhnZHlx?= =?gb2312?B?Q3c3R0UydlIxZmJlaXlZaGR3ekFsVjVHaEhobWRSdjA4d1RCMVVobzlLTGdU?= =?gb2312?B?aVgrUDhsZlhDK2NBSEFjK1FtQ2dINWRqZEFkRmgyQ1lqRDZudkk3bjl6cExy?= =?gb2312?B?ZlNGb1E3dDlZbFZtRDdSSEVzbFlGZitTWmJuTXhLQzkvcE4wNlRQWHREdDMw?= =?gb2312?B?VTRyak4wNVh6R05KVXJlYVFqQ1lTamFpKzh4V2gweklvVVFTQklqd2V6Y2VW?= =?gb2312?B?cU1NMmM5bXdCTFlITDl3YTJJOTFVL0VrbjVyNXRvRitMbDVZMEdETGlpQnZw?= =?gb2312?B?RmlvZDZYSXE3VDVrK1ROYVlUSk1TMVZUeVd4MEdDM2lnVG1LczdnZDdoTGlv?= =?gb2312?B?WWdrNE1oejVPOG5rNmZ3czl1aEx5UlNrdVBJVGU5cGxyRm1VbHRZRE5HcGhm?= =?gb2312?B?Q1NHYWNlcU9HUEw4cUEzRzNaK1VPVUtvbjBPRENza0xqa0g4L3pXa3lRZUVx?= =?gb2312?B?a0dXTndYaXdwVzZWZjVqQnZsVnJtcW5VNk1SdVh6M1RTalkvQWIrNGhpb1lQ?= =?gb2312?B?YkhpQWg5WG9TK25vL2laeTBnU2JwVWw2eEFEd3lzWnhXUGNZdjAzOGErSzRP?= =?gb2312?B?VXJML1c2eE1NcklNbUVWTmpuVCtIc2hoeHg3OUFQU3hkT0JyejVnOFI3RHV0?= =?gb2312?B?S0FwdHg5V1ErUGN4ODNwNTdWUlhmeVJ0RUxkK3hyNnkrZ2Zsd2VoOWtlUTBT?= =?gb2312?B?TUtLYWsxZ2Y4UzlaNnQ4cXJIaGY2L01VM0xhMjJsQ0kvdUNKYStYVnhaTVNr?= =?gb2312?B?NTdBNUZtUFU4NGl4OEFiQVVjZ0xpYnZhNXVUN3BuUHUxNGlUZ0RMeFg4T2dk?= =?gb2312?B?aFBOd0hrdmdpejJCOEZsWmZKZjdGUmdIVnVCd0lMU05YaEpLcEUxb0NuYXJT?= =?gb2312?B?MTNsR0hDSVhDby9GUklVSkdGdkh1VkYzMWs4WDRKWDF4RlBtd3F4eGx6V3RY?= =?gb2312?B?Sys5L1JaaXFQNEdnTC9GOThFODQzbFoxc0dKQ0txZ3pzRkpPVDU2QmgyWDZK?= =?gb2312?B?WW5qdG9qY3JXekczZjVKc3l1VlRSL1p5OEdRMTlacTRMYmF1TlJWUlFzMXZz?= =?gb2312?B?VVhYTGY3YlRkNnQxMGpaQ3BKZVBseFMwc2xlVDBKQ3ZDSGJZM2pKNk92cU14?= =?gb2312?B?bmV6VWJYTmcwMFk1RVNqUUMyYzFaNkIyNndhWnIwQmtxamhybUNlcjJTOXhH?= =?gb2312?B?aW1YMzk4WmxyL1RvanhsblkxS1M1OUROdWwwL0xRSk1UYTZNbnRRRklTREhz?= =?gb2312?B?dHgxS2MxUjVHeUdiNjRYcTNaZytmV0ZpcWNvUkNUclJFRkc2aEdpeksyMGVu?= =?gb2312?B?ZkpVVkt1UnBOakI1YmVUQldhYXM0Z1p2U0U5Q2QwWW0wRHR0eTJWcTJVV2Y5?= =?gb2312?B?VGtpdUh4eXpqZnhJZTZPUT09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 087d0692-5728-44c5-73c5-08d921e545ab X-MS-Exchange-CrossTenant-originalarrivaltime: 28 May 2021 14:31:24.8801 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zZN9OHvx7Y7VifvNfto+l1bjn8423RF4NWByDfJ7/G3kxsMC0KUZYIHCnSi4tC50Ha7t/qM2/b8IJu9ZBIZwUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1520 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 75840 Content-Language: en-US Content-Type: multipart/related; boundary="_004_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_"; type="multipart/alternative" --_004_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_ Content-Type: multipart/alternative; boundary="_000_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_" --_000_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 TGltaW5nLA0KdGhhdCBpcyBub3QgdGhlIGludGVudGlvbiBvZiB0aGlzIG5ldyB0b29sY2hhaW4u DQp3ZSB3YW50IHRvIGhhdmUgYSB0b29sY2hhaW4gdGhhdCBjYW4gZ2VuZXJhdGUgZWxmLiBvciBj YW4geW91IHN1Z2dlc3QgYSBuZXcgbmFtZSBmb3IgdGhpcyB0b29sY2hhaW4/DQoNCnRoYW5rcywN CnJheQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IGRldmVsQGVkazIu Z3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gb24gYmVoYWxmIG9mIGdhb2xpbWluZyA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KU2VudDogRnJpZGF5LCBNYXkgMjgsIDIwMjEgMTA6 NTI6MDYgQU0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ OyBTaGksIFN0ZXZlbiA8c3RldmVuLnNoaUBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPg0KU3ViamVjdDogu9i4tDogW2VkazItZGV2ZWxdIFtQQVRDSCAxLzRdIEJhc2VUb29s czogQ3JlYXRlIENMQU5HRFdBUkYgdG9vbGNoYWluDQoNCg0KUmF5Og0KDQogSSB3b3VsZCBsaWtl IHRvIHN1Z2dlc3QgQ0xBTkdEV0FSRiBhbHNvIGdlbmVyYXRlIEVGSSBpbWFnZS4gSWYgc28sIHRo ZSBwZW9wbGUgY2FuIHVzZSB0aGlzIHRvb2wgY2hhaW4gZm9yIEVGSSBkZXZlbG9wbWVudCB3aXRo IERXQVJGIGZvcm1hdCBkZWJ1ZyBzeW1ib2wuDQoNCg0KDQogIEluIGRsbCBnZW5lcmF0aW9uIHBo YXNlLCBDTEFOR0RXQVJGIHN0aWxsIGdlbmVyYXRlcyBkbGwgaW1hZ2UsIHRoZW4gY29weSBkbGwg aW1hZ2UgdG8gZWxmIGltYWdlLiBJbiBFRkkgZ2VuZXJhdGlvbiBwaGFzZSwgZGxsIGltYWdlIHdp bGwgYmUgY29udmVydGVkIHRvIEVGSSBpbWFnZS4NCg0KDQoNClRoYW5rcw0KDQpMaW1pbmcNCg0K t6K8/sjLOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ILT6se0g U3RldmVuIFNoaQ0Kt6LLzcqxvOQ6IDIwMjHE6jXUwjI2yNUgMTk6MzUNCsrVvP7IyzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQrW98ziOiBSZTogW2Vk azItZGV2ZWxdIFtQQVRDSCAxLzRdIEJhc2VUb29sczogQ3JlYXRlIENMQU5HRFdBUkYgdG9vbGNo YWluDQoNCg0KDQpTb21lIHN1Z2dlc3Rpb25zOg0KDQoNCg0KICAxLiAgVGhlcmUgYXJlIG1hbnkg YmxhbmtzIGFwcGVuZGluZyB0aGUgbGluZSChsCsgICAgICAgICIkKERMSU5LKSIgLW8gJHtkc3R9 ICQoRExJTktfRkxBR1MpIEAkKFNUQVRJQ19MSUJSQVJZX0ZJTEVTX0xJU1QpICAgICAgICChsA0K DQoNCg0KW2NpZDppbWFnZTAwMS5wbmdAMDFENzUzQUUuMzJFRTQ1NTBdDQoNCg0KDQogIDEuICBX ZSBuZWVkIGEgdG9vbGNoYWluIGRlcGVuZGVuY3kgZGVzY2lycHRpb24gaW4gdGhlIEJhc2VUb29s c1xDb25mXHRvb2xzX2RlZi50ZW1wbGF0ZS4gQmVsb3cgaXMgdGhlIGV4YW1wbGUgZm9yIENMQU5H UERCLiBQbGVhc2UgYWRkIG9uZSBmb3IgdGhlIENMQU5HRFdBUkYuDQoNCiMgICBDTEFOR1BEQiAt TGludXgsIFdpbmRvd3MsIE1hYy0gIFJlcXVpcmVzOg0KDQojICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDbGFuZyA5IG9yIGFib3ZlIGZyb20gaHR0cDovL3JlbGVhc2VzLmxsdm0ub3JnLw0K DQojICAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9uYWw6DQoNCiMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlcXVpcmVkIHRvIGNvbXBpbGUgbmFzbSBzb3VyY2U6DQoNCiMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFzbSBjb21waWxlciBmcm9tDQoNCiMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTkFTTSAtLSBodHRwOi8vd3d3Lm5hc20udXMvDQoNCiMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkIHRvIGJ1aWxkIHBsYXRmb3JtcyBvciBB Q1BJIHRhYmxlczoNCg0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlbChyKSBB Q1BJIENvbXBpbGVyIGZyb20NCg0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRw czovL2FjcGljYS5vcmcvZG93bmxvYWRzDQoNCg0KDQogIDEuICBXZSBjb3VsZCBtZXJnZSB0aGUg Q0xBTkczOCBhbmQgdGhlIENMQU5HRFdBUkYgdG9vbGNoYWlucyB0b2dldGhlciBpbiB0aGUgZnV0 dXJlLg0KDQoNCg0KDQoNClRoYW5rcw0KDQpTdGV2ZW4gU2hpDQoNCg0KDQoNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvPG1haWx0 bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gPGRldmVsQGVkazIuZ3JvdXBzLmlvPG1haWx0bzpkZXZl bEBlZGsyLmdyb3Vwcy5pbz4+IE9uIEJlaGFsZiBPZiBOaSwgUmF5DQoNCj4gU2VudDogV2VkbmVz ZGF5LCBNYXkgMjYsIDIwMjEgNDoyMyBQTQ0KDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzxt YWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+DQoNCj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQ QVRDSCAxLzRdIEJhc2VUb29sczogQ3JlYXRlIENMQU5HRFdBUkYNCg0KPiB0b29sY2hhaW4NCg0K Pg0KDQo+IFNpZ25lZC1vZmYtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbTxtYWlsdG86cmF5 Lm5pQGludGVsLmNvbT4+DQoNCj4gLS0tDQoNCj4gIEJhc2VUb29scy9Db25mL2J1aWxkX3J1bGUu dGVtcGxhdGUgfCAxMCArKy0NCg0KPiAgQmFzZVRvb2xzL0NvbmYvdG9vbHNfZGVmLnRlbXBsYXRl ICB8IDk4DQoNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQoNCj4gIDIgZmlsZXMg Y2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCg0KPg0KDQo+IGRpZmYg LS1naXQgYS9CYXNlVG9vbHMvQ29uZi9idWlsZF9ydWxlLnRlbXBsYXRlDQoNCj4gYi9CYXNlVG9v bHMvQ29uZi9idWlsZF9ydWxlLnRlbXBsYXRlDQoNCj4gaW5kZXggMTM5NTc5MmNkNi4uZTY5Zjk2 M2NjOCAxMDA3NTUNCg0KPiAtLS0gYS9CYXNlVG9vbHMvQ29uZi9idWlsZF9ydWxlLnRlbXBsYXRl DQoNCj4gKysrIGIvQmFzZVRvb2xzL0NvbmYvYnVpbGRfcnVsZS50ZW1wbGF0ZQ0KDQo+IEBAIC0y OTMsNyArMjkzLDEwIEBADQoNCj4gICAgICA8RXh0cmFEZXBlbmRlbmN5Pg0KDQo+DQoNCj4gICAg ICAgICAgJChNQUtFX0ZJTEUpDQoNCj4NCg0KPg0KDQo+DQoNCj4gLSAgICA8T3V0cHV0RmlsZT4N Cg0KPg0KDQo+ICsgICAgPE91dHB1dEZpbGUuQ0xBTkdEV0FSRj4NCg0KPg0KDQo+ICsgICAgICAg ICQoREVCVUdfRElSKSgrKSQoTU9EVUxFX05BTUUpLmVsZg0KDQo+DQoNCj4gKw0KDQo+DQoNCj4g KyAgICA8T3V0cHV0RmlsZS5NU0ZULCBPdXRwdXRGaWxlLklOVEVMLCBPdXRwdXRGaWxlLkdDQz4N Cg0KPg0KDQo+ICAgICAgICAgICQoREVCVUdfRElSKSgrKSQoTU9EVUxFX05BTUUpLmRsbA0KDQo+ DQoNCj4NCg0KPg0KDQo+ICAgICAgPENvbW1hbmQuTVNGVCwgQ29tbWFuZC5JTlRFTD4NCg0KPg0K DQo+IEBAIC0zMDMsNiArMzA2LDExIEBADQoNCj4gICAgICA8Q29tbWFuZC5DTEFOR1BEQj4NCg0K Pg0KDQo+ICAgICAgICAgICIkKERMSU5LKSIgL09VVDoke2RzdH0gJChETElOS19GTEFHUykgJChE TElOS19TUEFUSCkNCg0KPiBAJChTVEFUSUNfTElCUkFSWV9GSUxFU19MSVNUKSAkKERMSU5LMl9G TEFHUykNCg0KPg0KDQo+DQoNCj4NCg0KPiArICAgIDxDb21tYW5kLkNMQU5HRFdBUkY+DQoNCj4N Cg0KPiArICAgICAgICAiJChETElOSykiIC1vICR7ZHN0fSAkKERMSU5LX0ZMQUdTKSBAJChTVEFU SUNfTElCUkFSWV9GSUxFU19MSVNUKQ0KDQo+DQoNCj4gKyAgICAgICAgIiQoQ1ApIiAke2RzdH0g JChERUJVR19ESVIpKCspJChNT0RVTEVfTkFNRSkuZGVidWcNCg0KPg0KDQo+ICsgICAgICAgICIk KE9CSkNPUFkpIiAtLXN0cmlwLXVubmVlZGVkIC1SIC5laF9mcmFtZSAke2RzdH0NCg0KPg0KDQo+ ICsNCg0KPg0KDQo+ICAgICAgPENvbW1hbmQuR0NDPg0KDQo+DQoNCj4gICAgICAgICAgIiQoRExJ TkspIiAtbyAke2RzdH0gJChETElOS19GTEFHUykgLVdsLC0tc3RhcnQtDQoNCj4gZ3JvdXAsQCQo U1RBVElDX0xJQlJBUllfRklMRVNfTElTVCksLS1lbmQtZ3JvdXAgJChDQ19GTEFHUykNCg0KPiAk KERMSU5LMl9GTEFHUykNCg0KPg0KDQo+ICAgICAgICAgICIkKE9CSkNPUFkpIiAkKE9CSkNPUFlf RkxBR1MpICR7ZHN0fQ0KDQo+DQoNCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Db25mL3Rvb2xz X2RlZi50ZW1wbGF0ZQ0KDQo+IGIvQmFzZVRvb2xzL0NvbmYvdG9vbHNfZGVmLnRlbXBsYXRlDQoN Cj4gaW5kZXggNDk4Njk2ZTU4My4uMzkwZTI5N2NjMSAxMDA3NTUNCg0KPiAtLS0gYS9CYXNlVG9v bHMvQ29uZi90b29sc19kZWYudGVtcGxhdGUNCg0KPiArKysgYi9CYXNlVG9vbHMvQ29uZi90b29s c19kZWYudGVtcGxhdGUNCg0KPiBAQCAtMjgyOCw2ICsyODI4LDEwNCBAQCBOT09QVF9DTEFOR1BE Ql9YNjRfRExJTktfRkxBR1MgICAgICA9DQoNCj4gL05PTE9HTyAvTk9ERUZBVUxUTElCIC9JR05P UkU6NDAwMSAvT1BUOlJFDQoNCj4gIE5PT1BUX0NMQU5HUERCX1g2NF9ETElOSzJfRkxBR1MgICAg ID0NCg0KPg0KDQo+ICBOT09QVF9DTEFOR1BEQl9YNjRfR0VORldfRkxBR1MgICAgICA9IC0ta2Vl cGV4Y2VwdGlvbnRhYmxlDQoNCj4NCg0KPg0KDQo+DQoNCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQo+ICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIw0KDQo+DQoNCj4gKyMNCg0KPg0KDQo+ICsjIENMQU5HRFdBUkYgLSBUaGlz IGNvbmZpZ3VyYXRpb24gaXMgdXNlZCB0byBjb21waWxlIHVuZGVyDQoNCj4gV2luZG93cy9MaW51 eC9NYWMgdG8gcHJvZHVjZQ0KDQo+DQoNCj4gKyMgIEVMRiBiaW5hcmllcyB1c2luZyBMTFZNL0Ns YW5nL0xMRCB3aXRoIExpbmsgVGltZSBPcHRpbWl6YXRpb24gZW5hYmxlZA0KDQo+DQoNCj4gKyMN Cg0KPg0KDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMNCg0KPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KPg0KDQo+ICsq X0NMQU5HRFdBUkZfKl8qX0ZBTUlMWSAgICAgICAgICAgICA9IEdDQw0KDQo+DQoNCj4gKypfQ0xB TkdEV0FSRl8qXypfQlVJTERSVUxFRkFNSUxZICAgID0gQ0xBTkdEV0FSRg0KDQo+DQoNCj4gKypf Q0xBTkdEV0FSRl8qX01BS0VfUEFUSCAgICAgICAgICAgID0gRU5WKENMQU5HX0hPU1RfQklOKW1h a2UNCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZfKl8qX0RMTCAgICAgICAgICAgICAgICA9IEVOVihD TEFOR1BEQl9ETEwpDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGXypfQVNMX1BBVEggICAgICAgICAg ICAgPSBERUYoVU5JWF9JQVNMX0JJTikNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICsqX0NMQU5HRFdB UkZfKl9BUFBfRkxBR1MgICAgICAgICAgICA9DQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGXypfQVNM X0ZMQUdTICAgICAgICAgICAgPSBERUYoREVGQVVMVF9XSU5fQVNMX0ZMQUdTKQ0KDQo+DQoNCj4g KypfQ0xBTkdEV0FSRl8qX0FTTF9PVVRGTEFHUyAgICAgICAgID0NCg0KPiBERUYoREVGQVVMVF9X SU5fQVNMX09VVEZMQUdTKQ0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl8qX0FTTERMSU5LX0ZMQUdT ICAgICAgID0gREVGKE1TRlRfQVNMRExJTktfRkxBR1MpDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJG XypfREVQU19GTEFHUyAgICAgICAgICAgPSBERUYoR0NDX0RFUFNfRkxBR1MpDQoNCj4NCg0KPiAr DQoNCj4NCg0KPiArREVGSU5FIENMQU5HRFdBUkZfSUEzMl9QUkVGSVggICAgICAgPSBFTlYoQ0xB TkdfQklOKQ0KDQo+DQoNCj4gK0RFRklORSBDTEFOR0RXQVJGX1g2NF9QUkVGSVggICAgICAgID0g RU5WKENMQU5HX0JJTikNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICtERUZJTkUgQ0xBTkdEV0FSRl9J QTMyX1RBUkdFVCAgICAgICA9IC10YXJnZXQgaTY4Ni1wYy1saW51eC1nbnUNCg0KPg0KDQo+ICtE RUZJTkUgQ0xBTkdEV0FSRl9YNjRfVEFSR0VUICAgICAgICA9IC10YXJnZXQgeDg2XzY0LXBjLWxp bnV4LWdudQ0KDQo+DQoNCj4gKw0KDQo+DQoNCj4gK0RFRklORSBDTEFOR0RXQVJGX1dBUk5JTkdf T1ZFUlJJREVTID0gLVduby1wYXJlbnRoZXNlcy0NCg0KPiBlcXVhbGl0eSAtV25vLXRhdXRvbG9n aWNhbC1jb21wYXJlIC1Xbm8tdGF1dG9sb2dpY2FsLWNvbnN0YW50LW91dC1vZi0NCg0KPiByYW5n ZS1jb21wYXJlIC1Xbm8tZW1wdHktYm9keSAtV25vLXVudXNlZC1jb25zdC12YXJpYWJsZSAtV25v LQ0KDQo+IHZhcmFyZ3MgLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uIC1Xbm8tbWljcm9zb2Z0 LWVudW0tZm9yd2FyZC0NCg0KPiByZWZlcmVuY2UNCg0KPg0KDQo+ICtERUZJTkUgQ0xBTkdEV0FS Rl9BTExfQ0NfRkxBR1MgICAgICA9IERFRihHQ0M0OF9BTExfQ0NfRkxBR1MpDQoNCj4gREVGKENM QU5HRFdBUkZfV0FSTklOR19PVkVSUklERVMpIC1mbm8tc3RhY2stcHJvdGVjdG9yIC0NCg0KPiBm dW5zaWduZWQtY2hhciAtZnRyYXAtDQoNCj4gZnVuY3Rpb249dW5kZWZpbmVkX2JlaGF2aW9yX2hh c19iZWVuX29wdGltaXplZF9hd2F5X2J5X2NsYW5nIC1Xbm8tDQoNCj4gYWRkcmVzcyAtV25vLXNo aWZ0LW5lZ2F0aXZlLXZhbHVlIC1Xbm8tdW5rbm93bi1wcmFnbWFzIC1Xbm8tDQoNCj4gaW5jb21w YXRpYmxlLWxpYnJhcnktcmVkZWNsYXJhdGlvbiAtV25vLW51bGwtZGVyZWZlcmVuY2UgLW1uby1p bXBsaWNpdC0NCg0KPiBmbG9hdCAtbW1zLWJpdGZpZWxkcyAtbW5vLXN0YWNrLWFyZy1wcm9iZSAt bm9zdGRsaWIgLW5vc3RkbGliaW5jIC1mc2VoLQ0KDQo+IGV4Y2VwdGlvbnMNCg0KPg0KDQo+ICsN Cg0KPg0KDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KPg0KDQo+ICsjIENMQU5H RFdBUkYgSUEzMiBkZWZpbml0aW9ucw0KDQo+DQoNCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMyX0NDX1BBVEggICAgICAgICAgICAgID0N Cg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMyX1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdE V0FSRl9JQTMyX1NMSU5LX1BBVEggICAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMy X1BSRUZJWClsbHZtLWFyDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGX0lBMzJfRExJTktfUEFUSCAg ICAgICAgICAgPQ0KDQo+IERFRihDTEFOR0RXQVJGX0lBMzJfUFJFRklYKWxkLmxsZA0KDQo+DQoN Cj4gKypfQ0xBTkdEV0FSRl9JQTMyX0FTTERMSU5LX1BBVEggICAgICAgID0NCg0KPiBERUYoQ0xB TkdEV0FSRl9JQTMyX1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMyX0FT TV9QQVRIICAgICAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMyX1BSRUZJWCljbGFu Zw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMyX1BQX1BBVEggICAgICAgICAgICAgID0NCg0K PiBERUYoQ0xBTkdEV0FSRl9JQTMyX1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FS Rl9JQTMyX1ZGUlBQX1BBVEggICAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMyX1BS RUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMyX0FTTENDX1BBVEggICAgICAg ICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMyX1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypf Q0xBTkdEV0FSRl9JQTMyX0FTTFBQX1BBVEggICAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FS Rl9JQTMyX1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMyX09CSkNPUFlf UEFUSCAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMyX1BSRUZJWClsbHZtLW9iamNv cHkNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZfSUEzMl9BU0xDQ19GTEFHUyAg ICAgICAgICA9IERFRihHQ0NfQVNMQ0NfRkxBR1MpIC1tMzINCg0KPiAtZm5vLWx0byBERUYoQ0xB TkdEV0FSRl9JQTMyX1RBUkdFVCkNCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZfSUEzMl9BU01fRkxB R1MgICAgICAgICAgICA9IERFRihHQ0NfQVNNX0ZMQUdTKSAtbTMyIC0NCg0KPiBtYXJjaD1pMzg2 IERFRihDTEFOR0RXQVJGX0lBMzJfVEFSR0VUKQ0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMy X09CSkNPUFlfRkxBR1MgICAgICAgID0NCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZfSUEzMl9OQVNN X0ZMQUdTICAgICAgICAgICA9IC1mIGVsZjMyDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGX0lBMzJf UFBfRkxBR1MgICAgICAgICAgICAgPSBERUYoR0NDX1BQX0ZMQUdTKQ0KDQo+IERFRihDTEFOR0RX QVJGX0lBMzJfVEFSR0VUKQ0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9JQTMyX0FTTFBQX0ZMQUdT ICAgICAgICAgID0gREVGKEdDQ19BU0xQUF9GTEFHUykNCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMy X1RBUkdFVCkNCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZfSUEzMl9WRlJQUF9GTEFHUyAgICAgICAg ICA9IERFRihHQ0NfVkZSUFBfRkxBR1MpDQoNCj4gREVGKENMQU5HRFdBUkZfSUEzMl9UQVJHRVQp DQoNCj4NCg0KPiArDQoNCj4NCg0KPiArREVCVUdfQ0xBTkdEV0FSRl9JQTMyX0NDX0ZMQUdTICAg ICAgICAgPQ0KDQo+IERFRihDTEFOR0RXQVJGX0FMTF9DQ19GTEFHUykgLW0zMiAtT3ogLWZsdG8g LW1hcmNoPWk1ODYNCg0KPiBERUYoQ0xBTkdEV0FSRl9JQTMyX1RBUkdFVCkgLWcNCg0KPg0KDQo+ ICtERUJVR19DTEFOR0RXQVJGX0lBMzJfRExJTktfRkxBR1MgICAgICA9IC0tZWgtZnJhbWUtaGRy IC1xIC0tZ2MtDQoNCj4gc2VjdGlvbnMgLXogY29tbW9uLXBhZ2Utc2l6ZT0weDQwIC0tZW50cnkg JChJTUFHRV9FTlRSWV9QT0lOVCkgLU1hcA0KDQo+ICQoREVTVF9ESVJfREVCVUcpLyQoQkFTRV9O QU1FKS5tYXAgLS13aG9sZS1hcmNoaXZlIC1PMyAtbWVsZl9pMzg2IC0tDQoNCj4gZm9ybWF0PWVs Zg0KDQo+DQoNCj4gK0RFQlVHX0NMQU5HRFdBUkZfSUEzMl9ETElOSzJfRkxBR1MgICAgID0NCg0K Pg0KDQo+ICsNCg0KPg0KDQo+ICtSRUxFQVNFX0NMQU5HRFdBUkZfSUEzMl9DQ19GTEFHUyAgICAg ICA9DQoNCj4gREVGKENMQU5HRFdBUkZfQUxMX0NDX0ZMQUdTKSAtbTMyIC1PeiAtZmx0byAtbWFy Y2g9aTU4Ng0KDQo+IERFRihDTEFOR0RXQVJGX0lBMzJfVEFSR0VUKQ0KDQo+DQoNCj4gK1JFTEVB U0VfQ0xBTkdEV0FSRl9JQTMyX0RMSU5LX0ZMQUdTICAgID0gLS1laC1mcmFtZS1oZHIgLXEgLS1n Yy0NCg0KPiBzZWN0aW9ucyAteiBjb21tb24tcGFnZS1zaXplPTB4NDAgLS1lbnRyeSAkKElNQUdF X0VOVFJZX1BPSU5UKSAtTWFwDQoNCj4gJChERVNUX0RJUl9ERUJVRykvJChCQVNFX05BTUUpLm1h cCAtLXdob2xlLWFyY2hpdmUgLU8zIC1tZWxmX2kzODYgLS0NCg0KPiBmb3JtYXQ9ZWxmDQoNCj4N Cg0KPiArUkVMRUFTRV9DTEFOR0RXQVJGX0lBMzJfRExJTksyX0ZMQUdTICAgPQ0KDQo+DQoNCj4g Kw0KDQo+DQoNCj4gK05PT1BUX0NMQU5HRFdBUkZfSUEzMl9DQ19GTEFHUyAgICAgICAgID0NCg0K PiBERUYoQ0xBTkdEV0FSRl9BTExfQ0NfRkxBR1MpIC1tMzIgLU8wIC1tYXJjaD1pNTg2DQoNCj4g REVGKENMQU5HRFdBUkZfSUEzMl9UQVJHRVQpIC1nDQoNCj4NCg0KPiArTk9PUFRfQ0xBTkdEV0FS Rl9JQTMyX0RMSU5LX0ZMQUdTICAgICAgPSAtLWVoLWZyYW1lLWhkciAtcSAtLWdjLQ0KDQo+IHNl Y3Rpb25zIC16IGNvbW1vbi1wYWdlLXNpemU9MHg0MCAtLWVudHJ5ICQoSU1BR0VfRU5UUllfUE9J TlQpIC1NYXANCg0KPiAkKERFU1RfRElSX0RFQlVHKS8kKEJBU0VfTkFNRSkubWFwIC0td2hvbGUt YXJjaGl2ZSAtTzAgLW1lbGZfaTM4NiAtLQ0KDQo+IGZvcm1hdD1lbGYNCg0KPg0KDQo+ICtOT09Q VF9DTEFOR0RXQVJGX0lBMzJfRExJTksyX0ZMQUdTICAgICA9DQoNCj4NCg0KPiArDQoNCj4NCg0K PiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KPg0KDQo+ICsjIENMQU5HRFdBUkYgWDY0 IGRlZmluaXRpb25zDQoNCj4NCg0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KPg0K DQo+ICsqX0NMQU5HRFdBUkZfWDY0X0NDX1BBVEggICAgICAgICAgICAgID0NCg0KPiBERUYoQ0xB TkdEV0FSRl9YNjRfUFJFRklYKWNsYW5nDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGX1g2NF9TTElO S19QQVRIICAgICAgICAgICA9DQoNCj4gREVGKENMQU5HRFdBUkZfWDY0X1BSRUZJWClsbHZtLWFy DQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGX1g2NF9ETElOS19QQVRIICAgICAgICAgICA9DQoNCj4g REVGKENMQU5HRFdBUkZfWDY0X1BSRUZJWClsZC5sbGQNCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZf WDY0X0FTTERMSU5LX1BBVEggICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9YNjRfUFJFRklY KWNsYW5nDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGX1g2NF9BU01fUEFUSCAgICAgICAgICAgICA9 DQoNCj4gREVGKENMQU5HRFdBUkZfWDY0X1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdE V0FSRl9YNjRfUFBfUEFUSCAgICAgICAgICAgICAgPQ0KDQo+IERFRihDTEFOR0RXQVJGX1g2NF9Q UkVGSVgpY2xhbmcNCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZfWDY0X1ZGUlBQX1BBVEggICAgICAg ICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9YNjRfUFJFRklYKWNsYW5nDQoNCj4NCg0KPiArKl9D TEFOR0RXQVJGX1g2NF9BU0xDQ19QQVRIICAgICAgICAgICA9DQoNCj4gREVGKENMQU5HRFdBUkZf WDY0X1BSRUZJWCljbGFuZw0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9YNjRfQVNMUFBfUEFUSCAg ICAgICAgICAgPQ0KDQo+IERFRihDTEFOR0RXQVJGX1g2NF9QUkVGSVgpY2xhbmcNCg0KPg0KDQo+ ICsqX0NMQU5HRFdBUkZfWDY0X09CSkNPUFlfUEFUSCAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdE V0FSRl9JQTMyX1BSRUZJWClsbHZtLW9iamNvcHkNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICsqX0NM QU5HRFdBUkZfWDY0X0FTTENDX0ZMQUdTICAgICAgICAgID0gREVGKEdDQ19BU0xDQ19GTEFHUykg LW02NA0KDQo+IC1mbm8tbHRvIERFRihDTEFOR0RXQVJGX1g2NF9UQVJHRVQpDQoNCj4NCg0KPiAr Kl9DTEFOR0RXQVJGX1g2NF9BU01fRkxBR1MgICAgICAgICAgICA9IERFRihHQ0NfQVNNX0ZMQUdT KSAtbTY0DQoNCj4gREVGKENMQU5HRFdBUkZfWDY0X1RBUkdFVCkNCg0KPg0KDQo+ICsqX0NMQU5H RFdBUkZfWDY0X09CSkNPUFlfRkxBR1MgICAgICAgID0NCg0KPg0KDQo+ICsqX0NMQU5HRFdBUkZf WDY0X05BU01fRkxBR1MgICAgICAgICAgID0gLWYgZWxmNjQNCg0KPg0KDQo+ICsqX0NMQU5HRFdB UkZfWDY0X1BQX0ZMQUdTICAgICAgICAgICAgID0gREVGKEdDQ19QUF9GTEFHUykNCg0KPiBERUYo Q0xBTkdEV0FSRl9YNjRfVEFSR0VUKQ0KDQo+DQoNCj4gKypfQ0xBTkdEV0FSRl9YNjRfQVNMUFBf RkxBR1MgICAgICAgICAgPSBERUYoR0NDX0FTTFBQX0ZMQUdTKQ0KDQo+IERFRihDTEFOR0RXQVJG X1g2NF9UQVJHRVQpDQoNCj4NCg0KPiArKl9DTEFOR0RXQVJGX1g2NF9WRlJQUF9GTEFHUyAgICAg ICAgICA9IERFRihHQ0NfVkZSUFBfRkxBR1MpDQoNCj4gREVGKENMQU5HRFdBUkZfWDY0X1RBUkdF VCkNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICtERUJVR19DTEFOR0RXQVJGX1g2NF9DQ19GTEFHUyAg ICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9BTExfQ0NfRkxBR1MpIC1tNjQgIi0NCg0KPiBE RUZJQVBJPV9fYXR0cmlidXRlX18oKG1zX2FiaSkpIiAtbW5vLXJlZC16b25lIC1tY21vZGVsPXNt YWxsIC1mcGllIC1Peg0KDQo+IC1mbHRvIERFRihDTEFOR0RXQVJGX1g2NF9UQVJHRVQpIC1nDQoN Cj4NCg0KPiArREVCVUdfQ0xBTkdEV0FSRl9YNjRfRExJTktfRkxBR1MgICAgICA9IC0tZWgtZnJh bWUtaGRyIC1xIC0tZ2MtDQoNCj4gc2VjdGlvbnMgLXogY29tbW9uLXBhZ2Utc2l6ZT0weDQwIC0t ZW50cnkgJChJTUFHRV9FTlRSWV9QT0lOVCkgLU1hcA0KDQo+ICQoREVTVF9ESVJfREVCVUcpLyQo QkFTRV9OQU1FKS5tYXAgLS13aG9sZS1hcmNoaXZlIC1PMyAtDQoNCj4gbWVsZl94ODZfNjQgLS1m b3JtYXQ9ZWxmIC1waWUNCg0KPg0KDQo+ICtERUJVR19DTEFOR0RXQVJGX1g2NF9ETElOSzJfRkxB R1MgICAgID0NCg0KPg0KDQo+ICtERUJVR19DTEFOR0RXQVJGX1g2NF9HRU5GV19GTEFHUyAgICAg ID0gLS1rZWVwZXhjZXB0aW9udGFibGUNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICtSRUxFQVNFX0NM QU5HRFdBUkZfWDY0X0NDX0ZMQUdTICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9BTExfQ0Nf RkxBR1MpIC1tNjQgIi0NCg0KPiBERUZJQVBJPV9fYXR0cmlidXRlX18oKG1zX2FiaSkpIiAtbW5v LXJlZC16b25lIC1tY21vZGVsPXNtYWxsIC1mcGllIC1Peg0KDQo+IC1mbHRvIERFRihDTEFOR0RX QVJGX1g2NF9UQVJHRVQpDQoNCj4NCg0KPiArUkVMRUFTRV9DTEFOR0RXQVJGX1g2NF9ETElOS19G TEFHUyAgICA9IC0tZWgtZnJhbWUtaGRyIC1xIC0tZ2MtDQoNCj4gc2VjdGlvbnMgLXogY29tbW9u LXBhZ2Utc2l6ZT0weDQwIC0tZW50cnkgJChJTUFHRV9FTlRSWV9QT0lOVCkgLU1hcA0KDQo+ICQo REVTVF9ESVJfREVCVUcpLyQoQkFTRV9OQU1FKS5tYXAgLS13aG9sZS1hcmNoaXZlIC1PMyAtDQoN Cj4gbWVsZl94ODZfNjQgLS1mb3JtYXQ9ZWxmIC1waWUNCg0KPg0KDQo+ICtSRUxFQVNFX0NMQU5H RFdBUkZfWDY0X0RMSU5LMl9GTEFHUyAgID0NCg0KPg0KDQo+ICtSRUxFQVNFX0NMQU5HRFdBUkZf WDY0X0dFTkZXX0ZMQUdTICAgID0NCg0KPg0KDQo+ICsNCg0KPg0KDQo+ICtOT09QVF9DTEFOR0RX QVJGX1g2NF9DQ19GTEFHUyAgICAgICAgID0NCg0KPiBERUYoQ0xBTkdEV0FSRl9BTExfQ0NfRkxB R1MpIC1tNjQgIi0NCg0KPiBERUZJQVBJPV9fYXR0cmlidXRlX18oKG1zX2FiaSkpIiAtbW5vLXJl ZC16b25lIC1tY21vZGVsPXNtYWxsIC1mcGllIC1PMA0KDQo+IERFRihDTEFOR0RXQVJGX1g2NF9U QVJHRVQpIC1nDQoNCj4NCg0KPiArTk9PUFRfQ0xBTkdEV0FSRl9YNjRfRExJTktfRkxBR1MgICAg ICA9IC0tZWgtZnJhbWUtaGRyIC1xIC0tZ2MtDQoNCj4gc2VjdGlvbnMgLXogY29tbW9uLXBhZ2Ut c2l6ZT0weDQwIC0tZW50cnkgJChJTUFHRV9FTlRSWV9QT0lOVCkgLU1hcA0KDQo+ICQoREVTVF9E SVJfREVCVUcpLyQoQkFTRV9OQU1FKS5tYXAgLS13aG9sZS1hcmNoaXZlIC1PMCAtDQoNCj4gbWVs Zl94ODZfNjQgLS1mb3JtYXQ9ZWxmIC1waWUNCg0KPg0KDQo+ICtOT09QVF9DTEFOR0RXQVJGX1g2 NF9ETElOSzJfRkxBR1MgICAgID0NCg0KPg0KDQo+ICtOT09QVF9DTEFOR0RXQVJGX1g2NF9HRU5G V19GTEFHUyAgICAgID0gLS1rZWVwZXhjZXB0aW9udGFibGUNCg0KPg0KDQo+ICsNCg0KPg0KDQo+ ICAjDQoNCj4NCg0KPiAgIw0KDQo+DQoNCj4gICMgWENPREU1IHN1cHBvcnQNCg0KPg0KDQo+IC0t DQoNCj4gMi4zMS4xLndpbmRvd3MuMQ0KDQo+DQoNCj4NCg0KPg0KDQo+IC09LT0tPS09LT0tPQ0K DQo+IEdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhp cyBncm91cC4NCg0KPiBWaWV3L1JlcGx5IE9ubGluZSAoIzc1NTk5KTogaHR0cHM6Ly9lZGsyLmdy b3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNzU1OTkNCg0KPiBNdXRlIFRoaXMgVG9waWM6IGh0dHBz Oi8vZ3JvdXBzLmlvL210LzgzMDk1ODUzLzE3ODEwMDMNCg0KPiBHcm91cCBPd25lcjogZGV2ZWwr b3duZXJAZWRrMi5ncm91cHMuaW88bWFpbHRvOmRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvPg0K DQo+IFVuc3Vic2NyaWJlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIgW3N0 ZXZlbi5zaGlAaW50ZWwuY29tXQ0KDQo+IC09LT0tPS09LT0tPQ0KDQo+DQoNCg0KDQoNCg== --_000_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable
Liming,
that is not the intention of this new toolchain.
we want to have a toolchain that can generate elf. or can= you suggest a new name for this toolchain?

thanks,
ray

From: devel@edk2.groups.io= <devel@edk2.groups.io> on behalf of gaoliming <gaoliming@byosoft.= com.cn>
Sent: Friday, May 28, 2021 10:52:06 AM
To: devel@edk2.groups.io <devel@edk2.groups.io>; Shi, Steven = <steven.shi@intel.com>; Ni, Ray <ray.ni@intel.com>
Subject: =BB=D8=B8=B4: [edk2-devel] [PATCH 1/4] BaseTools: Create C= LANGDWARF toolchain
 

Ray:

 I would like to suggest CLANGDWARF = also generate EFI image. If so, the people can use this tool chain for EFI = development with DWARF format debug symbol.

  

  In dll generation phase, CLANGDWARF still generates dl= l image, then copy dll image to elf image. In EFI generation phase, dll ima= ge will be converted to EFI image.

 

Thanks

Liming

=B7= =A2=BC=FE=C8=CB: devel@edk2.groups.io <devel@edk2.g= roups.io> =B4=FA=B1=ED Steven Shi
=B7=A2=CB=CD=CA=B1=BC= =E4: 2021=C4=EA5=D4=C226=C8=D5 19:35
=CA=D5=BC=FE=C8=CB: devel@edk2.groups.io; Ni, Ray <ray.ni@intel.com>
=D6=F7=CC=E2: Re: [edk2-devel] [PATCH 1/4] BaseTools: Create CLANGDWARF toolchain

 

Some suggestions:

 

  1. There are man= y blanks appending the line =A1=B0+      &nbs= p; "$(DLINK)" -o ${dst} $(DLINK_FLAGS) @$(STATIC_LIBRARY_FILES_LI= ST)        =A1=B0

 

 

  1. We need a too= lchain dependency descirption in the BaseTools\Conf\tools_def.template. Bel= ow is the example for CLANGPDB. Please add one for the CLANGDWARF.

#   CLANGPDB -L= inux, Windows, Mac-  Requires:

#    =             &nb= sp;            Clang= 9 or above from http://releases.llvm.org/=

#    =             &nb= sp;       Optional:

#    =             &nb= sp;            Requi= red to compile nasm source:

#    =             &nb= sp;            =   nasm compiler from

#    =             &nb= sp;             = ; NASM -- http://www.nasm.us/

#    =             &nb= sp;            Requi= red to build platforms or ACPI tables:

#    =             &nb= sp;            =   Intel(r) ACPI Compiler from

#    =             &nb= sp;            =   https://acpica.org/downloads

 

  1. We could merg= e the CLANG38 and the CLANGDWARF toolchains together in the future.<= /li>

 

 

Thanks

Steven Shi

 

 

> -----Original Messag= e-----

> From: devel@edk2.groups.io <devel= @edk2.groups.io> On Behalf Of Ni, Ray

> Sent: Wednesday, May= 26, 2021 4:23 PM

> To: devel@edk2.groups.io

> Subject: [edk2-devel= ] [PATCH 1/4] BaseTools: Create CLANGDWARF

> toolchain

>

> Signed-off-by: Ray N= i <ray.ni@intel.com>

> ---

>  BaseTools/Conf= /build_rule.template | 10 ++-

>  BaseTools/Conf= /tools_def.template  | 98

> ++++++++++++++++++++= ++++++++++

>  2 files change= d, 107 insertions(+), 1 deletion(-)

>

> diff --git a/BaseToo= ls/Conf/build_rule.template

> b/BaseTools/Conf/bui= ld_rule.template

> index 1395792cd6..e6= 9f963cc8 100755

> --- a/BaseTools/Conf= /build_rule.template

> +++ b/BaseTools/Conf= /build_rule.template

> @@ -293,7 +293,10 @@=

>    &n= bsp; <ExtraDependency>

>

>    &n= bsp;     $(MAKE_FILE)

>

>

>

> -    = <OutputFile>

>

> +    = <OutputFile.CLANGDWARF>

>

> +   &= nbsp;    $(DEBUG_DIR)(+)$(MODULE_NAME).elf

>

> +

>

> +    = <OutputFile.MSFT, OutputFile.INTEL, OutputFile.GCC>

>

>    &n= bsp;     $(DEBUG_DIR)(+)$(MODULE_NAME).dll<= /p>

>

>

>

>    &n= bsp; <Command.MSFT, Command.INTEL>

>

> @@ -303,6 +306,11 @@=

>    &n= bsp; <Command.CLANGPDB>

>

>    &n= bsp;     "$(DLINK)" /OUT:${dst} $(DLINK_= FLAGS) $(DLINK_SPATH)

> @$(STATIC_LIBRARY_FI= LES_LIST) $(DLINK2_FLAGS)

>

>

>

> +    = <Command.CLANGDWARF>

>

> +   &= nbsp;    "$(DLINK)" -o ${dst} $(DLINK_FLAGS) @$(ST= ATIC_LIBRARY_FILES_LIST)

>

> +   &= nbsp;    "$(CP)" ${dst} $(DEBUG_DIR)(+)$(MODULE_NA= ME).debug

>

> +   &= nbsp;    "$(OBJCOPY)" --strip-unneeded -R .eh_fram= e ${dst}

>

> +

>

>    &n= bsp; <Command.GCC>

>

>    &n= bsp;     "$(DLINK)" -o ${dst} $(DLINK_FL= AGS) -Wl,--start-

> group,@$(STATIC_LIBR= ARY_FILES_LIST),--end-group $(CC_FLAGS)

> $(DLINK2_FLAGS)

>

>    &n= bsp;     "$(OBJCOPY)" $(OBJCOPY_FLAGS) $= {dst}

>

> diff --git a/BaseToo= ls/Conf/tools_def.template

> b/BaseTools/Conf/too= ls_def.template

> index 498696e583..39= 0e297cc1 100755

> --- a/BaseTools/Conf= /tools_def.template

> +++ b/BaseTools/Conf= /tools_def.template

> @@ -2828,6 +2828,104= @@ NOOPT_CLANGPDB_X64_DLINK_FLAGS      =3D=

> /NOLOGO /NODEFAULTLI= B /IGNORE:4001 /OPT:RE

>  NOOPT_CLANGPDB= _X64_DLINK2_FLAGS     =3D

>

>  NOOPT_CLANGPDB= _X64_GENFW_FLAGS      =3D --keepexceptiontable

>

>

>

> +###################= ######################################

> ####################= #######

>

> +#

>

> +# CLANGDWARF - This= configuration is used to compile under

> Windows/Linux/Mac to= produce

>

> +#  ELF binarie= s using LLVM/Clang/LLD with Link Time Optimization enabled

>

> +#

>

> +###################= ######################################

> ####################= #######

>

> +*_CLANGDWARF_*_*_FA= MILY            = ; =3D GCC

>

> +*_CLANGDWARF_*_*_BU= ILDRULEFAMILY    =3D CLANGDWARF

>

> +*_CLANGDWARF_*_MAKE= _PATH            =3D= ENV(CLANG_HOST_BIN)make

>

> +*_CLANGDWARF_*_*_DL= L            &n= bsp;   =3D ENV(CLANGPDB_DLL)

>

> +*_CLANGDWARF_*_ASL_= PATH            = ; =3D DEF(UNIX_IASL_BIN)

>

> +

>

> +*_CLANGDWARF_*_APP_= FLAGS            =3D=

>

> +*_CLANGDWARF_*_ASL_= FLAGS            =3D= DEF(DEFAULT_WIN_ASL_FLAGS)

>

> +*_CLANGDWARF_*_ASL_= OUTFLAGS         =3D

> DEF(DEFAULT_WIN_ASL_= OUTFLAGS)

>

> +*_CLANGDWARF_*_ASLD= LINK_FLAGS       =3D DEF(MSFT_ASLDLINK_FLAGS)=

>

> +*_CLANGDWARF_*_DEPS= _FLAGS           =3D DEF(= GCC_DEPS_FLAGS)

>

> +

>

> +DEFINE CLANGDWARF_I= A32_PREFIX       =3D ENV(CLANG_BIN)

>

> +DEFINE CLANGDWARF_X= 64_PREFIX        =3D ENV(CLANG_BIN)

>

> +

>

> +DEFINE CLANGDWARF_I= A32_TARGET       =3D -target i686-pc-linux-gn= u

>

> +DEFINE CLANGDWARF_X= 64_TARGET        =3D -target x86_64-pc-l= inux-gnu

>

> +

>

> +DEFINE CLANGDWARF_W= ARNING_OVERRIDES =3D -Wno-parentheses-

> equality -Wno-tautol= ogical-compare -Wno-tautological-constant-out-of-

> range-compare -Wno-e= mpty-body -Wno-unused-const-variable -Wno-

> varargs -Wno-unknown= -warning-option -Wno-microsoft-enum-forward-

> reference

>

> +DEFINE CLANGDWARF_A= LL_CC_FLAGS      =3D DEF(GCC48_ALL_CC_FLAGS)

> DEF(CLANGDWARF_WARNI= NG_OVERRIDES) -fno-stack-protector -

> funsigned-char -ftra= p-

> function=3Dundefined= _behavior_has_been_optimized_away_by_clang -Wno-

> address -Wno-shift-n= egative-value -Wno-unknown-pragmas -Wno-

> incompatible-library= -redeclaration -Wno-null-dereference -mno-implicit-

> float -mms-bitfields= -mno-stack-arg-probe -nostdlib -nostdlibinc -fseh-

> exceptions

>

> +

>

> +###################= ########

>

> +# CLANGDWARF IA32 d= efinitions

>

> +###################= ########

>

> +*_CLANGDWARF_IA32_C= C_PATH           &nb= sp;  =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_S= LINK_PATH           =3D

> DEF(CLANGDWARF_IA32_= PREFIX)llvm-ar

>

> +*_CLANGDWARF_IA32_D= LINK_PATH           =3D

> DEF(CLANGDWARF_IA32_= PREFIX)ld.lld

>

> +*_CLANGDWARF_IA32_A= SLDLINK_PATH        =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_A= SM_PATH           &n= bsp; =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_P= P_PATH           &nb= sp;  =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_V= FRPP_PATH           =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_A= SLCC_PATH           =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_A= SLPP_PATH           =3D

> DEF(CLANGDWARF_IA32_= PREFIX)clang

>

> +*_CLANGDWARF_IA32_O= BJCOPY_PATH         =3D

> DEF(CLANGDWARF_IA32_= PREFIX)llvm-objcopy

>

> +

>

> +*_CLANGDWARF_IA32_A= SLCC_FLAGS          =3D DEF(GC= C_ASLCC_FLAGS) -m32

> -fno-lto DEF(CLANGDW= ARF_IA32_TARGET)

>

> +*_CLANGDWARF_IA32_A= SM_FLAGS            = = =3D DEF(GCC_ASM_FLAGS) -m32 -

> march=3Di386 DEF(CLA= NGDWARF_IA32_TARGET)

>

> +*_CLANGDWARF_IA32_O= BJCOPY_FLAGS        =3D

>

> +*_CLANGDWARF_IA32_N= ASM_FLAGS           =3D -= f elf32

>

> +*_CLANGDWARF_IA32_P= P_FLAGS           &n= bsp; =3D DEF(GCC_PP_FLAGS)

> DEF(CLANGDWARF_IA32_= TARGET)

>

> +*_CLANGDWARF_IA32_A= SLPP_FLAGS          =3D DEF(GC= C_ASLPP_FLAGS)

> DEF(CLANGDWARF_IA32_= TARGET)

>

> +*_CLANGDWARF_IA32_V= FRPP_FLAGS          =3D DEF(GC= C_VFRPP_FLAGS)

> DEF(CLANGDWARF_IA32_= TARGET)

>

> +

>

> +DEBUG_CLANGDWARF_IA= 32_CC_FLAGS         =3D

> DEF(CLANGDWARF_ALL_C= C_FLAGS) -m32 -Oz -flto -march=3Di586

> DEF(CLANGDWARF_IA32_= TARGET) -g

>

> +DEBUG_CLANGDWARF_IA= 32_DLINK_FLAGS      =3D --eh-frame-hdr -q --gc-

> sections -z common-p= age-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map

> $(DEST_DIR_DEBUG)/$(= BASE_NAME).map --whole-archive -O3 -melf_i386 --

> format=3Delf<= /p>

>

> +DEBUG_CLANGDWARF_IA= 32_DLINK2_FLAGS     =3D

>

> +

>

> +RELEASE_CLANGDWARF_= IA32_CC_FLAGS       =3D

> DEF(CLANGDWARF_ALL_C= C_FLAGS) -m32 -Oz -flto -march=3Di586

> DEF(CLANGDWARF_IA32_= TARGET)

>

> +RELEASE_CLANGDWARF_= IA32_DLINK_FLAGS    =3D --eh-frame-hdr -q --gc-

> sections -z common-p= age-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map

> $(DEST_DIR_DEBUG)/$(= BASE_NAME).map --whole-archive -O3 -melf_i386 --

> format=3Delf<= /p>

>

> +RELEASE_CLANGDWARF_= IA32_DLINK2_FLAGS   =3D

>

> +

>

> +NOOPT_CLANGDWARF_IA= 32_CC_FLAGS         =3D

> DEF(CLANGDWARF_ALL_C= C_FLAGS) -m32 -O0 -march=3Di586

> DEF(CLANGDWARF_IA32_= TARGET) -g

>

> +NOOPT_CLANGDWARF_IA= 32_DLINK_FLAGS      =3D --eh-frame-hdr -q --gc-

> sections -z common-p= age-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map

> $(DEST_DIR_DEBUG)/$(= BASE_NAME).map --whole-archive -O0 -melf_i386 --

> format=3Delf<= /p>

>

> +NOOPT_CLANGDWARF_IA= 32_DLINK2_FLAGS     =3D

>

> +

>

> +###################= #######

>

> +# CLANGDWARF X64 de= finitions

>

> +###################= #######

>

> +*_CLANGDWARF_X64_CC= _PATH            &nb= sp; =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_SL= INK_PATH           =3D

> DEF(CLANGDWARF_X64_P= REFIX)llvm-ar

>

> +*_CLANGDWARF_X64_DL= INK_PATH           =3D

> DEF(CLANGDWARF_X64_P= REFIX)ld.lld

>

> +*_CLANGDWARF_X64_AS= LDLINK_PATH        =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_AS= M_PATH           &nb= sp; =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_PP= _PATH           &nbs= p;  =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_VF= RPP_PATH           =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_AS= LCC_PATH           =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_AS= LPP_PATH           =3D

> DEF(CLANGDWARF_X64_P= REFIX)clang

>

> +*_CLANGDWARF_X64_OB= JCOPY_PATH         =3D

> DEF(CLANGDWARF_IA32_= PREFIX)llvm-objcopy

>

> +

>

> +*_CLANGDWARF_X64_AS= LCC_FLAGS          =3D DEF(GCC= _ASLCC_FLAGS) -m64

> -fno-lto DEF(CLANGDW= ARF_X64_TARGET)

>

> +*_CLANGDWARF_X64_AS= M_FLAGS            = =3D DEF(GCC_ASM_FLAGS) -m64

> DEF(CLANGDWARF_X64_T= ARGET)

>

> +*_CLANGDWARF_X64_OB= JCOPY_FLAGS        =3D

>

> +*_CLANGDWARF_X64_NA= SM_FLAGS           =3D -f= elf64

>

> +*_CLANGDWARF_X64_PP= _FLAGS           &nb= sp; =3D DEF(GCC_PP_FLAGS)

> DEF(CLANGDWARF_X64_T= ARGET)

>

> +*_CLANGDWARF_X64_AS= LPP_FLAGS          =3D DEF(GCC= _ASLPP_FLAGS)

> DEF(CLANGDWARF_X64_T= ARGET)

>

> +*_CLANGDWARF_X64_VF= RPP_FLAGS          =3D DEF(GCC= _VFRPP_FLAGS)

> DEF(CLANGDWARF_X64_T= ARGET)

>

> +

>

> +DEBUG_CLANGDWARF_X6= 4_CC_FLAGS         =3D

> DEF(CLANGDWARF_ALL_C= C_FLAGS) -m64 "-

> DEFIAPI=3D__attribut= e__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz

> -flto DEF(CLANGDWARF= _X64_TARGET) -g

>

> +DEBUG_CLANGDWARF_X6= 4_DLINK_FLAGS      =3D --eh-frame-hdr -q --gc-

> sections -z common-p= age-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map

> $(DEST_DIR_DEBUG)/$(= BASE_NAME).map --whole-archive -O3 -

> melf_x86_64 --format= = =3Delf -pie

>

> +DEBUG_CLANGDWARF_X6= 4_DLINK2_FLAGS     =3D

>

> +DEBUG_CLANGDWARF_X6= 4_GENFW_FLAGS      =3D --keepexceptiontable=

>

> +

>

> +RELEASE_CLANGDWARF_= X64_CC_FLAGS       =3D

> DEF(CLANGDWARF_ALL_C= C_FLAGS) -m64 "-

> DEFIAPI=3D__attribut= e__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz

> -flto DEF(CLANGDWARF= _X64_TARGET)

>

> +RELEASE_CLANGDWARF_= X64_DLINK_FLAGS    =3D --eh-frame-hdr -q --gc-

> sections -z common-p= age-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map

> $(DEST_DIR_DEBUG)/$(= BASE_NAME).map --whole-archive -O3 -

> melf_x86_64 --format= = =3Delf -pie

>

> +RELEASE_CLANGDWARF_= X64_DLINK2_FLAGS   =3D

>

> +RELEASE_CLANGDWARF_= X64_GENFW_FLAGS    =3D

>

> +

>

> +NOOPT_CLANGDWARF_X6= 4_CC_FLAGS         =3D

> DEF(CLANGDWARF_ALL_C= C_FLAGS) -m64 "-

> DEFIAPI=3D__attribut= e__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -O0

> DEF(CLANGDWARF_X64_T= ARGET) -g

>

> +NOOPT_CLANGDWARF_X6= 4_DLINK_FLAGS      =3D --eh-frame-hdr -q --gc-

> sections -z common-p= age-size=3D0x40 --entry $(IMAGE_ENTRY_POINT) -Map

> $(DEST_DIR_DEBUG)/$(= BASE_NAME).map --whole-archive -O0 -

> melf_x86_64 --format= = =3Delf -pie

>

> +NOOPT_CLANGDWARF_X6= 4_DLINK2_FLAGS     =3D

>

> +NOOPT_CLANGDWARF_X6= 4_GENFW_FLAGS      =3D --keepexceptiontable=

>

> +

>

>  #

>

>  #

>

>  # XCODE5 suppo= rt

>

> --

> 2.31.1.windows.1

>

>

>

> -=3D-=3D-=3D-=3D-=3D= -=3D

> Groups.io Links: You= receive all messages sent to this group.

> View/Reply Online (#= 75599): https://edk2.groups= .io/g/devel/message/75599

> Mute This Topic: https://groups.io/m= t/83095853/1781003

> Group Owner: devel+owner@edk2.gr= oups.io

> Unsubscribe: https://edk2.groups= .io/g/devel/unsub [steven.shi@intel.com]

> -=3D-=3D-=3D-=3D-=3D= -=3D

>

 

--_000_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_-- --_004_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=8405; creation-date="Fri, 28 May 2021 02:52:41 GMT"; modification-date="Fri, 28 May 2021 02:52:41 GMT" Content-ID: Content-Transfer-Encoding: base64 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 kAnSNP8PVTe0FkhNigMAAAAASUVORK5CYII= --_004_CO1PR11MB49302D9DDE71A4542E35E9518C229CO1PR11MB4930namp_--