From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.20117.1680081892612603505 for ; Wed, 29 Mar 2023 02:24:53 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=iP9wUr96; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: gua.guo@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680081892; x=1711617892; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=dtAnNL3pEq0OIZ+Um/8RD1WSEfYRpL/7JVrMdm0ZHJU=; b=iP9wUr96wJ/Nx4xlFB+AUERLCYymFVhyHiKgM17jehGslRqrWMktHghS +wB6fEUwfxj+ZuRsNhtfPF93Lz+ev8oQUuZJTnSq9jAvpBorrn9y60YKx Tn3gJ6zvDsrKlBvcPYUJdLB7BdmIAD0bzXC3vcBmQag9CKir/tnd9vtUL wGT98r2HZgXUikXbxAHMiAkmphOC/AGqRyuPbZxBCK4AK+xzMC6cWwlKt f4NMpPNVw3TIX8uiLl28buJmSiI2HqR2Hp3lH7/C53x1gDZY/q/LGdFPD z6K0AxbihW2oPO6gvqWP9GfSuubT4DO/ky3/HqSFOOEN+mwlrQj3A8Csx Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10663"; a="342419510" X-IronPort-AV: E=Sophos;i="5.98,300,1673942400"; d="png'150?scan'150,208,217,150";a="342419510" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2023 02:24:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10663"; a="634408071" X-IronPort-AV: E=Sophos;i="5.98,300,1673942400"; d="png'150?scan'150,208,217,150";a="634408071" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP; 29 Mar 2023 02:24:50 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 02:24:50 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 02:24:49 -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.2507.21 via Frontend Transport; Wed, 29 Mar 2023 02:24:49 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) 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.2507.21; Wed, 29 Mar 2023 02:24:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k07PpswbwSF/A8B6Gs7oqeqSVsmLMKALPxqAim2WpO7wnPCSwSetxRYzTfa/n0d5/+zRvUZM3mJeSXnJzTYunOSot51JRKueLappJGlwnnnIBkSUysVKiHX8R2L0aPEzYP01ZYBneqE4HcePGmiMvIn0kqc/Eh3b3v9QL6uUE3hoO6qRLsR9SkfB8SA1w7gB3ZzCYXsB36MEBnc0kjsxr+FdvRs9uvNO4D9udjbSAKc6gVJoLKIEr52NX/UluR7J/O4W8crmMG5RDhf1AZ4RdBOggJ4wGJ5TleXnnmDrKyatKFaY7Eh0QmF3eGCiqBFNi2H8GGCMzCGPRIWSyZhjwQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZjFKnGUv73qDaN44VNNZcoUVGsxZ2GYdB7Q1XT4cF8U=; b=SPLeqcG1dyb2xD8whGJYHdBtDgQcTrudclUOYm7VXDgqHsHR8+ln8PUOwS97p8ViXTeSiN0j8A0Ktw9x/N1QdcNHlcfsBG8bfHexsQCmQUt5kXdX+FjSeN1JbnT2gl3GpFr4W/Yxt3KrF3Ac8BNH7W+24W5WvF1TVgUTXQCepgCvZQX6dr80tzoNZ7c7Cy18ID1ATzLxjBVMaqKq4mKCAbXjtNA6yT82EohfvsMh0RGkyzLHsAI07S8RuUBGnUwYStyX5zbPyJ532zHRgbcI3Og4ieiX8Foz+Epj1ka2sNrvAkWCTTYbCX/qZg44zCPu/x8wYUkaJNnqzxgpelxlQg== 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 Received: from BL1PR11MB5478.namprd11.prod.outlook.com (2603:10b6:208:31d::12) by SA3PR11MB8045.namprd11.prod.outlook.com (2603:10b6:806:2fa::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.41; Wed, 29 Mar 2023 09:24:45 +0000 Received: from BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::eb2d:a316:8bcd:3fb6]) by BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::eb2d:a316:8bcd:3fb6%3]) with mapi id 15.20.6222.035; Wed, 29 Mar 2023 09:24:45 +0000 From: "Guo, Gua" To: "devel@edk2.groups.io" , "Guo, Gua" , "rebecca@bsdio.com" , "Oliver Smith-Denny" , "Jiang, Guomin" , "Lu, Xiaoyu1" , "Wang, Jian J" , "Yao, Jiewen" , Ard Biesheuvel , "Justen, Jordan L" , Gerd Hoffmann , "Feng, Bob C" , "Gao, Liming" , Andrew Fish , "Leif Lindholm" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH v2 03/13] BaseTools: Update CLANGDWARF toolchain and remove CLANG35 and CLANG38 Thread-Topic: [edk2-devel] [PATCH v2 03/13] BaseTools: Update CLANGDWARF toolchain and remove CLANG35 and CLANG38 Thread-Index: AQHZYZsybHiZEWpgykeiWJD1SC7pha8RG4JQgABfc+A= Date: Wed, 29 Mar 2023 09:24:45 +0000 Message-ID: References: <20230328173111.759017-1-rebecca@bsdio.com> <20230328173111.759017-4-rebecca@bsdio.com> <1750C725F99FA0C2.29160@groups.io> In-Reply-To: <1750C725F99FA0C2.29160@groups.io> Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5478:EE_|SA3PR11MB8045:EE_ x-ms-office365-filtering-correlation-id: 931e0e76-fbcb-4666-5f5b-08db30376f8b x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dBf0cqw3ZjhL9rxmaWxnFQh5VzlLfDVkEnBH5evw08nBQRNewlZ0rDL8KBjvbn3GOysm9VwM5MJLRwRaq1SeNe8Wx1anP7OGnxLzKTrXVrhqJDbA8JhLcAYDeWNFcy4nBcYXGENf5TyszhxHuZUdsWfCgLua7Y+i/YhH6pBXKCMm/oD93sfC443CzGC6zSy2c+P3Scgud2RRBb9H2MeX03N8tOFd/rVfqQj5ITAoIV02q6FFBT/TLnh11Gi8s7qzoUKxbN769FVv1JBbxrMpS/QcPmKrhFLMDWNLzmeJZBP1iIONrYBkwtbvxMleQ2efdSHm1+FX0qtExd/ilfNp/bnK8mw8QzOBNSRuyuIbUN0VEPQvit/S5RSoGoqZxu0UvnEbBh7MNpzKWWYsmxiuleBBosG0gQogfu8dIR2eEgL5I7RlSaZaxTNKCAMgoOl4P3Ng3HsX6Rya+sC9mqUHwSmGRcV0r72NKMsxtIeida+XYIkmf9o/mPTcXUd2VQeyrdoIfqwU+ihuWyriIBanJa0FT2vAVX1fpu0hze2p2ZX5IZ1RDBicq2qZnflKACd/yA43KzV1EHTq9+Oaf11Vyq+EStgYIIGI9IM6lFDNOJpgmztHryBSvL5AC13ASoI7uZI+I/87sfSUQCBSc2nmardQYtfjpasl/p9xm/o1HPZBVWP5acmvPFIUup33G083mH9fq/wLlcUr+oPdU1OZieWvcpNAVeNeAxDC4OrsBgM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5478.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(136003)(376002)(366004)(346002)(39860400002)(451199021)(66446008)(8676002)(64756008)(66556008)(30864003)(8936002)(82960400001)(66476007)(186003)(6506007)(53546011)(478600001)(52536014)(5660300002)(38100700002)(99936003)(122000001)(9686003)(41300700001)(71200400001)(66946007)(7696005)(110136005)(966005)(6636002)(316002)(83380400001)(26005)(76116006)(45080400002)(166002)(921005)(38070700005)(86362001)(33656002)(15650500001)(2906002)(76236004)(55016003)(66899021)(1406899024)(559001)(579004)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?AmFMPPgIzdKeQz+hqq4U0mf7GMe3wmLJKO2r4u2thqBGGI76BbQeyH/2yobv?= =?us-ascii?Q?w0xFG+36VGEnwxcJTX84eW9wFUShZnlF3ZWGwC15ED2epROrJYsLjvC1DxRB?= =?us-ascii?Q?oyrhYDam8WZ2Nfmi3/jb1KyQi7ESjOCoQf54SSpjDSf1i1PLTeksxo01FDtL?= =?us-ascii?Q?rvZD97cExqnQFWar0W1tS4GCM0EabWIKnHyFmfPKwd4lYkikIrQT4l9ov1Is?= =?us-ascii?Q?2sKqEzUw9TxhEMrnnTPBZnKLzWxO9e6Rt0OmtxCxPzEEnjPIC0w8s1mHu4F/?= =?us-ascii?Q?LfXWRvB5ONyy9g61E01fcag5dQA63uLOtJlXojcC9QKpxY4vb/BDUVbfgGum?= =?us-ascii?Q?OAspVEkqaKcPcxWx/LGPXka+h9hw1o1EqStm9nc7FFoRXRnmXKz02Zp475or?= =?us-ascii?Q?YBAHLBaXncZG0o5HHB6Jwgxkh08HcfjaoU/+MrotOsQU52kvw0vXF12+ed8A?= =?us-ascii?Q?SxYJMQVv0PlQoWfm62HYvfup4O1Ojxo/h0nODaSzrvYKfEQu9Q8a9DSx9Olc?= =?us-ascii?Q?dSU7zTVq+qxFEs0vwaKeAyAdctQQ+s2+/rjRWG0KFwiBOWLeegsz8ug5eReE?= =?us-ascii?Q?tQS1TmXchBis73aZEqlh4U2wIOIGGbzFyHfgztNjqRkiW6u0WFPF5E10n31N?= =?us-ascii?Q?MSLtZXFDdqpGqcowaI+xfhuKl4DUBTIEOnronaiM4Vdc/U3KquZL40oO2AZP?= =?us-ascii?Q?C1sUNCFShSWAKp0h1G8e8Dju9BAJg7gQTKNWxjWIFgYdddry/dCU7PCepK8L?= =?us-ascii?Q?KA/yU6YPnQL8JyjUStZc9IPsujclZEdCdmLfMVC4IOZ8CV3m4SGCwDTcxBZf?= =?us-ascii?Q?1HhAQKr68E0MF3H36R6EvNwgLTS2guYX8lX0NtFiS0J92Lcvf7Iig3CWAJG/?= =?us-ascii?Q?EfILZgFbewz1+P0+QYi0/27naAHEFJcVnrKKSQJexEMwFGA8FHcC5HnCH1ef?= =?us-ascii?Q?GMBllZ+46BEeSOuAp1I8nvd0KuITVeCH1Ef8DPpCzk8R5KBDN2eX26Ri3DWe?= =?us-ascii?Q?BjY2uAnPX6EWYsx6XYcr2qRUIF3raiBzkStfXkvuDKWaAKk8LKqN/MzKNpPA?= =?us-ascii?Q?PsHiL+5Ncp1Gh5iBlsOWMVAX6WLW9It+eWDg+gFJzMbjUy3aXJdfLRON383/?= =?us-ascii?Q?tqrnnqal0YqoYRXYuGd0wX7PpopYsl7dxTF9WMoFHXbhKN98xeLKMUmb64RE?= =?us-ascii?Q?yipBgYuv6alMf28dcvZD0tCbxNyuEdJcPin0RaKcXNgu0o6ercN4NTV0XzpR?= =?us-ascii?Q?xFogOe9WJirq+zotr1j12RlzYaTNgaYbhtZhcpQzB3uD42Nuqt3fIpXIOFPd?= =?us-ascii?Q?+wJk17UZ8qA2/AtED8P3DJZj0d4sUCfnD32kctOc+ODtBhEIByfYuWEfzXjO?= =?us-ascii?Q?0zQWsCH5b8vpWBJ/NjiMMpn10A39JKh71qeiHiqCPv1NDtDA95FkNmaMbQBK?= =?us-ascii?Q?0DoMMTv2g5+dYXfxb350FGbVifF5d4ktefW/Mwe0HRS3FcpVep1bWaVWCBX2?= =?us-ascii?Q?zVudlg99AK2PGIFrDHyTKVmRM4GRo7OtApivGg0E44gL8xNcfFGK8QsJWk/a?= =?us-ascii?Q?PlO1Atsb7unGS4MdttU=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5478.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 931e0e76-fbcb-4666-5f5b-08db30376f8b X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2023 09:24:45.5632 (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: Bu6gUJXZiEhywgCU2C38uYdtNLEqUvqhmY7oIjplYvbJjXnm2Xh+m/HBDGlwAtQh51a0HsXp1kn+mEMtj75h1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB8045 Return-Path: gua.guo@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 102107 Content-Language: en-US Content-Type: multipart/related; boundary="_004_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_"; type="multipart/alternative" --_004_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_ Content-Type: multipart/alternative; boundary="_000_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_" --_000_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable And I also try to pick the patch to my local. Look like the patch encounter the failure. Have any verify step on your side, maybe we can align it. edksetup Rebuild.bat py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t CLANGDWARF Thanks, Gua Guo From: devel@edk2.groups.io On Behalf Of Guo, Gua Sent: Wednesday, March 29, 2023 11:47 AM To: devel@edk2.groups.io; rebecca@bsdio.com; Oliver Smith-Denny ; Jiang, Guomin ; Lu, Xiaoyu1 ; Wang, Jian J ; Yao, Jiewen ; Ard Biesheuvel ; Justen, Jordan L ; Gerd Hoffmann ; Feng, Bob C <= bob.c.feng@intel.com>; Gao, Liming ; Andrew Fish = ; Leif Lindholm ; Kinney, Micha= el D Subject: Re: [edk2-devel] [PATCH v2 03/13] BaseTools: Update CLANGDWARF too= lchain and remove CLANG35 and CLANG38 @rebecca@bsdio.com On this part, whether is better to change it from "objcopy" to "llvm-objcop= y" Windows path: C:\Program Files (x86)\llvm-objcopy.exe Linux path: /usr/bin/llvm-objcopy [cid:image001.png@01D96263.52CA3C10] Thanks, Gua -----Original Message----- From: devel@edk2.groups.io > On Behalf Of Rebecca Cran Sent: Wednesday, March 29, 2023 1:31 AM To: devel@edk2.groups.io; Oliver Smith-Denny <= osd@smith-denny.com>; Jiang, Guomin >; Lu, Xiaoyu1 >; Wang, Jian J >; Yao, Jiewen >; Ard Biesheuvel >; Justen, Jordan L >; Gerd Hoffmann >; Feng, Bob C = >; Gao, Liming >;= Andrew Fish >; Leif Lindholm >; Kinney, Michael D= > Cc: Rebecca Cran > Subject: [edk2-devel] [PATCH v2 03/13] BaseTools: Update CLANGDWARF toolcha= in and remove CLANG35 and CLANG38 Update the CLANGDWARF toolchain definition with the settings from CLANG38, = and delete the CLANG35 and CLANG38 toolchains. The CLANG35 and CLANG38 toolchains were added for compatibility with ARM's = proprietary clang-based toolchain. Things have since moved on, and with the= latest clang version being 16.0.0, versions 3.5 and 3.9 are obsolete and c= an be removed. Signed-off-by: Rebecca Cran > --- BaseTools/Conf/tools_def.template | 453 ++++++++------------ 1 file changed, 171 insertions(+), 282 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index 2f0b804acef3..3abd22615533 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -273,32 +273,21 @@ DEFINE DTC_BIN =3D ENV(DTC_PREFIX)dtc # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler from # https://acpica.org/downloads -# -# CLANG35 -Linux,Windows- Requires: -# Clang v3.5 or later, and GNU binutils target= ing aarch64-linux-gnu or arm-linux-gnueabi -# Optional: -# Required to build platforms or ACPI tables: -# Intel(r) ACPI Compiler from -# https://acpica.org/downloads -# CLANG38 -Linux- Requires: -# Clang v3.8, LLVMgold plugin and GNU binutils= 2.26 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-gnueabi -# Clang v3.9 or later, LLVMgold plugin and GNU= binutils 2.28 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-g= nueabi +# CLANGDWARF -Linux- Requires: +# Clang 9 or above, and GNU binutils targeting= x86_64-linux-gnu, aaarch64-linux-gnu or arm-linux-gnuaebi # Optional: # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler from # https://acpica.org/downloads +# Required to compile nasm source: +# nasm compiler from +# NASM -- https://nasm.us # CLANGPDB -Linux, Windows, Mac- Requires: # Clang 9 or above from http://releases.llvm.or= g/ # Optional: # Required to compile nasm source: # nasm compiler from # NASM -- http://www.nasm.us/ -# CLANGDWARF -Linux, Windows, Mac- Requires: -# Clang 9 or above from http://releases.llvm.o= rg/ -# Optional: -# Required to compile nasm source: -# nasm compiler from -# NASM -- http://www.nasm.us/ # VS2008x86 -win64- Requires: # Microsoft Visual Studio 2008 (x86) # Microsoft Windows Server 2003 Driver Developm= ent Kit (Microsoft WINDDK) version 3790.1830 @@ -2483,187 +2472,187 @@ RELEASE_GCC5_LOONGARCH64_CC_FLAGS =3D DEF(G= CC5_LOONGARCH64_CC_FLAGS) -Wno-un # PE/COFF binaries using LLVM/Clang with Link Time Optimization enabled #= #########################################################################= ########### -*_CLANG38_*_*_FAMILY =3D GCC -*_CLANG38_*_MAKE_PATH =3D make -*_CLANG38_*_*_DLL =3D ENV(CLANG38_DLL) -*_CLANG38_*_ASL_PATH =3D DEF(UNIX_IASL_BIN) +*_CLANGDWARF_*_*_FAMILY =3D GCC +*_CLANGDWARF_*_MAKE_PATH =3D make +*_CLANGDWARF_*_*_DLL =3D ENV(CLANGDWARF_DLL) +*_CLANGDWARF_*_ASL_PATH =3D DEF(UNIX_IASL_BIN) -*_CLANG38_*_APP_FLAGS =3D -*_CLANG38_*_ASL_FLAGS =3D DEF(IASL_FLAGS) -*_CLANG38_*_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) -*_CLANG38_*_DEPS_FLAGS =3D DEF(GCC_DEPS_FLAGS) -DEFINE CLANG38_IA32_PREFIX =3D ENV(CLANG38_BIN) -DEFINE CLANG38_X64_PREFIX =3D ENV(CLANG38_BIN) +*_CLANGDWARF_*_APP_FLAGS =3D +*_CLANGDWARF_*_ASL_FLAGS =3D DEF(IASL_FLAGS) +*_CLANGDWARF_*_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) +*_CLANGDWARF_*_DEPS_FLAGS =3D DEF(GCC_DEPS_FLAGS) +DEFINE CLANGDWARF_IA32_PREFIX =3D ENV(CLANGDWARF_BIN) +DEFINE CLANGDWARF_X64_PREFIX =3D ENV(CLANGDWARF_BIN) -DEFINE CLANG38_IA32_TARGET =3D -target i686-pc-linux-gnu -DEFINE CLANG38_X64_TARGET =3D -target x86_64-pc-linux-gnu +DEFINE CLANGDWARF_IA32_TARGET =3D -target i686-pc-linux-gnu +DEFINE CLANGDWARF_X64_TARGET =3D -target x86_64-pc-linux-gnu -DEFINE CLANG38_WARNING_OVERRIDES =3D -Wno-parentheses-equality -Wno-tau= tological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empt= y-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option = -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-acce= ss -DEFINE CLANG38_ALL_CC_FLAGS =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG3= 8_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-= shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redecla= ration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-= implicit-float -ftrap-function=3Dundefined_behavior_has_been_optimized_awa= y_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference +DEFINE CLANGDWARF_WARNING_OVERRIDES =3D -Wno-parentheses-equality -Wno-= tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-e= mpty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-opti= on -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-a= ccess +DEFINE CLANGDWARF_ALL_CC_FLAGS =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLA= NGDWARF_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address= -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-r= edeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float= -mno-implicit-float -ftrap-function=3Dundefined_behavior_has_been_optimiz= ed_away_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference ########################### -# CLANG38 IA32 definitions +# CLANGDWARF IA32 definitions ########################### -*_CLANG38_IA32_OBJCOPY_PATH =3D objcopy -*_CLANG38_IA32_CC_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_SLINK_PATH =3D DEF(CLANG38_IA32_PREFIX)llvm-ar -*_CLANG38_IA32_DLINK_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_ASLDLINK_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_ASM_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_PP_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_VFRPP_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_ASLCC_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_ASLPP_PATH =3D DEF(CLANG38_IA32_PREFIX)clang -*_CLANG38_IA32_RC_PATH =3D objcopy - -*_CLANG38_IA32_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto= DEF(CLANG38_IA32_TARGET) -*_CLANG38_IA32_ASLDLINK_FLAGS =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) = -Wl,-m,elf_i386 -*_CLANG38_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m32 -march=3D= i386 DEF(CLANG38_IA32_TARGET) -*_CLANG38_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) -*_CLANG38_IA32_OBJCOPY_FLAGS =3D -*_CLANG38_IA32_NASM_FLAGS =3D -f elf32 -*_CLANG38_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_IA32= _TARGET) -*_CLANG38_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_I= A32_TARGET) -*_CLANG38_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_I= A32_TARGET) - -DEBUG_CLANG38_IA32_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz= -flto -march=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double -DEBUG_CLANG38_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -fl= to -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=3Delf32-i386 -DEBUG_CLANG38_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3 - -RELEASE_CLANG38_IA32_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz= -flto -march=3Di586 DEF(CLANG38_IA32_TARGET) -malign-double -RELEASE_CLANG38_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -fl= to -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=3Delf32-i386 -RELEASE_CLANG38_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3 - -NOOPT_CLANG38_IA32_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0= -march=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double -NOOPT_CLANG38_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl= ,-O0 -Wl,-melf_i386 -Wl,--oformat=3Delf32-i386 -NOOPT_CLANG38_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O0 +*_CLANGDWARF_IA32_OBJCOPY_PATH =3D objcopy +*_CLANGDWARF_IA32_CC_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_SLINK_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)llvm= -ar +*_CLANGDWARF_IA32_DLINK_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_ASLDLINK_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_ASM_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_PP_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_VFRPP_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_ASLCC_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_ASLPP_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g +*_CLANGDWARF_IA32_RC_PATH =3D objcopy + +*_CLANGDWARF_IA32_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m32 -fno-= lto DEF(CLANGDWARF_IA32_TARGET) +*_CLANGDWARF_IA32_ASLDLINK_FLAGS =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAG= S) -Wl,-m,elf_i386 +*_CLANGDWARF_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m32 -march= =3Di386 DEF(CLANGDWARF_IA32_TARGET) +*_CLANGDWARF_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) +*_CLANGDWARF_IA32_OBJCOPY_FLAGS =3D +*_CLANGDWARF_IA32_NASM_FLAGS =3D -f elf32 +*_CLANGDWARF_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWAR= F_IA32_TARGET) +*_CLANGDWARF_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGD= WARF_IA32_TARGET) +*_CLANGDWARF_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGD= WARF_IA32_TARGET) + +DEBUG_CLANGDWARF_IA32_CC_FLAGS =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m= 32 -Oz -flto -march=3Di586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double +DEBUG_CLANGDWARF_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) = -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=3Delf32-i386 +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3 + +RELEASE_CLANGDWARF_IA32_CC_FLAGS =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m= 32 -Oz -flto -march=3Di586 DEF(CLANGDWARF_IA32_TARGET) -malign-double +RELEASE_CLANGDWARF_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) = -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=3Delf32-i386 +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3 + +NOOPT_CLANGDWARF_IA32_CC_FLAGS =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m= 32 -O0 -march=3Di586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double +NOOPT_CLANGDWARF_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) = -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat=3Delf32-i386 +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O0 ########################## -# CLANG38 X64 definitions +# CLANGDWARF X64 definitions ########################## -*_CLANG38_X64_OBJCOPY_PATH =3D objcopy -*_CLANG38_X64_CC_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_SLINK_PATH =3D DEF(CLANG38_X64_PREFIX)llvm-ar -*_CLANG38_X64_DLINK_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_ASLDLINK_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_ASM_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_PP_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_VFRPP_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_ASLCC_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_ASLPP_PATH =3D DEF(CLANG38_X64_PREFIX)clang -*_CLANG38_X64_RC_PATH =3D objcopy - -*_CLANG38_X64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto = DEF(CLANG38_X64_TARGET) -*_CLANG38_X64_ASLDLINK_FLAGS =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -= Wl,-m,elf_x86_64 -*_CLANG38_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANG3= 8_X64_TARGET) -*_CLANG38_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) -*_CLANG38_X64_OBJCOPY_FLAGS =3D -*_CLANG38_X64_NASM_FLAGS =3D -f elf64 -*_CLANG38_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_X64_T= ARGET) -*_CLANG38_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X6= 4_TARGET) -*_CLANG38_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X6= 4_TARGET) - -DEBUG_CLANG38_X64_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DE= FIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz -= flto DEF(CLANG38_X64_TARGET) -g -DEBUG_CLANG38_X64_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flt= o -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel= =3Dsmall -DEBUG_CLANG38_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3 - -RELEASE_CLANG38_X64_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DE= FIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz -= flto DEF(CLANG38_X64_TARGET) -RELEASE_CLANG38_X64_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flt= o -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel= =3Dsmall -RELEASE_CLANG38_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3 - -NOOPT_CLANG38_X64_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DE= FIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -O0 D= EF(CLANG38_X64_TARGET) -g -NOOPT_CLANG38_X64_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,= -O0 -Wl,-melf_x86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall -NOOPT_CLANG38_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) -O0 +*_CLANGDWARF_X64_OBJCOPY_PATH =3D objcopy +*_CLANGDWARF_X64_CC_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_SLINK_PATH =3D DEF(CLANGDWARF_X64_PREFIX)llvm-a= r +*_CLANGDWARF_X64_DLINK_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_ASLDLINK_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_ASM_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_PP_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_VFRPP_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_ASLCC_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_ASLPP_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang +*_CLANGDWARF_X64_RC_PATH =3D objcopy + +*_CLANGDWARF_X64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m64 -fno-l= to DEF(CLANGDWARF_X64_TARGET) +*_CLANGDWARF_X64_ASLDLINK_FLAGS =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS= ) -Wl,-m,elf_x86_64 +*_CLANGDWARF_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 DEF(CLA= NGDWARF_X64_TARGET) +*_CLANGDWARF_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) +*_CLANGDWARF_X64_OBJCOPY_FLAGS =3D +*_CLANGDWARF_X64_NASM_FLAGS =3D -f elf64 +*_CLANGDWARF_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWARF= _X64_TARGET) +*_CLANGDWARF_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDW= ARF_X64_TARGET) +*_CLANGDWARF_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDW= ARF_X64_TARGET) + +DEBUG_CLANGDWARF_X64_CC_FLAGS =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m6= 4 "-DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie= -Oz -flto DEF(CLANGDWARF_X64_TARGET) -g +DEBUG_CLANGDWARF_X64_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -= flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmode= l=3Dsmall +DEBUG_CLANGDWARF_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3 + +RELEASE_CLANGDWARF_X64_CC_FLAGS =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m6= 4 "-DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie= -Oz -flto DEF(CLANGDWARF_X64_TARGET) +RELEASE_CLANGDWARF_X64_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -= flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmode= l=3Dsmall -fuse-ld=3Dlld +RELEASE_CLANGDWARF_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3 -= fuse-ld=3Dlld + +NOOPT_CLANGDWARF_X64_CC_FLAGS =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m6= 4 "-DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie= -O0 DEF(CLANGDWARF_X64_TARGET) -g +NOOPT_CLANGDWARF_X64_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -= flto -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmode= l=3Dsmall +NOOPT_CLANGDWARF_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) -O0 ################## -# CLANG38 ARM definitions +# CLANGDWARF ARM definitions ################## -DEFINE CLANG38_ARM_TARGET =3D -target arm-linux-gnueabi -DEFINE CLANG38_ARM_CC_FLAGS =3D DEF(GCC_ARM_CC_FLAGS) DEF(CLANG38_ARM= _TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-movt -DEFINE CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_D= LINK_FLAGS) - -*_CLANG38_ARM_PP_FLAGS =3D DEF(GCC_PP_FLAGS) -*_CLANG38_ARM_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -*_CLANG38_ARM_APP_FLAGS =3D -*_CLANG38_ARM_ASL_FLAGS =3D DEF(IASL_FLAGS) -*_CLANG38_ARM_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) -*_CLANG38_ARM_DTCPP_FLAGS =3D DEF(GCC_DTCPP_FLAGS) - -*_CLANG38_ARM_CC_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_ASM_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_PP_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_VFRPP_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_ASLCC_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_ASLPP_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_DLINK_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_ARM_ASLDLINK_PATH =3D ENV(CLANG38_BIN)clang - -*_CLANG38_ARM_SLINK_PATH =3D ENV(CLANG38_BIN)llvm-ar -*_CLANG38_ARM_RC_PATH =3D ENV(CLANG38_ARM_PREFIX)objcopy - -*_CLANG38_ARM_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -fno-lto -*_CLANG38_ARM_ASLDLINK_FLAGS =3D DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_A= SLDLINK_FLAGS) -*_CLANG38_ARM_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) DEF(CLANG38_ARM_TA= RGET) $(PLATFORM_FLAGS) -Qunused-arguments -*_CLANG38_ARM_DLINK2_FLAGS =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--de= fsym=3DPECOFF_HEADER_SIZE=3D0x220 -*_CLANG38_ARM_PLATFORM_FLAGS =3D -march=3Darmv7-a -*_CLANG38_ARM_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_ARM_TAR= GET) $(PLATFORM_FLAGS) -*_CLANG38_ARM_RC_FLAGS =3D DEF(GCC_ARM_RC_FLAGS) -*_CLANG38_ARM_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_ARM_= TARGET) $(PLATFORM_FLAGS) -*_CLANG38_ARM_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_ARM_= TARGET) -*_CLANG38_ARM_CC_XIPFLAGS =3D DEF(GCC_ARM_CC_XIPFLAGS) - - DEBUG_CLANG38_ARM_CC_FLAGS =3D DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_= FLAGS) -flto -O1 - DEBUG_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flto -W= l,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D-pas= s-through=3D-llto-arm - NOOPT_CLANG38_ARM_CC_FLAGS =3D DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_= FLAGS) -O0 - NOOPT_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -RELEASE_CLANG38_ARM_CC_FLAGS =3D DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_= FLAGS) -flto -O3 -RELEASE_CLANG38_ARM_DLINK_FLAGS =3D DEF(CLANG38_ARM_DLINK_FLAGS) -flto -W= l,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=3D-pas= s-through=3D-llto-arm +DEFINE CLANGDWARF_ARM_TARGET =3D -target arm-linux-gnueabi +DEFINE CLANGDWARF_ARM_CC_FLAGS =3D $(PLATFORM_FLAGS) DEF(GCC_ALL_CC_F= LAGS) -mlittle-endian -mabi=3Daapcs -fno-short-enums -funsigned-char -fomit= -frame-pointer -Wno-address -mthumb -fno-pic -fno-pie DEF(CLANGDWARF_ARM_TA= RGET) DEF(CLANGDWARF_WARNING_OVERRIDES) -mno-movt +DEFINE CLANGDWARF_ARM_DLINK_FLAGS =3D DEF(CLANGDWARF_ARM_TARGET) DEF(GCC= _ARM_DLINK_FLAGS) + +*_CLANGDWARF_ARM_PP_FLAGS =3D DEF(GCC_PP_FLAGS) +*_CLANGDWARF_ARM_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) +*_CLANGDWARF_ARM_APP_FLAGS =3D +*_CLANGDWARF_ARM_ASL_FLAGS =3D DEF(IASL_FLAGS) +*_CLANGDWARF_ARM_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) +*_CLANGDWARF_ARM_DTCPP_FLAGS =3D DEF(GCC_DTCPP_FLAGS) + +*_CLANGDWARF_ARM_CC_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_ASM_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_PP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_VFRPP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_ASLCC_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_ASLPP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_DLINK_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_ARM_ASLDLINK_PATH =3D ENV(CLANGDWARF_BIN)clang + +*_CLANGDWARF_ARM_SLINK_PATH =3D ENV(CLANGDWARF_BIN)llvm-ar +*_CLANGDWARF_ARM_RC_PATH =3D ENV(CLANGDWARF_ARM_PREFIX)objcopy + +*_CLANGDWARF_ARM_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -fno-lto +*_CLANGDWARF_ARM_ASLDLINK_FLAGS =3D DEF(CLANGDWARF_ARM_TARGET) DEF(GCC= _ARM_ASLDLINK_FLAGS) +*_CLANGDWARF_ARM_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_= ARM_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments +*_CLANGDWARF_ARM_DLINK2_FLAGS =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,-= -defsym=3DPECOFF_HEADER_SIZE=3D0x220 +*_CLANGDWARF_ARM_PLATFORM_FLAGS =3D -march=3Darmv7-a +*_CLANGDWARF_ARM_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_A= RM_TARGET) $(PLATFORM_FLAGS) +*_CLANGDWARF_ARM_RC_FLAGS =3D DEF(GCC_ARM_RC_FLAGS) +*_CLANGDWARF_ARM_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWAR= F_ARM_TARGET) $(PLATFORM_FLAGS) +*_CLANGDWARF_ARM_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWAR= F_ARM_TARGET) +*_CLANGDWARF_ARM_CC_XIPFLAGS =3D DEF(GCC_ARM_CC_XIPFLAGS) + + DEBUG_CLANGDWARF_ARM_CC_FLAGS =3D DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLA= TFORM_FLAGS) -flto -O1 + DEBUG_CLANGDWARF_ARM_DLINK_FLAGS =3D DEF(CLANGDWARF_ARM_DLINK_FLAGS) -f= lto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt= =3D-pass-through=3D-llto-arm + NOOPT_CLANGDWARF_ARM_CC_FLAGS =3D DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLA= TFORM_FLAGS) -O0 + NOOPT_CLANGDWARF_ARM_DLINK_FLAGS =3D DEF(CLANGDWARF_ARM_DLINK_FLAGS) +RELEASE_CLANGDWARF_ARM_CC_FLAGS =3D DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLA= TFORM_FLAGS) -flto -O3 +RELEASE_CLANGDWARF_ARM_DLINK_FLAGS =3D DEF(CLANGDWARF_ARM_DLINK_FLAGS) +-flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm +-Wl,-plugin-opt=3D-pass-through=3D-llto-arm ################## -# CLANG38 AARCH64 definitions +# CLANGDWARF AARCH64 definitions ################## -DEFINE CLANG38_AARCH64_TARGET =3D -target aarch64-linux-gnu -DEFINE CLANG38_AARCH64_CC_FLAGS =3D DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG38= _AARCH64_TARGET) -mcmodel=3Dsmall DEF(CLANG38_WARNING_OVERRIDES) -DEFINE CL= ANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_= DLINK_FLAGS) -z common-page-size=3D0x1000 - -*_CLANG38_AARCH64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) -*_CLANG38_AARCH64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -*_CLANG38_AARCH64_APP_FLAGS =3D -*_CLANG38_AARCH64_ASL_FLAGS =3D DEF(IASL_FLAGS) -*_CLANG38_AARCH64_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) -*_CLANG38_AARCH64_DTCPP_FLAGS =3D DEF(GCC_DTCPP_FLAGS) - -*_CLANG38_AARCH64_CC_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_ASM_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_PP_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_VFRPP_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_ASLCC_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_ASLPP_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_DLINK_PATH =3D ENV(CLANG38_BIN)clang -*_CLANG38_AARCH64_ASLDLINK_PATH =3D ENV(CLANG38_BIN)clang - -*_CLANG38_AARCH64_SLINK_PATH =3D ENV(CLANG38_BIN)llvm-ar -*_CLANG38_AARCH64_RC_PATH =3D ENV(CLANG38_AARCH64_PREFIX)objcopy - -*_CLANG38_AARCH64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -fno-lto -*_CLANG38_AARCH64_ASLDLINK_FLAGS =3D DEF(CLANG38_AARCH64_TARGET) DEF(GCC_A= ARCH64_ASLDLINK_FLAGS) -*_CLANG38_AARCH64_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) DEF(CLANG38_AARCH6= 4_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments -*_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_TARGET) DEF(GCC_A= ARCH64_DLINK_FLAGS) -z common-page-size=3D0x1000 -*_CLANG38_AARCH64_DLINK_XIPFLAGS =3D -z common-page-size=3D0x20 -*_CLANG38_AARCH64_DLINK2_FLAGS =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--de= fsym=3DPECOFF_HEADER_SIZE=3D0x228 -*_CLANG38_AARCH64_PLATFORM_FLAGS =3D -*_CLANG38_AARCH64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_AARCH64= _TARGET) $(PLATFORM_FLAGS) -*_CLANG38_AARCH64_RC_FLAGS =3D DEF(GCC_AARCH64_RC_FLAGS) -*_CLANG38_AARCH64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_AARC= H64_TARGET) $(PLATFORM_FLAGS) -*_CLANG38_AARCH64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_AARC= H64_TARGET) -*_CLANG38_AARCH64_CC_XIPFLAGS =3D DEF(GCC_AARCH64_CC_XIPFLAGS) - - DEBUG_CLANG38_AARCH64_CC_FLAGS =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(PL= ATFORM_FLAGS) -flto -O1 - DEBUG_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAGS) -= flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin= -opt=3D-pass-through=3D-llto-aarch64 - NOOPT_CLANG38_AARCH64_CC_FLAGS =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(PL= ATFORM_FLAGS) -O0 - NOOPT_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAGS) -RELEASE_CLANG38_AARCH64_CC_FLAGS =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(PL= ATFORM_FLAGS) -flto -O3 -RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_AARCH64_DLINK_FLAGS) -= flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin= -opt=3D-pass-through=3D-llto-aarch64 +DEFINE CLANGDWARF_AARCH64_TARGET =3D -target aarch64-linux-gnu +DEFINE CLANGDWARF_AARCH64_CC_FLAGS =3D DEF(GCC_AARCH64_CC_FLAGS) +DEF(CLANGDWARF_AARCH64_TARGET) -mcmodel=3Dsmall +DEF(CLANGDWARF_WARNING_OVERRIDES) DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS +=3D DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z +common-page-size=3D0x1000 + +*_CLANGDWARF_AARCH64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) +*_CLANGDWARF_AARCH64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) +*_CLANGDWARF_AARCH64_APP_FLAGS =3D +*_CLANGDWARF_AARCH64_ASL_FLAGS =3D DEF(IASL_FLAGS) +*_CLANGDWARF_AARCH64_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) +*_CLANGDWARF_AARCH64_DTCPP_FLAGS =3D DEF(GCC_DTCPP_FLAGS) + +*_CLANGDWARF_AARCH64_CC_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_ASM_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_PP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_VFRPP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_ASLCC_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_ASLPP_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_DLINK_PATH =3D ENV(CLANGDWARF_BIN)clang +*_CLANGDWARF_AARCH64_ASLDLINK_PATH =3D ENV(CLANGDWARF_BIN)clang + +*_CLANGDWARF_AARCH64_SLINK_PATH =3D ENV(CLANGDWARF_BIN)llvm-ar +*_CLANGDWARF_AARCH64_RC_PATH =3D ENV(CLANGDWARF_AARCH64_PREFIX)objc= opy + +*_CLANGDWARF_AARCH64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -fno-lto +*_CLANGDWARF_AARCH64_ASLDLINK_FLAGS =3D DEF(CLANGDWARF_AARCH64_TARGET) DEF= (GCC_AARCH64_ASLDLINK_FLAGS) +*_CLANGDWARF_AARCH64_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_= AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments +*_CLANGDWARF_AARCH64_DLINK_FLAGS =3D DEF(CLANGDWARF_AARCH64_TARGET) DEF= (GCC_AARCH64_DLINK_FLAGS) -z common-page-size=3D0x1000 +*_CLANGDWARF_AARCH64_DLINK_XIPFLAGS =3D -z common-page-size=3D0x20 +*_CLANGDWARF_AARCH64_DLINK2_FLAGS =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,-= -defsym=3DPECOFF_HEADER_SIZE=3D0x228 +*_CLANGDWARF_AARCH64_PLATFORM_FLAGS =3D +*_CLANGDWARF_AARCH64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_A= ARCH64_TARGET) $(PLATFORM_FLAGS) +*_CLANGDWARF_AARCH64_RC_FLAGS =3D DEF(GCC_AARCH64_RC_FLAGS) +*_CLANGDWARF_AARCH64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWAR= F_AARCH64_TARGET) $(PLATFORM_FLAGS) +*_CLANGDWARF_AARCH64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWAR= F_AARCH64_TARGET) +*_CLANGDWARF_AARCH64_CC_XIPFLAGS =3D DEF(GCC_AARCH64_CC_XIPFLAGS) + + DEBUG_CLANGDWARF_AARCH64_CC_FLAGS =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS= ) $(PLATFORM_FLAGS) -flto -O1 + DEBUG_CLANGDWARF_AARCH64_DLINK_FLAGS =3D DEF(CLANGDWARF_AARCH64_DLINK_FL= AGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-= plugin-opt=3D-pass-through=3D-llto-aarch64 + NOOPT_CLANGDWARF_AARCH64_CC_FLAGS =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS= ) $(PLATFORM_FLAGS) -O0 + NOOPT_CLANGDWARF_AARCH64_DLINK_FLAGS =3D DEF(CLANGDWARF_AARCH64_DLINK_FL= AGS) +RELEASE_CLANGDWARF_AARCH64_CC_FLAGS =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS= ) $(PLATFORM_FLAGS) -flto -O3 +RELEASE_CLANGDWARF_AARCH64_DLINK_FLAGS =3D +DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 +-L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 +-Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64 ##########################################################################= ########## # @@ -2763,106 +2752,6 @@ NOOPT_CLANGPDB_X64_DLINK_FLAGS =3D /NOLOGO /NO= DEFAULTLIB /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/M= ac to produce -# ELF binaries using LLVM/Clang/LLD with Link Time Optimiza= tion enabled -# -##########################################################= ########################## -*_CLANGDWARF_*_*_FAMILY =3D GCC -*_CLANGDWARF_*_*_BUILDRULEFAMILY =3D CLANGGCC -*_CLANGDWARF_*_MAKE_PATH =3D ENV(CLANG_HOST_BIN)make -*_CLANGDWARF_*_*_DLL =3D ENV(CLANGDWARF_DLL) -*_CLANGDWARF_*_ASL_PATH =3D DEF(UNIX_IASL_BIN) - -*_CLANGDWARF_*_APP_FLAGS =3D -*_CLANGDWARF_*_ASL_FLAGS =3D DEF(IASL_FLAGS) -*_CLANGDWARF_*_ASL_OUTFLAGS =3D DEF(IASL_OUTFLAGS) - -DEFINE CLANGDWARF_IA32_PREFIX =3D ENV(CLANG_BIN) -DEFINE CLANGDWARF_X64_PREFIX =3D ENV(CLANG_BIN) - -# LLVM/CLANG doesn't support -n link option. So, it can't share the same I= A32_X64_DLINK_COMMON flag. -# LLVM/CLANG doesn't support common page size. So, it can't share the same= GccBase.lds script. -DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON =3D -nostdlib -Wl,-q,--gc-sectio= ns -z max-page-size=3D0x40 -DEFINE CLANGDWARF_DLINK2_FLAGS_COMMON =3D -Wl,--script=3D$(EDK_TOOLS_P= ATH)/Scripts/ClangBase.lds -DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLIN= K_COMMON) -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0 DEF(CLANGDWARF_DLINK2_FLAGS= _COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable -DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLIN= K_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map= ,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive -DEFINE CLANGDWARF_IA32_DLINK2_FLAGS =3D -Wl,--defsym=3DPECOFF_HEADER= _SIZE=3D0x220 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) -DEFINE CLANGDWARF_X64_DLINK2_FLAGS =3D -Wl,--defsym=3DPECOFF_HEADER= _SIZE=3D0x228 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) - -########################### -# CLANGDWARF IA32 definitions -########################### -*_CLANGDWARF_IA32_CC_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_SLINK_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)llvm= -ar -*_CLANGDWARF_IA32_DLINK_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_ASLDLINK_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_ASM_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_PP_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_VFRPP_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_ASLCC_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_ASLPP_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)clan= g -*_CLANGDWARF_IA32_RC_PATH =3D DEF(CLANGDWARF_IA32_PREFIX)llvm= -rc - -*_CLANGDWARF_IA32_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m32 -fno-= lto DEF(CLANG38_IA32_TARGET) -*_CLANGDWARF_IA32_ASLDLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_ASLDLIN= K_FLAGS) -Wl,-m,elf_i386 -fuse-ld=3Dlld -*_CLANGDWARF_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m32 -march= =3Di386 DEF(CLANG38_IA32_TARGET) -*_CLANGDWARF_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) -*_CLANGDWARF_IA32_OBJCOPY_FLAGS =3D -*_CLANGDWARF_IA32_NASM_FLAGS =3D -f elf32 -*_CLANGDWARF_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_I= A32_TARGET) -*_CLANGDWARF_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG3= 8_IA32_TARGET) -*_CLANGDWARF_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG3= 8_IA32_TARGET) - -DEBUG_CLANGDWARF_IA32_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 = -Oz -flto -march=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double -DEBUG_CLANGDWARF_IA32_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLINK_F= LAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(CLANGDWARF_IA32_DLINK2_FLAG= S) -O3 -fuse-ld=3Dlld - -RELEASE_CLANGDWARF_IA32_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 = -Oz -flto -march=3Di586 DEF(CLANG38_IA32_TARGET) -malign-double -RELEASE_CLANGDWARF_IA32_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLINK_F= LAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(CLANGDWARF_IA32_DLINK2_FLAG= S) -O3 -fuse-ld=3Dlld - -NOOPT_CLANGDWARF_IA32_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 = -O0 -march=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double -NOOPT_CLANGDWARF_IA32_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLINK_F= LAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(CLANGDWARF_IA32_DLINK2_FLAG= S) -O0 -fuse-ld=3Dlld - -########################## -# CLANGDWARF X64 definitions -########################## -*_CLANGDWARF_X64_CC_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_SLINK_PATH =3D DEF(CLANGDWARF_X64_PREFIX)llvm-a= r -*_CLANGDWARF_X64_DLINK_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_ASLDLINK_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_ASM_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_PP_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_VFRPP_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_ASLCC_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_ASLPP_PATH =3D DEF(CLANGDWARF_X64_PREFIX)clang -*_CLANGDWARF_X64_RC_PATH =3D DEF(CLANGDWARF_X64_PREFIX)llvm-r= c - -*_CLANGDWARF_X64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m64 -fno-l= to DEF(CLANG38_X64_TARGET) -*_CLANGDWARF_X64_ASLDLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_ASLDLINK= _FLAGS) -Wl,-m,elf_x86_64 -fuse-ld=3Dlld -*_CLANGDWARF_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 DEF(CLA= NG38_X64_TARGET) -*_CLANGDWARF_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) -*_CLANGDWARF_X64_OBJCOPY_FLAGS =3D -*_CLANGDWARF_X64_NASM_FLAGS =3D -f elf64 -*_CLANGDWARF_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_X6= 4_TARGET) -*_CLANGDWARF_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38= _X64_TARGET) -*_CLANGDWARF_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38= _X64_TARGET) - -DEBUG_CLANGDWARF_X64_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "= -DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -O= z -flto DEF(CLANG38_X64_TARGET) -g -DEBUG_CLANGDWARF_X64_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLINK_FL= AGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mc= model=3Dsmall -Wl,--apply-dynamic-relocs -DEBUG_CLANGDWARF_X64_DLINK2_FLAGS =3D DEF(CLANGDWARF_X64_DLINK2_FLAGS)= -O3 -fuse-ld=3Dlld - -RELEASE_CLANGDWARF_X64_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "= -DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -O= z -flto DEF(CLANG38_X64_TARGET) -RELEASE_CLANGDWARF_X64_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLINK_FL= AGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mc= model=3Dsmall -Wl,--apply-dynamic-relocs -RELEASE_CLANGDWARF_X64_DLINK2_FLAGS =3D DEF(CLANGDWARF_X64_DLINK2_FLAGS)= -O3 -fuse-ld=3Dlld - -NOOPT_CLANGDWARF_X64_CC_FLAGS =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "= -DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -O= 0 DEF(CLANG38_X64_TARGET) -g -NOOPT_CLANGDWARF_X64_DLINK_FLAGS =3D DEF(CLANGDWARF_IA32_X64_DLINK_FL= AGS) -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel= =3Dsmall -Wl,--apply-dynamic-relocs -NOOPT_CLANGDWARF_X64_DLINK2_FLAGS =3D DEF(CLANGDWARF_X64_DLINK2_FLAGS)= -O0 -fuse-ld=3Dlld - # # # XCODE5 support -- 2.34.1 --_000_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

And I als= o try to pick the patch to my local.

Look like= the patch encounter the failure.

&nbs= p;

Have any = verify step on your side, maybe we can align it.

&nbs= p;

edksetup = Rebuild.bat

py -3 Uef= iPayloadPkg\UniversalPayloadBuild.py -t CLANGDWARF

&nbs= p;

&nbs= p;

Thanks,

Gua Guo

From: devel@edk2.groups.io <devel@edk2.gro= ups.io> On Behalf Of Guo, Gua
Sent: Wednesday, March 29, 2023 11:47 AM
To: devel@edk2.groups.io; rebecca@bsdio.com; Oliver Smith-Denny <= osd@smith-denny.com>; Jiang, Guomin <guomin.jiang@intel.com>; Lu, = Xiaoyu1 <xiaoyu1.lu@intel.com>; Wang, Jian J <jian.j.wang@intel.co= m>; Yao, Jiewen <jiewen.yao@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>; Justen, Jordan L <jordan.l.justen@in= tel.com>; Gerd Hoffmann <kraxel@redhat.com>; Feng, Bob C <bob.c= .feng@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Andrew F= ish <afish@apple.com>; Leif Lindholm <quic_llindhol@quicinc.com>= ;; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH v2 03/13] BaseTools: Update CLANGDW= ARF toolchain and remove CLANG35 and CLANG38

 

@rebecca@bsdio.com

 

On this part, whether is better to change it from= “objcopy” to “llvm-objcopy”

 

Windows path: C:\Program Files (x86)\llvm-objcopy= .exe

Linux path: /usr/bin/llvm-objcopy

 

 

Thanks,

Gua

-----O= riginal Message-----
From: devel@edk2.groups.io <= devel@edk2.groups.io> On Beh= alf Of Rebecca Cran
Sent: Wednesday, March 29, 2023 1:31 AM
To: devel@edk2.groups.io; Olive= r Smith-Denny <osd@smith-denny.co= m>; Jiang, Guomin <guom= in.jiang@intel.com>; Lu, Xiaoyu1 <xiaoyu1.lu@intel.com>; Wang, Jian J <jian.j.wang@inte= l.com>; Yao, Jiewen <jiew= en.yao@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>; Justen, Jordan L <jordan.l.justen@= intel.com>; Gerd Hoffmann <k= raxel@redhat.com>; Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Andrew Fish <afish@apple.com>= ; Leif Lindholm <quic_llind= hol@quicinc.com>; Kinney, Michael D <michael.d.kinney@intel.com>
Cc: Rebecca Cran <rebecca@bsdio.com= >
Subject: [edk2-devel] [PATCH v2 03/13] BaseTools: Update CLANGDWARF toolcha= in and remove CLANG35 and CLANG38

 

Update the CLANGDWARF toolchain definition with t= he settings from CLANG38, and delete the CLANG35 and CLANG38 toolchains.

 

The CLANG35 and CLANG38 toolchains were added for= compatibility with ARM's proprietary clang-based toolchain. Things have si= nce moved on, and with the latest clang version being 16.0.0, versions 3.5 = and 3.9 are obsolete and can be removed.

 

Signed-off-by: Rebecca Cran <r= ebecca@bsdio.com>

---

BaseTools/Conf/tools_def.template | 453 ++++++++-= -----------

1 file changed, 171 insertions(+), 282 deletions(= -)

 

diff --git a/BaseTools/Conf/tools_def.template b/= BaseTools/Conf/tools_def.template

index 2f0b804acef3..3abd22615533 100755

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

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

@@ -273,32 +273,21 @@ DEFINE DTC_BIN  &= nbsp;           &nbs= p;  =3D ENV(DTC_PREFIX)dtc

#        =             &nb= sp;        Required to build platforms o= r ACPI tables:

#         = ;            &n= bsp;         Intel(r) ACPI Com= piler from

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

-#

-#   CLANG35     -L= inux,Windows-  Requires:

-#        = ;            &n= bsp;        Clang v3.5 or later, and GNU= binutils targeting aarch64-linux-gnu or arm-linux-gnueabi

-#        = ;            &n= bsp;   Optional:

-#        = ;            &n= bsp;        Required to build platforms = or ACPI tables:

-#        = ;            &n= bsp;          Intel(r) ACPI Co= mpiler from

-#        = ;            &n= bsp;          https://acpica.org/do= wnloads

-#   CLANG38  -Linux-  Requir= es:

-#        = ;            &n= bsp;        Clang v3.8, LLVMgold plugin = and GNU binutils 2.26 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-= linux-gnueabi

-#        = ;            &n= bsp;        Clang v3.9 or later, LLVMgol= d plugin and GNU binutils 2.28 targeting x86_64-linux-gnu, aarch64-linux-gn= u or arm-linux-gnueabi

+#   CLANGDWARF  -Linux-  Req= uires:

+#        = ;            &n= bsp;        Clang 9 or above, and GNU bi= nutils targeting x86_64-linux-gnu, aaarch64-linux-gnu or arm-linux-gnuaebi<= o:p>

#        =             &nb= sp;   Optional:

#        =             &nb= sp;        Required to build platforms o= r ACPI tables:

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

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

+#        = ;            &n= bsp;        Required to compile nasm sou= rce:

+#        = ;            &n= bsp;          nasm compiler fr= om

+#        = ;            &n= bsp;          NASM -- https://nasm.us

#   CLANGPDB -Linux, Windows, Mac- = ; Requires:

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

#        =             &nb= sp;   Optional:

#        =             &nb= sp;        Required to compile nasm sour= ce:

#        =             &nb= sp;          nasm compiler fro= m

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

-#   CLANGDWARF -Linux, Windows, Mac-&n= bsp; Requires:

-#        = ;            &n= bsp;        Clang 9 or above from http://releases.llvm.= org/

-#        = ;            &n= bsp;   Optional:

-#        = ;            &n= bsp;        Required to compile nasm sou= rce:

-#        = ;            &n= bsp;          nasm compiler fr= om

-#        = ;            &n= bsp;          NASM -- http://www.nasm.us/

#   VS2008x86   -win64- = Requires:

#        =             &nb= sp;        Microsoft Visual Studio 2008 = (x86)

#         = ;            &n= bsp;       Microsoft Windows Server 2003= Driver Development Kit (Microsoft WINDDK) version 3790.1830

@@ -2483,187 +2472,187 @@ RELEASE_GCC5_LOONGARCH6= 4_CC_FLAGS       =3D DEF(GCC5_LOONGARCH64_CC_= FLAGS) -Wno-un

#  PE/COFF binaries using LLVM/Clang with Li= nk Time Optimization enabled  #  ################################= ####################################################

-*_CLANG38_*_*_FAMILY    &nbs= p;           =3D GCC=

-*_CLANG38_*_MAKE_PATH    &nb= sp;          =3D make

-*_CLANG38_*_*_DLL     &= nbsp;           &nbs= p; =3D ENV(CLANG38_DLL)

-*_CLANG38_*_ASL_PATH    &nbs= p;           =3D DEF(UNIX= _IASL_BIN)

+*_CLANGDWARF_*_*_FAMILY    &= nbsp;           =3D GCC

+*_CLANGDWARF_*_MAKE_PATH    =            =3D make<= /o:p>

+*_CLANGDWARF_*_*_DLL    &nbs= p;            &= nbsp; =3D ENV(CLANGDWARF_DLL)

+*_CLANGDWARF_*_ASL_PATH    &= nbsp;           =3D DEF(U= NIX_IASL_BIN)

 

-*_CLANG38_*_APP_FLAGS    &nb= sp;          =3D

-*_CLANG38_*_ASL_FLAGS    &nb= sp;          =3D DEF(IASL_FLAG= S)

-*_CLANG38_*_ASL_OUTFLAGS    =         =3D DEF(IASL_OUTFLAGS)

-*_CLANG38_*_DEPS_FLAGS    &n= bsp;         =3D DEF(GCC_DEPS_FLAGS= )

-DEFINE CLANG38_IA32_PREFIX   &nbs= p;      =3D ENV(CLANG38_BIN)

-DEFINE CLANG38_X64_PREFIX    = ;       =3D ENV(CLANG38_BIN)

+*_CLANGDWARF_*_APP_FLAGS    =            =3D=

+*_CLANGDWARF_*_ASL_FLAGS    =            =3D DEF(IASL_F= LAGS)

+*_CLANGDWARF_*_ASL_OUTFLAGS   &nb= sp;        =3D DEF(IASL_OUTFLAGS)

+*_CLANGDWARF_*_DEPS_FLAGS    = ;          =3D DEF(GCC_DEPS_FL= AGS)

+DEFINE CLANGDWARF_IA32_PREFIX   &= nbsp;      =3D ENV(CLANGDWARF_BIN)

+DEFINE CLANGDWARF_X64_PREFIX   &n= bsp;       =3D ENV(CLANGDWARF_BIN)=

 

-DEFINE CLANG38_IA32_TARGET   &nbs= p;      =3D -target i686-pc-linux-gnu

-DEFINE CLANG38_X64_TARGET    = ;       =3D -target x86_64-pc-linux-gnu<= /o:p>

+DEFINE CLANGDWARF_IA32_TARGET   &= nbsp;      =3D -target i686-pc-linux-gnu

+DEFINE CLANGDWARF_X64_TARGET   &n= bsp;       =3D -target x86_64-pc-linux-gnu

 

-DEFINE CLANG38_WARNING_OVERRIDES  &nbs= p; =3D -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautologica= l-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable = -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-access

-DEFINE CLANG38_ALL_CC_FLAGS   &nb= sp;     =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG38_WARNING= _OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-neg= ative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclaration -f= no-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implicit-float  -ftrap-function= =3Dundefined_behavior_has_been_optimized_away_by_clang -funsigned-char -fno= -ms-extensions -Wno-null-dereference

+DEFINE CLANGDWARF_WARNING_OVERRIDES  &= nbsp; =3D -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautolog= ical-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variab= le -Wno-varargs -Wno-unknown-warning-option -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-unaligned-access

+DEFINE CLANGDWARF_ALL_CC_FLAGS   =       =3D DEF(GCC48_ALL_CC_FLAGS) DEF(CLANGDWARF_W= ARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-shi= ft-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclarat= ion -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implic= it-float  -ftrap-function=3Dundefined_behavior_has_been_optimized_away= _by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference

 

 ###########################

-# CLANG38 IA32 definitions

+# CLANGDWARF IA32 definitions

###########################

-*_CLANG38_IA32_OBJCOPY_PATH   &nb= sp;     =3D objcopy

-*_CLANG38_IA32_CC_PATH    &n= bsp;         =3D DEF(CLANG38_IA32_P= REFIX)clang

-*_CLANG38_IA32_SLINK_PATH    = ;       =3D DEF(CLANG38_IA32_PREFIX)llvm-ar

-*_CLANG38_IA32_DLINK_PATH    = ;       =3D DEF(CLANG38_IA32_PREFIX)clang

-*_CLANG38_IA32_ASLDLINK_PATH   &n= bsp;    =3D DEF(CLANG38_IA32_PREFIX)clang

-*_CLANG38_IA32_ASM_PATH    &= nbsp;        =3D DEF(CLANG38_IA32_PREFIX= )clang

-*_CLANG38_IA32_PP_PATH    &n= bsp;         =3D DEF(CLANG38_IA32_P= REFIX)clang

-*_CLANG38_IA32_VFRPP_PATH    = ;       =3D DEF(CLANG38_IA32_PREFIX)clang

-*_CLANG38_IA32_ASLCC_PATH    &nbs= p;      =3D DEF(CLANG38_IA32_PREFIX)clang

-*_CLANG38_IA32_ASLPP_PATH    = ;       =3D DEF(CLANG38_IA32_PREFIX)clang

-*_CLANG38_IA32_RC_PATH    &n= bsp;         =3D objcopy=

-

-*_CLANG38_IA32_ASLCC_FLAGS   &nbs= p;      =3D DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF= (CLANG38_IA32_TARGET)

-*_CLANG38_IA32_ASLDLINK_FLAGS   &= nbsp;   =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386

-*_CLANG38_IA32_ASM_FLAGS    =         =3D DEF(GCC5_ASM_FLAGS) -m32 -ma= rch=3Di386 DEF(CLANG38_IA32_TARGET)

-*_CLANG38_IA32_RC_FLAGS    &= nbsp;        =3D DEF(GCC_IA32_RC_FLAGS)<= o:p>

-*_CLANG38_IA32_OBJCOPY_FLAGS   &n= bsp;    =3D

-*_CLANG38_IA32_NASM_FLAGS    = ;       =3D -f elf32

-*_CLANG38_IA32_PP_FLAGS    &= nbsp;        =3D DEF(GCC_PP_FLAGS) DEF(C= LANG38_IA32_TARGET)

-*_CLANG38_IA32_ASLPP_FLAGS   &nbs= p;      =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_= TARGET)

-*_CLANG38_IA32_VFRPP_FLAGS   &nbs= p;      =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_= TARGET)

-

-DEBUG_CLANG38_IA32_CC_FLAGS   &nb= sp;     =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -m= arch=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double

-DEBUG_CLANG38_IA32_DLINK_FLAGS   =    =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i38= 6 -Wl,--oformat=3Delf32-i386

-DEBUG_CLANG38_IA32_DLINK2_FLAGS   = ;  =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3

-

-RELEASE_CLANG38_IA32_CC_FLAGS   &= nbsp;   =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=3Di58= 6 DEF(CLANG38_IA32_TARGET) -malign-double

-RELEASE_CLANG38_IA32_DLINK_FLAGS  &nbs= p; =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--of= ormat=3Delf32-i386

-RELEASE_CLANG38_IA32_DLINK2_FLAGS   = =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3

-

-NOOPT_CLANG38_IA32_CC_FLAGS   &nb= sp;     =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march= =3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double

-NOOPT_CLANG38_IA32_DLINK_FLAGS   =    =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,= --oformat=3Delf32-i386

-NOOPT_CLANG38_IA32_DLINK2_FLAGS   = ;  =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O0

+*_CLANGDWARF_IA32_OBJCOPY_PATH   =       =3D objcopy

+*_CLANGDWARF_IA32_CC_PATH    = ;          =3D DEF(CLANGDWARF_= IA32_PREFIX)clang

+*_CLANGDWARF_IA32_SLINK_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)llv= m-ar

+*_CLANGDWARF_IA32_DLINK_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

+*_CLANGDWARF_IA32_ASLDLINK_PATH   = ;     =3D DEF(CLANGDWARF_IA32_PREFIX)clang

+*_CLANGDWARF_IA32_ASM_PATH   &nbs= p;         =3D DEF(CLANGDWARF_IA32_= PREFIX)clang

+*_CLANGDWARF_IA32_PP_PATH    = ;          =3D DEF(CLANGDWARF_= IA32_PREFIX)clang

+*_CLANGDWARF_IA32_VFRPP_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

+*_CLANGDWARF_IA32_ASLCC_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

+*_CLANGDWARF_IA32_ASLPP_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

+*_CLANGDWARF_IA32_RC_PATH    = ;          =3D objcopy

+

+*_CLANGDWARF_IA32_ASLCC_FLAGS   &= nbsp;      =3D DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto = DEF(CLANGDWARF_IA32_TARGET)

+*_CLANGDWARF_IA32_ASLDLINK_FLAGS  &nbs= p;    =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386<= o:p>

+*_CLANGDWARF_IA32_ASM_FLAGS   &nb= sp;        =3D DEF(GCC5_ASM_FLAGS) -m32 = -march=3Di386 DEF(CLANGDWARF_IA32_TARGET)

+*_CLANGDWARF_IA32_RC_FLAGS   &nbs= p;         =3D DEF(GCC_IA32_RC_FLAG= S)

+*_CLANGDWARF_IA32_OBJCOPY_FLAGS   = ;     =3D

+*_CLANGDWARF_IA32_NASM_FLAGS   &n= bsp;       =3D -f elf32

+*_CLANGDWARF_IA32_PP_FLAGS   &nbs= p;         =3D DEF(GCC_PP_FLAGS) DE= F(CLANGDWARF_IA32_TARGET)

+*_CLANGDWARF_IA32_ASLPP_FLAGS   &= nbsp;      =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF= _IA32_TARGET)

+*_CLANGDWARF_IA32_VFRPP_FLAGS   &= nbsp;      =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF= _IA32_TARGET)

+

+DEBUG_CLANGDWARF_IA32_CC_FLAGS   =       =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -Oz -f= lto -march=3Di586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double<= /p>

+DEBUG_CLANGDWARF_IA32_DLINK_FLAGS  &nb= sp;   =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_= i386 -Wl,--oformat=3Delf32-i386

+DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS  &n= bsp;  =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3

+

+RELEASE_CLANGDWARF_IA32_CC_FLAGS  &nbs= p;    =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -Oz -flto -march= =3Di586 DEF(CLANGDWARF_IA32_TARGET) -malign-double

+RELEASE_CLANGDWARF_IA32_DLINK_FLAGS   =  =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,-= -oformat=3Delf32-i386

+RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS  = =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O3

+

+NOOPT_CLANGDWARF_IA32_CC_FLAGS   =       =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 -O0 -m= arch=3Di586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double

+NOOPT_CLANGDWARF_IA32_DLINK_FLAGS  &nb= sp;   =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -= Wl,--oformat=3Delf32-i386

+NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS  &n= bsp;  =3D DEF(GCC5_IA32_DLINK2_FLAGS) -O0

 

 ##########################

-# CLANG38 X64 definitions

+# CLANGDWARF X64 definitions

##########################

-*_CLANG38_X64_OBJCOPY_PATH   &nbs= p;     =3D objcopy

-*_CLANG38_X64_CC_PATH    &nb= sp;         =3D DEF(CLANG38_X64_PRE= FIX)clang

-*_CLANG38_X64_SLINK_PATH    =        =3D DEF(CLANG38_X64_PREFIX)llvm-ar

-*_CLANG38_X64_DLINK_PATH    =        =3D DEF(CLANG38_X64_PREFIX)clang<= /o:p>

-*_CLANG38_X64_ASLDLINK_PATH   &nb= sp;    =3D DEF(CLANG38_X64_PREFIX)clang

-*_CLANG38_X64_ASM_PATH    &n= bsp;        =3D DEF(CLANG38_X64_PREFIX)c= lang

-*_CLANG38_X64_PP_PATH    &nb= sp;         =3D DEF(CLANG38_X64_PRE= FIX)clang

-*_CLANG38_X64_VFRPP_PATH    =        =3D DEF(CLANG38_X64_PREFIX)clang<= /o:p>

-*_CLANG38_X64_ASLCC_PATH    =        =3D DEF(CLANG38_X64_PREFIX)clang<= /o:p>

-*_CLANG38_X64_ASLPP_PATH    =        =3D DEF(CLANG38_X64_PREFIX)clang<= /o:p>

-*_CLANG38_X64_RC_PATH    &nb= sp;         =3D objcopy<= /p>

-

-*_CLANG38_X64_ASLCC_FLAGS    = ;      =3D DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(= CLANG38_X64_TARGET)

-*_CLANG38_X64_ASLDLINK_FLAGS   &n= bsp;   =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64

-*_CLANG38_X64_ASM_FLAGS    &= nbsp;       =3D DEF(GCC5_ASM_FLAGS) -m64 DEF(= CLANG38_X64_TARGET)

-*_CLANG38_X64_RC_FLAGS    &n= bsp;        =3D DEF(GCC_X64_RC_FLAGS)

-*_CLANG38_X64_OBJCOPY_FLAGS   &nb= sp;    =3D

-*_CLANG38_X64_NASM_FLAGS    =        =3D -f elf64

-*_CLANG38_X64_PP_FLAGS    &n= bsp;        =3D DEF(GCC_PP_FLAGS) DEF(CL= ANG38_X64_TARGET)

-*_CLANG38_X64_ASLPP_FLAGS    = ;      =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TA= RGET)

-*_CLANG38_X64_VFRPP_FLAGS    = ;      =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_TA= RGET)

-

-DEBUG_CLANG38_X64_CC_FLAGS   &nbs= p;     =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAP= I=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz = -flto DEF(CLANG38_X64_TARGET) -g

-DEBUG_CLANG38_X64_DLINK_FLAGS   &= nbsp;  =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_= 64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall

-DEBUG_CLANG38_X64_DLINK2_FLAGS   =   =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3

-

-RELEASE_CLANG38_X64_CC_FLAGS   &n= bsp;   =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=3D__attr= ibute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz -flto DEF(= CLANG38_X64_TARGET)

-RELEASE_CLANG38_X64_DLINK_FLAGS   = ; =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--o= format=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall

-RELEASE_CLANG38_X64_DLINK2_FLAGS   =3D= DEF(GCC5_X64_DLINK2_FLAGS) -O3

-

-NOOPT_CLANG38_X64_CC_FLAGS   &nbs= p;     =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAP= I=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -O0 = DEF(CLANG38_X64_TARGET) -g

-NOOPT_CLANG38_X64_DLINK_FLAGS   &= nbsp;  =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x86_64 -Wl= ,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall

-NOOPT_CLANG38_X64_DLINK2_FLAGS   =   =3D DEF(GCC5_X64_DLINK2_FLAGS) -O0

+*_CLANGDWARF_X64_OBJCOPY_PATH   &= nbsp;     =3D objcopy

+*_CLANGDWARF_X64_CC_PATH    =           =3D DEF(CLANGDWARF_X= 64_PREFIX)clang

+*_CLANGDWARF_X64_SLINK_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)llvm-= ar

+*_CLANGDWARF_X64_DLINK_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

+*_CLANGDWARF_X64_ASLDLINK_PATH   =      =3D DEF(CLANGDWARF_X64_PREFIX)clang

+*_CLANGDWARF_X64_ASM_PATH    = ;         =3D DEF(CLANGDWARF_X64_PR= EFIX)clang

+*_CLANGDWARF_X64_PP_PATH    =           =3D DEF(CLANGDWARF_X= 64_PREFIX)clang

+*_CLANGDWARF_X64_VFRPP_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

+*_CLANGDWARF_X64_ASLCC_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

+*_CLANGDWARF_X64_ASLPP_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

+*_CLANGDWARF_X64_RC_PATH    =           =3D objcopy

+

+*_CLANGDWARF_X64_ASLCC_FLAGS   &n= bsp;      =3D DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto D= EF(CLANGDWARF_X64_TARGET)

+*_CLANGDWARF_X64_ASLDLINK_FLAGS   = ;    =3D DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64=

+*_CLANGDWARF_X64_ASM_FLAGS   &nbs= p;        =3D DEF(GCC5_ASM_FLAGS) -m64 D= EF(CLANGDWARF_X64_TARGET)

+*_CLANGDWARF_X64_RC_FLAGS    = ;         =3D DEF(GCC_X64_RC_FLAGS)=

+*_CLANGDWARF_X64_OBJCOPY_FLAGS   =      =3D

+*_CLANGDWARF_X64_NASM_FLAGS   &nb= sp;       =3D -f elf64

+*_CLANGDWARF_X64_PP_FLAGS    = ;         =3D DEF(GCC_PP_FLAGS) DEF= (CLANGDWARF_X64_TARGET)

+*_CLANGDWARF_X64_ASLPP_FLAGS   &n= bsp;      =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_= X64_TARGET)

+*_CLANGDWARF_X64_VFRPP_FLAGS   &n= bsp;      =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_= X64_TARGET)

+

+DEBUG_CLANGDWARF_X64_CC_FLAGS   &= nbsp;     =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpi= e -Oz -flto DEF(CLANGDWARF_X64_TARGET) -g

+DEBUG_CLANGDWARF_X64_DLINK_FLAGS  &nbs= p;   =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x= 86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall

+DEBUG_CLANGDWARF_X64_DLINK2_FLAGS  &nb= sp;  =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3

+

+RELEASE_CLANGDWARF_X64_CC_FLAGS   = ;    =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-DEFIAPI=3D= __attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz -flt= o DEF(CLANGDWARF_X64_TARGET)

+RELEASE_CLANGDWARF_X64_DLINK_FLAGS  &n= bsp; =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,= --oformat=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall -fuse-ld=3Dlld

+RELEASE_CLANGDWARF_X64_DLINK2_FLAGS   = =3D DEF(GCC5_X64_DLINK2_FLAGS) -O3 -fuse-ld=3Dlld

+

+NOOPT_CLANGDWARF_X64_CC_FLAGS   &= nbsp;     =3D DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 "-= DEFIAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpi= e -O0 DEF(CLANGDWARF_X64_TARGET) -g

+NOOPT_CLANGDWARF_X64_DLINK_FLAGS  &nbs= p;   =3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-O0 -Wl,-melf_x= 86_64 -Wl,--oformat=3Delf64-x86-64 -Wl,-pie -mcmodel=3Dsmall

+NOOPT_CLANGDWARF_X64_DLINK2_FLAGS  &nb= sp;  =3D DEF(GCC5_X64_DLINK2_FLAGS) -O0

 

 ##################

-# CLANG38 ARM definitions

+# CLANGDWARF ARM definitions

##################

-DEFINE CLANG38_ARM_TARGET    = ;    =3D -target arm-linux-gnueabi

-DEFINE CLANG38_ARM_CC_FLAGS   &nb= sp;  =3D DEF(GCC_ARM_CC_FLAGS) DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WAR= NING_OVERRIDES) -mno-movt

-DEFINE CLANG38_ARM_DLINK_FLAGS   =3D D= EF(CLANG38_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)

-

-*_CLANG38_ARM_PP_FLAGS    &n= bsp;      =3D DEF(GCC_PP_FLAGS)

-*_CLANG38_ARM_ASLCC_FLAGS    = ;    =3D DEF(GCC_ASLCC_FLAGS)

-*_CLANG38_ARM_APP_FLAGS    &= nbsp;     =3D

-*_CLANG38_ARM_ASL_FLAGS    &= nbsp;     =3D DEF(IASL_FLAGS)

-*_CLANG38_ARM_ASL_OUTFLAGS   &nbs= p;   =3D DEF(IASL_OUTFLAGS)

-*_CLANG38_ARM_DTCPP_FLAGS    = ;    =3D DEF(GCC_DTCPP_FLAGS)

-

-*_CLANG38_ARM_CC_PATH    &nb= sp;       =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_ASM_PATH    &n= bsp;      =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_PP_PATH    &nb= sp;       =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_VFRPP_PATH    =      =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_ASLCC_PATH    =      =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_ASLPP_PATH    =      =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_DLINK_PATH    =      =3D ENV(CLANG38_BIN)clang

-*_CLANG38_ARM_ASLDLINK_PATH   &nb= sp;  =3D ENV(CLANG38_BIN)clang

-

-*_CLANG38_ARM_SLINK_PATH    =      =3D ENV(CLANG38_BIN)llvm-ar

-*_CLANG38_ARM_RC_PATH    &nb= sp;       =3D ENV(CLANG38_ARM_PREFIX)objcopy<= o:p>

-

-*_CLANG38_ARM_ASLCC_FLAGS    &nbs= p;   =3D DEF(GCC_ASLCC_FLAGS) -fno-lto

-*_CLANG38_ARM_ASLDLINK_FLAGS   &n= bsp; =3D DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)

-*_CLANG38_ARM_ASM_FLAGS    &= nbsp;     =3D DEF(GCC_ASM_FLAGS) DEF(CLANG38_ARM_TARGET= ) $(PLATFORM_FLAGS) -Qunused-arguments

-*_CLANG38_ARM_DLINK2_FLAGS   &nbs= p;   =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=3DPECOFF_HEADE= R_SIZE=3D0x220

-*_CLANG38_ARM_PLATFORM_FLAGS   &n= bsp; =3D -march=3Darmv7-a

-*_CLANG38_ARM_PP_FLAGS    &n= bsp;      =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_ARM_TA= RGET) $(PLATFORM_FLAGS)

-*_CLANG38_ARM_RC_FLAGS    &n= bsp;      =3D DEF(GCC_ARM_RC_FLAGS)

-*_CLANG38_ARM_VFRPP_FLAGS    = ;    =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_ARM_TARGET) $(PLAT= FORM_FLAGS)

-*_CLANG38_ARM_ASLPP_FLAGS    = ;    =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_ARM_TARGET)

-*_CLANG38_ARM_CC_XIPFLAGS    = ;    =3D DEF(GCC_ARM_CC_XIPFLAGS)

-

-  DEBUG_CLANG38_ARM_CC_FLAGS  &nb= sp;  =3D DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1

-  DEBUG_CLANG38_ARM_DLINK_FLAGS  =3D D= EF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/Gcc= Lto -llto-arm -Wl,-plugin-opt=3D-pass-through=3D-llto-arm

-  NOOPT_CLANG38_ARM_CC_FLAGS  &nb= sp;  =3D DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O0

-  NOOPT_CLANG38_ARM_DLINK_FLAGS  =3D D= EF(CLANG38_ARM_DLINK_FLAGS)

-RELEASE_CLANG38_ARM_CC_FLAGS   &n= bsp; =3D DEF(CLANG38_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3

-RELEASE_CLANG38_ARM_DLINK_FLAGS  =3D DEF(CL= ANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -= llto-arm -Wl,-plugin-opt=3D-pass-through=3D-llto-arm

+DEFINE CLANGDWARF_ARM_TARGET   &n= bsp;    =3D -target arm-linux-gnueabi

+DEFINE CLANGDWARF_ARM_CC_FLAGS   =    =3D $(PLATFORM_FLAGS) DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -m= abi=3Daapcs -fno-short-enums -funsigned-char -fomit-frame-pointer -Wno-addr= ess -mthumb -fno-pic -fno-pie DEF(CLANGDWARF_ARM_TARGET) DEF(CLANGDWARF_WAR= NING_OVERRIDES) -mno-movt

+DEFINE CLANGDWARF_ARM_DLINK_FLAGS   = =3D DEF(CLANGDWARF_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)

+

+*_CLANGDWARF_ARM_PP_FLAGS    = ;       =3D DEF(GCC_PP_FLAGS)

+*_CLANGDWARF_ARM_ASLCC_FLAGS   &n= bsp;    =3D DEF(GCC_ASLCC_FLAGS)

+*_CLANGDWARF_ARM_APP_FLAGS   &nbs= p;      =3D

+*_CLANGDWARF_ARM_ASL_FLAGS   &nbs= p;      =3D DEF(IASL_FLAGS)

+*_CLANGDWARF_ARM_ASL_OUTFLAGS   &= nbsp;   =3D DEF(IASL_OUTFLAGS)

+*_CLANGDWARF_ARM_DTCPP_FLAGS    &= nbsp;   =3D DEF(GCC_DTCPP_FLAGS)

+

+*_CLANGDWARF_ARM_CC_PATH    =         =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_ASM_PATH    = ;       =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_PP_PATH    =         =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_VFRPP_PATH   &nb= sp;     =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_ASLCC_PATH   &nb= sp;     =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_ASLPP_PATH   &nb= sp;     =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_DLINK_PATH   &nb= sp;     =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_ARM_ASLDLINK_PATH   =   =3D ENV(CLANGDWARF_BIN)clang

+

+*_CLANGDWARF_ARM_SLINK_PATH   &nb= sp;     =3D ENV(CLANGDWARF_BIN)llvm-ar

+*_CLANGDWARF_ARM_RC_PATH    =         =3D ENV(CLANGDWARF_ARM_PREFIX)ob= jcopy

+

+*_CLANGDWARF_ARM_ASLCC_FLAGS   &n= bsp;    =3D DEF(GCC_ASLCC_FLAGS) -fno-lto

+*_CLANGDWARF_ARM_ASLDLINK_FLAGS   = ;  =3D DEF(CLANGDWARF_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)

+*_CLANGDWARF_ARM_ASM_FLAGS   &nbs= p;      =3D DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_ARM_= TARGET) $(PLATFORM_FLAGS) -Qunused-arguments

+*_CLANGDWARF_ARM_DLINK2_FLAGS   &= nbsp;   =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=3DPECOFF_HE= ADER_SIZE=3D0x220

+*_CLANGDWARF_ARM_PLATFORM_FLAGS   = ;  =3D -march=3Darmv7-a

+*_CLANGDWARF_ARM_PP_FLAGS    = ;       =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_= ARM_TARGET) $(PLATFORM_FLAGS)

+*_CLANGDWARF_ARM_RC_FLAGS    = ;       =3D DEF(GCC_ARM_RC_FLAGS)<= /p>

+*_CLANGDWARF_ARM_VFRPP_FLAGS   &n= bsp;    =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_ARM_TARGET) = $(PLATFORM_FLAGS)

+*_CLANGDWARF_ARM_ASLPP_FLAGS   &n= bsp;    =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_ARM_TARGET)<= o:p>

+*_CLANGDWARF_ARM_CC_XIPFLAGS   &n= bsp;    =3D DEF(GCC_ARM_CC_XIPFLAGS)

+

+  DEBUG_CLANGDWARF_ARM_CC_FLAGS  =    =3D DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1

+  DEBUG_CLANGDWARF_ARM_DLINK_FLAGS  = =3D DEF(CLANGDWARF_ARM_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Lib= rary/GccLto -llto-arm -Wl,-plugin-opt=3D-pass-through=3D-llto-arm

+  NOOPT_CLANGDWARF_ARM_CC_FLAGS  =    =3D DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -O0

+  NOOPT_CLANGDWARF_ARM_DLINK_FLAGS  = =3D DEF(CLANGDWARF_ARM_DLINK_FLAGS)

+RELEASE_CLANGDWARF_ARM_CC_FLAGS   = ;  =3D DEF(CLANGDWARF_ARM_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3

+RELEASE_CLANGDWARF_ARM_DLINK_FLAGS  =3D DEF= (CLANGDWARF_ARM_DLINK_FLAGS)

+-flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccL= to -llto-arm

+-Wl,-plugin-opt=3D-pass-through=3D-llto-arm=

 

 ##################

-# CLANG38 AARCH64 definitions

+# CLANGDWARF AARCH64 definitions

##################

-DEFINE CLANG38_AARCH64_TARGET    = =3D -target aarch64-linux-gnu

-DEFINE CLANG38_AARCH64_CC_FLAGS  =3D DEF(GC= C_AARCH64_CC_FLAGS) DEF(CLANG38_AARCH64_TARGET) -mcmodel=3Dsmall DEF(CLANG3= 8_WARNING_OVERRIDES) -DEFINE CLANG38_AARCH64_DLINK_FLAGS  =3D DEF(CLAN= G38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=3D0x1000

-

-*_CLANG38_AARCH64_PP_FLAGS   &nbs= p;   =3D DEF(GCC_PP_FLAGS)

-*_CLANG38_AARCH64_ASLCC_FLAGS    = =3D DEF(GCC_ASLCC_FLAGS)

-*_CLANG38_AARCH64_APP_FLAGS   &nb= sp;  =3D

-*_CLANG38_AARCH64_ASL_FLAGS   &nb= sp;  =3D DEF(IASL_FLAGS)

-*_CLANG38_AARCH64_ASL_OUTFLAGS   =3D D= EF(IASL_OUTFLAGS)

-*_CLANG38_AARCH64_DTCPP_FLAGS    = =3D DEF(GCC_DTCPP_FLAGS)

-

-*_CLANG38_AARCH64_CC_PATH    = ;    =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_ASM_PATH   &nbs= p;   =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_PP_PATH    = ;    =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_VFRPP_PATH   &n= bsp; =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_ASLCC_PATH   &n= bsp; =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_ASLPP_PATH   &n= bsp; =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_DLINK_PATH   &n= bsp; =3D ENV(CLANG38_BIN)clang

-*_CLANG38_AARCH64_ASLDLINK_PATH  =3D ENV(CL= ANG38_BIN)clang

-

-*_CLANG38_AARCH64_SLINK_PATH   &n= bsp; =3D ENV(CLANG38_BIN)llvm-ar

-*_CLANG38_AARCH64_RC_PATH    = ;    =3D ENV(CLANG38_AARCH64_PREFIX)objcopy

-

-*_CLANG38_AARCH64_ASLCC_FLAGS    = =3D DEF(GCC_ASLCC_FLAGS) -fno-lto

-*_CLANG38_AARCH64_ASLDLINK_FLAGS =3D DEF(CLANG38= _AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)

-*_CLANG38_AARCH64_ASM_FLAGS   &nb= sp;  =3D DEF(GCC_ASM_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLA= GS) -Qunused-arguments

-*_CLANG38_AARCH64_DLINK_FLAGS    = =3D DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page= -size=3D0x1000

-*_CLANG38_AARCH64_DLINK_XIPFLAGS =3D -z common-p= age-size=3D0x20

-*_CLANG38_AARCH64_DLINK2_FLAGS   =3D D= EF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0x228<= /o:p>

-*_CLANG38_AARCH64_PLATFORM_FLAGS =3D<= /p>

-*_CLANG38_AARCH64_PP_FLAGS   &nbs= p;   =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(PLATFORM= _FLAGS)

-*_CLANG38_AARCH64_RC_FLAGS   &nbs= p;   =3D DEF(GCC_AARCH64_RC_FLAGS)

-*_CLANG38_AARCH64_VFRPP_FLAGS    = =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS)=

-*_CLANG38_AARCH64_ASLPP_FLAGS    = =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_AARCH64_TARGET)

-*_CLANG38_AARCH64_CC_XIPFLAGS    = =3D DEF(GCC_AARCH64_CC_XIPFLAGS)

-

-  DEBUG_CLANG38_AARCH64_CC_FLAGS  = ;  =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1<= /o:p>

-  DEBUG_CLANG38_AARCH64_DLINK_FLAGS =3D DEF= (CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/G= ccLto -llto-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64

-  NOOPT_CLANG38_AARCH64_CC_FLAGS  = ;  =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O0<= /p>

-  NOOPT_CLANG38_AARCH64_DLINK_FLAGS =3D DEF= (CLANG38_AARCH64_DLINK_FLAGS)

-RELEASE_CLANG38_AARCH64_CC_FLAGS  &nbs= p; =3D DEF(CLANG38_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3=

-RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLAN= G38_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto= -llto-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64

+DEFINE CLANGDWARF_AARCH64_TARGET  &nbs= p; =3D -target aarch64-linux-gnu

+DEFINE CLANGDWARF_AARCH64_CC_FLAGS  =3D DEF= (GCC_AARCH64_CC_FLAGS)

+DEF(CLANGDWARF_AARCH64_TARGET) -mcmodel=3Dsmall =

+DEF(CLANGDWARF_WARNING_OVERRIDES) DEFINE CLANGDW= ARF_AARCH64_DLINK_FLAGS 

+=3D DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH= 64_DLINK_FLAGS) -z

+common-page-size=3D0x1000

+

+*_CLANGDWARF_AARCH64_PP_FLAGS   &= nbsp;   =3D DEF(GCC_PP_FLAGS)

+*_CLANGDWARF_AARCH64_ASLCC_FLAGS  &nbs= p; =3D DEF(GCC_ASLCC_FLAGS)

+*_CLANGDWARF_AARCH64_APP_FLAGS   =    =3D

+*_CLANGDWARF_AARCH64_ASL_FLAGS   =    =3D DEF(IASL_FLAGS)

+*_CLANGDWARF_AARCH64_ASL_OUTFLAGS   = =3D DEF(IASL_OUTFLAGS)

+*_CLANGDWARF_AARCH64_DTCPP_FLAGS  &nbs= p; =3D DEF(GCC_DTCPP_FLAGS)

+

+*_CLANGDWARF_AARCH64_CC_PATH   &n= bsp;    =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_ASM_PATH   &= nbsp;   =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_PP_PATH   &n= bsp;    =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_VFRPP_PATH   = ;  =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_ASLCC_PATH   = ;  =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_ASLPP_PATH   = ;  =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_DLINK_PATH   = ;  =3D ENV(CLANGDWARF_BIN)clang

+*_CLANGDWARF_AARCH64_ASLDLINK_PATH  =3D ENV= (CLANGDWARF_BIN)clang

+

+*_CLANGDWARF_AARCH64_SLINK_PATH   = ;  =3D ENV(CLANGDWARF_BIN)llvm-ar

+*_CLANGDWARF_AARCH64_RC_PATH   &n= bsp;    =3D ENV(CLANGDWARF_AARCH64_PREFIX)objcopy=

+

+*_CLANGDWARF_AARCH64_ASLCC_FLAGS  &nbs= p; =3D DEF(GCC_ASLCC_FLAGS) -fno-lto

+*_CLANGDWARF_AARCH64_ASLDLINK_FLAGS =3D DEF(CLAN= GDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)

+*_CLANGDWARF_AARCH64_ASM_FLAGS   =    =3D DEF(GCC_ASM_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFO= RM_FLAGS) -Qunused-arguments

+*_CLANGDWARF_AARCH64_DLINK_FLAGS  &nbs= p; =3D DEF(CLANGDWARF_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z commo= n-page-size=3D0x1000

+*_CLANGDWARF_AARCH64_DLINK_XIPFLAGS =3D -z commo= n-page-size=3D0x20

+*_CLANGDWARF_AARCH64_DLINK2_FLAGS   = =3D DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0x228<= o:p>

+*_CLANGDWARF_AARCH64_PLATFORM_FLAGS =3D

+*_CLANGDWARF_AARCH64_PP_FLAGS   &= nbsp;   =3D DEF(GCC_PP_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PL= ATFORM_FLAGS)

+*_CLANGDWARF_AARCH64_RC_FLAGS   &= nbsp;   =3D DEF(GCC_AARCH64_RC_FLAGS)

+*_CLANGDWARF_AARCH64_VFRPP_FLAGS  &nbs= p; =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS= )

+*_CLANGDWARF_AARCH64_ASLPP_FLAGS  &nbs= p; =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGDWARF_AARCH64_TARGET)

+*_CLANGDWARF_AARCH64_CC_XIPFLAGS  &nbs= p; =3D DEF(GCC_AARCH64_CC_XIPFLAGS)

+

+  DEBUG_CLANGDWARF_AARCH64_CC_FLAGS &n= bsp;  =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O1=

+  DEBUG_CLANGDWARF_AARCH64_DLINK_FLAGS =3D = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Lib= rary/GccLto -llto-aarch64 -Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64

+  NOOPT_CLANGDWARF_AARCH64_CC_FLAGS &n= bsp;  =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -O0<= /o:p>

+  NOOPT_CLANGDWARF_AARCH64_DLINK_FLAGS =3D = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS)

+RELEASE_CLANGDWARF_AARCH64_CC_FLAGS  &= nbsp; =3D DEF(CLANGDWARF_AARCH64_CC_FLAGS) $(PLATFORM_FLAGS) -flto -O3=

+RELEASE_CLANGDWARF_AARCH64_DLINK_FLAGS =3D =

+DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) -flto -Wl,-O= 3

+-L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch= 64

+-Wl,-plugin-opt=3D-pass-through=3D-llto-aarch64<= o:p>

 

 ###########################################= #########################################

#

@@ -2763,106 +2752,6 @@ NOOPT_CLANGPDB_X64_DLINK_= FLAGS      =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 = /OPT:RE

NOOPT_CLANGPDB_X64_DLINK2_FLAGS   =   =3D

NOOPT_CLANGPDB_X64_GENFW_FLAGS   &= nbsp;  =3D --keepexceptiontable

 

-################################################= ####################################

-#

-# CLANGDWARF - This configuration is used to com= pile under Windows/Linux/Mac to produce -#  ELF binaries using LLVM/Cl= ang/LLD with Link Time Optimization enabled -# -###########################= #########################################################

-*_CLANGDWARF_*_*_FAMILY    &= nbsp;        =3D GCC

-*_CLANGDWARF_*_*_BUILDRULEFAMILY  &nbs= p; =3D CLANGGCC

-*_CLANGDWARF_*_MAKE_PATH    =         =3D ENV(CLANG_HOST_BIN)make=

-*_CLANGDWARF_*_*_DLL    &nbs= p;           =3D ENV(CLAN= GDWARF_DLL)

-*_CLANGDWARF_*_ASL_PATH    &= nbsp;        =3D DEF(UNIX_IASL_BIN)=

-

-*_CLANGDWARF_*_APP_FLAGS    =         =3D

-*_CLANGDWARF_*_ASL_FLAGS    =         =3D DEF(IASL_FLAGS)

-*_CLANGDWARF_*_ASL_OUTFLAGS   &nb= sp;     =3D DEF(IASL_OUTFLAGS)

-

-DEFINE CLANGDWARF_IA32_PREFIX   &= nbsp;   =3D ENV(CLANG_BIN)

-DEFINE CLANGDWARF_X64_PREFIX   &n= bsp;    =3D ENV(CLANG_BIN)

-

-# LLVM/CLANG doesn't support -n link option. So,= it can't share the same IA32_X64_DLINK_COMMON flag.

-# LLVM/CLANG doesn't support common page size. S= o, it can't share the same GccBase.lds script.

-DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON &nb= sp; =3D -nostdlib -Wl,-q,--gc-sections -z max-page-size=3D0x40

-DEFINE CLANGDWARF_DLINK2_FLAGS_COMMON  = ;   =3D -Wl,--script=3D$(EDK_TOOLS_PATH)/Scripts/ClangBase.lds

-DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS =3D DE= F(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0 D= EF(CLANGDWARF_DLINK2_FLAGS_COMMON) -Wl,--entry,ReferenceAcpiTable -u Refere= nceAcpiTable

-DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS &nbs= p;  =3D DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTR= Y_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).ma= p,--whole-archive

-DEFINE CLANGDWARF_IA32_DLINK2_FLAGS  &= nbsp;    =3D -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0x220 DEF(C= LANGDWARF_DLINK2_FLAGS_COMMON)

-DEFINE CLANGDWARF_X64_DLINK2_FLAGS  &n= bsp;     =3D -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0x228 = DEF(CLANGDWARF_DLINK2_FLAGS_COMMON)

-

-###########################

-# CLANGDWARF IA32 definitions

-###########################

-*_CLANGDWARF_IA32_CC_PATH    = ;          =3D DEF(CLANGDWARF_= IA32_PREFIX)clang

-*_CLANGDWARF_IA32_SLINK_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)llv= m-ar

-*_CLANGDWARF_IA32_DLINK_PATH    &= nbsp;      =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

-*_CLANGDWARF_IA32_ASLDLINK_PATH   = ;     =3D DEF(CLANGDWARF_IA32_PREFIX)clang

-*_CLANGDWARF_IA32_ASM_PATH   &nbs= p;         =3D DEF(CLANGDWARF_IA32_= PREFIX)clang

-*_CLANGDWARF_IA32_PP_PATH    = ;          =3D DEF(CLANGDWARF_= IA32_PREFIX)clang

-*_CLANGDWARF_IA32_VFRPP_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

-*_CLANGDWARF_IA32_ASLCC_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

-*_CLANGDWARF_IA32_ASLPP_PATH   &n= bsp;       =3D DEF(CLANGDWARF_IA32_PREFIX)cla= ng

-*_CLANGDWARF_IA32_RC_PATH    = ;          =3D DEF(CLANGDWARF_= IA32_PREFIX)llvm-rc

-

-*_CLANGDWARF_IA32_ASLCC_FLAGS   &= nbsp;      =3D DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto = DEF(CLANG38_IA32_TARGET)

-*_CLANGDWARF_IA32_ASLDLINK_FLAGS  &nbs= p;    =3D DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf= _i386 -fuse-ld=3Dlld

-*_CLANGDWARF_IA32_ASM_FLAGS   &nb= sp;        =3D DEF(GCC5_ASM_FLAGS) -m32 = -march=3Di386 DEF(CLANG38_IA32_TARGET)

-*_CLANGDWARF_IA32_RC_FLAGS   &nbs= p;         =3D DEF(GCC_IA32_RC_FLAG= S)

-*_CLANGDWARF_IA32_OBJCOPY_FLAGS   = ;     =3D

-*_CLANGDWARF_IA32_NASM_FLAGS   &n= bsp;       =3D -f elf32

-*_CLANGDWARF_IA32_PP_FLAGS   &nbs= p;         =3D DEF(GCC_PP_FLAGS) DE= F(CLANG38_IA32_TARGET)

-*_CLANGDWARF_IA32_ASLPP_FLAGS   &= nbsp;      =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA= 32_TARGET)

-*_CLANGDWARF_IA32_VFRPP_FLAGS   &= nbsp;      =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA= 32_TARGET)

-

-DEBUG_CLANGDWARF_IA32_CC_FLAGS   =       =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto= -march=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double

-DEBUG_CLANGDWARF_IA32_DLINK_FLAGS  &nb= sp;   =3D DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,= -melf_i386 -Wl,--oformat,elf32-i386

-DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS  &n= bsp;  =3D DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=3Dlld

-

-RELEASE_CLANGDWARF_IA32_CC_FLAGS  &nbs= p;    =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=3D= i586 DEF(CLANG38_IA32_TARGET) -malign-double

-RELEASE_CLANGDWARF_IA32_DLINK_FLAGS  &= nbsp; =3D DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386= -Wl,--oformat,elf32-i386

-RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS  = =3D DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=3Dlld

-

-NOOPT_CLANGDWARF_IA32_CC_FLAGS   =       =3D DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -marc= h=3Di586 DEF(CLANG38_IA32_TARGET) -g -malign-double

-NOOPT_CLANGDWARF_IA32_DLINK_FLAGS  &nb= sp;   =3D DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_= i386 -Wl,--oformat,elf32-i386

-NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS  &n= bsp;  =3D DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=3Dlld

-

-##########################

-# CLANGDWARF X64 definitions

-##########################

-*_CLANGDWARF_X64_CC_PATH    =           =3D DEF(CLANGDWARF_X= 64_PREFIX)clang

-*_CLANGDWARF_X64_SLINK_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)llvm-= ar

-*_CLANGDWARF_X64_DLINK_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

-*_CLANGDWARF_X64_ASLDLINK_PATH   =      =3D DEF(CLANGDWARF_X64_PREFIX)clang

-*_CLANGDWARF_X64_ASM_PATH    = ;         =3D DEF(CLANGDWARF_X64_PR= EFIX)clang

-*_CLANGDWARF_X64_PP_PATH    =           =3D DEF(CLANGDWARF_X= 64_PREFIX)clang

-*_CLANGDWARF_X64_VFRPP_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

-*_CLANGDWARF_X64_ASLCC_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

-*_CLANGDWARF_X64_ASLPP_PATH   &nb= sp;       =3D DEF(CLANGDWARF_X64_PREFIX)clang=

-*_CLANGDWARF_X64_RC_PATH    =           =3D DEF(CLANGDWARF_X= 64_PREFIX)llvm-rc

-

-*_CLANGDWARF_X64_ASLCC_FLAGS   &n= bsp;      =3D DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto D= EF(CLANG38_X64_TARGET)

-*_CLANGDWARF_X64_ASLDLINK_FLAGS   = ;    =3D DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_= x86_64 -fuse-ld=3Dlld

-*_CLANGDWARF_X64_ASM_FLAGS   &nbs= p;        =3D DEF(GCC5_ASM_FLAGS) -m64 D= EF(CLANG38_X64_TARGET)

-*_CLANGDWARF_X64_RC_FLAGS    = ;         =3D DEF(GCC_X64_RC_FLAGS)=

-*_CLANGDWARF_X64_OBJCOPY_FLAGS   =      =3D

-*_CLANGDWARF_X64_NASM_FLAGS   &nb= sp;       =3D -f elf64

-*_CLANGDWARF_X64_PP_FLAGS    = ;         =3D DEF(GCC_PP_FLAGS) DEF= (CLANG38_X64_TARGET)

-*_CLANGDWARF_X64_ASLPP_FLAGS   &n= bsp;      =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64= _TARGET)

-*_CLANGDWARF_X64_VFRPP_FLAGS   &n= bsp;      =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64= _TARGET)

-

-DEBUG_CLANGDWARF_X64_CC_FLAGS   &= nbsp;     =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEF= IAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -= Oz -flto DEF(CLANG38_X64_TARGET) -g

-DEBUG_CLANGDWARF_X64_DLINK_FLAGS  &nbs= p;   =3D DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-= melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=3Dsmall -Wl,--appl= y-dynamic-relocs

-DEBUG_CLANGDWARF_X64_DLINK2_FLAGS  &nb= sp;  =3D DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=3Dlld

-

-RELEASE_CLANGDWARF_X64_CC_FLAGS   = ;    =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=3D__a= ttribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -Oz -flto D= EF(CLANG38_X64_TARGET)

-RELEASE_CLANGDWARF_X64_DLINK_FLAGS  &n= bsp; =3D DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_6= 4 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=3Dsmall -Wl,--apply-dynamic-= relocs

-RELEASE_CLANGDWARF_X64_DLINK2_FLAGS   = =3D DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=3Dlld

-

-NOOPT_CLANGDWARF_X64_CC_FLAGS   &= nbsp;     =3D DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEF= IAPI=3D__attribute__((ms_abi))" -mno-red-zone -mcmodel=3Dsmall -fpie -= O0 DEF(CLANG38_X64_TARGET) -g

-NOOPT_CLANGDWARF_X64_DLINK_FLAGS  &nbs= p;   =3D DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x= 86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=3Dsmall -Wl,--apply-dyna= mic-relocs

-NOOPT_CLANGDWARF_X64_DLINK2_FLAGS  &nb= sp;  =3D DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O0 -fuse-ld=3Dlld

-

#

#

# XCODE5 support

--

2.34.1

 

 

 

 

 

 

--_000_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_-- --_004_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=53798; creation-date="Wed, 29 Mar 2023 09:24:40 GMT"; modification-date="Wed, 29 Mar 2023 09:24:42 GMT" Content-ID: Content-Transfer-Encoding: base64 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 --_004_BL1PR11MB5478D93852428AF6EA0A3FD9EF899BL1PR11MB5478namp_--