From patchwork Thu Mar 27 12:36:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60085 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 20614C3600B for ; Thu, 27 Mar 2025 14:20:10 +0000 (UTC) Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.web11.48790.1743079032563118106 for ; Thu, 27 Mar 2025 05:37:12 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=ViFdsn9A; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jFR1025693 for ; Thu, 27 Mar 2025 12:37:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=SM+IlWEYt4n c/J3FdkmsdaotwlmJiOhl1MIB1BvrPY0=; b=ViFdsn9A8i+8k96N7WrJQQLAfds eZ6ONUV74dQq18U1lsSaswjZXKP7ujTJ3B3leSsx4TNdfupzDUfzMhd126VfC+pz KMdKu74djoS2mT3c3uW1J3aGKyNGfB2/45Sd2fKqYZFdigozeA7snsyocIxHAbo0 zEvnfEYLZqvtgNdLtktnP1AujOleue6Soq9npVmwpJTbHNHsgPEyCRIPEm6devux 8g2HYRmE6wBj/yWpQrfyYV0n0pTeOaDsWkosw1h28ZfEyW17uscT1iz/J4yKN7KJ 06V7Iu45xYt/DdnJ/MVU2g9PX9xfPIih8Xu15HOFYCtSrMp+0DRINCEYJjw== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45n0nus3vt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:11 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7c5750ca8b2so150283085a.0 for ; Thu, 27 Mar 2025 05:37:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079030; x=1743683830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SM+IlWEYt4nc/J3FdkmsdaotwlmJiOhl1MIB1BvrPY0=; b=hrex0b6bG/4kGTUtkFkPXM2YBRmOq3gzRywQn6WCTRdp8ZEzTNL7AV2hAFuTAkcVnP XMnb929ChaBSLbZ3+cDObKdVN/coZgXjhftnzSI2VXMSldeJoNx3PPg3AoR2EyZt62oe vUGSDHKNGTCk7fd+o4pVCsjX17k8RTVjxQ0Z7m3ZJTwohNmPIRKQuSD4qikTv8JLNkCR XpXzshZXjrzsug9MPVspODQnpkVCSDgpQCkQ7+uC0tsy3G260RNvBFejVqGe/nsfw99x bWoHFjCOLNLcKOxpWgQSR+QoKObn2rJWGv6003nmg0n5pBJ5+quESffh+yVsULBnfhAU oAyg== X-Gm-Message-State: AOJu0YyfO5h3Xd55ajNvk0+FE+qI97XxBkGWr4cdx918Yz8fxSJ9pajv 20gxnbSA1ixVk6WUKSVgO+3qYqdhrrSUd+/wmavj/PQ1cGf6G5bEf4N7WyL51ZvabZ0vjTWeUJp JEopmjX9WRSe4NvKrq6qkfvhri+H0uMYxkVRTCp4d4oeZya1VDDt2RrVsUWjnOGy35yBgl4GYt7 3BhZK3QVVDA0A= X-Gm-Gg: ASbGncvEFbl1tWAmCMJdoggx6vSDV8YXM74Aue5lYFOjLTXk7XWbhhLKueDZrId+5dy LBNAQO409M4+YfDSk2tIJdP1p7Xd/uiCrl5M36xu3+l4lq3RnYqggC8qwFZJwUx4eVu9n8VtOnt gv/yQ+ahxmFbTuBSvQEROBRzIxju4ljSS2nQCNFKQr0qbUiO/bc9RAlOKYGJBJuqKwf06mQs/pb /WtCadoeQDA/Wp862pA+DPuCU7pF9c4ob0+K053DzcV5Xan+4zekbgZqMqIn+S3rh2VaS9MqkIV ybNFB9/eEgHpgKzK8OCtwHHqgbcbPbqdA6jft/zQGRFSzE/cBBp16gFvYIHi560DdlYXfV6BPXF Txvy7c1Kr2LhwQk1TzGjKg/599xhv X-Received: by 2002:a05:620a:199c:b0:7c5:4750:9302 with SMTP id af79cd13be357-7c5eda0f072mr439054985a.34.1743079029573; Thu, 27 Mar 2025 05:37:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEpLP66XU7Z62v1EJfPFPaJiZau4Mv1Lcguw8ZgAgQDUtsN/8J0BM2cZvudURuU5QFjgf/FAA== X-Received: by 2002:a05:620a:199c:b0:7c5:4750:9302 with SMTP id af79cd13be357-7c5eda0f072mr439050785a.34.1743079028983; Thu, 27 Mar 2025 05:37:08 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:06 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 1/8] llvm: move libLLVM.so.N.M to llvm-libllvm package Date: Thu, 27 Mar 2025 14:36:54 +0200 Message-Id: <20250327123701.3906604-2-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: WJLKrYA_HGJlWrHt56sBEQVYjd1gjGQZ X-Authority-Analysis: v=2.4 cv=AcaxH2XG c=1 sm=1 tr=0 ts=67e54677 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=Vs1iUdzkB0EA:10 a=EUspDBNiAAAA:8 a=O224Tk8ENGDN2UPLuq4A:9 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-ORIG-GUID: WJLKrYA_HGJlWrHt56sBEQVYjd1gjGQZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=921 impostorscore=0 malwarescore=0 bulkscore=0 mlxscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:10 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213741 Neither MAJOR_VER nor MINOR_VER are defined, so libLLVM.so.N.M ends up in the main libllvm package rather than the llvm-libllvm package, as expected. Fix this by properly using two-component version. Fixes: db3bf550a372 ("llvm: Update to 18.1.0 RC4") Signed-off-by: Dmitry Baryshkov --- meta/recipes-devtools/llvm/llvm_20.1.0.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb index 7ffc6ec1cb8a..296a164cdd7f 100644 --- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb +++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb @@ -19,6 +19,7 @@ VER_SUFFIX = "" PV .= "${VER_SUFFIX}" MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" +MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}" LLVM_RELEASE = "${PV}" @@ -152,7 +153,7 @@ FILES:${PN}-bugpointpasses = "\ FILES:${PN}-libllvm = "\ ${libdir}/libLLVM-${MAJOR_VERSION}.so \ - ${libdir}/libLLVM.so.${MAJOR_VER}.${MINOR_VER} \ + ${libdir}/libLLVM.so.${MAJ_MIN_VERSION} \ " FILES:${PN}-liblto += "\ From patchwork Thu Mar 27 12:36:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60086 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 1D950C36010 for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by mx.groups.io with SMTP id smtpd.web10.48935.1743079034172957227 for ; Thu, 27 Mar 2025 05:37:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=jX9OfnZu; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.180.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jVSQ006036 for ; Thu, 27 Mar 2025 12:37:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=lrnxHIQhpnz Qk8LjlG6rp9IzYwU1+oVEHFQn83Bqpwk=; b=jX9OfnZu1wca738GayaAZoQ+sHK 9Qq8dmhPrALmMQhEtnPCnHgll21z3tY+RCrhlsff9xzOu/6NrkZSVUGVq9PGX0VZ Ntz9cthMCrRqoZUDEcm/Aq0xV9bHRFBPnNWSnyV6A0DYVVDPnAG4spGQUrtsQmuj 5JcZikzUj/oufsUvR+WDtcp3R4Vaw5dAbsYYNszjxtG0nUSzGAp9an+Yug40J8Su LEX5ET8GVVjOFR7DzLGSXfEwcL9eyT5dkLVe17leORWLTOeQ6ci9RJR1fdhFShTs cp6wQ2s3Rqhs905RroQx1gB3LO+7KGciJmSPRGtaWy5sBe5qzPX8za/7x5w== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45ktenfbcn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:13 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7c5bb68b386so273372385a.3 for ; Thu, 27 Mar 2025 05:37:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079032; x=1743683832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lrnxHIQhpnzQk8LjlG6rp9IzYwU1+oVEHFQn83Bqpwk=; b=W7EfkeCJyCy5IaMg0kxPthydL7BnMsZJT6peou7ZaX3Hzbi/n3+BiOicAtfOd/+KhE 91Jpza4GQBfSp6/4KbfSdGdMTaPHWjCG6LTUjADjyQ5gIyoqPB7WPFZ2i0NO1Qnsj3aI aTVsBU8I1sXsrjgMXDpOefQAJXa60OGfLutjRalGDuw7ZS9Y3f8NPent4Re7pIwik/nP E9c96PgxaStLSs35cDytcTUBEzBxiLUC8sKoiQ8HY/rZQGX76NCEX6M6FiD7E/xkh2xx ziHL5u1wsgFBH3katjj60v68Qu9bFcKRTuEpGuG0+EJU3rI2yg1eB8BOwXCEQ1oNglEs pGNg== X-Gm-Message-State: AOJu0Yy5duHPVw2c05D4/gLnXczwshqfPGzzqrdkoZ8d9p82V1/Ka1GK ubp+63torWH+Dy76u6bm6A6zDD9M47JY+EL8VjZUnhGzdcvHZHq7nq234ieI24VGBS9FI3rPdxb PPK+6uz8kO/5zxPqhsPFKe1Gu8+F1fNTdbIhucaVElaxwa+EGCKJr9eXKysExTS8Sb7fI2fjslF 9S8XnEN4YtV2w= X-Gm-Gg: ASbGncv9asca/3fmXTfcS9PbB31hYbMgCMvq4OSmUgnC9xLPM1kFiDpI0Gfv1ZDbSlV 796sAdl6lXfiF1ddygtmb4xLe0fvD8jnKNw71Af/gfihzn2llM2WW2Cu/axmGd7EzG2m2nwz4J0 bTvQuHEKvpMVPqHy6BF/SdkX3AjrPTuNzxZXDfEpbICpnV+23fn+w0S3YkMfOeCRy7Oc9aVqsjZ 5htTSZmf/j9xyqr02HlOI+3cy34HdGer1ziZA+yPp8CrBQuJTyGwA9hihD1K26p4vNA1URaKc2K MAxwOZVqFCGOK+cxYTljuDNUZ+VjjJtXWbff9G71imhEhohuBWhbbgEGBINMQrAY6vL6BFXFd40 rjzrJIcDVnGPz5VWmBu99I32aDep0 X-Received: by 2002:a37:f502:0:b0:7c5:5a97:f784 with SMTP id af79cd13be357-7c5eda0e46fmr377570785a.33.1743079032004; Thu, 27 Mar 2025 05:37:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFM5Aq7nK79oPcC4PMmq/6Sq5nbJ7GnW/IHZHj3/57hpozR2ZiQSdtZkJOqynUZHETqclOAFg== X-Received: by 2002:a37:f502:0:b0:7c5:5a97:f784 with SMTP id af79cd13be357-7c5eda0e46fmr377568085a.33.1743079031530; Thu, 27 Mar 2025 05:37:11 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:10 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 2/8] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Date: Thu, 27 Mar 2025 14:36:55 +0200 Message-Id: <20250327123701.3906604-3-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=TuvmhCXh c=1 sm=1 tr=0 ts=67e54679 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=Vs1iUdzkB0EA:10 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8 a=D0RIUQgIwEgepnv7z8kA:9 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: GsGkaK-ID1ibUNALITSYwnVg3T7Knr5X X-Proofpoint-ORIG-GUID: GsGkaK-ID1ibUNALITSYwnVg3T7Knr5X X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=968 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213742 Instead of pushing an `llvm` sourcedir into S, specify it through the OECMAKE_SOURCEPATH so that all the patches are applied to the topdir and debug paths also use top path to map. Signed-off-by: Dmitry Baryshkov --- meta/recipes-devtools/llvm/llvm_20.1.0.bb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb index 296a164cdd7f..7470d2b4d8a5 100644 --- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb +++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb @@ -24,15 +24,17 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}" LLVM_RELEASE = "${PV}" SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \ - file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \ - file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \ + file://0007-llvm-allow-env-override-of-exe-path.patch \ + file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \ file://llvm-config \ " SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a" UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project" UPSTREAM_CHECK_REGEX = "llvmorg-(?P\d+(\.\d+)+)" -S = "${WORKDIR}/llvm-project-${PV}.src/llvm" +S = "${WORKDIR}/llvm-project-${PV}.src" + +OECMAKE_SOURCEPATH = "${S}/llvm" LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" From patchwork Thu Mar 27 12:36:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60089 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 20007C36012 for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by mx.groups.io with SMTP id smtpd.web10.48939.1743079038152654538 for ; Thu, 27 Mar 2025 05:37:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=c6DFyzTl; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.180.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jaKj006075 for ; Thu, 27 Mar 2025 12:37:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=AkTOh9tAbmi gNSP4S5+Szfi+tsJ/KboFvALsFtkOZPA=; b=c6DFyzTlSbhUgrWFYTTXvQbOghs HL/sIfK6ii+cz3P5BYr3MzqW1kXX275S62sKUP4S5a1LbdPBx8LTcbkvsDI+oBOo 2J+448AjkkBvKFT/aZeCsh17j9nXLQkCYLHZ6ghGcCGznsFUBynGqrli0Gu+MT/d E15Ywjzv3Yrv+LIQFxHPkklkKeRFcyWsHCmSv0/4oWjrmgmso5EA4/zAJ+9lAnnR IW6v38FV0UcuqipyQbbFFSwsKCqY4NOYTOjTbTli1jYiiqKh025zqNtIpRhrExc1 c5VMeamaa+qED9kjg7szfL3YmpQxsvbYcPQqA7u9CwNJwcqYUBd/0NEG2WQ== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45ktenfbcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:17 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7c5ba3b91b1so181075385a.0 for ; Thu, 27 Mar 2025 05:37:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079036; x=1743683836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AkTOh9tAbmigNSP4S5+Szfi+tsJ/KboFvALsFtkOZPA=; b=wTFYziIoxx4UhSjJvBcGE3F7tMOLi16Lcg3zeLRgoJJh+vmKf5ly/FHFS6WF2jNq1N dVYpVmOJbjSCgVmTOxaOoHdpHvQY5b46QQKqu+nRrjJdjK6ddN8ROh8Hu77rm670Ajcr c8CZa28O7ij4oRVVuA8EI1hrcS/koQxPcFqLdFY7br/b9BDn37vo48/zzmjLuBUB799X GfNgpDQz95aYswifLFS0GA73qMpl4ZJypD7WLRSC8kNk8eAmZqaTzuUfUVgDVPFNMQgU 0scSrCRnMepgslm2DKRxfWN7cDOUr5A2m+nMX4/LEtiUyWQQFEe4xoHfwNcmbEqR/cjM n4Xg== X-Gm-Message-State: AOJu0Yz3GpL55D0sXg/WBuA2E/5qxQdGIklW3a39gr3m2F30mFF5UiC6 V2JLL9OzBFDJdP4M2VTKDVmpbR67XL6ZgwJdesolFP5/xnYEbfLOP67+vlW8CHCxY96Tk8VMsi6 P8aGdnW0capxXoZfaNdHIkw3OxxEyafcs9we6cpbAVkKw9MevaI7qPVEj44Ps6r0Q2HDSwusJVu LLjFCyfdMUx2w= X-Gm-Gg: ASbGncuUrt/rkM+b/DA7JGuw1RHrOQrrbBzVKLCRPNVxx/UIbaNgfao6WR+bJIY3JT4 VXLxJA13ZHUn3Z3fRSrU5EQNQ06vhP0Xzpt6111p3Qg4PfWPVmuCylyD3J0py6qmIAV7VddoxJT /Z6t5W2NNEy4csamjtJ4LeHZjsvyBDV7+RXexT1TdzutzvzZBi69vuUeyM7dKDfFX2lB+JIHF91 1QZZx8TGRhrC496wJGE2r9GhNkZMehJIAmY3hOi67wjp+wsPJ0x3y61sbT+08euTIMUZE2Mjqet jKv0/H+iItg1wXcfcv2Sb/MVB8mfk3ZSIluSiU625z3EzP5rS3tAsPRU6VZuDk7nmFHApiA2Hvd XNhPd9irgK/TDy9Ebx6m79CUeBJTl X-Received: by 2002:a05:620a:d86:b0:7bc:de68:e932 with SMTP id af79cd13be357-7c5e49344admr1017237485a.23.1743079035922; Thu, 27 Mar 2025 05:37:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IErZjZiDU0JHmWBjkW0E7cpf3vldt5ZljfLJgiEAcKFHzIR51ZCOfmOE3B1IBL+7vkjKQLanA== X-Received: by 2002:a05:620a:d86:b0:7bc:de68:e932 with SMTP id af79cd13be357-7c5e49344admr1017232985a.23.1743079035319; Thu, 27 Mar 2025 05:37:15 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:13 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 3/8] llvm: support building libclc Date: Thu, 27 Mar 2025 14:36:56 +0200 Message-Id: <20250327123701.3906604-4-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=TuvmhCXh c=1 sm=1 tr=0 ts=67e5467d cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=Vs1iUdzkB0EA:10 a=NEAV23lmAAAA:8 a=Twlkf-z8AAAA:8 a=EUspDBNiAAAA:8 a=YiW2yjIvKM0L5YyyVhYA:9 a=a97rIl97qucA:10 a=PEH46H7Ffwr30OY-TuGO:22 a=-74SuR6ZdpOK_LpdRCUo:22 X-Proofpoint-GUID: nwnRSBgRvkjE9qIn1gfLcBSb9TTtYseB X-Proofpoint-ORIG-GUID: nwnRSBgRvkjE9qIn1gfLcBSb9TTtYseB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213743 Current Mesa requires libclc in order to build Intel Gallium (iris) or Vulkan drivers. In order to unblock Mesa updates, build libclc (and clang) as a part of the build process. Don't install clang into the target system, it is only used during the build process. Proper handling of clang as a toolchain is a separate and much more complicated topic. Signed-off-by: Dmitry Baryshkov --- .../llvm/llvm/fix-native-compilation.patch | 67 +++++++++++++++++++ meta/recipes-devtools/llvm/llvm_20.1.0.bb | 43 ++++++++++-- 2 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch diff --git a/meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch b/meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch new file mode 100644 index 000000000000..4d51b6617cc4 --- /dev/null +++ b/meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch @@ -0,0 +1,67 @@ +From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Fri, 21 Mar 2025 17:17:52 +0200 +Subject: [PATCH] cmake/modules/CrossCompile: fix NATIVE build setup + +Fix variables being passed to cmake when generating NATIVE build dir. + +Upstream-Status: Inappropriate [OE-Specific build-system fix] +Signed-off-by: Dmitry Baryshkov + +Index: llvm-project-20.1.0.src/llvm/cmake/modules/CrossCompile.cmake +=================================================================== +--- llvm-project-20.1.0.src.orig/llvm/cmake/modules/CrossCompile.cmake ++++ llvm-project-20.1.0.src/llvm/cmake/modules/CrossCompile.cmake +@@ -23,19 +23,37 @@ function(llvm_create_cross_target projec + if (EXISTS ${LLVM_MAIN_SRC_DIR}/cmake/platforms/${toolchain}.cmake) + set(CROSS_TOOLCHAIN_FLAGS_INIT + -DCMAKE_TOOLCHAIN_FILE=\"${LLVM_MAIN_SRC_DIR}/cmake/platforms/${toolchain}.cmake\") ++ elseif (${target_name} STREQUAL NATIVE) ++ set(CROSS_TOOLCHAIN_FLAGS_INIT ++ -DCMAKE_C_COMPILER=\"${LLVM_NATIVE_C_COMPILER}\" ++ -DCMAKE_CXX_COMPILER=\"${LLVM_NATIVE_CXX_COMPILER}\" ++ -DCMAKE_C_FLAGS=\"${LLVM_NATIVE_C_FLAGS}\" ++ -DCMAKE_CXX_FLAGS=\"${LLVM_NATIVE_CXX_FLAGS}\" ++ -DCMAKE_EXE_LINKER_FLAGS=\"${LLVM_NATIVE_LD_FLAGS}\" ++ ) + elseif (NOT CMAKE_CROSSCOMPILING) + set(CROSS_TOOLCHAIN_FLAGS_INIT + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + ) + endif() + set(CROSS_TOOLCHAIN_FLAGS_${target_name} ${CROSS_TOOLCHAIN_FLAGS_INIT} + CACHE STRING "Toolchain configuration for ${target_name}") + + # project specific version of the flags up above + set(CROSS_TOOLCHAIN_FLAGS_${project_name}_${target_name} "" + CACHE STRING "Toolchain configuration for ${project_name}_${target_name}") + ++ if (${target_name} STREQUAL NATIVE) ++ set(cross_flags ++ "-DLLVM_DEFAULT_TARGET_TRIPLE='${LLVM_NATIVE_TRIPLE}'") ++ else() ++ set(cross_flags ++ "-DLLVM_DEFAULT_TARGET_TRIPLE='${LLVM_TARGET_TRIPLE}'" ++ "-DLLVM_TARGET_ARCH='${LLVM_TARGET_ARCH}'" ++ "-DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE") ++ endif() ++ + if (buildtype) + set(build_type_flags "-DCMAKE_BUILD_TYPE=${buildtype}") + endif() +@@ -91,12 +111,11 @@ function(llvm_create_cross_target projec + -DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_C_COMPILER_LAUNCHER}" + -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CXX_COMPILER_LAUNCHER}" + ${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_CURRENT_SOURCE_DIR} ++ #${CROSS_TOOLCHAIN_FLAGS_INIT} ${CMAKE_CURRENT_SOURCE_DIR} + ${CROSS_TOOLCHAIN_FLAGS_${project_name}_${target_name}} +- -DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE ++ ${cross_flags} + -DLLVM_TARGETS_TO_BUILD="${targets_to_build_arg}" + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${experimental_targets_to_build_arg}" +- -DLLVM_DEFAULT_TARGET_TRIPLE="${LLVM_TARGET_TRIPLE}" +- -DLLVM_TARGET_ARCH="${LLVM_TARGET_ARCH}" + -DLLVM_ENABLE_PROJECTS="${llvm_enable_projects_arg}" + -DLLVM_EXTERNAL_PROJECTS="${llvm_external_projects_arg}" + -DLLVM_ENABLE_RUNTIMES="${llvm_enable_runtimes_arg}" diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb index 7470d2b4d8a5..0fb336ee7747 100644 --- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb +++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb @@ -26,8 +26,10 @@ LLVM_RELEASE = "${PV}" SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \ file://0007-llvm-allow-env-override-of-exe-path.patch \ file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \ + file://fix-native-compilation.patch \ file://llvm-config \ " + SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a" UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project" UPSTREAM_CHECK_REGEX = "llvmorg-(?P\d+(\.\d+)+)" @@ -56,19 +58,22 @@ def get_llvm_arch(bb, d, arch_var): def get_llvm_host_arch(bb, d): return get_llvm_arch(bb, d, 'HOST_ARCH') -PACKAGECONFIG ??= "libllvm" +PACKAGECONFIG ??= "libllvm libclc" # if optviewer OFF, force the modules to be not found or the ones on the host would be found PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml" PACKAGECONFIG[libllvm] = "" +PACKAGECONFIG[libclc] = "" # # Default to build all OE-Core supported target arches (user overridable). # -LLVM_TARGETS ?= "AMDGPU;${@get_llvm_host_arch(bb, d)}" +LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}" ARM_INSTRUCTION_SET:armv5 = "arm" ARM_INSTRUCTION_SET:armv4t = "arm" +LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}" + EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ -DLLVM_ENABLE_PIC=ON \ @@ -82,6 +87,13 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ + -DLLVM_NATIVE_TRIPLE='${BUILD_SYS}' \ + -DLLVM_NATIVE_C_COMPILER=\'${@ d.getVar('BUILD_CC').replace('ccache', '').strip()}\' \ + -DLLVM_NATIVE_CXX_COMPILER=\'${@ d.getVar('BUILD_CXX').replace('ccache', '').strip()}\' \ + -DLLVM_NATIVE_C_FLAGS='${BUILD_CFLAGS}' \ + -DLLVM_NATIVE_CXX_FLAGS='${BUILD_CXXFLAGS}' \ + -DLLVM_NATIVE_LD_FLAGS='${BUILD_LDFLAGS}' \ " EXTRA_OECMAKE:append:class-target = "\ @@ -89,6 +101,8 @@ EXTRA_OECMAKE:append:class-target = "\ -DLLVM_HOST_TRIPLE=${TARGET_SYS} \ -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ + -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ + -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ " EXTRA_OECMAKE:append:class-nativesdk = "\ @@ -96,6 +110,8 @@ EXTRA_OECMAKE:append:class-nativesdk = "\ -DLLVM_HOST_TRIPLE=${SDK_SYS} \ -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ + -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ + -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ " # patch out build host paths for reproducibility @@ -124,11 +140,26 @@ do_install() { # Remove opt-viewer: https://llvm.org/docs/Remarks.html rm -rf ${D}${datadir}/opt-viewer - rmdir ${D}${datadir} + rmdir ${D}${datadir} || true # reproducibility sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake fi + + # Remove clang bits from target packages, we are not providing it for the system + if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} && + [ "${CLASSOVERRIDE}" != "class-native" ] ; then + rm -f ${D}${bindir}/clang* + rm -fr ${D}${libdir}/clang + rm -fr ${D}${datadir}/clang + + rm -f ${D}${bindir}/scan* + rm -fr ${D}${libdir}/libscanbuild + rm -fr ${D}${datadir}/scan-build + rm -fr ${D}${datadir}/scan-view + + rm -fr ${D}${libdir}/libear + fi } do_install:append:class-native() { @@ -145,9 +176,11 @@ llvm_sysroot_preprocess() { ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} } -PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto" +PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc" +PROVIDES = "libclc" RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" +RPROVIDES:${PN}-clc += "libclc" FILES:${PN}-bugpointpasses = "\ ${libdir}/BugpointPasses.so \ @@ -180,6 +213,8 @@ FILES:${PN}-staticdev += "\ ${libdir}/*.a \ " +FILES:${PN}-clc += "${datadir}/clc" + INSANE_SKIP:${PN}-libllvm += "dev-so" BBCLASSEXTEND = "native nativesdk" From patchwork Thu Mar 27 12:36:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60087 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 1B82FC3600B for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.web10.48941.1743079040115451455 for ; Thu, 27 Mar 2025 05:37:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=Pjk+jaJi; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jFCv010898 for ; Thu, 27 Mar 2025 12:37:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=fxx1fa5HZBr rEZSe2K5qu3SgXGL/0e99fwkiFL3qFrc=; b=Pjk+jaJiJfXxc/yo/nQuvHuQ6or xqGeQmjxqs72zclsOSXrl11YspYOZZLKyWL68/0sVbw/DMmTBkFu/lbhFZXpkTS6 /TiOHdu+SPm2XNHkbJ+7zQbemWyK2shC7Oxv22tJHQ3oX7BN3bctx6AyqHxF9N40 WVSIsNPfTA6QAQFnzgC/Fc8AGYI5NowJMFECHD1Y+VyVvsa1oKw/IwC41XA3dVW3 Kf0Iq2ZuagsS7Wq+esHL3Yw+U34OBjv0YD74JxdFHhKK7F7UN0PA54xNNqjO3HzC WNgZmLO3lPI/KULag3usveDg7PhylUj+nMrF/55mCHnNssj3QGbZm2lkchg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45n0kqh4g0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:19 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7c5ac559cbaso160486585a.1 for ; Thu, 27 Mar 2025 05:37:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079037; x=1743683837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fxx1fa5HZBrrEZSe2K5qu3SgXGL/0e99fwkiFL3qFrc=; b=ELRi0MwE+6XWvu45vQ5JviHCLxgP6QH46pdtTAeEgNZ45JaCUP9DaqssCymY3JUjyd D3dUvmAGE6n1cBpbZnO4aC3xkjxlib37ZTgcN8g59Z1qACUc/niqRiJ23pWtL68+/HA8 SbnCbIMw9vyIPKjYWtVN2+zJnzWZ1y1xQaE1Xz/g4b2MZFGF3tnW+LSaGoyeunk6y9yz NOboyzG7Ln1z5tk2LfJot9e96k++orHiFK2+2TCVBCryslBReGgVktLGFherjvMNyPB1 +Jmqrxh0gpef2wr5evWFxsU/16zgLSxab0orbYPMJ8i/E1f66PKD3XPSFNLwxyt0LN1l iCuw== X-Gm-Message-State: AOJu0YxT5+2i3yEzMWobzrTfcsdDXFkJJCjH6o6c9Qw+BdzXc5BzBNnN nZ2BDuFr3fjfiOyhwaaXuEzyC/E8Ajsa7aDuBK4eC2J30I1WzX7wwXpFkgEjx6fb4e4GSrn8qlG RAwRgPPRJpoujVuWGYXmzwqKM1vWWMf3m4VOTdL7wy5ic++9Ffw5mUTnUPZ6IHEoxwfK0RCubD1 rNSgh/MKThFZE= X-Gm-Gg: ASbGncsF2kzh0ipC3g/LnD/LHtkhLJwaY3j7kWJaLQmnsON/KNyxDbuz/M3Lryis9SY JeGX+PHyuhcNbuKhY9iW0d6I/v4Wb3J+WOHkRlshWpUzBGu44tyK+OE9s9ocVUJ525kFfELTf7o ooX6LYflXwBMrKsYNbAvIs9CvQlZA+DaA/MMTGgHD19kTF3P8fYxBUaMZKd+vvDOocXOq0GVoYC lpQ8kVutDqdL4ypNI/fxPyoyrsrfevx80yDB8yP4Xv0n8mMHKwEjY1PAguyr+cq/3mrL/2CF4DK FiMLsMaOdwRVVIzoNXlLRknkr9wDycaA3LnTgIioOEVn8fKkPY2SFAEX1FihZENroflT+ZMdkoU b2GDZLM83LXZf6hspesmlpCv0+4z+ X-Received: by 2002:a05:620a:29c9:b0:7c5:5f38:ba4b with SMTP id af79cd13be357-7c5ed9da8bcmr500669085a.10.1743079037162; Thu, 27 Mar 2025 05:37:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEskDuXwLx8xL/ko91Sz2vfvzQzPko6KqtXJAa1GkQYeWn1lg7fEUpkcv2IdBI/yi4dIVsylQ== X-Received: by 2002:a05:620a:29c9:b0:7c5:5f38:ba4b with SMTP id af79cd13be357-7c5ed9da8bcmr500664585a.10.1743079036611; Thu, 27 Mar 2025 05:37:16 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:15 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 4/8] llvm: import YOCTO_ALTERNATE_LIBDIR patch from meta-clang Date: Thu, 27 Mar 2025 14:36:57 +0200 Message-Id: <20250327123701.3906604-5-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: jhLv9aKulIpACg5BKUf08_Pb7tmWH7eT X-Authority-Analysis: v=2.4 cv=FrcF/3rq c=1 sm=1 tr=0 ts=67e5467f cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=Vs1iUdzkB0EA:10 a=EUspDBNiAAAA:8 a=IvTj1HvjAAAA:8 a=pGLkceISAAAA:8 a=mnq_9Jzftx32lQRVvlkA:9 a=NFOGd7dJGGMPyQGDc5-O:22 a=kmyLcwvAnC_t3PsnBtKb:22 X-Proofpoint-GUID: jhLv9aKulIpACg5BKUf08_Pb7tmWH7eT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxlogscore=999 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 impostorscore=0 mlxscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213744 Cross-building of mesa requires us to be able to provide target-specific value for --libdir. Update the cross-environment llvm-config patch from meta-clang in order to allow overriding the --libdir output. Signed-off-by: Dmitry Baryshkov --- ...-llvm-allow-env-override-of-exe-path.patch | 41 +++++++++++++++++-- meta/recipes-devtools/llvm/llvm/llvm-config | 7 ++++ 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch index 29266013ecb1..e598a9e5d49b 100644 --- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch +++ b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch @@ -8,16 +8,18 @@ return the libraries, include directories, etc. from inside the sysroot rather than from the native sysroot. Thus provide an env override for calling llvm-config from a target sysroot. +Add YOCTO_ALTERNATE_LIBDIR and YOCTO_ALTERNATE_EXE_PATH env variables + Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Martin Kelly Signed-off-by: Khem Raj --- - llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++ - 1 file changed, 7 insertions(+) + llvm/tools/llvm-config/llvm-config.cpp | 25 +++++++++++++++++++------ + 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp -index d5b76b1bb..6c28c34bc 100644 +index d5b76b1bb6c1..a739f0d8dbea 100644 --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -246,6 +246,13 @@ Typical components:\n\ @@ -34,3 +36,36 @@ index d5b76b1bb..6c28c34bc 100644 // This just needs to be some symbol in the binary; C++ doesn't // allow taking the address of ::main however. void *P = (void *)(intptr_t)GetExecutablePath; +@@ -325,7 +332,7 @@ int main(int argc, char **argv) { + // Compute various directory locations based on the derived location + // information. + std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir, +- ActiveCMakeDir; ++ ActiveCMakeDir, BaseLibDir; + std::string ActiveIncludeOption; + if (IsInDevelopmentTree) { + ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include"; +@@ -366,12 +373,18 @@ int main(int argc, char **argv) { + sys::fs::make_absolute(ActivePrefix, Path); + ActiveBinDir = std::string(Path); + } +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; +- { +- SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); +- sys::fs::make_absolute(ActivePrefix, Path); +- ActiveCMakeDir = std::string(Path); ++ // Hack for Yocto: we need to override the lib path when we are using ++ // llvm-config from within a target sysroot since LLVM_LIBDIR_SUFFIX ++ // maybe different for host llvm vs target e.g. ppc64 Libdir=lib64 but ++ // x86_64 Libdir = lib ++ const char *YoctoLibDir = std::getenv("YOCTO_ALTERNATE_LIBDIR"); ++ if (YoctoLibDir != nullptr) { ++ BaseLibDir = std::string(YoctoLibDir); ++ } else { ++ BaseLibDir = std::string("/lib") + LLVM_LIBDIR_SUFFIX; + } ++ ActiveLibDir = ActivePrefix + BaseLibDir; ++ ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; + ActiveIncludeOption = "-I" + ActiveIncludeDir; + } + diff --git a/meta/recipes-devtools/llvm/llvm/llvm-config b/meta/recipes-devtools/llvm/llvm/llvm-config index 5e4ded2da5bc..d9d994a2032f 100644 --- a/meta/recipes-devtools/llvm/llvm/llvm-config +++ b/meta/recipes-devtools/llvm/llvm/llvm-config @@ -9,6 +9,13 @@ # Provide ours from the environment instead. NEXT_LLVM_CONFIG="$(which -a llvm-config | sed -n 2p)" +SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" +export YOCTO_ALTERNATE_EXE_PATH="${YOCTO_ALTERNATE_EXE_PATH:="$(readlink -f "$SCRIPT_DIR/../llvm-config")"}" +if [ -n "$( echo $base_libdir | sed -n '/lib64/p')" ]; then + export YOCTO_ALTERNATE_LIBDIR="${YOCTO_ALTERNATE_LIBDIR:="/lib64"}" +else + export YOCTO_ALTERNATE_LIBDIR="${YOCTO_ALTERNATE_LIBDIR:="/lib"}" +fi if [[ $# == 0 ]]; then exec "$NEXT_LLVM_CONFIG" fi From patchwork Thu Mar 27 12:36:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60088 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 2BA8DC36011 for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.web10.48942.1743079043570422028 for ; Thu, 27 Mar 2025 05:37:23 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=k/WLHn6J; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jF4P010192 for ; Thu, 27 Mar 2025 12:37:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=2L1YqyzMcWE FSrFFjAKwckg73pcKfdXuizGOneATh9w=; b=k/WLHn6Jov8nNc187dXVMhnirdP 5lBa9KdjA7zq2npZqcfBCzzOVO3WlT2Rr+lZfoKJEeclZGCLyJ3pCxY1ugsexDxY ihHPkkJ8X3xupjQXJHB7MzXhrqp2S30b7M+/EOzLq/K8eFkv/BTZA/+063sJXkKW Uix28BSDNCyE8H/E2EW8ANoonZZBLeyxRDK7A3KweMjmjiAk6M2f1yU8GlLVkXND AaQ4cDJdWth0A3HiDwituh/rVsD8ib0FDcARTLkcfSz9CXo5FaQOQnOxlgtQEqwI QJAua+2gb3IrUJDbwqEgVZDyYFaDw4KzK/z20vcHxZfyypK+lfgeMMFZIhw== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45kmcygkfx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:23 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7c5f3b8b1a1so48894385a.3 for ; Thu, 27 Mar 2025 05:37:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079041; x=1743683841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2L1YqyzMcWEFSrFFjAKwckg73pcKfdXuizGOneATh9w=; b=i6WMIzgX0+qHKFSKlsXjT9OHNJ1EQu/dpI1BSWrDWP7igdwLP6zz9OfwmKSJVjTYfR SNoUFmsyEXfgHOHqp3+3iVNwAqWyzJrY3Hbqq1uFGpdIUvpmuWO5HX+VbHx90q407xV8 LOsHsx8RO1vNsARTS6HnSlOMPRxW4k6U4L5kUiXvWZ/TIECpijOFrGjwm9I+J6/zzHJ6 +94FrBPAvf2mfYbjOAd16qq4nYO1ANECkkSiadEDT8wizNTeA7jNtunsEHn5Qp+Ppyor OCpi9QScX/Dp31Jzw8lrZDFLGPkJojkGmUEMyPSJ1kxtq2TJugvE39xXbmEAa1aMtADG D1sQ== X-Gm-Message-State: AOJu0YyGPv8Q0Z1d8QEHsCPECFJEpfT6Df0ZvFvMabYt5SNLboQM8V+O kVBZv7fPeXh9Fu8DGED/wpvvSS1QPd4mZjOqLWvLuFqMY7meqgZID0AdSIrTwE9Ji6e4PXRFULk fzTLrRJ2ctWVPcvskCjUX/5RLttnFGeBLU6rbvHxAkale8BIb4uYR82PC8Bi9hSjjZZdQlHJNW4 eiIK3ae9NInDg= X-Gm-Gg: ASbGncsrdtuksDvJf5bqJKhuYOLUGx7wel2yR1HXRY6k/enGwo6RloWCnT3djpq7Nqh zdqvYxI3tnt3I0iBjkAsdlVzq9JzoL9eRodJHiYWOBgCrRNeHsYZd5zLwiY1I87Co1cET7bT5fG CJO4mWSKvbRAFp41VK40aPuNL2mljr+iMIZ15V9mi2Ko0m6AFgogSSU60xWFrR9QiVzFX2uevxB xZ90rZZBiZ6rBtw1A6sh5wF9lrbUHaflyQGu1XibXdHkZCq52X2MTnnPhkP1XhPHsEcF+SiI9qA fOXQXARBJV6XCAXzd2sFUvkvTu0jporSNB8jmoC8j/QfnM7c/w3/yKeju6n5kbIYIPKvWLzrwMU 8mLZZobyKcbq6zRedxR13HKvdfOTO X-Received: by 2002:a05:620a:2492:b0:7c5:ad3c:8478 with SMTP id af79cd13be357-7c5ed9f4f9cmr446326085a.16.1743079041015; Thu, 27 Mar 2025 05:37:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGqP1InmEz0+L4+Xs620KCQ1kDBbRciPknm16DYkl0bZTuqWHmI9jE5uAq3KwAUxk0fHhr9dg== X-Received: by 2002:a05:620a:2492:b0:7c5:ad3c:8478 with SMTP id af79cd13be357-7c5ed9f4f9cmr446321785a.16.1743079040446; Thu, 27 Mar 2025 05:37:20 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:18 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 5/8] llvm: add SPIRV-LLVM-Translator support Date: Thu, 27 Mar 2025 14:36:58 +0200 Message-Id: <20250327123701.3906604-6-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=EZ3IQOmC c=1 sm=1 tr=0 ts=67e54683 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=Vs1iUdzkB0EA:10 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8 a=NxEeosk9xJlwc9cSGm8A:9 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-ORIG-GUID: nxlkp8VeSL30fbHcmit9OMkIEtY5nt0q X-Proofpoint-GUID: nxlkp8VeSL30fbHcmit9OMkIEtY5nt0q X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 mlxlogscore=999 spamscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213745 Mesa builds require SPIRV-LLVM-Translator in order to build CLC support. While it is possible to build it separately (like meta-clang does), it also requires a separate clang compiler (which OE-Core doesn't provide). Use an alternative path and build SPIRV-LLVM-Translator as a part of the LLVM build process, lifting the requirement for the separate clang. Once clang is properly integrated into the OE-Core layer, this can be split to a separate package and dropped. Signed-off-by: Dmitry Baryshkov --- ...ossCompile-pass-SPIR-V-headers-path-.patch | 40 +++++++++++++++++++ .../llvm/llvm/spirv-internal-build.patch | 27 +++++++++++++ meta/recipes-devtools/llvm/llvm_20.1.0.bb | 32 ++++++++++++--- 3 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch create mode 100644 meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch diff --git a/meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch b/meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch new file mode 100644 index 000000000000..316a6bdbf2b1 --- /dev/null +++ b/meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch @@ -0,0 +1,40 @@ +From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Fri, 21 Mar 2025 17:17:52 +0200 +Subject: [PATCH] cmake/modules/CrossCompile: pass SPIR-V headers path to + native build + +In case LLVM is being built together with SPIRV-LLVM-Translator, it +might be required to pass LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR define +to the native build too. Extend native build setup to pass that variable +to the called cmake too. + +Upstream-Status: Inappropriate [OE-Specific build-system fix] +Signed-off-by: Dmitry Baryshkov +--- + llvm/cmake/modules/CrossCompile.cmake | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/llvm/cmake/modules/CrossCompile.cmake b/llvm/cmake/modules/CrossCompile.cmake +index 3b31d3e218a3..24b62f4ff8af 100644 +--- a/llvm/cmake/modules/CrossCompile.cmake ++++ b/llvm/cmake/modules/CrossCompile.cmake +@@ -81,6 +81,10 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype) + set(libc_flags -DLLVM_LIBC_GPU_BUILD=ON) + endif() + ++ if (LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR) ++ set(spirv_headers "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR}") ++ endif() ++ + add_custom_command(OUTPUT ${${project_name}_${target_name}_BUILD}/CMakeCache.txt + COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" + -DCMAKE_MAKE_PROGRAM="${CMAKE_MAKE_PROGRAM}" +@@ -101,6 +105,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype) + -DLLVM_INCLUDE_BENCHMARKS=OFF + -DLLVM_INCLUDE_TESTS=OFF + ${build_type_flags} ${linker_flag} ${external_clang_dir} ${libc_flags} ++ ${spirv_headers} + ${ARGN} + WORKING_DIRECTORY ${${project_name}_${target_name}_BUILD} + DEPENDS CREATE_${project_name}_${target_name} diff --git a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch new file mode 100644 index 000000000000..14233d312870 --- /dev/null +++ b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch @@ -0,0 +1,27 @@ +From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Fri, 21 Mar 2025 17:17:52 +0200 +Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer + +Upstream-Status: Pending +Signed-off-by: Dmitry Baryshkov + +Index: llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt +=================================================================== +--- llvm-project-20.1.0.src.orig/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt ++++ llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt +@@ -116,6 +116,14 @@ if(LLVM_SPIRV_BUILD_EXTERNAL) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) + endif() ++else() ++ message(STATUS "Internal LLVM library") ++ is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS) ++ if(spirv_present_result) ++ message(STATUS "Found SPIR-V Backend") ++ set(SPIRV_BACKEND_FOUND TRUE) ++ add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT) ++ endif() + endif() + + set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb index 0fb336ee7747..df2c497c14cc 100644 --- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb +++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb @@ -23,10 +23,20 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}" LLVM_RELEASE = "${PV}" +SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715" +SPIRV_BRANCH = "llvm_release_200" + +SRC_URI_SPIRV = " \ + git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \ + file://0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch \ + file://spirv-internal-build.patch \ +" + SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \ file://0007-llvm-allow-env-override-of-exe-path.patch \ file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \ file://fix-native-compilation.patch \ + ${@bb.utils.contains('PACKAGECONFIG', 'spirv', '${SRC_URI_SPIRV}', '', d)} \ file://llvm-config \ " @@ -58,11 +68,12 @@ def get_llvm_arch(bb, d, arch_var): def get_llvm_host_arch(bb, d): return get_llvm_arch(bb, d, 'HOST_ARCH') -PACKAGECONFIG ??= "libllvm libclc" +PACKAGECONFIG ??= "libllvm libclc spirv" # if optviewer OFF, force the modules to be not found or the ones on the host would be found PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml" PACKAGECONFIG[libllvm] = "" PACKAGECONFIG[libclc] = "" +PACKAGECONFIG[spirv] = "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. ,,spirv-tools-native spirv-headers" # # Default to build all OE-Core supported target arches (user overridable). @@ -72,7 +83,9 @@ LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}" ARM_INSTRUCTION_SET:armv5 = "arm" ARM_INSTRUCTION_SET:armv4t = "arm" -LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}" +LLVM_PROJECTS_CLANG = "${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv', 'clang', '', d)}" +LLVM_PROJECTS_CLC = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ';libclc', '', d)}" +LLVM_PROJECTS = "${LLVM_PROJECTS_CLANG}${LLVM_PROJECTS_CLC}" EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ @@ -147,7 +160,7 @@ do_install() { fi # Remove clang bits from target packages, we are not providing it for the system - if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} && + if ${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv', 'true', 'false', d)} && [ "${CLASSOVERRIDE}" != "class-native" ] ; then rm -f ${D}${bindir}/clang* rm -fr ${D}${libdir}/clang @@ -176,11 +189,12 @@ llvm_sysroot_preprocess() { ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} } -PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc" -PROVIDES = "libclc" +PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc ${PN}-spirv" +PROVIDES = "libclc spirv-llvm-translator" RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" RPROVIDES:${PN}-clc += "libclc" +RPROVIDES:${PN}-spirv += "spirv-llvm-translator" FILES:${PN}-bugpointpasses = "\ ${libdir}/BugpointPasses.so \ @@ -215,6 +229,14 @@ FILES:${PN}-staticdev += "\ FILES:${PN}-clc += "${datadir}/clc" +FILES:${PN}-spirv = " \ + ${bindir}/llvm-spirv \ + ${includedir}/LLVMSPIRVLib \ + ${libdir}/pkgconfig/LLVMSPIRVLib.pc \ + ${libdir}/libLLVMSPIRV* \ +" + INSANE_SKIP:${PN}-libllvm += "dev-so" +INSANE_SKIP:${PN}-spirv += "staticdev" BBCLASSEXTEND = "native nativesdk" From patchwork Thu Mar 27 12:36:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60092 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 2BB98C36014 for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by mx.groups.io with SMTP id smtpd.web11.48794.1743079047263111402 for ; Thu, 27 Mar 2025 05:37:27 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@qualcomm.com header.s=qcppdkim1 header.b=Z/rE5GfB; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.168.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jEeT005949 for ; Thu, 27 Mar 2025 12:37:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= bmEZ/uTy7TumYc3NPc13anNtuTSTFev2i/Ozww53toY=; b=Z/rE5GfBksCQrRO0 vBfyky69JkVLnd5AR6HnraOPOEjIbU/7mz/51WUsH+vWtVv22Ipc7eKIoR84vOzM NmJO6aJUgap3OojL5+c42NPP/vkimCtxQUqf/Jp/69z+gJnrSevPYTli99fghXnI MQHZkfSKf9CjOGRAq7c9XkWrqQnAQ4SqHvLhxZDN1qgggJG8dG7DsrX36s7P+V4w GFq5yYTvXPBQ6VHeWL9VFhXJ4XcGTDcYAQcIMayRw4JwoLTpw0HGD1KOHOKgxMpU JVxki6zhemOJOuHuqIKzB3CglvEH2AEKmtfV0zo16EB8/mgY9qO+pTP2+65MIYk9 +JlaBg== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45m7nf59cf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:26 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7c5ba3b91b1so181094485a.0 for ; Thu, 27 Mar 2025 05:37:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079044; x=1743683844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bmEZ/uTy7TumYc3NPc13anNtuTSTFev2i/Ozww53toY=; b=WiX9rbJ1jP7pHAf/uzklHKQxGbrXzhAwXZOxk+725yofc3FuXPaesiHVIgGhKfGyki 0o04UHglQsIjO+fctA+MDrrtjdmAzf3quOLDc4Ly5NhT8ZQ7afTYabomFowZ0XLhwde6 V2b9SoKjtN11jc/MwyrgjZS/4NNeNOjsHZ4gaUzIOl9gTxoM9LbOGTbtJ//OOIXfDVGW VHBZOwFRT7OH9nxmgstrdbn58m6FgL+H1Zzl1Vx4QkUEPyWln6+eT2CIu7rGb2753toy 5YGGRpE4nEsjY2iKjIP4Yklk5cKryg3dt5sB32MpCcijtBjDnJh70iU+g+JoA3iqUDDR UqmQ== X-Gm-Message-State: AOJu0Yy7yYK87KiLxANhlxhEo5Nbl+V06PY384dsKRH2RLVq12Qayz/4 HGv/q2l8bKIeYf4t22DjYSMXfJ1wynWdnyZD0O26UONkowEp59SNnjr1taUmju5pXxrnAsaAGOv 8rjymO/kNH2t4Or7PDDAVTf0TlutOTZBia5OcGRwX68jWoF8KIm/RmvPKJ5cXUAjZp1LVUey2Ms iV5HUmamfkQCU= X-Gm-Gg: ASbGnctaA5o+IvlBajRIYZtWD1khJX53WEsWSXP8os4071G+qcu+Krsuy4x0RpCEoJM GAwgifZ9IzL+MZIyd6mRdqITk0f9Xx+mZoCTsbCUChkOo2lQHo9kmUpuD16zNSVPlSrZT6S+B8m PPkkNR9l+WkvgSDiN36TDo8RBxDSI4eVZQaqd4pxDe8FMk9mU8TiyC7m8qarB1PptMHhLK147fT yPrzlYJ3sRBzsEZgpBdYCGXuNhqhh5lx3BX0Ww44e57E3TVSRuUrk+++pKoqJYmW2ylkMw3aJ9a INkUzO0ZxS5NPHsj00BwSCtbGys3zKq7tU+CifCUewPCaxlsgOOXOFBwOXzwNfchSHkopYov2gH nC/EG52RAG8KodjeXkQNrxUJlkbcy X-Received: by 2002:a05:620a:28ca:b0:7c5:3b8d:9f2f with SMTP id af79cd13be357-7c5e48f4a04mr1105251785a.17.1743079043916; Thu, 27 Mar 2025 05:37:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEsp7qkswEgtQl23aubKsaZ8gKqeLw9ez0gfGpGdseFN31OEaMV43DtvC3wvFSEwY7q/xlk6w== X-Received: by 2002:a05:620a:28ca:b0:7c5:3b8d:9f2f with SMTP id af79cd13be357-7c5e48f4a04mr1105244385a.17.1743079043071; Thu, 27 Mar 2025 05:37:23 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:22 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 6/8] mesa: upgrade 24.0.7 -> 25.0.2 Date: Thu, 27 Mar 2025 14:36:59 +0200 Message-Id: <20250327123701.3906604-7-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: xv9-oRyrA8fK3lO8GbiyBphomMYyuhWK X-Proofpoint-GUID: xv9-oRyrA8fK3lO8GbiyBphomMYyuhWK X-Authority-Analysis: v=2.4 cv=IMMCChvG c=1 sm=1 tr=0 ts=67e54686 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Vs1iUdzkB0EA:10 a=ZpVaWaFtAAAA:8 a=e5mUnYsNAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=kiadaU6TOzT6zAdNjyoA:9 a=XZ9zjgA0ByK4FuMM:21 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=geQEn1fu34MA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 a=5tn4MO8azEBWFjlAA-rn:22 a=Vxmtnl_E_bksehYqCbjh:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 mlxscore=0 clxscore=1015 phishscore=0 priorityscore=1501 mlxlogscore=999 adultscore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0a-0031df01.pphosted.com id 52R5jEeT005949 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213746 Upgrade the Mesa package, dropping applied and refreshing outstanding patches. The dri3 config option is now gone, dependencies are merged into X11 deps. The swrast gallium driver has been split into softpipe and llvmpipe drivers. Reworked OpenCL support to use mesa_clc compiler. Changelog: https://docs.mesa3d.org/relnotes/25.0.2.html License-Update: license text cleared and clarified. Signed-off-by: Dmitry Baryshkov --- ...-meson-do-not-pull-in-clc-for-clover.patch | 53 ------------ ...lude-missing-llvm-IR-header-Module.h.patch | 41 --------- .../0001-drisw-fix-build-without-dri3.patch | 58 ------------- ...on-t-encode-build-path-into-binaries.patch | 46 ++++++++-- ...son-use-target-path-for-Clang-libdir.patch | 28 +++++++ ...on-t-try-zink-if-not-enabled-in-mesa.patch | 42 ---------- meta/recipes-graphics/mesa/mesa.inc | 84 ++++++++++--------- 7 files changed, 110 insertions(+), 242 deletions(-) delete mode 100644 meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch delete mode 100644 meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch delete mode 100644 meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch delete mode 100644 meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch diff --git a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch b/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch deleted file mode 100644 index 1711e22585a7..000000000000 --- a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 051f41beda540f0ae77b341db01a6de83c9e938a Mon Sep 17 00:00:00 2001 -From: Markus Volk -Date: Fri, 8 Mar 2024 15:53:11 +0100 -Subject: [PATCH] Revert "meson: do not pull in clc for clover" - -This reverts commit 815a6647eb1383e9dc704ffcc266d85f3b13338a. -Upstream-Status: Inappropriate [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27783/diffs?commit_id=a976f2c9f0c07f9e06cc9affd9124b45bc60c2bd] - -Once the merge request above was added, it will only be possible to provide opencl spir-v with gallium-rusticl=true. This is not yet supported in the mesa recipe. -For now reverting this commit allows to still use clover with opencl-spirv, which would otherwise be broken starting from mesa 24.0.2. - -After it was merged, this patch needs to be removed and rusticl support will be required - -Signed-off-by: Markus Volk ---- - meson.build | 3 ++- - src/compiler/meson.build | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index 2db6185..741b5d1 100644 ---- a/meson.build -+++ b/meson.build -@@ -813,6 +813,7 @@ if _opencl != 'disabled' - error('The Clover OpenCL state tracker requires rtti') - endif - -+ with_clc = true - with_gallium_opencl = true - with_opencl_icd = _opencl == 'icd' - else -@@ -837,7 +838,7 @@ if with_gallium_rusticl - endif - - dep_clc = null_dep --if with_gallium_opencl or with_clc -+if with_clc - dep_clc = dependency('libclc') - endif - -diff --git a/src/compiler/meson.build b/src/compiler/meson.build -index 8d73544..1dae56d 100644 ---- a/src/compiler/meson.build -+++ b/src/compiler/meson.build -@@ -79,7 +79,7 @@ subdir('nir') - - subdir('spirv') - --if with_clc -+if with_opencl_spirv - subdir('clc') - endif - if with_gallium diff --git a/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch b/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch deleted file mode 100644 index 82ad88a079c1..000000000000 --- a/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 777d69cf15b80ab1f109a4936d6e4801c4b0e0f3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 1 Jul 2024 23:09:29 -0700 -Subject: [PATCH] amd: Include missing llvm IR header Module.h -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -With LLVM-19, Module.h header is not being pulled, which results in -compile errors e.g. - -src/amd/llvm/ac_llvm_helper.cpp:102:10: error: no matching function for call to ‘unwrap(LLVMOpaqueModule*&)’ - 102 | unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple()); - | ~~~~~~^~~~~~~~ -In file included from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/Type.h:18, - from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/DerivedTypes.h:23, - from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/InstrTypes.h:26, - from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/Analysis/TargetLibraryInfo.h:14, - from ../mesa-24.0.7/src/amd/llvm/ac_llvm_helper.cpp:8: - -Its getting the definition from llvm/IR/Type.h instead of Module.h and caused -confusion to compiler - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29993] -Signed-off-by: Khem Raj ---- - src/amd/llvm/ac_llvm_helper.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp -index 5d065279ad1..af4a50f8409 100644 ---- a/src/amd/llvm/ac_llvm_helper.cpp -+++ b/src/amd/llvm/ac_llvm_helper.cpp -@@ -8,6 +8,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch b/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch deleted file mode 100644 index ab1615209063..000000000000 --- a/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Tue, 6 Feb 2024 09:47:09 +0100 -Subject: [PATCH 1/2] drisw: fix build without dri3 - -commit 1887368df41 ("glx/sw: check for modifier support in the kopper path") -added dri3_priv.h header and dri3_check_multibuffer() function in drisw that -can be build without dri3. - - i686-buildroot-linux-gnu/bin/ld: src/glx/libglx.a.p/drisw_glx.c.o: in function `driswCreateScreenDriver': - drisw_glx.c:(.text.driswCreateScreenDriver+0x3a0): undefined reference to `dri3_check_multibuffer' - collect2: error: ld returned 1 exit status - -Add HAVE_DRI3 guard around dri3_priv.h header and the zink code using -dri3_check_multibuffer(). - -Fixes: 1887368df41 ("glx/sw: check for modifier support in the kopper path") - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478] -Signed-off-by: Romain Naour -Signed-off-by: Khem Raj ---- - src/glx/drisw_glx.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c -index 3d3f752..4b19e2d 100644 ---- a/src/glx/drisw_glx.c -+++ b/src/glx/drisw_glx.c -@@ -32,7 +32,9 @@ - #include - #include "dri_common.h" - #include "drisw_priv.h" -+#ifdef HAVE_DRI3 - #include "dri3_priv.h" -+#endif - #include - #include - #include -@@ -995,6 +997,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, - goto handle_error; - } - -+#ifdef HAVE_DRI3 - if (pdpyp->zink) { - bool err; - psc->has_multibuffer = dri3_check_multibuffer(priv->dpy, &err); -@@ -1005,6 +1008,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, - goto handle_error; - } - } -+#endif - - glx_config_destroy_list(psc->base.configs); - psc->base.configs = configs; --- -2.44.0 - diff --git a/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch index 5975ab4472ec..953a724dc092 100644 --- a/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch +++ b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch @@ -22,18 +22,29 @@ diff --git a/src/freedreno/afuc/meson.build b/src/freedreno/afuc/meson.build index bb7cebf5a748..351cc31ef2de 100644 --- a/src/freedreno/afuc/meson.build +++ b/src/freedreno/afuc/meson.build -@@ -56,6 +56,7 @@ if with_tests +@@ -56,10 +56,12 @@ if with_tests asm_fw = custom_target('afuc_test.fw', output: 'afuc_test.fw', - command: [asm, '-g', '6', files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'], + command: [asm, files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'], ++ env: {'RNN_PATH': rnn_src_path}, + ) + asm_fw_a7xx = custom_target('afuc_test_a7xx.fw', + output: 'afuc_test_a7xx.fw', + command: [asm, files('../.gitlab-ci/traces/afuc_test_a7xx.asm'), '@OUTPUT@'], + env: {'RNN_PATH': rnn_src_path}, ) test('afuc-asm', diff, -@@ -120,6 +122,7 @@ if cc.sizeof('size_t') > 4 +@@ -120,11 +122,13 @@ if cc.sizeof('size_t') > 4 disasm_fw = custom_target('afuc_test.asm', output: 'afuc_test.asm', - command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw'), '-g', '630'], + command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw')], ++ env: {'RNN_PATH': rnn_src_path}, + capture: true + ) + disasm_fw_a7xx = custom_target('afuc_test_a7xx.asm', + output: 'afuc_test_a7xx.asm', + command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw')], + env: {'RNN_PATH': rnn_src_path}, capture: true ) @@ -71,8 +82,29 @@ index 98e49b8fcf0e..145e72597eb9 100644 -rnn_path = rnn_src_path + ':' + get_option('prefix') + '/' + rnn_install_path +rnn_path = get_option('prefix') + '/' + rnn_install_path - dep_lua = dependency('lua54', 'lua53', 'lua52', 'lua', required: false, - allow_fallback: true, version: '>=5.2') --- + dep_libarchive = dependency('libarchive', allow_fallback: true, required: false) + dep_libxml2 = dependency('libxml-2.0', allow_fallback: true, required: false) +diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py +--- a/src/freedreno/registers/gen_header.py ++++ b/src/freedreno/registers/gen_header.py +@@ -885,13 +885,14 @@ The rules-ng-ng source files this header + """) + maxlen = 0 + for filepath in p.xml_files: +- maxlen = max(maxlen, len(filepath)) ++ maxlen = max(maxlen, len(os.path.basename(filepath))) + for filepath in p.xml_files: +- pad = " " * (maxlen - len(filepath)) ++ filename = os.path.basename(filepath) ++ pad = " " * (maxlen - len(filename)) + filesize = str(os.path.getsize(filepath)) + filesize = " " * (7 - len(filesize)) + filesize + filetime = time.ctime(os.path.getmtime(filepath)) +- print("- " + filepath + pad + " (" + filesize + " bytes, from " + filetime + ")") ++ print("- " + filename + pad + " (" + filesize + " bytes, from " + filetime + ")") + if p.copyright_year: + current_year = str(datetime.date.today().year) + print() +--- 2.39.2 diff --git a/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch b/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch new file mode 100644 index 000000000000..ef7ae8942e33 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch @@ -0,0 +1,28 @@ +From ecea6fe0d250c3026c22a60ac5420528cc3632d8 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Wed, 26 Mar 2025 12:19:10 +0200 +Subject: [PATCH] meson: use target path for Clang libdir + +Instead of trying to detect the target libdir through llvm-config tool +(and ending up with the sysroot path), get libdir from the build +options. Clang is known to use the same libdir in OE build environment. + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Dmitry Baryshkov +--- + src/gallium/frontends/clover/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/frontends/clover/meson.build b/src/gallium/frontends/clover/meson.build +index e569b86a1bea..2fc30ffe1ac2 100644 +--- a/src/gallium/frontends/clover/meson.build ++++ b/src/gallium/frontends/clover/meson.build +@@ -44,7 +44,7 @@ libclllvm = static_library( + clover_cpp_args, + clover_opencl_cpp_args, + '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths( +- dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir'), 'clang', ++ get_option('libdir'), 'clang', + dep_llvm.version(), 'include', + )), + ], diff --git a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch deleted file mode 100644 index 036a0b494539..000000000000 --- a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Tue, 6 Feb 2024 09:47:10 +0100 -Subject: [PATCH 2/2] glxext: don't try zink if not enabled in mesa - -Commit 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers") -added an automatic zink fallback even when the zink gallium is not -enabled at build time. - -It leads to unexpected error log while loading drisw driver and -zink is not installed on the rootfs: - - MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so - -Fixes: 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers") - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478] -Signed-off-by: Romain Naour -Signed-off-by: Khem Raj ---- - src/glx/glxext.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/glx/glxext.c b/src/glx/glxext.c -index 05c825a..7a06aa9 100644 ---- a/src/glx/glxext.c -+++ b/src/glx/glxext.c -@@ -908,9 +908,11 @@ __glXInitialize(Display * dpy) - #endif /* HAVE_DRI3 */ - if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false)) - dpyPriv->dri2Display = dri2CreateDisplay(dpy); -+#if defined(HAVE_ZINK) - if (!dpyPriv->dri3Display && !dpyPriv->dri2Display) - try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) && - !getenv("GALLIUM_DRIVER"); -+#endif /* HAVE_ZINK */ - } - #endif /* GLX_USE_DRM */ - if (glx_direct) --- -2.44.0 - diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index f6a91a7002f8..9d71cd7917e2 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -10,21 +10,18 @@ HOMEPAGE = "http://mesa3d.org" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11" PE = "2" SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ - file://0001-drisw-fix-build-without-dri3.patch \ - file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \ - file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \ - file://0001-amd-Include-missing-llvm-IR-header-Module.h.patch \ file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\ + file://0001-meson-use-target-path-for-Clang-libdir.patch \ " -SRC_URI[sha256sum] = "7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a" -PV = "24.0.7" +SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97" +PV = "25.0.2" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" @@ -38,8 +35,7 @@ do_install:append() { fi } -DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" -DEPENDS:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'mesa-native', '', d)}" +DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" EXTRANATIVEPATH += "chrpath-native" PROVIDES = " \ ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ @@ -77,44 +73,43 @@ EXTRA_OEMESON = " \ -Dplatforms='${@",".join("${PLATFORMS}".split())}' \ " -EXTRA_OEMESON:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=system', '', d)}" -EXTRA_OEMESON:append:class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=enabled', '', d)}" - def strip_comma(s): return s.strip(',') + PACKAGECONFIG = " \ gallium \ video-codecs \ ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'dri3', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ " -PACKAGECONFIG:append:class-native = " gallium-llvm r600" +PACKAGECONFIG:append:x86 = " libclc gallium-llvm" +PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm" +PACKAGECONFIG:append:class-native = " libclc gallium-llvm r600" # "gbm" requires "opengl" PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" -X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" +X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence" # "x11" requires "opengl" PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" -PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence" +VULKAN_DRIVERS_AMD = "" +VULKAN_DRIVERS_AMD:x86 = ",amd" +VULKAN_DRIVERS_AMD:x86-64 = ",amd" +# i686 is a 32 bit override for mesa-native +VULKAN_DRIVERS_AMD:i686 = ",amd" + +VULKAN_DRIVERS_INTEL = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ',intel', '', d)}" +VULKAN_DRIVERS_LLVM = ",swrast${VULKAN_DRIVERS_INTEL}${VULKAN_DRIVERS_INTEL}" -# Vulkan drivers need dri3 enabled -# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9 VULKAN_DRIVERS = "" -VULKAN_DRIVERS:append:x86 = ",intel,amd" -VULKAN_DRIVERS:append:x86-64 = ",intel,amd" -# i686 is a 32 bit override for mesa-native -VULKAN_DRIVERS:append:i686 = ",intel,amd" VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" -VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_LLVM}', '', d)}" VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}" PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" @@ -137,7 +132,7 @@ PACKAGECONFIG[freedreno-fdperf] = ",,libconfig" PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" -PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd" +PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=disabled, libglvnd" # "gles" requires "opengl" PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" @@ -145,9 +140,16 @@ PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2 # "egl" requires "opengl" PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" -# "opencl" requires libclc from meta-clang and spirv-tools from OE-Core -OPENCL_NATIVE = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', '-Dopencl-native=true', '', d)}" -PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd -Dopencl-spirv=true ${OPENCL_NATIVE},-Dgallium-opencl=disabled -Dopencl-spirv=false,libclc spirv-tools python3-ply-native" +MESA_CLC = "system" +MESA_CLC:class-native = "enabled" +INSTALL_MESA_CLC = "false" +INSTALL_MESA_CLC:class-native = "true" +MESA_NATIVE = "mesa-native" +MESA_NATIVE:class-native = "" + +# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG! +# Be sure to enable them both for the target and for the native build. +PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd -Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC},-Dgallium-opencl=disabled,${MESA_NATIVE}" PACKAGECONFIG[broadcom] = "" PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native" @@ -157,13 +159,13 @@ PACKAGECONFIG[vc4] = "" PACKAGECONFIG[v3d] = "" PACKAGECONFIG[zink] = "" -GALLIUMDRIVERS = "swrast" +GALLIUMDRIVERS = "softpipe" # gallium swrast was found to crash Xorg on startup in x32 qemu GALLIUMDRIVERS:x86-x32 = "" -GALLIUMDRIVERS:append:x86 = ",i915,iris,crocus" -GALLIUMDRIVERS:append:x86-64 = ",i915,iris,crocus" +GALLIUMDRIVERS:append:x86 = ",i915,crocus" +GALLIUMDRIVERS:append:x86-64 = ",i915,crocus" # i686 is a 32 bit override for mesa-native -GALLIUMDRIVERS:append:i686 = ",i915,iris,crocus" +GALLIUMDRIVERS:append:i686 = ",i915,crocus" GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" @@ -173,8 +175,9 @@ GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '' GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}" # radeonsi requires LLVM +GALLIUMDRIVERS_IRIS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ',iris', '', d)}" GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" -GALLIUMDRIVERS_LLVM = ",r300,nouveau${GALLIUMDRIVERS_RADEONSI}" +GALLIUMDRIVERS_LLVM = ",llvmpipe,r300,nouveau${GALLIUMDRIVERS_IRIS}${GALLIUMDRIVERS_RADEONSI}" GALLIUMDRIVERS_LLVM:append:x86 = ",svga" GALLIUMDRIVERS_LLVM:append:x86-64 = ",svga" # i686 is a 32 bit override for mesa-native @@ -189,6 +192,7 @@ GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl' PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils" +PACKAGECONFIG[libclc] = ",,libclc spirv-tools spirv-llvm-translator" PACKAGECONFIG[xa] = "-Dgallium-xa=enabled, -Dgallium-xa=disabled" PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" @@ -242,6 +246,7 @@ RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'lib PACKAGES =+ "libegl-mesa libegl-mesa-dev \ libosmesa libosmesa-dev \ + libgallium \ libgl-mesa libgl-mesa-dev \ libglx-mesa libglx-mesa-dev \ libglapi libglapi-dev \ @@ -267,13 +272,6 @@ do_install:append () { rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc } -do_install:append:class-native () { - if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'true', 'false', d)}; then - install -d ${D}${bindir} - install -m0755 ${B}/src/intel/compiler/intel_clc ${D}${bindir} - fi -} - # For the packages that make up the OpenGL interfaces, inject variables so that # they don't get Debian-renamed (which would remove the -mesa suffix), and # RPROVIDEs/RCONFLICTs on the generic libgl name. @@ -344,7 +342,8 @@ FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d" FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan" FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*" FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d" -FILES:libgbm = "${libdir}/libgbm.so.*" +FILES:libgbm = "${libdir}/libgbm.so.* ${libdir}/gbm/*_gbm.so" +FILES:libgallium = "${libdir}/libgallium-*.so" FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" FILES:libgl-mesa = "${libdir}/libGL.so.*" @@ -372,6 +371,9 @@ FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ FILES:${PN}-tools = "${bindir} ${datadir}" ALLOW_EMPTY:${PN}-tools = "1" +# All DRI drivers are symlinks to libdril_dri.so +INSANE_SKIP:mesa-megadriver += "dev-so" + # Fix upgrade path from mesa to mesa-megadriver RREPLACES:mesa-megadriver = "mesa" RCONFLICTS:mesa-megadriver = "mesa" From patchwork Thu Mar 27 12:37:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60090 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 330E0C36013 for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by mx.groups.io with SMTP id smtpd.web10.48943.1743079047548898416 for ; Thu, 27 Mar 2025 05:37:27 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@qualcomm.com header.s=qcppdkim1 header.b=gGmh81V1; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.180.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5jGad005277 for ; Thu, 27 Mar 2025 12:37:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=+uFD/jg+vd5 uTZgqQ3nzf/qNti3pKQgftOOKFHWwVEI=; b=gGmh81V1gdgvWIWNAjEZWUFK3RW UQ7zRqz3NarrMruRtIs5rAbErHoTTjzq/s2BkZO7MU8vq4E0QE66r0T+RJEpsbfA zUilW0+HeZ87Fp02PS+tcFk0wzbKYSXiOW6+V5YPwIlRmZBqXn47QqXjH/I5ryNf 5380K3gjWj657/W0JgrMNfXybhvwBaJqAKy1jloSHYeVuPY3KvlbQiUcuZq5zTyp s3sjxrs+uFcTrGr8Z48kEVK/PYZLLDBXrsyjrXeclzBmLu1czhRYOiRA95Z+zq4M +gAxyIUpCsUZN6JzFaNL0pBZj2HwKdhQqcgik/LAAdP9MkLvgbkCHY+XyCQ== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45ktenfbd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:26 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7c5e2a31f75so259318185a.1 for ; Thu, 27 Mar 2025 05:37:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079045; x=1743683845; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+uFD/jg+vd5uTZgqQ3nzf/qNti3pKQgftOOKFHWwVEI=; b=GvXMpnPGa7uyEdJmW+oIRFyejvNd8Gpnd8cYr0Zzx+MQBOp4v551VYJUj/iI/o/ifT PhGwSYA79NbbeNHnuU3AljX/YIWR0F6EP6Unk0wbgPoDHoml05gzVZ7cCudnvvs9lWl6 133XgV4LGcZTa/Oo7JLIdNfNrpfy78EuH71ccsuH6JKZxzdSaYfdMsfunH18yuolWiFw DE8MOOIYLfkBghaen6M0Re62VM/1Eol3fpX4tdYgxT/R4V3IfuadqdI4cpkfleO37oR1 zC3E5b1dYW+OLC6Jg1wFOJcx5rsnE/b8cDretQuiA0jkpcRCAuh+RfjCcMLrfaMLjaze mTOQ== X-Gm-Message-State: AOJu0Yx9ddXhquMaAjVNyxxD9avk9ziihKhNcqd4WPRAZRuYifk5rnaS mCHhCqUXyOxJ20SJ5dIZXRmadQfX2b0wRHhvfk5ASwqBREusQ4ZLq4Kh4m022qkgAosGAg/6x5H tfaKTyk82F2mLnJy84kUagD/5w18Mi+2LYxx7Z9Ieajnfvs5fG66Gr9qw0mBMdZ1/DhyaHEIBxa 7PZYoU4Cjeoss= X-Gm-Gg: ASbGncsJam/777zsIj3jO4Igz3uH4k0qeWmm/4H3w6sYShNBmvumqPTjPkA/CUJUbOH YaQPHgbn+FQRLgxvinFMo9lr8VlXoA7mduTSWjfnUHtVGZ03WXzSEt08shAEKq+4FUi6EskyuEf Nnor1PIPx2T14pNsVr7ZnCOMjiInGsdLZ4iHDVzHQW8f7pbDuGZMHXe4k3wSi/ryjzpJMXTaTJA oMQ2O0pg4RBu0XclI8pMj4GCAYr2eyuZJbD1j93z3Gz8GKPgpDd839u2TvdFJPWDwapohmH0RcF QxvvBfO4pPdJWzvoc7UQdGZW0pxaCMLn4cuP1ii4E8/RsnFP125R9f7tZyOICsHsw6JvGVY2T0H gXT/JKhHHblVkn6vz+OIjNGzUWCWp X-Received: by 2002:a05:620a:178d:b0:7c5:592c:c26 with SMTP id af79cd13be357-7c5ed9f4e56mr421246585a.19.1743079045181; Thu, 27 Mar 2025 05:37:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHH7TLDaurwK7mo19gr9lhCU5wbS1eIFaqIKi2WdJ+YcqZi+rboDJRCiYOEIKT4S7xS45Kb1w== X-Received: by 2002:a05:620a:178d:b0:7c5:592c:c26 with SMTP id af79cd13be357-7c5ed9f4e56mr421242185a.19.1743079044544; Thu, 27 Mar 2025 05:37:24 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:23 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj Subject: [PATCH 7/8] bindgen-cli: a tool to generate Rust bindings Date: Thu, 27 Mar 2025 14:37:00 +0200 Message-Id: <20250327123701.3906604-8-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=TuvmhCXh c=1 sm=1 tr=0 ts=67e54686 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=Vs1iUdzkB0EA:10 a=R22tBeTbAAAA:8 a=EUspDBNiAAAA:8 a=t7CeM3EgAAAA:8 a=iGHA9ds3AAAA:8 a=QyXUC8HyAAAA:8 a=pGLkceISAAAA:8 a=NEAV23lmAAAA:8 a=DTLswWHaHqxS3IvHltUA:9 a=NFOGd7dJGGMPyQGDc5-O:22 a=71pCXManv-pOE82v44e3:22 a=FdTzh2GWekK77mhwV6Dw:22 a=nM-MV4yxpKKO9kiQg6Ot:22 X-Proofpoint-GUID: 4jCYdO9Cq39Kviuz-6v-4fnYxop3nY1Y X-Proofpoint-ORIG-GUID: 4jCYdO9Cq39Kviuz-6v-4fnYxop3nY1Y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213747 Import bindgen-cli from the meta-clang layer, as it is required to generate bindings for Mesa / RustiCL. Specify Khem as maintainer as he is maintaining the meta-clang layer, which included this recipe too. Signed-off-by: Dmitry Baryshkov --- meta/conf/distro/include/maintainers.inc | 1 + .../bindgen-cli/bindgen-cli-crates.inc | 186 ++++++++++++++++++ .../bindgen-cli/bindgen-cli_0.71.1.bb | 19 ++ 3 files changed, 206 insertions(+) create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 2b47d3103c03..953abed2a943 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -64,6 +64,7 @@ RECIPE_MAINTAINER:pn-bash = "Hongxu Jia " RECIPE_MAINTAINER:pn-bash-completion = "Unassigned " RECIPE_MAINTAINER:pn-bc = "Anuj Mittal " RECIPE_MAINTAINER:pn-bind = "Unassigned " +RECIPE_MAINTAINER:pn-bindgen-cli = "Khem Raj " RECIPE_MAINTAINER:pn-binutils = "Khem Raj " RECIPE_MAINTAINER:pn-binutils-cross-${TARGET_ARCH} = "Khem Raj " RECIPE_MAINTAINER:pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj " diff --git a/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc b/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc new file mode 100644 index 000000000000..a758440c9d32 --- /dev/null +++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc @@ -0,0 +1,186 @@ +# Autogenerated with 'bitbake -c update_crates bindgen-cli' + +# from Cargo.lock +SRC_URI += " \ + crate://crates.io/aho-corasick/1.1.3 \ + crate://crates.io/annotate-snippets/0.11.4 \ + crate://crates.io/anstyle/1.0.10 \ + crate://crates.io/autocfg/1.4.0 \ + crate://crates.io/bitflags/1.3.2 \ + crate://crates.io/bitflags/2.2.1 \ + crate://crates.io/block/0.1.6 \ + crate://crates.io/cc/1.2.2 \ + crate://crates.io/cexpr/0.6.0 \ + crate://crates.io/cfg-if/1.0.0 \ + crate://crates.io/clang-sys/1.8.1 \ + crate://crates.io/clap/4.1.4 \ + crate://crates.io/clap_complete/4.2.0 \ + crate://crates.io/clap_derive/4.1.0 \ + crate://crates.io/clap_lex/0.3.1 \ + crate://crates.io/either/1.13.0 \ + crate://crates.io/env_logger/0.10.0 \ + crate://crates.io/env_logger/0.8.4 \ + crate://crates.io/errno/0.3.10 \ + crate://crates.io/fastrand/1.9.0 \ + crate://crates.io/getrandom/0.2.15 \ + crate://crates.io/glob/0.3.1 \ + crate://crates.io/heck/0.4.1 \ + crate://crates.io/hermit-abi/0.3.9 \ + crate://crates.io/hermit-abi/0.4.0 \ + crate://crates.io/humantime/2.1.0 \ + crate://crates.io/instant/0.1.12 \ + crate://crates.io/io-lifetimes/1.0.11 \ + crate://crates.io/is-terminal/0.4.13 \ + crate://crates.io/itertools/0.13.0 \ + crate://crates.io/libc/0.2.167 \ + crate://crates.io/libloading/0.8.6 \ + crate://crates.io/linux-raw-sys/0.3.8 \ + crate://crates.io/log/0.4.22 \ + crate://crates.io/malloc_buf/0.0.6 \ + crate://crates.io/memchr/2.7.4 \ + crate://crates.io/minimal-lexical/0.2.1 \ + crate://crates.io/nom/7.1.3 \ + crate://crates.io/objc/0.2.7 \ + crate://crates.io/once_cell/1.20.2 \ + crate://crates.io/os_str_bytes/6.4.1 \ + crate://crates.io/owo-colors/4.1.0 \ + crate://crates.io/prettyplease/0.2.25 \ + crate://crates.io/proc-macro-error-attr/1.0.4 \ + crate://crates.io/proc-macro-error/1.0.4 \ + crate://crates.io/proc-macro2/1.0.92 \ + crate://crates.io/quickcheck/1.0.3 \ + crate://crates.io/quote/1.0.37 \ + crate://crates.io/rand/0.8.5 \ + crate://crates.io/rand_core/0.6.4 \ + crate://crates.io/redox_syscall/0.3.5 \ + crate://crates.io/regex-automata/0.4.9 \ + crate://crates.io/regex-syntax/0.8.5 \ + crate://crates.io/regex/1.11.1 \ + crate://crates.io/rustc-hash/2.1.0 \ + crate://crates.io/rustix/0.37.27 \ + crate://crates.io/shlex/1.3.0 \ + crate://crates.io/similar/2.6.0 \ + crate://crates.io/strsim/0.10.0 \ + crate://crates.io/syn/1.0.109 \ + crate://crates.io/syn/2.0.90 \ + crate://crates.io/tempfile/3.6.0 \ + crate://crates.io/termcolor/1.2.0 \ + crate://crates.io/unicode-ident/1.0.14 \ + crate://crates.io/unicode-width/0.1.14 \ + crate://crates.io/version_check/0.9.4 \ + crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \ + crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ + crate://crates.io/winapi-util/0.1.5 \ + crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ + crate://crates.io/winapi/0.3.9 \ + crate://crates.io/windows-sys/0.48.0 \ + crate://crates.io/windows-sys/0.52.0 \ + crate://crates.io/windows-targets/0.48.5 \ + crate://crates.io/windows-targets/0.52.6 \ + crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ + crate://crates.io/windows_aarch64_gnullvm/0.52.6 \ + crate://crates.io/windows_aarch64_msvc/0.48.5 \ + crate://crates.io/windows_aarch64_msvc/0.52.6 \ + crate://crates.io/windows_i686_gnu/0.48.5 \ + crate://crates.io/windows_i686_gnu/0.52.6 \ + crate://crates.io/windows_i686_gnullvm/0.52.6 \ + crate://crates.io/windows_i686_msvc/0.48.5 \ + crate://crates.io/windows_i686_msvc/0.52.6 \ + crate://crates.io/windows_x86_64_gnu/0.48.5 \ + crate://crates.io/windows_x86_64_gnu/0.52.6 \ + crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ + crate://crates.io/windows_x86_64_gnullvm/0.52.6 \ + crate://crates.io/windows_x86_64_msvc/0.48.5 \ + crate://crates.io/windows_x86_64_msvc/0.52.6 \ +" + +SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +SRC_URI[annotate-snippets-0.11.4.sha256sum] = "24e35ed54e5ea7997c14ed4c70ba043478db1112e98263b3b035907aa197d991" +SRC_URI[anstyle-1.0.10.sha256sum] = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +SRC_URI[bitflags-2.2.1.sha256sum] = "24a6904aef64d73cf10ab17ebace7befb918b82164785cb89907993be7f83813" +SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +SRC_URI[cc-1.2.2.sha256sum] = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +SRC_URI[clap-4.1.4.sha256sum] = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76" +SRC_URI[clap_complete-4.2.0.sha256sum] = "01c22dcfb410883764b29953103d9ef7bb8fe21b3fa1158bc99986c2067294bd" +SRC_URI[clap_derive-4.1.0.sha256sum] = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" +SRC_URI[clap_lex-0.3.1.sha256sum] = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" +SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +SRC_URI[errno-0.3.10.sha256sum] = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +SRC_URI[hermit-abi-0.3.9.sha256sum] = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +SRC_URI[hermit-abi-0.4.0.sha256sum] = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +SRC_URI[is-terminal-0.4.13.sha256sum] = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +SRC_URI[libc-0.2.167.sha256sum] = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" +SRC_URI[libloading-0.8.6.sha256sum] = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +SRC_URI[os_str_bytes-6.4.1.sha256sum] = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +SRC_URI[owo-colors-4.1.0.sha256sum] = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +SRC_URI[prettyplease-0.2.25.sha256sum] = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +SRC_URI[proc-macro2-1.0.92.sha256sum] = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +SRC_URI[rustc-hash-2.1.0.sha256sum] = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" +SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +SRC_URI[similar-2.6.0.sha256sum] = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" +SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +SRC_URI[syn-2.0.90.sha256sum] = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +SRC_URI[unicode-ident-1.0.14.sha256sum] = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" \ No newline at end of file diff --git a/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb new file mode 100644 index 000000000000..5578fb3d18bf --- /dev/null +++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "Automatically generates Rust FFI bindings to C and C++ libraries." +HOMEPAGE = "https://rust-lang.github.io/rust-bindgen/" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=0b9a98cb3dcdefcceb145324693fda9b" + +inherit rust cargo cargo-update-recipe-crates + +SRC_URI += "git://github.com/rust-lang/rust-bindgen.git;protocol=https;branch=main" +SRCREV = "af7fd38d5e80514406fb6a8bba2d407d252c30b9" +S = "${WORKDIR}/git" + +require ${BPN}-crates.inc + +do_install:append:class-native() { + create_wrapper ${D}/${bindir}/bindgen LIBCLANG_PATH="${STAGING_LIBDIR_NATIVE}" +} + +BBCLASSEXTEND = "native" From patchwork Thu Mar 27 12:37:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 60093 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 3C808C36018 for ; Thu, 27 Mar 2025 14:20:50 +0000 (UTC) Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by mx.groups.io with SMTP id smtpd.web11.48796.1743079049716837604 for ; Thu, 27 Mar 2025 05:37:29 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@qualcomm.com header.s=qcppdkim1 header.b=b/tjw9MC; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: oss.qualcomm.com, ip: 205.220.180.131, mailfrom: dmitry.baryshkov@oss.qualcomm.com) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52R5ja2J012658 for ; Thu, 27 Mar 2025 12:37:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= R408BpbNP8yU6VNZxLumx3rlFUhr7aYowf+OKNehUzA=; b=b/tjw9MCa+2jCXkm CpN36qpR2+jQPr5/h+lYcga6Z3onpBdSxP8iqswCfGUzxKOXe7z8tDbman5UU1ep FL1tmOlKjL4QxDVzHrAcRnVKLggFm32ZhT3WJv8IOOXa83jG8uD1xeu5WtTnL6t9 ESh1VATntMUBGoS+7O/pCHsDFNdKpOdiuvf3xXZAKtdz6lk7LGJDnnrSpgaGZ0Fm L52e9GBMpgL323043Klpclrf1zMCt5KnkL2Teb9FV4cj0rTKj8x57dZNTgeS8RPZ V675kcaQGqAnj5scqT6XNzu7m+Q4dYDNgKewaT7pJCtLDmwRjVp/Mq4pHCjjxkCI leccsg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 45manj4wns-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 27 Mar 2025 12:37:28 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7bb849aa5fbso200743385a.0 for ; Thu, 27 Mar 2025 05:37:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743079048; x=1743683848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R408BpbNP8yU6VNZxLumx3rlFUhr7aYowf+OKNehUzA=; b=IMaxoM8e67ToCJwR+hkekaS9zAe0+bL/AJ2ARzaZzwvYFiZ0WeN80NpPJpN9xmvUHC SxURRotF9doBdXqxoZIGBMDA40+/umx8pjJsztoVuQgDAC7oNaYGoQ1Wo8j1qAf0d74E fqPcaEOc6cJbBdC6QgRi+meWn6bIoBqnxcwjlQNRpc8SDavmn3POmn1wLulFRIUHwH5D fchISEbkK2xZ2W6QVaCDMadHH0Eyxs8lCuwL/wGcZZGdbA4/FabmXrvmS0Z9YfsRZBKY n1EyB87t/ejO/s8ZNI+mlqHaX9w3vTLlZ6kaZJTtpZzvxJFQPHOiNnxJR0Y5eEOegdno /kRg== X-Gm-Message-State: AOJu0Yz4E7ozwW66R5jQXf/QIbdSQD46pYu0h2QDN/NUEG6XtE5xoBNT RAToDYvOTXq/ikpT6Ikf9L8RWxPymp6HkeOeiuoUT1aGteLx1LSH46Zm810P+Al2It9DJKRk8+V koZLAQe/jbf4rN8ot4RpwPWy8PIqr4MfO+ZCGT4SeS6N/pKybmO0E+AagucmZWDHoB1+0dusAEA VvtJmXfgiVHPw= X-Gm-Gg: ASbGnctOgqWpzyead54x1jajU4XcLc/37NnV73doyxhfkZiER2AJwWZMJzI6unuRMrg EyDt8YyNt9Zs/N/xvvsQSmt7T0EXhea5ObrU9vxRHFi1yahqSim3ZcPN5+MFfJOd3PqkK9SEWgm YhJUGirhZY3VCNg1g4nt77NJbzhglzdlb34lW+DQBp622+z18kYk4B8H9sO/bXpjnxU2jn+/QPT vVtCCxy+Vftax7iSF3sqnUHXYgtOFI4X3Z5u3aP6wLJk4hd/z3sDFKz5SEzO5deKuvrQlTg6Z27 GtP0EJUEnLDXFVFBEDtzDw6O4ROReuZqnAFQaiZ2eplzkOwtXUeW8N7YR0+dJFW9zNPCZhL7dpD FSO59Pw3PNHmdj46a6sIK1ymA5IkE X-Received: by 2002:a05:620a:40c4:b0:7c5:5768:40b9 with SMTP id af79cd13be357-7c5eda8001amr473906985a.43.1743079047593; Thu, 27 Mar 2025 05:37:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFgHC0x0S3skNR/K45SU9fpxMwhULH55X/AHn0qMWYMynfuNsJDujP7WBClMqEY/S/lvN9JNw== X-Received: by 2002:a05:620a:40c4:b0:7c5:5768:40b9 with SMTP id af79cd13be357-7c5eda8001amr473902485a.43.1743079047042; Thu, 27 Mar 2025 05:37:27 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ad65121e2sm2053600e87.235.2025.03.27.05.37.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:37:26 -0700 (PDT) From: Dmitry Baryshkov To: openembedded-core@lists.openembedded.org Cc: Khem Raj , =?utf-8?b?Wm9sdMOhbiBCw7ZzesO2cm3DqW55?= =?utf-8?b?aQ==?= Subject: [PATCH 8/8] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Date: Thu, 27 Mar 2025 14:37:01 +0200 Message-Id: <20250327123701.3906604-9-dmitry.baryshkov@oss.qualcomm.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> References: <20250327123701.3906604-1-dmitry.baryshkov@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: vGqninUlRR1lzZ3UcIyfVhhoQ30xHkPg X-Proofpoint-ORIG-GUID: vGqninUlRR1lzZ3UcIyfVhhoQ30xHkPg X-Authority-Analysis: v=2.4 cv=KvJN2XWN c=1 sm=1 tr=0 ts=67e54688 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Vs1iUdzkB0EA:10 a=ZpVaWaFtAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dgon86aGx0aU30rBFdEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 a=5tn4MO8azEBWFjlAA-rn:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_01,2025-03-26_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxlogscore=999 malwarescore=0 priorityscore=1501 clxscore=1015 mlxscore=0 spamscore=0 impostorscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000 definitions=main-2503270087 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0a-0031df01.pphosted.com id 52R5ja2J012658 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 27 Mar 2025 14:20:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/213748 From: Zoltán Böszörményi Mesa now has two OpenCL implementations: Clover (older one) and RustiCL (newer one). Extend the "opencl" package config to include both implementations into the libopencl-mesa (-dev) packages. As the Clover implementation is in maintenance mode and is expected to be removed at Mesa 25.2, it doesn't make sense to split the packages or to provide two config options. Signed-off-by: Zoltán Böszörményi [DB: merged "rusticl" and "clover" back to "opencl", reworked rust inheritance] Signed-off-by: Dmitry Baryshkov --- ...son-use-target-path-for-Clang-libdir.patch | 18 +++++- ...cross-compilation-arguments-to-LLVM-.patch | 64 +++++++++++++++++++ meta/recipes-graphics/mesa/mesa.inc | 21 ++++-- 3 files changed, 96 insertions(+), 7 deletions(-) create mode 100644 meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch diff --git a/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch b/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch index ef7ae8942e33..e2f9562ea64e 100644 --- a/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch +++ b/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch @@ -1,4 +1,4 @@ -From ecea6fe0d250c3026c22a60ac5420528cc3632d8 Mon Sep 17 00:00:00 2001 +From 11b93f72936ce367306ae299549c39fc21ef21c3 Mon Sep 17 00:00:00 2001 From: Dmitry Baryshkov Date: Wed, 26 Mar 2025 12:19:10 +0200 Subject: [PATCH] meson: use target path for Clang libdir @@ -10,9 +10,23 @@ options. Clang is known to use the same libdir in OE build environment. Upstream-Status: Inappropriate [OE-Specific] Signed-off-by: Dmitry Baryshkov --- + src/compiler/clc/meson.build | 2 +- src/gallium/frontends/clover/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + 2 files changed, 2 insertions(+), 2 deletions(-) +diff --git a/src/compiler/clc/meson.build b/src/compiler/clc/meson.build +index 743cd236bb5c..af36dae3dde9 100644 +--- a/src/compiler/clc/meson.build ++++ b/src/compiler/clc/meson.build +@@ -8,7 +8,7 @@ files_libmesaclc = files( + ) + + _libmesaclc_c_args = [] +-_libmesaclc_cpp_args = ['-DLLVM_LIB_DIR="@0@"'.format(llvm_libdir)] ++_libmesaclc_cpp_args = ['-DLLVM_LIB_DIR="@0@"'.format(get_option('libdir'))] + _libmesaclc_sources = [] + + if not _shared_llvm diff --git a/src/gallium/frontends/clover/meson.build b/src/gallium/frontends/clover/meson.build index e569b86a1bea..2fc30ffe1ac2 100644 --- a/src/gallium/frontends/clover/meson.build diff --git a/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch new file mode 100644 index 000000000000..c9213fbe4eec --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch @@ -0,0 +1,64 @@ +From b9cf34f39ca7e7546508ce2ab1f053edef5fc201 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Wed, 26 Mar 2025 17:47:09 +0200 +Subject: [PATCH] rusticl: provide cross-compilation arguments to LLVM bindgen + invocation + +Correctly generating LLVM bindings requires several croos-compilation +arguments. Provide them to rust.bindgen(). + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Dmitry Baryshkov +--- + meson_options.txt | 14 ++++++++++++++ + src/gallium/frontends/rusticl/meson.build | 8 ++++++++ + 2 files changed, 22 insertions(+) + +diff --git a/meson_options.txt b/meson_options.txt +index 0147cafcb146..f73e83fded18 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -796,3 +796,17 @@ option( + value : false, + description : 'Install the drivers internal shader compilers (if needed for cross builds).' + ) ++ ++option( ++ 'bindgen-includedir', ++ type : 'string', ++ value : '', ++ description : 'system-wide include directory for cross-generating LLVM bindings' ++ ) ++ ++option( ++ 'bindgen-target', ++ type : 'string', ++ value : '', ++ description : 'Clang target for cross-generating LLVM bindings' ++ ) +diff --git a/src/gallium/frontends/rusticl/meson.build b/src/gallium/frontends/rusticl/meson.build +index a5d1dcf3abb9..480c220b7f5f 100644 +--- a/src/gallium/frontends/rusticl/meson.build ++++ b/src/gallium/frontends/rusticl/meson.build +@@ -180,13 +180,21 @@ rusticl_opencl_gen = static_library( + ], + ) + ++bindgen_c_args = [] ++bindgen_target = get_option('bindgen-target') ++if bindgen_target != '' ++ bindgen_c_args += [ '-target', bindgen_target ] ++endif ++ + rusticl_llvm_bindings_rs = rust.bindgen( + input : 'rusticl_llvm_bindings.hpp', + output : 'rusticl_llvm_bindings.rs', + c_args : [ + rusticl_bindgen_c_args, + pre_args, ++ bindgen_c_args, + ], ++ include_directories : get_option('bindgen-includedir'), + dependencies : [ + dep_clang, + dep_llvm, diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 9d71cd7917e2..105df1eaf347 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -18,6 +18,7 @@ SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\ file://0001-meson-use-target-path-for-Clang-libdir.patch \ + file://0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch \ " SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97" @@ -46,7 +47,7 @@ PROVIDES = " \ virtual/mesa \ " -inherit meson pkgconfig python3native gettext features_check +inherit meson pkgconfig python3native gettext features_check rust BBCLASSEXTEND = "native nativesdk" @@ -85,6 +86,9 @@ PACKAGECONFIG = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ " +# skip all Rust dependencies if we are not building OpenCL" +INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}" + PACKAGECONFIG:append:x86 = " libclc gallium-llvm" PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm" PACKAGECONFIG:append:class-native = " libclc gallium-llvm r600" @@ -147,9 +151,16 @@ INSTALL_MESA_CLC:class-native = "true" MESA_NATIVE = "mesa-native" MESA_NATIVE:class-native = "" +BINDGEN_TARGET = "${TARGET_ARCH}-${TARGET_OS}${LIBCEXTENSION}${@['-gnu', ''][d.getVar('LIBCEXTENSION') != '']}" + # "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG! # Be sure to enable them both for the target and for the native build. -PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd -Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC},-Dgallium-opencl=disabled,${MESA_NATIVE}" +PACKAGECONFIG[opencl] = " \ + -Dgallium-opencl=icd -Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC} \ + -Dgallium-rusticl=true -Dbindgen-includedir=${STAGING_INCDIR} -Dbindgen-target=${BINDGEN_TARGET},\ + -Dgallium-opencl=disabled -Dgallium-rusticl=false, \ + ${MESA_NATIVE} bindgen-cli-native \ +" PACKAGECONFIG[broadcom] = "" PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native" @@ -242,7 +253,7 @@ RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev" RDEPENDS:libgles2-mesa += "libgles3-mesa" ALLOW_EMPTY:libgles3-mesa = "1" -RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools', '', d)}" +RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools spirv-llvm-translator', '', d)}" PACKAGES =+ "libegl-mesa libegl-mesa-dev \ libosmesa libosmesa-dev \ @@ -348,7 +359,7 @@ FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" FILES:libgl-mesa = "${libdir}/libGL.so.*" FILES:libglx-mesa = "${libdir}/libGLX*.so.*" -FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/mesa.icd" +FILES:libopencl-mesa = "${libdir}/lib*OpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/*.icd" FILES:libglapi = "${libdir}/libglapi.so.*" FILES:libosmesa = "${libdir}/libOSMesa.so.*" FILES:libxatracker = "${libdir}/libxatracker.so.*" @@ -362,7 +373,7 @@ FILES:libglapi-dev = "${libdir}/libglapi.*" FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" FILES:libgles3-mesa-dev = "${includedir}/GLES3" -FILES:libopencl-mesa-dev = "${libdir}/libMesaOpenCL.so" +FILES:libopencl-mesa-dev = "${libdir}/lib*OpenCL.so" FILES:libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc" FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ ${includedir}/xa_tracker.h ${includedir}/xa_composite.h ${includedir}/xa_context.h \