From patchwork Wed Jul 15 06:00:19 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Deepesh Varatharajan X-Patchwork-Id: 92460 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 465D5C44508 for ; Wed, 15 Jul 2026 06:00:55 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.624.1784095246001597210 for ; Tue, 14 Jul 2026 23:00:46 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=f5GmceQ/; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=165692db3c=deepesh.varatharajan@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66F3leEK3626613 for ; Tue, 14 Jul 2026 23:00:45 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=kQdpW0lToFpdOrEv5j9+c7HIuLNLEl3NKLYRu2AZ3Ks=; b= f5GmceQ/KnI49oS3baQTxpzUtEjHQ1LHnYDhuUh0tIgwtdaVcR2ioUqJXdq+5vYM Hi3UtSSiegVOpnmfS+oz9fSItwolcdNF81Bps5Jy/QvYVwsDUyiSsDOwRlhcaZbj ys6yfizgMIcYoOAcwzxBnarFeLZr09pmK8ufSMDepYc0RlTdY37LjFSKrrOXsx5W QNiz4c+5Y6LW+eA4julX8sCpUH7EGusqT6qmng1HkT5ukfOq8b1hqa8HacAOZ4QQ U0YazAxeD+fBblxbGXh+tGaDfmfjM7egsCDUDYVLwo0ritRlEya5y0HfCl7a0nEC 6o5JkL2gcTgPYZIygL/HhQ== Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11012008.outbound.protection.outlook.com [52.101.53.8]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fbh40wfvb-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Tue, 14 Jul 2026 23:00:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Dr3evNT95Kcg7J6GQsVnjeintjdrjClDwk7SttAOAYUWhU1X0F/v+xxGHdYW9QbOEMUtL5ZWuAjMocQ2zRMfAyB50341pikUX8l34ZVF1XeoQBhdy6QF5yptJTNj1P+lHrIilhM5mBBhYt+w3i6mKbiZKotaP/V6t3SUtUNECThsN+FnPxQw8HnO94x05hqoYLBNPKyalQYZCYTbCNImfEYZtPNA91AK0Y6+dRF7BLXAXW5pvO8mhP1m8Q+9xFliHt7f1rmBirmvJlKIsKVvjDTB/p1daww6zE4iBTiI8YBsiMcFsB6/3yZvVGOr1z4KxLgSx1MR3PsZeUDeTTEoyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=kQdpW0lToFpdOrEv5j9+c7HIuLNLEl3NKLYRu2AZ3Ks=; b=Fh2pLMusQUamIHA+2vYrrJ/9D5L7t3qJPxXHJ1jpcVFCO9wh4+qOtnZJ2aQfx1XbVb/UxkScgNflb/KVnW+Itg2R3B/VqRrhAfReISnTluieTZsAX33WyJuPAWayebJ9bKIZBjU8srf1REwzrbUpXP/xUEmbj+GYpfBNZVAFXtPla4Ru3uTEL6NEOE0MewFzeyadChJdNhZe4uaibFkxvhSJb+08Flv+frB3kYHEHQZlYgznxlrl5n0C9HiYBCwGxv7h1t9zd/zWrfDtfMtfMBJ2wEILGhndgZkV4wr7IGM8OK+0SWSCuR/wwOuweN2JYgKx/zWwAZ0s4vuJ1is/GQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SN7PR11MB6677.namprd11.prod.outlook.com (2603:10b6:806:26b::6) by DS7PR11MB6077.namprd11.prod.outlook.com (2603:10b6:8:87::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.9; Wed, 15 Jul 2026 06:00:43 +0000 Received: from SN7PR11MB6677.namprd11.prod.outlook.com ([fe80::490a:519b:d657:99ab]) by SN7PR11MB6677.namprd11.prod.outlook.com ([fe80::490a:519b:d657:99ab%4]) with mapi id 15.21.0181.019; Wed, 15 Jul 2026 06:00:43 +0000 From: Deepesh.Varatharajan@windriver.com To: openembedded-core@lists.openembedded.org Cc: Sundeep.Kokkonda@windriver.com, Deepesh.Varatharajan@windriver.com Subject: [PATCH 1/3] clang-tools-extra: disable tests Date: Tue, 14 Jul 2026 23:00:19 -0700 Message-ID: <20260715060021.579656-2-Deepesh.Varatharajan@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260715060021.579656-1-Deepesh.Varatharajan@windriver.com> References: <20260715060021.579656-1-Deepesh.Varatharajan@windriver.com> X-ClientProxiedBy: SJ0PR03CA0005.namprd03.prod.outlook.com (2603:10b6:a03:33a::10) To SN7PR11MB6677.namprd11.prod.outlook.com (2603:10b6:806:26b::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR11MB6677:EE_|DS7PR11MB6077:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c82ed31-75fb-4a75-e87f-08dee23667f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|376014|52116014|366016|18002099003|22082099003|38350700014|6133799003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: 5FP2EOJwp0ph1c7li3jeo8+rwDDZHxfbMjXIN/4n/MXiULRan/9B3znPDklww3urTSXRBndPCrhJ+tKBSZ8JDyD3kGbqw96D2FtighIyCq96l0zzmH5OPp6CCtLWxQbQV8qAiOaUSDg4ANAR/15dxNE2QMfnjSYe3pFGTdXuu9gWfPMbK8RV3ogZKVXEPfxQAECbRN9M2JhR7Q3UaIVuyZF4GEXh2VNLdBVc98ky6n/ejFKN3s7lOCuATIABnWHWVk0z5nztOzeH0tUo0weVqsuAclON1+iM03Isko6f/KGe4JvEWWc3HD1qY9G33HLYxuenLxUq9I5UGVnCZnRc3X88Z42boJURdPCtPpJwj2+ZgBhtS+c+DoxNve54oBK8+eupcHOfwnBpINbHJDLJY7596TdLOYeYjA5OJG5wi52kUKNAfEd3mN2x5Mf5uvbK2K8e9m3ImIjvKOe+WPLVWC7ua3efR8pB/n3qC+PCbISwPDaGG9s54AGpEt4+9qRwNdxGc92ai3xkjJbtlQ/pHn6jQLVPkE72tYOv2nz1ThTz7htyQYaH2zKXNhFMcvFa5rNZ9z5TLs6K/H2r30I9JaL87XEG5SxlroYdzo0RHBPM5ZXrB/8EhLPBIdix4Eg76KpuvJ56XcyV+iNcO5qKSD+7R9syzsJj88N64S+EAet8d3E/e2HK1i3Znoj3A30GSC0thIXn8VazWL8lXqCqvCdbM7RemJuNL9q88JIzLY0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR11MB6677.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(376014)(52116014)(366016)(18002099003)(22082099003)(38350700014)(6133799003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5TMo90z8i9ET6dOI4QDi5PF95IQLMrEOHgRW14qIc3wFCZiGRadY+GHgAFg+3P/Kv5WEzjV0tfWLdrjclDmypWMnjUFtfuHFWpP7Jsc4vcCXToxrJz0+Ksw2reUb45M9hQWGPQ4VUDG47ym67IVhrqTFbsh3Zh5IiwyWwY0yfFgjKdfBPVkmRBPmczzrwzEcSrwwIsYqK9NqcYDawjbMWOKYa/1moMuShb0f0ncQLiHXtmAhwXQLvUYCOvF+H5JMG+2v6IEuHValyodCK094c4KEwgW49plB5KIeSRz+nzrIyxCrjt79w4yfbzMP75SQ6N13wf+BISrzcUOSHWCWXrvzQVbfRkrjKX2CSUXZ3zqsz0kMy7NF5DXtOmROFJKRBnIGpPcZYldFNNCmZAF2ihhj3wx/oZOOxQEV8j2k2FjVbxCHqWNjCY7uh/e0lMLAZ9wtVE6Le4Tc0UNCnXB0P+sDaB7WUs+zuEaBJ0liMktlm63h1kr+t5CuM55fT2EkHApNPdDNmYxZDR3fhUlh5m0L/2yWIttgOFqQfhMR0CfbBn7s8Hh2xjh9TjKyjVTDXeMGm4nT21TKUFXpcMtHzmVHe/U9Qom3317UH10TLBxuzFmFF63mLiMmvEpEgt6gQR0Cb7dOQ1GIYqvkl6U0cOb6tmdeuw4BJsLtXYvhdBM2eDEuZdzwuJ/Xsk6VLVOvitD5QKnbJSwDGfBd16KcLjZF/CmBmeu1+i0NNTCxyo98wMbv3RfGodCmi0B6doJXhfSl6o1ganibyY1eNBZkgO56ir6ywo2vN9qtrsSptj6Y6GQO4eRKmDxbX422PGdZhV6f4BDfD2YxiHHoHnPwvPX9cDmOUaRf2o/U/IV9z0m0mFfG7awvennES1IOv9cWSFhQqth1J1vE0vl9+IhXxXxZssnzlapMVzreFupq74gYJft2jiDbw1ENv9ayX5z3tfa32xQWWyUJNgxovVt0KnLRLPwlCoBTm68nVm8phGm5pFyPW6Qc3O4yenwRgBxCJhex/urDG74SaOJacnEgr7APzFrt+sKNd7hqBP1ML4gDqsfZWgZ07vlSfGmbM+rvh36OAjzzupVAdd48h6HG1aFeTX3TRNlrTi1eTdea0ZLSJoATt7zkAjj50i2td6XwHfOL3MLjEvhe8ubUNbCWNO5gCShXw63YaCta9iyOJsSqNUOzbQQAwG7Hst622VJpN7ebIQRynej7ZQFrKuG8q9j+KFr2Looup58agssJBE5XmkVinK95DTkmU2JxU0GkdcS21WZDc9Hhw56UeszJYIyN+orXTRZe3gvCWmakOy3lk250xsdm6+PBAzMkPDzyRXU3JkF2jn+61cqv/hU27ZtUx0QWkCVREdlsZ3fvSzoM+7gSfsmiJbuUsnKD/mPYib08UvztVq2ix5kYFcZvns/8pXnfMXRfSlKC6jmM80e+9RAmLvY+51jAZn/QmRtgzLQBiXNn+1YOOiuGTpB8YbGEHmPBzFtLcFZM6jPLHCtv3iu2lCF3tZ99JLh+Zyfm08b8GBfTgVdBMKs9zwN0BgV5xoN11d1fE4qFKj5wjNV3TKC86sXbBsoByTlFLMpT/RLKMRMVOu0vRTPFh11KazmZMnHtmdA5T41mXwES432/OMrW/j2ohppW2HE0WtPoWFD03HICxrKFLYYvbjLmEhQxEEN7x59JC1LfwxpQqy5RlQVTjKgqX+5fqJCmi18axQereX81jepMPaSexoc2lOIWDYuQ6GQ0eI2UMMCJjNZxIyVtkmTrgds1PJRUtC6v X-Exchange-RoutingPolicyChecked: qKJ6BnE+059aIXDwNwGblTXsKPKq5EKNddJkli2pW6lGSEG5yC9d/8L5IwgRACTGiBqP8PwJKQlHY0VMPutd+Y4Xw79AqX0aKy9kJuN8C0mqSwsmeWLXy/yytjTMDmOrpz0I5C0JO2FbYvDbuvEVNrEWpgpPLeXu7kNHuvdeixOEqOIQa/tknlgc2oPFtexUprZM7CE0Rph7NFplal2kONfAyNVJEtGATSxENTLwDf1uaefGglYhd+yGLQT4aYPq4KfhhPvA+5I5512TzPOFd/BeTCfDdwuAJ5L3emb4jjIihtpjrF7H9GqhOYbTVNRxo6id8quA8CJnF6YiTaivDQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c82ed31-75fb-4a75-e87f-08dee23667f2 X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB6677.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 06:00:43.4255 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oBfADmxfkbSjoYG8gSR9IDykDiw2ev1UY5UlZSzcjFUg/qqLLVqAuz1TIOiUWdeCTZZKUo0yP6m+F5od/ThRRmsjzCL0mE+QHW4sIlBZ88IqZrHs3nn3VEScwiODQJQe X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6077 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDA1MyBTYWx0ZWRfXymQi88DWtQzN +IQBYppQxB5LHB6GogfiYsl+cVzJ7eBZLaMZ5P1NBUMf26S+G3FZZuRRTVmvHuKqxp3+2O+Y72T y/KCF8ZAOHCMvwXTEd7101sOf/XVdVQV9hJhPxewPWFWj1DlSj+Wfu1eMyMSpDZI0Wir3ddvaCq KVBpJozqhrf5QTEt59Kwwx7umVH6FC5oTihrAcdRpW02++gGEGFqWcaG+KgADIGkoVXFFlaJjy+ cKC6/lbrE3+qskuenQtCFGlgNJHzg5Ose1CsrLM1O0KEsZVXtAw0QDgvZUegr+gVdOvVLa+sm16 i04opS1qWjmhCDwapLePklWEfUMlFYjckGow0mnsZXg88hifC6j1yz6sGzei7i4B/wfG2JL0hKq 0si1gaBr27lWwANt6qdK+3RckvD2qyNNKjLxTWEtUW4xDS8qUesrh5Smz3uwtMRltj6Hyo26B+T rVQYzmyjizpJRsnYxyQ== X-Proofpoint-ORIG-GUID: 2cY4TlWmqFISrmPgyiqJlj23dIk7DOt6 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDA1MyBTYWx0ZWRfXwKsIVT+BLoop Egs4qYtnY4U/qGoqTKt+3UgZN34wacdTk8LWSKUIVo/BUbIZ40zAEpg/V/40SGXs4ed1RzUp/KY Eumv1glLwgefj0dr4cuhM+SHoFVCUWq0kRU6emPbeXZyJt+Mm/ss X-Authority-Analysis: v=2.4 cv=JbGMa0KV c=1 sm=1 tr=0 ts=6a57220d cx=c_pps a=JgOmb2+ItGzuqF5frRSN9Q==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=IQOrjEw-PoaY6VFe8koA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: 2cY4TlWmqFISrmPgyiqJlj23dIk7DOt6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-15_02,2026-07-14_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150053 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 15 Jul 2026 06:00:55 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/240939 From: Deepesh Varatharajan clang-tools-extra tests depend on the llvm-bcanalyzer CMake target, which exists in LLVM's CMake project but is not visible when Clang is built separately. To run clang tests, disable clang-tools-extra tests for now. Signed-off-by: Deepesh Varatharajan --- .../0042-guard-clang-tools-extra-test.patch | 74 +++++++++++++++++++ meta/recipes-devtools/clang/common.inc | 1 + 2 files changed, 75 insertions(+) create mode 100644 meta/recipes-devtools/clang/clang/0042-guard-clang-tools-extra-test.patch diff --git a/meta/recipes-devtools/clang/clang/0042-guard-clang-tools-extra-test.patch b/meta/recipes-devtools/clang/clang/0042-guard-clang-tools-extra-test.patch new file mode 100644 index 0000000000..9b4e29ff64 --- /dev/null +++ b/meta/recipes-devtools/clang/clang/0042-guard-clang-tools-extra-test.patch @@ -0,0 +1,74 @@ +clang-tools-extra tests depend on the llvm-bcanalyzer CMake target, which +exists in LLVM's CMake project but is not visible when Clang is built +separately. To run clang tests, disable clang-tools-extra tests for now. + +Without this patch when CLANG_INCLUDE_TESTS is ON got the following error + +-------------------------------------------------------------------------------- +| CMake Error at ../clang/21.1.8/recipe-sysroot/usr/lib/cmake/llvm/AddLLVM.cmake:2113 (add_dependencies): +| The dependency target "llvm-bcanalyzer" of target +| "check-clang-extra-clang-tidy-infrastructure-header-filter-from-config-file-simple" +| does not exist. +| Call Stack (most recent call first): +| ../clang/21.1.8/recipe-sysroot/usr/lib/cmake/llvm/AddLLVM.cmake:2221 (add_lit_target) +| tools/extra/test/CMakeLists.txt:87 (add_lit_testsuites) +| +| CMake Error at ../clang/21.1.8/recipe-sysroot/usr/lib/cmake/llvm/AddLLVM.cmake:2113 (add_dependencies): +| The dependency target "llvm-bcanalyzer" of target +| "check-clang-extra-modularize" does not exist. +| Call Stack (most recent call first): +| ../clang/21.1.8/recipe-sysroot/usr/lib/cmake/llvm/AddLLVM.cmake:2221 (add_lit_target) +| tools/extra/test/CMakeLists.txt:87 (add_lit_testsuites) +------------------------------------------------------------------------------- + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Deepesh Varatharajan + +diff --git a/clang-tools-extra/CMakeLists.txt b/clang-tools-extra/CMakeLists.txt +index 6b6f2b1..26e4c10 100644 +--- a/clang-tools-extra/CMakeLists.txt ++++ b/clang-tools-extra/CMakeLists.txt +@@ -8,7 +8,7 @@ include(GNUInstallDirs) + option(CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS + "Enable query-based custom checks in clang-tidy" ON) + +-if(CLANG_INCLUDE_TESTS) ++if(CLANG_TOOLS_EXTRA_INCLUDE_TESTS) + umbrella_lit_testsuite_begin(check-clang-tools) + + option(CLANG_TOOLS_TEST_USE_VG "Run Clang tools' tests under Valgrind" OFF) +@@ -45,7 +45,7 @@ if (CLANG_ENABLE_CLANGD) + endif() + + # Add the common testsuite after all the tools. +-if(CLANG_INCLUDE_TESTS) ++if(CLANG_TOOLS_EXTRA_INCLUDE_TESTS) + add_subdirectory(test) + add_subdirectory(unittests) + umbrella_lit_testsuite_end(check-clang-tools) +diff --git a/clang-tools-extra/include-cleaner/CMakeLists.txt b/clang-tools-extra/include-cleaner/CMakeLists.txt +index dc147f9..4855577 100644 +--- a/clang-tools-extra/include-cleaner/CMakeLists.txt ++++ b/clang-tools-extra/include-cleaner/CMakeLists.txt +@@ -1,7 +1,7 @@ + include_directories(include) + add_subdirectory(lib) + add_subdirectory(tool) +-if(CLANG_INCLUDE_TESTS) ++if(CLANG_TOOLS_EXTRA_INCLUDE_TESTS) + add_subdirectory(test) + add_subdirectory(unittests) + endif() +diff --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt +index a1e9da4..94dcb96 100644 +--- a/clang-tools-extra/clangd/CMakeLists.txt ++++ b/clang-tools-extra/clangd/CMakeLists.txt +@@ -215,7 +215,7 @@ endif() + option(CLANGD_BUILD_DEXP "Build the dexp tool as part of Clangd" ON) + llvm_canonicalize_cmake_booleans(CLANGD_BUILD_DEXP) + +-if(CLANG_INCLUDE_TESTS) ++if(CLANG_TOOLS_EXTRA_INCLUDE_TESTS) + add_subdirectory(test) + add_subdirectory(unittests) + endif() diff --git a/meta/recipes-devtools/clang/common.inc b/meta/recipes-devtools/clang/common.inc index 441ea099a9..d623990eca 100644 --- a/meta/recipes-devtools/clang/common.inc +++ b/meta/recipes-devtools/clang/common.inc @@ -60,6 +60,7 @@ SRC_URI = "\ file://0039-Rename-UNUSED-and-UNKNOWN-elements-of-OffloadArch-enum.patch \ file://0040-libcxxabi-declare-__gnu_unwind_frame-in-cxa_personal.patch \ file://0041-Consolidate-and-fix-sysroot-based-compiler-rt-search.patch \ + file://0042-guard-clang-tools-extra-test.patch \ " # Fallback to no-PIE if not set GCCPIE ??= "" From patchwork Wed Jul 15 06:00:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Deepesh Varatharajan X-Patchwork-Id: 92459 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5643BC4450B for ; Wed, 15 Jul 2026 06:00:55 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.625.1784095248420680981 for ; Tue, 14 Jul 2026 23:00:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=Wm9s0A+c; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=165692db3c=deepesh.varatharajan@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66F3ud193641469 for ; Tue, 14 Jul 2026 23:00:48 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=pD47tWxsLYuRs5smGShBhL+SMvTFNSEJIrMbKT0tzP8=; b= Wm9s0A+c8ihYh5YXnijO+Kxn4jnDo4167Zk+ylUVdxkWqOaiTVQwBRylF8FStzgD b5xb0Es/qFQsttpkuBkfCrGyiuQYOZc8vaSDNAdjDAAM+wya9TA6bbQ6qDYjpl6z CTe6Jc9v7s3pwV46A3j73G7JEzbVMAe+lkLEwzAkBsO6OUcqF2tIk0Tk2IIUjRD4 L2zDmhHQI9IFNDM7FhfXDWoxEbx4iuJYsNH2YMpsetMIjBJzKiTAywBUGeRMbE4c qUCqCV26POqPRm6K/x+dx2ZXOTVF5No57yN3EM3L9HQHh0M6Uz7pvg6rhDsWCn6i QhJAGOzt/mCcNgMMvjlnQg== Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012004.outbound.protection.outlook.com [40.107.200.4]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fbh40wfvd-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Tue, 14 Jul 2026 23:00:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ffn4HPMdkCLRz/gWRs83Bwx0zs1sDgC1bn3NGhxziynGlOyKqtC0g2HC555+JITbZFM6oK18CwwBslJrXbolX0whPx3pp/uV9BKyfvbxrMWUCniyfR8yfrwJbQ6+mK2jTRHVC2JDU5BpRfCUNmqowI/J9hew0H2u9HljjGhGZxJWZ3/8cBoOMNIJXfkL7E2GHPgw6Tp7J2ALPpBcae9vj0uj6R0ci30qrsOsSk3e9OHlj2e47ceVPR1XzEQ4ChXBhABelhqkepiUXmWXBUKtn0qzka28vzda4t+yFS6aVECt/Aua1hV4+BXFEKSRHDUG0h+Ogs8MZDLsTFGIs5wQww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=pD47tWxsLYuRs5smGShBhL+SMvTFNSEJIrMbKT0tzP8=; b=hx8QyPRUOHbIAjJpBXctNuvKBN0SIDNU8bUQxoThlpFqiLCsdTST5L95ruoEs7M2HlsJTxvP1T9ts9qJbw6QciIUfD//aOXwljT8FeiF6HMkKmp5oT42T5bWWDbmUrGB5Z8TgZJDW/pXbK0kxZzkMgqxoUEs3zPLGvtw5bYiXxm+y6EoTcHA88xlYkdDyLK7Q4fktx7FqmNv+bv47BI7L7nWvi77aMYJ7FblYAZLOfbQ8jpmYL6cG+faZlZJm8lV88HlJ9bei5LgNuPhSrHYnx/z4j3UOgh2fykWDyKWn9TcOQJoWQVgDXsB/sNvYEPsKhG8cuNhis2UtZbFtlylBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SN7PR11MB6677.namprd11.prod.outlook.com (2603:10b6:806:26b::6) by DS7PR11MB6077.namprd11.prod.outlook.com (2603:10b6:8:87::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.9; Wed, 15 Jul 2026 06:00:45 +0000 Received: from SN7PR11MB6677.namprd11.prod.outlook.com ([fe80::490a:519b:d657:99ab]) by SN7PR11MB6677.namprd11.prod.outlook.com ([fe80::490a:519b:d657:99ab%4]) with mapi id 15.21.0181.019; Wed, 15 Jul 2026 06:00:45 +0000 From: Deepesh.Varatharajan@windriver.com To: openembedded-core@lists.openembedded.org Cc: Sundeep.Kokkonda@windriver.com, Deepesh.Varatharajan@windriver.com Subject: [PATCH 2/3] clang: Enable cmake flags for llvm, clang, lld tests Date: Tue, 14 Jul 2026 23:00:20 -0700 Message-ID: <20260715060021.579656-3-Deepesh.Varatharajan@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260715060021.579656-1-Deepesh.Varatharajan@windriver.com> References: <20260715060021.579656-1-Deepesh.Varatharajan@windriver.com> X-ClientProxiedBy: SJ0PR03CA0005.namprd03.prod.outlook.com (2603:10b6:a03:33a::10) To SN7PR11MB6677.namprd11.prod.outlook.com (2603:10b6:806:26b::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR11MB6677:EE_|DS7PR11MB6077:EE_ X-MS-Office365-Filtering-Correlation-Id: 7901ba7d-a60e-4275-f22d-08dee236692f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|376014|52116014|366016|18002099003|22082099003|38350700014|6133799003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: VblGhwCySLpvIAc0nBZu6NbQdeOKLPCks7RBaOZGVA4TbQVIFOlqFpeWio/FGRDuAts5OME/E3zwa05cT5pnsbJIpiWWwD0Ru3QdVPVLdhu47aEktN3HyAwTRIJWeJZ6aubAKpQ/7AJ4JVnvM8HmbQaRYLYlSW2faSkNdgaXHfB4jRIkUz+iCqLaLl0/MmFKyCazr5F69FhoSk0l+4HsA/SwVb84vpMn/bE2uKq9s4zfMhdSaPdInr9rmNEajc6wtfSo2+gIVIJaR3LKGpzU49s+Yn3RU6B7/IFS94AC0IzisDOCzvjCC2gAr3TFRVSJDjLNRsg0tKaKDpJjsTcKAx87RZLsdKVG0G8OCRKSHS2J31iqOKQ7+X96ABYHbxliBwRz44d7+jJrH5k/XfRF29fVqPSIRONv6os20T7bDJ5vS9IsTRauHhuesQqfuiWAlZX2rrLR0lXIee1KSni4RxTnkcGfFfO4yUrSVemwaHwDn9n2SVPHQWKma0r6aSKXW15P689+ZU2mQFyuhTaZYMTaNOeZKY1tBDZ9eVjMAvlIcBuFzfiPoJTqwHTwyy5JKW8W6JVid6tFLvAo5rhdApqNEBCJ3tovAr3XaTGe6PTh33n5qjAd2Vm/4VnV1gjKYAA95XO2wkpqXARoP4APw+GUDdFiztNkCwTJv8wuN3URC3SFc74fOmY0WKdVU+keiTlrzcroymYWEjAUwmsJ4ZXCfqgTeSwmX4DqSRLuZ90= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR11MB6677.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(376014)(52116014)(366016)(18002099003)(22082099003)(38350700014)(6133799003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gri9HkQvgQfMaeIwLJL6OK1QbyANE8GtrjV1zJbHU4AxmD3T/s+0xmGtHcj2LS8hPpDjXTdD3wDTMaHbtnO0qZE0ZiLKOPZfT6j1pLA7XwNDlPTKq1LFTfBxDUUiK4+1nQZCQ9kt51yb+aj5VlY3hQkPLjuo2VM+2hqF77XpnEN1+frYIfLp2O5ZwmReG8pcljlIqplQsHKhtPCUKqwCkfCjj7254VOWHxnxdF/iJwpcTNReiT50jLBDgqT9FJ3UvbkDLUgXtS+EpNlY4RJ+RA/F57v4UBMTpJoAxEAAS2BTtpTSjzxgRICJBVsxP5kwnZeDt+yKOJYak+E3aHV4Mg2B8CADo/SojB3SxX54bwH1fnAP75hFY8vvVdeDjgmq1cUvggB3mtZmuKOxmcatHFzmxc/ELy51V5JGgZJW7pMf3pG1I1Wg9tB0SCRBOD5EkPHL6DhfrvlAdANALt4+4ug4c25nDX1hNQGH71985XvPTK7EiACKuVpNODPHvxHNrucMAq9vPyX7WQ7zjT2wkSZyjDrRSaeeDZcs1lCjK1s7KaK/KMewoU+i4yBRKk5jIA45dsdk8z7l1aaZzyZsIoT5fm9BJag8wvL1QNnYAwZch14ZhTysVyq78Ni9r6hwWdLIf+uErNPVqvElmrazNTtJZUQ0IDw3fYZfnK90o3KR9bWcQ+ixJCOIL4WAUuyLLMt2W8ll4wVrwuwHnNdo9Y5J06Xoh8UOFIKF9fkYSUfEpsj5GO7NTKFqLz/breR3cHVcyrNcXfKSxSVPdZfVwLKBs243h1jPSNLasaRTCvFpo1fBgBunIJXQDQRf+bBwKVp9wlGZv9XGyXLdb6VF8TkRJ0x4ubnT5aLgBvFFK3Y6TpJO2UFSn+81bQ/8AbvoviurTek1IZxbQT2WI80nlkAlhvee9ioXBtkWkVGA9W92qHBugXFENSAioHfFph1TDkQqQceL1f54uBxAY+N25F3E09xHw//6XPcqCEMVFdyYgx4/Ho+u3LS6xOlAh7LMzA+MSdsiaEnqHwREzE+BzkxO/XAMT7jq0kIPK0Gn8Y4jXvvhk2jfTRRe4CgFeDrnWTtOqqIj8s7b0h4c8lMNJD6gOUYIsVMU/b5PMKrdqlxhTYyDn2GedXIxgOxTAw0Cq+dkkLc9xUqMxlye8KRXao8f1k2rtUO8aQ4PloI06hn0+12spS5kVg/54zPgx3MfKa3r5tpwf4oPe9VcA4gRnEsOw4f1NSz0KpVx4JwNf2DnOTziLLiytVtHzs+Pq4BKVFlkqpLk1lRA1/Dh6XVhOzavP0yOKN/yyNrg43mezODKIo5HruD42s7Rm9neYIPaGM7nfsysah/XR1cdWWSZEdPup+nEeILZO1qmThN9qTTnJmxH6D9vIvTYpfrMk3J0W7VMdH4tbOwFxf6GwY1mg93mCy30WW6r2zfsTosYLL2VkS4jm/An/8zYEALe5Zr/ZSFIeMD1bJVpSMyr0YmLwhMbPDShpQYulIXkGXrcx3r/F1axq5Hu6FB1VM1Fy/1mrYWVktMvvt3lyk4Gegi5t1Dxq4UsdDAIkWLca9vUD3H0cxfm0M24GkEc3VNcTXzg7wrIHs3bp+1hg4i7nB7NiFKCKDID1eCPQvVfx/RRhyI6PZdc1hevflDfHhPGECOIzeTslCGlqxnZ1Oa7GYov1UoJfN5b7n3RKDtQq2CatNPkrsQnPOHh+xOoBOL1m8sTNK+4hLEA5Pn2GweOX/Iv9u/Gj9ogh3LRq8h4vuyNnkn1AmZC37i8tFvIj2/0Ywka X-Exchange-RoutingPolicyChecked: qwb/hfCOAziNsFca2y9bhNZpkT0AuqMuT/VRrnyMlYisvsg78Vn4rMmuzjG+EMhe/Ia5LoYv+Yw1Os0BGsI54Ns7ja2kaysR91tuY8xFP+MBiXZSaDpVPUg7RlIMp3RMabtigfQ2qQmaeG/9R10XUpPVNa1gMvfqVoipmI4ocZxbdTAX9vNRBO1c4QD3TJN8vhvcM2nuExWslc7pLUCjnAMrxteQketKGuj1m2xPTSFbnmdYe/9kYK313gUvtuUBNXmA/fCfkJJGNdVGCT6a2qY6aqwr2Wl5V1N+fZmWJ4CEvuNkt10COV7vmRMS0aXrD9vsM09f4DBuylR4tB2s9g== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7901ba7d-a60e-4275-f22d-08dee236692f X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB6677.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 06:00:45.5389 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c91wNZsT+3QvIgV88EiWHSbbAds8qAQzeItDQY8Ll9WdWEDHtkSnzCGqTy2EwHupWT3WdA2lNWGTjF33lcGu3Rs/wJRI1d2KGI9ntM83MeoDDFy+eHMRcnI4Ws0kVmum X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6077 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDA1MyBTYWx0ZWRfX6RK/hmwNk/jX EOshEKODoTKxfpIyH4QOLaPCD7ABzo5MOdTyaTXm+lvsyxr25yTtz6s1YOQieFMmTmQ4EYaXlE4 JMykmgPrEH8p8OrbUg8IM0Pvuzxv33UuhwRwONBcf2AfTUt4QKQalbZ69vB6OmibEXUgUbKTSly 4EfRjtiVVeUERTijxFmObUvwj3E+wpvT0IYMIhJhgJQcCEU1b8kkmWBol1Ia3mT8b0fLl5K5JG9 0u6iLjdgdaV/HIc1D2BaRkWuKTCMQLplCls9UayJg9eQjqofzf/fIRDwUdRm0ReQUEOM9cZH0Ha gaTFLiquYFkDTsfHEjwKktaFGI3hl0MlD1Bz5M8WwKxXFb7FxdhsVpMV6Hq1B5dTAM84oZIP00A Kn7k6H0Yy0JRWahR4xt4nRMyiL/8HL3Lnkw+yhjApvKrb+sfMtYcKB4KxpFrWpBkZ8PUcMiS7Q2 /pVA1T3G2SRXCdAV2jA== X-Proofpoint-ORIG-GUID: Oc_2bFjaVGjQZC1kPpF8B2f0-KyitV42 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDA1MyBTYWx0ZWRfXzbPe83gpR5oG 6u1qqIXUA/iESM7EelGt8AThqYwkDPLScBcN0Sw1imHv0GJLZxPCI1u2h7byFn4qdXTTaBGhhXp DjqJxwEm9t8bjxyGCdg0wyVwgb9ByYh0eSZhbDb1NBy9FdFnS1mJ X-Authority-Analysis: v=2.4 cv=JbGMa0KV c=1 sm=1 tr=0 ts=6a57220f cx=c_pps a=QZ+jOWKMuognynx/2ZkwyQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=Q7J_BWS0j0Z7kq5DsWMA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: Oc_2bFjaVGjQZC1kPpF8B2f0-KyitV42 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-15_02,2026-07-14_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150053 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 15 Jul 2026 06:00:55 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/240940 From: Deepesh Varatharajan Enable the necessary CMake flags to build and run tests for LLVM, Clang and LLD. Install the LLVM target tools needed to run tests via llvm-lit inside QEMU only when CLANG_ENABLE_TESTSUITE = "1". Signed-off-by: Deepesh Varatharajan --- meta/recipes-devtools/clang/clang_git.bb | 8 ++++++++ meta/recipes-devtools/clang/lld_git.bb | 5 +++++ meta/recipes-devtools/clang/llvm_git.bb | 18 +++++++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index d55c59ffa0..a8c5e8cb2d 100644 --- a/meta/recipes-devtools/clang/clang_git.bb +++ b/meta/recipes-devtools/clang/clang_git.bb @@ -75,6 +75,14 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DCMAKE_STRIP=${STAGING_BINDIR_NATIVE}/llvm-strip \ " +CLANG_ENABLE_TESTSUITE ??= "0" +CLANG_TESTSUITE_FLAGS = "\ + -DCLANG_INCLUDE_TESTS=ON \ + -DLLVM_INCLUDE_TESTS=ON \ +" + +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', d.getVar('CLANG_TESTSUITE_FLAGS'), '', d)}" + DEPENDS = "llvm-tblgen-native llvm-native llvm binutils zlib zstd libffi libxml2 libxml2-native" DEPENDS:append:class-target = " ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcxx', '', d)}" diff --git a/meta/recipes-devtools/clang/lld_git.bb b/meta/recipes-devtools/clang/lld_git.bb index ba36942790..8960cac2d3 100644 --- a/meta/recipes-devtools/clang/lld_git.bb +++ b/meta/recipes-devtools/clang/lld_git.bb @@ -19,4 +19,9 @@ OECMAKE_SOURCEPATH = "${S}/lld" EXTRA_OECMAKE += "-DLLVM_INCLUDE_TESTS=OFF -DLLVM_USE_SYMLINKS=ON \ -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen" +CLANG_ENABLE_TESTSUITE ??= "0" +LLD_TESTSUITE_FLAGS = "-DLLVM_INCLUDE_TESTS=ON" + +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', d.getVar('LLD_TESTSUITE_FLAGS'), '', d)}" + BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/clang/llvm_git.bb b/meta/recipes-devtools/clang/llvm_git.bb index 96ea383731..e7823154b9 100644 --- a/meta/recipes-devtools/clang/llvm_git.bb +++ b/meta/recipes-devtools/clang/llvm_git.bb @@ -80,6 +80,18 @@ PACKAGECONFIG[opt-viewer] = "-DLLVM_TOOL_OPT_VIEWER_BUILD=ON,-DLLVM_TOOL_OPT_VIE PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," PACKAGECONFIG[thin-lto] = "-DLLVM_ENABLE_LTO=Thin -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," +CLANG_ENABLE_TESTSUITE ??= "0" +LLVM_TESTSUITE_FLAGS = "\ + -DLLVM_BUILD_TESTS=ON \ + -DLLVM_INSTALL_GTEST=ON \ + -DLLVM_INCLUDE_TESTS=ON \ + -DLLVM_TOOL_LLVM_EXEGESIS_BUILD=ON \ + -DLLVM_TOOL_OBJ2YAML_BUILD=ON \ + -DLLVM_TOOL_YAML2OBJ_BUILD=ON \ + " + +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', d.getVar('LLVM_TESTSUITE_FLAGS'), '', d) } " + # LLVM debug symbols are very large (several gigabytes), reduce the debug level # so they're just hundreds of megabytes. DEBUG_LEVELFLAG = "-g1" @@ -118,7 +130,7 @@ do_install:append:class-native() { rm ${D}${bindir}/*-tblgen } -SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess" +SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess ${@bb.utils.contains('CLANG_ENABLE_TESTSUITE', '1', 'llvm_sysroot_preprocess_testsuite', '', d) }" SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess" llvm_sysroot_preprocess() { @@ -126,6 +138,10 @@ llvm_sysroot_preprocess() { install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ } +llvm_sysroot_preprocess_testsuite() { + install -m 0755 ${B}/bin/* ${SYSROOT_DESTDIR}${bindir}/ +} + FILES:${PN}-dev += "${libdir}/llvm-config" BBCLASSEXTEND = "native nativesdk" From patchwork Wed Jul 15 06:00:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Deepesh Varatharajan X-Patchwork-Id: 92461 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71D83C4450A for ; Wed, 15 Jul 2026 06:00:55 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.627.1784095251417563684 for ; Tue, 14 Jul 2026 23:00:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=SoGfPgnw; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=165692db3c=deepesh.varatharajan@windriver.com) Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66F5A4pc3632803 for ; Tue, 14 Jul 2026 23:00:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=HjllDWBrOweYWqufjncRDy6vJ3eVSCTzl1SkYX1jcyM=; b= SoGfPgnwRIMc62Yt9oXQ+ktTG5T8OjYa2tcjuT589lU7g4YvFS9IZmU0sx3rzX/k 0EgHcRBZcgiWCv9MY39dl/C9/PRkq8dno0MrjucHDS8UWMdGSV2xruUH5nUHtAWE yZT0nNJpjSqEkoR+yFjQs006l5A1cHgiLCAgGcl4g+TgNvaG9WrD7Eb8ko28rcYv 5ZigTdGLOzcFvAe5NQ46RpFjuOaZ/0qP151qNfu+EpBre4I/2hVFke4yu08gOmnU npGXdE0ethXLQ1h4C8/3f8+OH/ZdU6KCK+yBp1fQuEesl0CLCdlfztbWwRRPBzMY HW+o4Dmq3+8lA1sd2l429g== Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012034.outbound.protection.outlook.com [40.107.200.34]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fbnbdn9yg-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Tue, 14 Jul 2026 23:00:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=enKkIPWQkfgwERG3xW5YZBn8aNrj6uxb+420GJiqAyGFNUrLxGeVFWDhiFV4j0TQF4vcO1M9o1yv9f352UaDoPdBdMmVtohbQIX1N8pvJAe6ArOkhCxZLVNu/lla0x1MOkgHbzpenLHIlFhOG/1py03UyKxzqE8gVTF32KBEXbRRKST+TMsdFpA4CyUab1rvvkE5zRVQDFeip4amWQMJLqGLTLGzkKAxczItW0EybdrNaIec8w5obgxEjMaPfcY4XMMF6MM7y/sfB1t6JnosnMT0QSFrC9yGCOuVpDvNI4dEm86ZPDfqC3eOxB9mFaVDx76GMNJWHqT0S4IdkBY1gQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=HjllDWBrOweYWqufjncRDy6vJ3eVSCTzl1SkYX1jcyM=; b=jIIDVOtkxdyl4N0ZpFl8n6X6boT/UqvAKTsc2Zk+aXv0cCXgPMgIZzYV8EKvhZjBr81DxHhf+Uu4ElSn1/NRkSV0g7BixSyb+se4+0PBzrMKAkiaGu4gA92O6zYRAURHnPqsUTJlSMwVK6T6ACQXDulfTZ+tdQLl8Ghb9di+SjsxeJhzwRlFsbS5/tVvTfLVX0KG3h7TL3vDCgzNnTaiWsc9Kx4QejfuR6QsVSuaKGxepjzzy6cFsMESaDKMbFZztQELuZGMOU14PtXHaXbkJAEf9f3tZttmwoCTLbuxJ1ljXK2/LlyiJeDhUGf9gV9Mid5DgHGfGUDBaXKGH/VT5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from SN7PR11MB6677.namprd11.prod.outlook.com (2603:10b6:806:26b::6) by DS7PR11MB6077.namprd11.prod.outlook.com (2603:10b6:8:87::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.9; Wed, 15 Jul 2026 06:00:48 +0000 Received: from SN7PR11MB6677.namprd11.prod.outlook.com ([fe80::490a:519b:d657:99ab]) by SN7PR11MB6677.namprd11.prod.outlook.com ([fe80::490a:519b:d657:99ab%4]) with mapi id 15.21.0181.019; Wed, 15 Jul 2026 06:00:48 +0000 From: Deepesh.Varatharajan@windriver.com To: openembedded-core@lists.openembedded.org Cc: Sundeep.Kokkonda@windriver.com, Deepesh.Varatharajan@windriver.com Subject: [PATCH 3/3] oeqa/selftest/clang: Add oe-selftests for Clang/LLVM/LLD test suites Date: Tue, 14 Jul 2026 23:00:21 -0700 Message-ID: <20260715060021.579656-4-Deepesh.Varatharajan@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260715060021.579656-1-Deepesh.Varatharajan@windriver.com> References: <20260715060021.579656-1-Deepesh.Varatharajan@windriver.com> X-ClientProxiedBy: SJ0PR03CA0005.namprd03.prod.outlook.com (2603:10b6:a03:33a::10) To SN7PR11MB6677.namprd11.prod.outlook.com (2603:10b6:806:26b::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR11MB6677:EE_|DS7PR11MB6077:EE_ X-MS-Office365-Filtering-Correlation-Id: c8c3c23a-cd9a-4ea8-defb-08dee2366b0a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|376014|52116014|366016|18002099003|22082099003|38350700014|6133799003|3023799007|11063799006|21046099003|56012099006; X-Microsoft-Antispam-Message-Info: /scRyap3uFsB8QxsC6eye9rrMwY+Hp0KnIdj+YwsB4ICgXL0wniiioHQq9b7Hdo3Py1uiWVte71KbUY+XdfJ3YTNiljJSLz+gPeDhWcoLjhAzIG/MkitjsQb/NhbeFzAtExmYzkh/lXlsBWvadzZVB1jE7rncJllQSi6rw2F5JwKkeUS5G2mFLIluQpfdCceTZYKaFyJGchZIuqInNIEWgcfwzc/+wBwN/pHdL7sOJ8N6P8QL9hb7O0/xpzu+tO2XM56D3wdGW1SDY6ar6yz1yGXWVL++ECIGrkSrcICTeo2e1F2kRmpMVSd/53dmcKYY3el6ChdDJpoz2dtedgvROdIwAmPu312CI/WpsQslG1QBrd6tDfjc2IpF9HoyvOxHhQ01GtJ3f1icHszNBEoCwQPZdy+3vvhUe5NvdQgASykq6y57tsvJIHaO2xZ+mZGgYqXBKjueqxVMn1lt6M+xOzykqXYtWG2xYE24VpISCmM8BwSw/WeTMwRLLFJxUH/4eUnW87BLKbPNMNx4HAvdiPXOZCwcYQkopEMV8/BdaD1cwtC4Ix8QKrT1R+S5+Qh8F6pFKXndeDc+HlpH7ztAqiqo7XOOCEnYCg9bqr3N56P3Tbr1jLdBN+DJtq3eFtFkXO4otR0QFu2p8MCpC0lGY7MRVBNk2xTNV8zEAXNTzyWJ6SAgB/gav3pFHOdyJbfUfVltVA261fy2l25Si8/8YnU+ZAZhSeaf43Zrl5uqN8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR11MB6677.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(376014)(52116014)(366016)(18002099003)(22082099003)(38350700014)(6133799003)(3023799007)(11063799006)(21046099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RUOniYJg0Zqy7wIcmDf/uEqWwB0eA9TXA70ujvWNixCF1q7tOb0ZlPe0OtIRupJAQj5VitTKHZvNVIKxTF9DaizMxSy4wgDJLw6ppSFD1V+BSgyNq9anDuBIXeOT/CWp+WC1W7/GbzfRaep170UY9eqmZnZ9ng4mgIDG21t+oo0A6bByZOl2PdH2g5rmYswRJEuXXqdwMPijoeHSBCccGIG52U5PvR2TPxWEv/TwMZZ41xddwGBgp/HubeUR7vJI07vIHRQU4PeNa3qbdaKiDRuOX8XbvAms/yta64Ys6hm1BardI6PothSN5f0szw8s7cRRiPmelQOGzeX51WA8KEEmMVWLx9ikT04krSmVnSMMIIiIJ8AQCNd/Ucp7aGEf4v9udO1svQ91B6Wj5rQCpDSo/R+6M05pTKB8S1gv6PMx/0m3wyfiNhA8sUopGrPpiMlBKmxcJY+mlzxCzQPmfR81tMPgyQi0vQfWnWJm2+9qeRxoQFqYw5rx3Vayp6zfHupdbjWwnWZ/Yp+ZbFCFc6Yw8Yy/ooGgNUvy+/D8oewgEUcWnEC+wdoSEg57KKt07k93UfhMt8wrtA13b84mz6r5EKqPnDaWrLigd53khKc3cRQgYw8HesQcJsfmA5Uc055a3MhvHrqXxrvlws3KE1nVrkyRCnXmCAN1TqmjX7TmwMvyDqoC4s2H0htXEz09viTj5xHRzdprMGFzour8hxZqcyGXO/qcp7LoJ5CHMLDVvXuzKP30s7KPxltad/JdxGtnNlwV+ZB8VzXzA2smvehKauO3R+2oWrrrfgea7RBavP8HltnIM5ShR4YcdtJGjFcqqEphCTVohvRVjK9UqXj7erfj3Juh15W/rkZqHG3RiNx0lHXSoLFsO6nLt5Ua43+ikKjNK7DyhvXlG+i6oHJC8wQWViU9y9HNTDoizUfygR+iubc1/LuORTdtCcEnni6bnHbbV6K66GYGWAbRiqkKx1N/52A5lBxw85kPm1y/fZgEt7OyahGOX5Lc7FaJl8MU4WnQfmVsukmjVHuE/U718yAh8WJ4yjIqA4ZbI4DWEWA1mriAS6BFqMaJwc8tHCcljrUliRFrDdTVu2tSbyTNovjEhS1QaEnhrAJAARSl4qG1bmuwZWxevHVFrmqnRe7rfOp1SsykgV53GW9rEklrkaKpnGgRkC3IA/jJ7S1KfbXJ3m4eh2DP2IDFYDY2stlub4sCPglbOoU2bqQJYpS/JRWH0pI8PV8qk0+gCJkBMTd9Cv8UBitSt42XwsRPe6CZsQQhdhBEqgfPuSOQWzfh1wwjOgaejKjqZlz70lpndHfkNiG0PSVevCo9l/5fcb4oyZYqgdUX16OhvvAen0BQEWAs1JNnksjGyI8AnWgWzKQZg6pYyLzUrDTsXbulKJvbJRXm2GXwQxbL/CmH4u4hmxKEa+GT00qwRblLunL8EDX3lHl5vNXXAM3+T28vc4QZcAXNET2wqryAb1TPTiWyepib0uP8+IOhB3aN/r65Mpx/64QmO9+7CjLE2e8j4SK7ITa4OKSCCLPTVKrwE2uABIX/tJSrkHD0FsAJ+28jFgrxsXryMRX7G8Ka2etbHc1iFgsfzvKqlIZ1DxkjS8NMNXRE6YjgGE8DKGWY6rbkQD/jgauziNSdK4yggKU3rqc8BsppZj6RdYT1M0pZorGlT0QuLqs/5LWThyWlhccSkFmjhM8pyYsAfH3NZq6nE1/X5uubinwHX0/DbGPyQzoexAM1Q7+usO/nrHt53bjtX59D5XyYMdymzzyGNErN X-Exchange-RoutingPolicyChecked: AVVXguzxh+ED1ruIG1XEiblxvJrEIkhYdDwBD/0LrD+7J5XZf/DJLo96UyX6c06Dj9pyJp7lT7X7D7Ueub94/br9iEAJbNQT7Q5BO+baFAlr/2Jd90L0GCfMtMHUWpMlLVzuv5qGA23RDNCykluMdPXWE3zhaCAcsgFhcs+5rZ5napeKGex7+vmSFKSMuEUJhqY51u/GRasvfx3eZnjFQp2w7jwd+bs4XmTR/INh1GknauKJLafOPkQhLtzAFLFRTBXJ2zjwcuCnGxL60XFHiwP8od1y5b478tZfaps48PLb0zyTkbuZEr0wwaGNROZ3s0cqblk2CMTigeRQeWv9Sg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8c3c23a-cd9a-4ea8-defb-08dee2366b0a X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB6677.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2026 06:00:48.6616 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yPckcqw4Phk8612w+KBiaymXHU9wgzpmm7jIwuxYcDRNTG4gN08ybBsD2KhhXKmuKTs3gXF3Wxom3/k2Gbj3rP8oSGKTGa89/3TYtV8ZF8s+WHfhoGs7LHyP/D6JGSXY X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6077 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDA1MyBTYWx0ZWRfX3t2xzIZNsuug tWigZd9FM/ubhDcZhjPZvR1cxAqTVQPHNtsM7f6+1oGb+k5vZp06PWUUZJ47k+0CQzXJucCbaaZ brtgoPGVxI5Tfx4cpum0vvt7RPUM/0+drK+URk4St22PkUmfMWxnajTToaGoKCI2sQtGvXuA2AL EAo9XB2J5XGJr1kcn4x4AIuWLlDAFrJuRzJmcVDQBDMPhIRx9CkLJO72UUaocJK30eKc7nC60nm Ymxh7PC5xQmiQVKMdxsvuj5epfw7pFm50VegDGkCXpmsWlSalQQapWy7Iqxn4TCaFZPLRJDiXTx iKk1htl5AwWKVdwkEQIhu8zftNhybl9Cn6DiCjskBJKY7/xVtoQKvrb8KoykQ+C7ZcgZa094PPz ImJyvN5ES3/BpD+tQyLEkAWJx68tPpS5DP4pN6mM7K5E9KDNZCVWbfH2gWl9kjFFPI1yvIHgwBD w9ZzfIHVDMRnC55+EfA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDA1MyBTYWx0ZWRfX+MTWCtT6dmP3 53HN8EnLRabIBEZ0yt5duz53Fq9xL0ge0hSxUWWY00RZhZ9iH4bWf4/aPCyjHSxQZDb9NmdGaDF zs/YS2N5v2Khuu+hngcOVHHWcKuVHBgdb1pSiM4D6BIASjAuWpM1 X-Authority-Analysis: v=2.4 cv=VI/tWdPX c=1 sm=1 tr=0 ts=6a572212 cx=c_pps a=9AcDkMntNQwiSFi2uhiI7g==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=t7CeM3EgAAAA:8 a=iG7WmaLeum_H_6XJk-4A:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: Mt9qZvDftDG7eGHJLPsYVtB6ZrvGE6EE X-Proofpoint-GUID: Mt9qZvDftDG7eGHJLPsYVtB6ZrvGE6EE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-15_02,2026-07-14_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 suspectscore=0 malwarescore=0 bulkscore=0 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150053 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 15 Jul 2026 06:00:55 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/240941 From: Deepesh Varatharajan Add three selftest classes (LLVMSelfTestSystemEmulated, ClangSelfTestSystemEmulated, LLDSelfTestSystemEmulated) that run the upstream LLVM, Clang, and LLD regression test suites on target using llvm-lit inside QEMU. Each test: - Automatically sets CLANG_ENABLE_TESTSUITE = "1" to enable testsuite CMake flags and target tool installation - Builds core-image-minimal with Python3 and LLVM dependencies - Boots QEMU with 8GB RAM / 4 CPUs (3GB for 32-bit ARM) - NFS-mounts the host TMPDIR into the guest to access build artifacts (lit configs, test inputs, and target tools) - Runs llvm-lit with filters to exclude tests for non-target architectures and unsupported OS platforms - Excludes known-failing tests specific to each component Signed-off-by: Deepesh Varatharajan --- meta/lib/oeqa/selftest/cases/clang.py | 330 ++++++++++++++++++++++++++ 1 file changed, 330 insertions(+) create mode 100644 meta/lib/oeqa/selftest/cases/clang.py diff --git a/meta/lib/oeqa/selftest/cases/clang.py b/meta/lib/oeqa/selftest/cases/clang.py new file mode 100644 index 0000000000..5defde3f60 --- /dev/null +++ b/meta/lib/oeqa/selftest/cases/clang.py @@ -0,0 +1,330 @@ +# +# Copyright (c) 2026 by Wind River Systems, Inc. +# +# SPDX-License-Identifier: MIT +# +import contextlib +from oeqa.core.decorator import OETestTag +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, runqemu +from oeqa.utils.nfs import unfs_server + +class ClangFamilyBase(OESelftestTestCase): + + ALL_ARCHS = [ + "aarch64", "arm", "i386", "x86_64", "x86", + "mips", "riscv", "riscv64", "ppc", "ppc64", + "hexagon", "sparc", "sparcv9", "msp430", + "loongarch" + ] + + EXCLUDE_OS = [ + "Mac", "macho", "Darwin", "OSX", "wasm", + "Windows", "Win", "MinGW", "COFF", "zos", + "FreeBSD", "aix", "fuchsia", "ve" + ] + + DEFAULT_PACKAGES = [ + "libgcc", + "libstdc++", + "llvm", + "python3", + "python3-core", + "python3-modules", + "nfs-utils", + ] + + def setUp(self): + super().setUp() + self.write_config('CLANG_ENABLE_TESTSUITE = "1"') + self.target_arch = get_bb_var("TARGET_ARCH") + self.tmpdir = get_bb_var("TMPDIR") + arches = [a for a in self.ALL_ARCHS if a != self.target_arch] + self.filter_out = "|".join(arches + self.EXCLUDE_OS) + + def build_core_image(self): + features = [ + 'CLANG_ENABLE_TESTSUITE = "1"', + 'IMAGE_FEATURES += "ssh-server-openssh"', + 'CORE_IMAGE_EXTRA_INSTALL += "{}"'.format(" ".join(self.DEFAULT_PACKAGES)) + ] + self.write_config("\n".join(features)) + bitbake("core-image-minimal") + + def start_qemu_nfs(self): + ctx = contextlib.ExitStack() + s = ctx.__enter__() + nfsport, mountport = s.enter_context(unfs_server(self.tmpdir, udp=False)) + + # 32-bit ARM can only address up to ~3GB + if self.target_arch == "arm": + qemu_mem = 3072 + else: + qemu_mem = 8192 + + qemu = s.enter_context( + runqemu("core-image-minimal", runqemuparams="nographic", + qemuparams=f"-m {qemu_mem} -smp 4") + ) + + status, _ = qemu.run("uname") + if status != 0: + raise AssertionError("QEMU SSH check failed") + + status, _ = qemu.run(f"mkdir -p {self.tmpdir}") + if status != 0: + raise AssertionError("Failed to create TMPDIR on target") + + mountcmd = ( + f"mount -o nfsvers=3,local_lock=all,port={nfsport},mountport={mountport} " + f"\"{qemu.server_ip}:{self.tmpdir}\" \"{self.tmpdir}\"" + ) + status, output = qemu.run(mountcmd) + if status != 0: + raise AssertionError(f"NFS mount failed: {output}") + return ctx, qemu + + def run_llvm_lit(self, recipe, extra_filter=None): + build_dir = get_bb_var("B", recipe) + workdir = get_bb_var("WORKDIR", recipe) + guest_result = f"/tmp/{recipe}-target-results.json" + host_result = f"{workdir}/{recipe}-target-results.log" + + filter_regex = self.filter_out + if extra_filter: + filter_regex += "|" + "|".join(extra_filter) + + cmd = ( + f"cd {build_dir}/bin && " + f"python3 ./llvm-lit -j 4 --filter-out '{filter_regex}' ../test -o {guest_result}" + ) + + return cmd, guest_result, host_result + +@OETestTag("toolchain-system") +@OETestTag("toolchain-user") +@OETestTag("runqemu") +class LLVMSelfTestSystemEmulated(ClangFamilyBase): + + LLVM_EXTRA_EXCLUDE = [ + "BugPoint/compile-custom\\.ll$", + "BugPoint/replace-funcs-with-null\\.ll$", + "CodeGen/AMDGPU/lds-run-twice-absolute-md\\.ll$", + "CodeGen/AMDGPU/lds-run-twice\\.ll$", + "CodeGen/Generic/fp128-math-libcalls\\.ll$", + "CodeGen/Thumb/2009-08-20-ISelBug\\.ll$", + "CodeGen/Thumb/2010-07-15-debugOrdering\\.ll$", + "CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug\\.ll$", + "CodeGen/Thumb/PR17309\\.ll$", + "CodeGen/Thumb/dyn-stackalloc\\.ll$", + "CodeGen/Thumb/frame-access\\.ll$", + "CodeGen/Thumb/frame-chain\\.ll$", + "CodeGen/Thumb/ldm-merge-call\\.ll$", + "CodeGen/Thumb/pop\\.ll$", + "CodeGen/Thumb/pr35836\\.ll$", + "CodeGen/Thumb/pr35836_2\\.ll$", + "CodeGen/Thumb/scmp\\.ll$", + "CodeGen/Thumb/smul_fix\\.ll$", + "CodeGen/Thumb/stack-guard-xo\\.ll$", + "CodeGen/Thumb/stm-deprecated\\.ll$", + "CodeGen/Thumb/stm-merge\\.ll$", + "CodeGen/Thumb/thumb-ldm\\.ll$", + "CodeGen/Thumb/ucmp\\.ll$", + "CodeGen/Thumb/vargs\\.ll$", + "CodeGen/Thumb2/2009-08-21-PostRAKill4\\.ll$", + "CodeGen/Thumb2/2009-09-01-PostRAProlog\\.ll$", + "CodeGen/Thumb2/constant-islands\\.ll$", + "CodeGen/Thumb2/ldr-str-imm12\\.ll$", + "CodeGen/Thumb2/pacbti-m-varargs-1\\.ll$", + "CodeGen/Thumb2/pacbti-m-varargs-2\\.ll$", + "CodeGen/Thumb2/thumb2-ldm\\.ll$", + "ExecutionEngine/JITLink/Generic/llvm-jitlink-option-show-addrs\\.test$", + "ExecutionEngine/JITLink/Generic/sectcreate\\.test$", + "ExecutionEngine/MCJIT/.*", + "Other/spirv-sim/.*", + "Transforms/LoopLoadElim/.*", + "tools/llvm-cas/validation\\.test$", + "tools/llvm-cgdata/merge-combined-funcmap-hashtree\\.test$", + "tools/llvm-cgdata/merge-funcmap-concat\\.test$", + "tools/llvm-cgdata/merge-funcmap-double\\.test$", + "tools/llvm-cgdata/merge-funcmap-single\\.test$", + "tools/llvm-cgdata/merge-hashtree-concat\\.test$", + "tools/llvm-cgdata/merge-hashtree-double\\.test$", + "tools/llvm-cgdata/merge-hashtree-single\\.test$", + "tools/llvm-locstats/locstats\\.ll$", + "tools/llvm-locstats/no_scope_bytes\\.ll$", + "tools/llvm-objcopy/DXContainer/dump-section\\.yaml$", + "tools/llvm-objcopy/ELF/basic-binary-copy\\.test$", + "tools/llvm-objcopy/ELF/binary-first-seg-offset-zero\\.test$", + "tools/llvm-objcopy/ELF/binary-no-paddr\\.test$", + "tools/llvm-objcopy/ELF/binary-paddr\\.test$", + "tools/llvm-objcopy/ELF/binary-segment-layout\\.test$", + "tools/llvm-objcopy/ELF/check-addr-offset-align-binary\\.test$", + "tools/llvm-objcopy/ELF/dump-section\\.test$", + "tools/llvm-objcopy/ELF/gap-fill\\.test$", + "tools/llvm-objcopy/ELF/pad-to\\.test$", + "tools/llvm-objcopy/ELF/parent-loop-check\\.test$", + "tools/llvm-objcopy/ELF/strip-all-gnu\\.test$", + "tools/llvm-objcopy/ELF/strip-sections-keep\\.test$", + "tools/llvm-objcopy/ELF/strip-sections-only-section\\.test$", + "tools/llvm-objcopy/ELF/strip-sections\\.test$", + "tools/llvm-objcopy/ELF/update-section\\.test$", + "tools/llvm-original-di-preservation/acceptance-test\\.test$", + "tools/llvm-original-di-preservation/basic\\.test$", + "tools/llvm-reduce/temporary-files-as-bitcode-split\\.ll$", + "tools/not/disable-symbolization\\.test$", + "tools/opt-viewer/.*", + "tools/UpdateTestChecks/.*", + "tools/yaml2obj/ELF/custom-fill\\.yaml$", + "tools/yaml2obj/ELF/header-elfdatanone\\.yaml$", + "tools/yaml2obj/ELF/header-sh-fields\\.yaml$", + "tools/yaml2obj/GOFF/GOFF-header-end\\.yaml$", + "tools/yaml2obj/GOFF/GOFF-header-settings\\.yaml$", + ] + + def test_llvm(self): + bitbake("llvm -c install") + self.build_core_image() + ctx, qemu = self.start_qemu_nfs() + with ctx: + cmd, guest_result, host_result = self.run_llvm_lit( + "llvm", extra_filter=self.LLVM_EXTRA_EXCLUDE + ) + status, output = qemu.run(cmd, timeout=7200) + if status != 0: + raise AssertionError(f"llvm-lit failed for LLVM: {output}") + status, _ = qemu.run(f"cp {guest_result} {host_result}") + if status != 0: + raise AssertionError("Failed to copy LLVM lit results back to host") + +@OETestTag("toolchain-system") +@OETestTag("toolchain-user") +@OETestTag("runqemu") +class ClangSelfTestSystemEmulated(ClangFamilyBase): + + CLANG_EXTRA_EXCLUDE = [ + "APINotes/yaml-roundtrip-2\\.test$", + "APINotes/yaml-roundtrip\\.test$", + "AST/ByteCode/builtin-bit-cast-long-double\\.cpp$", + "AST/ByteCode/builtin-bit-cast\\.cpp$", + "AST/ByteCode/builtin-functions\\.cpp$", + "AST/ByteCode/builtin-object-size\\.cpp$", + "AST/ByteCode/c\\.c$", + "AST/ByteCode/codegen\\.cpp$", + "AST/ByteCode/complex\\.c$", + "AST/ByteCode/complex\\.cpp$", + "AST/ByteCode/const-eval\\.c$", + "AST/ByteCode/const-fpfeatures\\.cpp$", + "AST/ByteCode/constexpr\\.c$", + "AST/ByteCode/cxx20\\.cpp$", + "AST/ByteCode/fixed-point\\.cpp$", + "AST/ByteCode/floats\\.cpp$", + "AST/ByteCode/functions\\.cpp$", + "AST/ByteCode/hlsl\\.hlsl$", + "AST/ByteCode/intap\\.cpp$", + "AST/ByteCode/invalid\\.cpp$", + "AST/ByteCode/lambda\\.cpp$", + "AST/ByteCode/literals\\.cpp$", + "AST/ByteCode/memberpointers\\.cpp$", + "AST/ByteCode/neon\\.c$", + "AST/ByteCode/new-delete\\.cpp$", + "AST/ByteCode/placement-new\\.cpp$", + "AST/ByteCode/records\\.cpp$", + "AST/ByteCode/spaceship\\.cpp$", + "AST/ByteCode/unions\\.cpp$", + "Analysis/dead-stores\\.c$", + "Analysis/exploded-graph-rewriter/.*", + "Analysis/scan-build/cxx-name\\.test$", + "Analysis/scan-build/deduplication\\.test$", + "Analysis/scan-build/exclude_directories\\.test$", + "Analysis/scan-build/help\\.test$", + "Analysis/scan-build/html_output\\.test$", + "Analysis/scan-build/plist_html_output\\.test$", + "Analysis/scan-build/plist_output\\.test$", + "Analysis/scan-build/rebuild_index/rebuild_index\\.test$", + "Analysis/scan-build/silence-core-checkers\\.test$", + "Analysis/virtualcall-fixits\\.cpp$", + "C/C23/n3018\\.c$", + "ClangScanDeps/module.*", + "ClangScanDeps/multiple-commands\\.c$", + "ClangScanDeps/optimize-vfs-edgecases\\.m$", + "ClangScanDeps/optimize-vfs-pch\\.m$", + "ClangScanDeps/visible-modules\\.c$", + "ClangScanDeps/Wsystem-headers-in-module\\.c$", + "CodeGen/builtins\\.c$", + "CodeGen/compound-literal\\.c$", + "CodeGenCUDA/static-device-var-rdc\\.cu$", + "CodeGenCXX/int64_uint64\\.cpp$", + "CodeGenCXX/pointers-to-data-members\\.cpp$", + "CodeGenOpenCLCXX/constexpr\\.clcpp$", + "Format/docs_updated\\.test$", + "Frontend/rewrite-includes-bom\\.c$", + "Interpreter/cxx20-modules\\.cppm$", + "Modules/crash-vfs-umbrella-frameworks\\.m$", + "Modules/double-quotes\\.m$", + "Modules/framework-public-includes-private\\.m$", + "Modules/implicit-module-header-maps\\.cpp$", + "Preprocessor/embed_constexpr\\.c$", + "Preprocessor/header-search-crash\\.c$", + "Preprocessor/headermap-rel\\.c$", + "Preprocessor/headermap-rel2\\.c$", + "Preprocessor/include-header-missing-in-framework-with-headermap\\.c$", + "Preprocessor/search-path-usage\\.m$", + "Sema/arithmetic-fence-builtin\\.c$", + "Sema/atomic-expr\\.c$", + "Sema/auto-type\\.c$", + "Sema/builtin-expect-with-probability\\.cpp$", + "Sema/c2x-auto\\.c$", + "Sema/constant-builtins-fmax\\.cpp$", + "Sema/constant-builtins-fmaximum-num\\.cpp$", + "Sema/constant-builtins-fmin\\.cpp$", + "Sema/constant-builtins-fminimum-num\\.cpp$", + "Sema/constexpr\\.c$", + "Sema/fp-eval-pragma-with-float-double_t-1\\.c$", + "Sema/fp-eval-pragma-with-float-double_t-2\\.c$", + "Sema/fp-eval-pragma-with-float-double_t-3\\.c$", + ] + + def test_clang(self): + bitbake("clang -c install") + self.build_core_image() + ctx, qemu = self.start_qemu_nfs() + with ctx: + cmd, guest_result, host_result = self.run_llvm_lit( + "clang", extra_filter=self.CLANG_EXTRA_EXCLUDE + ) + status, output = qemu.run(cmd, timeout=3600) + if status != 0: + raise AssertionError(f"llvm-lit failed for Clang: {output}") + status, _ = qemu.run(f"cp {guest_result} {host_result}") + if status != 0: + raise AssertionError("Failed to copy Clang lit results back to host") + +@OETestTag("toolchain-system") +@OETestTag("toolchain-user") +@OETestTag("runqemu") +class LLDSelfTestSystemEmulated(ClangFamilyBase): + + LLD_EXTRA_EXCLUDE = [ + "ELF/fill-trap\\.s$", + "ELF/lto/cache-warnings\\.ll$", + "ELF/oformat-binary-ttext\\.s$", + "ELF/oformat-binary\\.s$", + "ELF/partition-synthetic-sections\\.s$", + "ELF/reproduce\\.s$", + ] + + def test_lld(self): + bitbake("lld -c install") + self.build_core_image() + ctx, qemu = self.start_qemu_nfs() + with ctx: + cmd, guest_result, host_result = self.run_llvm_lit( + "lld", extra_filter=self.LLD_EXTRA_EXCLUDE + ) + status, output = qemu.run(cmd, timeout=3600) + if status != 0: + raise AssertionError(f"llvm-lit failed for LLD: {output}") + status, _ = qemu.run(f"cp {guest_result} {host_result}") + if status != 0: + raise AssertionError("Failed to copy LLD lit results back to host")