Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH v4 0/9] mesa: upgrade to 25.0.2
@ 2025-03-31 12:21 Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
                   ` (9 more replies)
  0 siblings, 10 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj, Zoltán Böszörményi

libclc is required in order to build Intel drivers in Mesa 24.1 and
later. Thus OE-Core is currently locked to the 24.0.x branch, which is
no longer maintained, having last release in June 2024.

A clean solution is to package Clang, then use it to build libclc and
SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
creating proper recipes for Clang is a long process (ongoing by Khem
Raj).

This patchset attempts to solve the issue in a simpler way: by building
libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
don't have to create target Clang recipes, there is no extra toolchain
to support, etc. Clang binaries are creted as a part of the build
process (in order to support building target packages), however it only
hits the LLVM sysroot-native and is only used by the LLVM target build.

Future work by Khem (once Clang is properly supported in OE-Core) should
allow us to create proper recipes for libclc and spirv-llvm-translator
and drop them from the llvm / clang recipe.

I think this approach provides a good balance between OE-Core being
stuck with the outdated Mesa release and being able to upgrade it,
bringing support for new hardware.

Last two patches of the series bring in RustiCL support, a new OpenCL
implementation within Mesa. They are optional for the sake of the
upgrade and can be dropped if there is any issue with those. RustiCL
support is mostly compile-tested at this point.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v4:
- Fixed QA issues reported against lib32-mesa-megadriver (Richard)
- Removed release notes link from the mesa's commit message (Alexander)
- Added link to the rust.bindgen() issue to RustiCL-related
  cross-compilation patch (Alexander)
- Renamed 'spirv' PACKAGECONFIG option to 'spirv-llvm-translator' in
  order to be more precise
- Link to v3: https://lore.kernel.org/r/20250329-mesa-25-v3-0-f4d0328eb867@oss.qualcomm.com

Changes in v3:
- Dropped llvm/fix-native-compilation.patch and
  llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
  in favour of installing prepare_builtins into the sysroot, dropped
  corresponding EXTRA_OECMAKE params
- Dropepd -DCLANG_TABLEGEN from llvm's EXTRA_OECMAKE
- Enabled llvm-config wrapper for nativesdk too, fixing QA errors for
  nativesdk-mesa
- Added --libdir handling to llvm-config, dropping the need for
  mesa/0001-meson-use-target-path-for-Clang-libdir.patch
- Dropped extra LIBCEXTENSION from BINDGEN_TARGET, it is already a part
  of TARGET_OS
- Expanded commit messages to explain the patches
- Link to v2: https://lore.kernel.org/r/20250327221807.2551544-1-dmitry.baryshkov@oss.qualcomm.com

Changes in v2:
- Dropped YOCTO_ALTERNATE_LIBDIR patch
- Reworked mesa / LLVM integration to always use get_option('libdir')
- Reenabled AMD Vulkan driver (got disabled because of c&p error)
- Moved mesa-clc options to the libclc PACKAGECONFIG to fix several
  build errors
- Link to v1: https://lore.kernel.org/r/20250327135520.3920189-1-dmitry.baryshkov@oss.qualcomm.com/

---
Dmitry Baryshkov (8):
      llvm: move libLLVM.so.N.M to llvm-libllvm package
      llvm: use OECMAKE_SOURCEPATH to specify cmake dir
      llvm: handle libdir in llvm-config
      llvm: also use llvm-config wrapper for nativesdk recipes
      llvm: support building libclc
      llvm: add SPIRV-LLVM-Translator support
      mesa: upgrade 24.0.7 -> 25.0.2
      bindgen-cli: a tool to generate Rust bindings

Zoltán Böszörményi (1):
      mesa: add support for RustiCL under PACKAGECONFIG "opencl"

 meta/conf/distro/include/maintainers.inc           |   1 +
 .../bindgen-cli/bindgen-cli-crates.inc             | 186 +++++++++++++++++++++
 .../bindgen-cli/bindgen-cli_0.71.1.bb              |  19 +++
 meta/recipes-devtools/llvm/llvm/llvm-config        |   3 +
 .../llvm/llvm/spirv-internal-build.patch           |  30 ++++
 meta/recipes-devtools/llvm/llvm_20.1.0.bb          |  77 ++++++++-
 ...evert-meson-do-not-pull-in-clc-for-clover.patch |  53 ------
 ...d-Include-missing-llvm-IR-header-Module.h.patch |  41 -----
 .../files/0001-drisw-fix-build-without-dri3.patch  |  58 -------
 ...eno-don-t-encode-build-path-into-binaries.patch |  46 ++++-
 ...vide-cross-compilation-arguments-to-LLVM-.patch |  67 ++++++++
 ...ext-don-t-try-zink-if-not-enabled-in-mesa.patch |  42 -----
 meta/recipes-graphics/mesa/mesa.inc                | 101 ++++++-----
 13 files changed, 470 insertions(+), 254 deletions(-)
---
base-commit: dc2ef2cc1183a14cd3a05d388a1d0485a1bc8d20
change-id: 20250328-mesa-25-6b78a0ce2c90

Best regards,
-- 
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>



^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH v4 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

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 <dmitry.baryshkov@oss.qualcomm.com>
---
 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 7ffc6ec1cb8a041f3ce1c3ac75fad30f1d793916..296a164cdd7ffb45f056c879cc5fc4fbc459caba 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 += "\

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 3/9] llvm: handle libdir in llvm-config Dmitry Baryshkov
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

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 <dmitry.baryshkov@oss.qualcomm.com>
---
 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 296a164cdd7ffb45f056c879cc5fc4fbc459caba..7470d2b4d8a55868fe5d2e88f5843a2ec3faf7c0 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<pver>\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"
 

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 3/9] llvm: handle libdir in llvm-config
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 4/9] llvm: also use llvm-config wrapper for nativesdk recipes Dmitry Baryshkov
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

The llvm-config wrapper also needs to override a --libdir switch,
otherwise software (like mesa) end up using TMPDIR-based directory for
Clang resource lookup (and also encoding TMPDIR into the target binary).

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 meta/recipes-devtools/llvm/llvm/llvm-config | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/recipes-devtools/llvm/llvm/llvm-config b/meta/recipes-devtools/llvm/llvm/llvm-config
index 5e4ded2da5bc95d429c6f717a2f25223bbbe210e..6cf3e7578fa96f2893f73077bece4db45f29547c 100644
--- a/meta/recipes-devtools/llvm/llvm/llvm-config
+++ b/meta/recipes-devtools/llvm/llvm/llvm-config
@@ -35,6 +35,9 @@ for arg in "$@"; do
     --libs)
       output="${output} -lLLVM"
       ;;
+    --libdir)
+      output="${output} ${libdir}"
+      ;;
     --link-shared)
       break
       ;;

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 4/9] llvm: also use llvm-config wrapper for nativesdk recipes
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (2 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 3/9] llvm: handle libdir in llvm-config Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 5/9] llvm: support building libclc Dmitry Baryshkov
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

The recipes targeting the SDK (e.g. nativesdk-mesa) should also use the
llvm-config wrapper, otherwise they get get a lot of incorrect flags,
the most offensive being the rpath, as it results in TMPDIR being a part
of the resulting binary.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 meta/recipes-devtools/llvm/llvm_20.1.0.bb | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 7470d2b4d8a55868fe5d2e88f5843a2ec3faf7c0..c1c4138e8cc16b8b4ddfa3355a6141b5fede569d 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -138,6 +138,7 @@ do_install:append:class-native() {
 }
 
 SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess"
+SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess"
 
 llvm_sysroot_preprocess() {
 	install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 5/9] llvm: support building libclc
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (3 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 4/9] llvm: also use llvm-config wrapper for nativesdk recipes Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

Current Mesa requires libclc in order to build Intel Gallium (iris) or
Vulkan drivers. In order to unblock Mesa updates, build libclc as a part
of the LLVM build process.

The libclc requires Clang for building, so enable Clang too via
LLVM_PROJECTS. Remove clang from the DESTDIR, so that it is only used
during the build process. Proper handling of Clang as a toolchain is a
separate and much more complicated topic. Clang is enabled for all kinds
of builds as it is a requirement for libclc to build.

Cleaning of ${datadir} has been moved to happen at the end of do_install
to be performed after do clang removal and made not to fail if
${datadir} is not empty, as libclc install files into that location.

NVPTX and SPIRV targets are enabled since they are required for the
libclc to link.

LLVM_NATIVE_TOOL_DIR is used to pass a path to the native tools built
via llvm-native instead of building them during the target and/or
nativesdk build.

The llvm-clc package is set to RPROVIDE libclc (and the recipe also
PROVIDEs libclc) in order to be compatible with the meta-clang packages
(and to be future-compatible with the split package after proper Clang
support is introduced to OE-Core).

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 meta/recipes-devtools/llvm/llvm_20.1.0.bb | 40 +++++++++++++++++++++++++++----
 1 file changed, 36 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index c1c4138e8cc16b8b4ddfa3355a6141b5fede569d..3ae920122248c1aa33b53bc34ecb8b5adc3b1c90 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -56,19 +56,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 +85,7 @@ 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}' \
                  "
 
 EXTRA_OECMAKE:append:class-target = "\
@@ -89,6 +93,7 @@ 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} \
                  "
 
 EXTRA_OECMAKE:append:class-nativesdk = "\
@@ -96,6 +101,7 @@ 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} \
                  "
 
 # patch out build host paths for reproducibility
@@ -124,17 +130,39 @@ do_install() {
 
         # Remove opt-viewer: https://llvm.org/docs/Remarks.html
         rm -rf ${D}${datadir}/opt-viewer
-        rmdir ${D}${datadir}
 
         # 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
+
+    # Try to clean up datadir if it is empty, but don't fail if there are
+    # libclc files there
+    rmdir ${D}${datadir} || true
 }
 
 do_install:append:class-native() {
 	install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV}
 	install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV}
 	ln -sf llvm-config${PV} ${D}${bindir}/llvm-config
+
+        if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} ; then
+            install -D -m 0755 ${B}/bin/prepare_builtins ${D}${bindir}/prepare_builtins
+        fi
 }
 
 SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess"
@@ -146,9 +174,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 = "${@bb.utils.filter('PACKAGECONFIG', 'libclc', d)}"
 
 RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks"
+RPROVIDES:${PN}-clc += "libclc"
 
 FILES:${PN}-bugpointpasses = "\
     ${libdir}/BugpointPasses.so \
@@ -181,6 +211,8 @@ FILES:${PN}-staticdev += "\
     ${libdir}/*.a \
 "
 
+FILES:${PN}-clc += "${datadir}/clc"
+
 INSANE_SKIP:${PN}-libllvm += "dev-so"
 
 BBCLASSEXTEND = "native nativesdk"

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 6/9] llvm: add SPIRV-LLVM-Translator support
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (4 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 5/9] llvm: support building libclc Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

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. In order to ease migration from
meta-clang and to ease future split, PROVIDE the spirv-llvm-translator
and make the llvm-spirv package RPROVIDE spirv-llvm-translator.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 .../llvm/llvm/spirv-internal-build.patch           | 30 +++++++++++++++++++
 meta/recipes-devtools/llvm/llvm_20.1.0.bb          | 35 ++++++++++++++++++----
 2 files changed, 60 insertions(+), 5 deletions(-)

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 0000000000000000000000000000000000000000..555d40f4fb07342cc204c7c578662688605b2cb1
--- /dev/null
+++ b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
@@ -0,0 +1,30 @@
+From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Date: Fri, 21 Mar 2025 17:17:52 +0200
+Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer
+
+If the SPIRV-LLVM-Translator is being built together with the LLVM, set
+the defines declaring whether SPIRV target is also included into the
+LLVM library or not. Otherwise llvm-spirv execution fails because
+spirv-ext option is registered twice.
+
+Upstream-Status: Pending [will be submitted upstream after internal clearance]
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+
+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,12 @@ if(LLVM_SPIRV_BUILD_EXTERNAL)
+     set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+     set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+   endif()
++else()
++  is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS)
++  if(spirv_present_result)
++    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 3ae920122248c1aa33b53bc34ecb8b5adc3b1c90..e869ecb30a5dad0aba0db9241824aa75cc47ac96 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -23,9 +23,19 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
 
 LLVM_RELEASE = "${PV}"
 
+SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715"
+# pattern: llvm_branch_200, currently there are no minor releases, so, no llvm_branch_201
+SPIRV_BRANCH = "llvm_release_${@oe.utils.trim_version('${PV}', 1).replace('.', '')}0"
+
+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://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 \
+           ${@bb.utils.contains('PACKAGECONFIG', 'spirv-llvm-translator', '${SRC_URI_SPIRV}', '', d)} \
            file://llvm-config \
            "
 SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a"
@@ -56,11 +66,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-llvm-translator"
 # 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-llvm-translator] = "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. ,,spirv-tools-native spirv-headers"
 
 #
 # Default to build all OE-Core supported target arches (user overridable).
@@ -70,7 +81,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-llvm-translator', '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 \
@@ -136,7 +149,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-llvm-translator', 'true', 'false', d)} &&
        [ "${CLASSOVERRIDE}" != "class-native" ] ; then
         rm -f  ${D}${bindir}/clang*
         rm -fr ${D}${libdir}/clang
@@ -174,11 +187,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 = "${@bb.utils.filter('PACKAGECONFIG', 'libclc', d)}"
+PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc ${PN}-spirv"
+PROVIDES = "${@bb.utils.filter('PACKAGECONFIG', 'libclc spirv-llvm-translator', d)}"
 
 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 \
@@ -213,6 +227,17 @@ 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"
 
+# SPIRV-LLVM-Translator provides only static libraries, they are included into
+# the llvm-spirv package.
+INSANE_SKIP:${PN}-spirv += "staticdev"
+
 BBCLASSEXTEND = "native nativesdk"

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 7/9] mesa: upgrade 24.0.7 -> 25.0.2
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (5 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 8/9] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

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.

License-Update: license text cleared and clarified.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 ...evert-meson-do-not-pull-in-clc-for-clover.patch | 53 --------------
 ...d-Include-missing-llvm-IR-header-Module.h.patch | 41 -----------
 .../files/0001-drisw-fix-build-without-dri3.patch  | 58 ---------------
 ...eno-don-t-encode-build-path-into-binaries.patch | 46 ++++++++++--
 ...ext-don-t-try-zink-if-not-enabled-in-mesa.patch | 42 -----------
 meta/recipes-graphics/mesa/mesa.inc                | 83 +++++++++++-----------
 6 files changed, 81 insertions(+), 242 deletions(-)

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 1711e22585a72d1909473e4d9716c4734d4c5eee..0000000000000000000000000000000000000000
--- 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 <f_l_k@t-online.de>
-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 <f_l_k@t-online.de>
----
- 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 82ad88a079c144153778120bf2a3c1d1c36a0c94..0000000000000000000000000000000000000000
--- 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 <raj.khem@gmail.com>
-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 <raj.khem@gmail.com>
----
- 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 <llvm/Analysis/TargetLibraryInfo.h>
- #include <llvm/IR/IRBuilder.h>
- #include <llvm/IR/LegacyPassManager.h>
-+#include <llvm/IR/Module.h>
- #include <llvm/IR/Verifier.h>
- #include <llvm/Target/TargetMachine.h>
- #include <llvm/MC/MCSubtargetInfo.h>
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 ab1615209063fb0b7bee74f3b49843790801e40a..0000000000000000000000000000000000000000
--- 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 <romain.naour@smile.fr>
-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 <romain.naour@smile.fr>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- 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 <dlfcn.h>
- #include "dri_common.h"
- #include "drisw_priv.h"
-+#ifdef HAVE_DRI3
- #include "dri3_priv.h"
-+#endif
- #include <X11/extensions/shmproto.h>
- #include <assert.h>
- #include <vulkan/vulkan_core.h>
-@@ -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 5975ab4472ecebc34ef1504904523de73c9f5c51..953a724dc092667a5ac6f19f6b41d4277fab4ba2 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/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 036a0b494539243e7850ba3ea24669e0749e2dd2..0000000000000000000000000000000000000000
--- 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 <romain.naour@smile.fr>
-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 <romain.naour@smile.fr>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- 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 f6a91a7002f8aebc8845eda7f339912e086839b5..3518ac488d46012652b62094b913e5ae8ce9b111 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -10,21 +10,17 @@ 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\
 "
 
-SRC_URI[sha256sum] = "7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a"
-PV = "24.0.7"
+SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97"
+PV = "25.0.2"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
@@ -38,8 +34,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 +72,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_AMD}${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 +131,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=enabled, -Dglvnd=disabled, libglvnd"
 
 # "gles" requires "opengl"
 PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled"
@@ -145,9 +139,9 @@ 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"
+# "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,-Dgallium-opencl=disabled,"
 
 PACKAGECONFIG[broadcom] = ""
 PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
@@ -157,13 +151,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 +167,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
@@ -187,8 +182,16 @@ GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '
 GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}"
 GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
 
+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 = ""
+
 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] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC},,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}"
 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 +245,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 +271,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 +341,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 +370,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:${PN}-megadriver += "dev-so"
+
 # Fix upgrade path from mesa to mesa-megadriver
 RREPLACES:mesa-megadriver = "mesa"
 RCONFLICTS:mesa-megadriver = "mesa"

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 8/9] bindgen-cli: a tool to generate Rust bindings
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (6 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-03-31 12:21 ` [PATCH v4 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
  2025-04-01  7:40 ` [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2 Mathieu Dubois-Briand
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

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 <dmitry.baryshkov@oss.qualcomm.com>
---
 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(+)

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 2b47d3103c03b1b8a11f40566fdd5334d906860d..953abed2a9433bf1842b92ca7fc0b99f4df8bcd9 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 <hongxu.jia@windriver.com>"
 RECIPE_MAINTAINER:pn-bash-completion = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-bc = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-bind = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-bindgen-cli = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-binutils = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-binutils-cross-${TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
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 0000000000000000000000000000000000000000..a758440c9d324a2f17e6b2fef296d0d0dbd5e450
--- /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 0000000000000000000000000000000000000000..5578fb3d18bf9cb622859ab3ff64ea23ea642e96
--- /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"

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v4 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (7 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 8/9] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
@ 2025-03-31 12:21 ` Dmitry Baryshkov
  2025-04-01  7:40 ` [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2 Mathieu Dubois-Briand
  9 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 12:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj, Zoltán Böszörményi

From: Zoltán Böszörményi <zboszor@gmail.com>

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 <zboszor@gmail.com>
[DB: merged "rusticl" and "clover" back to "opencl", reworked rust inheritance]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 ...vide-cross-compilation-arguments-to-LLVM-.patch | 67 ++++++++++++++++++++++
 meta/recipes-graphics/mesa/mesa.inc                | 20 +++++--
 2 files changed, 82 insertions(+), 5 deletions(-)

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 0000000000000000000000000000000000000000..9506a43376857afdf271aed3e08b8f0e3b54081b
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
@@ -0,0 +1,67 @@
+From b9cf34f39ca7e7546508ce2ab1f053edef5fc201 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+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(). Karol Herbst on IRC suggested
+that a proper fix should be to fix meson's rust.bindgen() to support
+cross-compilation. Carry this patch until meson is fixed.
+
+Upstream-Status: Inappropriate [OE-Specific]
+Link: https://github.com/mesonbuild/meson/issues/13591
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+---
+ 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 3518ac488d46012652b62094b913e5ae8ce9b111..4db08530bac9fd27a62ad9b8a336cfe072b0c20f 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -17,6 +17,7 @@ PE = "2"
 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-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch \
 "
 
 SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97"
@@ -45,7 +46,7 @@ PROVIDES = " \
     virtual/mesa \
     "
 
-inherit meson pkgconfig python3native gettext features_check
+inherit meson pkgconfig python3native gettext features_check rust
 
 BBCLASSEXTEND = "native nativesdk"
 
@@ -84,6 +85,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"
@@ -139,9 +143,15 @@ PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2
 # "egl" requires "opengl"
 PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
 
+BINDGEN_TARGET = "${TARGET_ARCH}-${TARGET_OS}${@['-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,-Dgallium-opencl=disabled,"
+PACKAGECONFIG[opencl] = " \
+    -Dgallium-opencl=icd -Dgallium-rusticl=true -Dbindgen-includedir=${STAGING_INCDIR} -Dbindgen-target=${BINDGEN_TARGET},\
+    -Dgallium-opencl=disabled -Dgallium-rusticl=false, \
+    bindgen-cli-native \
+"
 
 PACKAGECONFIG[broadcom] = ""
 PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
@@ -241,7 +251,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 \
@@ -347,7 +357,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.*"
@@ -361,7 +371,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 \

-- 
2.39.5



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
                   ` (8 preceding siblings ...)
  2025-03-31 12:21 ` [PATCH v4 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
@ 2025-04-01  7:40 ` Mathieu Dubois-Briand
  2025-04-01  8:06   ` Alexander Kanavin
                     ` (2 more replies)
  9 siblings, 3 replies; 20+ messages in thread
From: Mathieu Dubois-Briand @ 2025-04-01  7:40 UTC (permalink / raw)
  To: dmitry.baryshkov, openembedded-core
  Cc: Khem Raj, Zoltán Böszörményi

On Mon Mar 31, 2025 at 2:21 PM CEST, Dmitry Baryshkov via lists.openembedded.org wrote:
> libclc is required in order to build Intel drivers in Mesa 24.1 and
> later. Thus OE-Core is currently locked to the 24.0.x branch, which is
> no longer maintained, having last release in June 2024.
>
> A clean solution is to package Clang, then use it to build libclc and
> SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
> creating proper recipes for Clang is a long process (ongoing by Khem
> Raj).
>
> This patchset attempts to solve the issue in a simpler way: by building
> libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
> don't have to create target Clang recipes, there is no extra toolchain
> to support, etc. Clang binaries are creted as a part of the build
> process (in order to support building target packages), however it only
> hits the LLVM sysroot-native and is only used by the LLVM target build.
>
> Future work by Khem (once Clang is properly supported in OE-Core) should
> allow us to create proper recipes for libclc and spirv-llvm-translator
> and drop them from the llvm / clang recipe.
>
> I think this approach provides a good balance between OE-Core being
> stuck with the outdated Mesa release and being able to upgrade it,
> bringing support for new hardware.
>
> Last two patches of the series bring in RustiCL support, a new OpenCL
> implementation within Mesa. They are optional for the sake of the
> upgrade and can be dropped if there is any issue with those. RustiCL
> support is mostly compile-tested at this point.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---

Hi Dmitry,

Thanks for the new version.

It looks like we still have issues on the autobuilder, now during
oe-selftests. I truncated a bit the logs below.

ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
...
| FAILED: src/intel/shaders/intel_gfx80_shaders.spv
| /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
| /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found

But also a lot of issues with sstate tests:

2025-03-31 19:31:36,349 - oe-selftest - INFO - 6: 46/49 214/622 (88.62s) (0 failed) (sstatetests.SStateHashSameSigs.test_sstate_32_64_same_hash)
2025-03-31 19:31:36,349 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/srv/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 418, in test_sstate_32_64_same_hash
    self.sstate_hashtest("i686")
  File "/srv/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 409, in sstate_hashtest
    self.assertCountEqual(files1, files2)
  File "/usr/lib/python3.11/unittest/case.py", line 1233, in assertCountEqual
    self.fail(msg)
  File "/usr/lib/python3.11/unittest/case.py", line 703, in fail
    raise self.failureException(msg)
AssertionError: Element counts were not equal:
First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_install.sigdata.f1121eb56f1f6b8335722e32d0e21eb777e95ab4af83b777971f3666d1265bed'
First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_create_spdx.sigdata.4c53505a0e3a5bba214d854ae8eea7c551f794d6b85392564d7c3923180e5d7f'
First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_create_package_spdx.sigdata.cefe11ad38c3c40968e4757314ad08b91f9584c9845cbcf08cc8635e1216912e'
First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_populate_sysroot.sigdata.2e3e3b9c17855a8a865dd9e99c002016e697024fc93cdfed690b7d54bb05e34e'
First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_prepare_recipe_sysroot.sigdata.73d0df5170ce762727a517856505f3505b2c47f479affdddb242ddcad34d5e29'
...

https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1264
https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/1350
https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/1214

Can you have a look a these please?

-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-01  7:40 ` [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2 Mathieu Dubois-Briand
@ 2025-04-01  8:06   ` Alexander Kanavin
  2025-04-01  8:27   ` Mathieu Dubois-Briand
  2025-04-01 16:19   ` Dmitry Baryshkov
  2 siblings, 0 replies; 20+ messages in thread
From: Alexander Kanavin @ 2025-04-01  8:06 UTC (permalink / raw)
  To: mathieu.dubois-briand
  Cc: dmitry.baryshkov, openembedded-core, Khem Raj,
	Zoltán Böszörményi

On Tue, 1 Apr 2025 at 09:40, Mathieu Dubois-Briand via
lists.openembedded.org
<mathieu.dubois-briand=bootlin.com@lists.openembedded.org> wrote:
> It looks like we still have issues on the autobuilder, now during
> oe-selftests. I truncated a bit the logs below.
>
> ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
> ...
> | FAILED: src/intel/shaders/intel_gfx80_shaders.spv
> | /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
> | /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found

The particular failing selftests are:

2025-03-31 21:57:27,426 - oe-selftest - INFO - RESULTS -
runtime_test.TestImage.test_testimage_virgl_headless: FAILED (348.30s)
2025-03-31 21:57:27,426 - oe-selftest - INFO - RESULTS -
sstatetests.SStateHashSameSigs.test_sstate_32_64_same_hash: FAILED
(88.63s)
2025-03-31 21:57:27,426 - oe-selftest - INFO - RESULTS -
sstatetests.SStateHashSameSigs.test_sstate_sdk_arch_same_hash: FAILED
(102.40s)

On Fedora mesa-native seems to build ok in the virgl_headless test,
but then there's a different error:

runqemu - ERROR - Failed to run qemu: MESA-LOADER: failed to open dri:
/srv/pokybuild/yocto-worker/genericx86/build/build/tmp/work/x86_64-linux/mesa-native/25.0.2/recipe-sysroot-native/usr/lib/gbm/dri_gbm.so:
cannot open shared object file: No such file or directory (search
paths /srv/pokybuild/yocto-worker/genericx86/build/build/tmp/work/x86_64-linux/mesa-native/25.0.2/recipe-sysroot-native/usr/lib/gbm,
suffix _gbm)

Alex


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-01  7:40 ` [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2 Mathieu Dubois-Briand
  2025-04-01  8:06   ` Alexander Kanavin
@ 2025-04-01  8:27   ` Mathieu Dubois-Briand
  2025-04-01  8:41     ` Alexander Kanavin
  2025-04-01 16:19   ` Dmitry Baryshkov
  2 siblings, 1 reply; 20+ messages in thread
From: Mathieu Dubois-Briand @ 2025-04-01  8:27 UTC (permalink / raw)
  To: Mathieu Dubois-Briand, dmitry.baryshkov, openembedded-core
  Cc: Khem Raj, Zoltán Böszörményi

On Tue Apr 1, 2025 at 9:40 AM CEST, Mathieu Dubois-Briand wrote:
> On Mon Mar 31, 2025 at 2:21 PM CEST, Dmitry Baryshkov via lists.openembedded.org wrote:
> > libclc is required in order to build Intel drivers in Mesa 24.1 and
> > later. Thus OE-Core is currently locked to the 24.0.x branch, which is
> > no longer maintained, having last release in June 2024.
> >
> > A clean solution is to package Clang, then use it to build libclc and
> > SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
> > creating proper recipes for Clang is a long process (ongoing by Khem
> > Raj).
> >
> > This patchset attempts to solve the issue in a simpler way: by building
> > libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
> > don't have to create target Clang recipes, there is no extra toolchain
> > to support, etc. Clang binaries are creted as a part of the build
> > process (in order to support building target packages), however it only
> > hits the LLVM sysroot-native and is only used by the LLVM target build.
> >
> > Future work by Khem (once Clang is properly supported in OE-Core) should
> > allow us to create proper recipes for libclc and spirv-llvm-translator
> > and drop them from the llvm / clang recipe.
> >
> > I think this approach provides a good balance between OE-Core being
> > stuck with the outdated Mesa release and being able to upgrade it,
> > bringing support for new hardware.
> >
> > Last two patches of the series bring in RustiCL support, a new OpenCL
> > implementation within Mesa. They are optional for the sake of the
> > upgrade and can be dropped if there is any issue with those. RustiCL
> > support is mostly compile-tested at this point.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
>
> Hi Dmitry,
>
> Thanks for the new version.
>
> It looks like we still have issues on the autobuilder, now during
> oe-selftests. I truncated a bit the logs below.
>
> ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
> ...
> | FAILED: src/intel/shaders/intel_gfx80_shaders.spv
> | /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
> | /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found
>
> But also a lot of issues with sstate tests:
>
> 2025-03-31 19:31:36,349 - oe-selftest - INFO - 6: 46/49 214/622 (88.62s) (0 failed) (sstatetests.SStateHashSameSigs.test_sstate_32_64_same_hash)
> 2025-03-31 19:31:36,349 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
>   File "/srv/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 418, in test_sstate_32_64_same_hash
>     self.sstate_hashtest("i686")
>   File "/srv/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 409, in sstate_hashtest
>     self.assertCountEqual(files1, files2)
>   File "/usr/lib/python3.11/unittest/case.py", line 1233, in assertCountEqual
>     self.fail(msg)
>   File "/usr/lib/python3.11/unittest/case.py", line 703, in fail
>     raise self.failureException(msg)
> AssertionError: Element counts were not equal:
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_install.sigdata.f1121eb56f1f6b8335722e32d0e21eb777e95ab4af83b777971f3666d1265bed'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_create_spdx.sigdata.4c53505a0e3a5bba214d854ae8eea7c551f794d6b85392564d7c3923180e5d7f'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_create_package_spdx.sigdata.cefe11ad38c3c40968e4757314ad08b91f9584c9845cbcf08cc8635e1216912e'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_populate_sysroot.sigdata.2e3e3b9c17855a8a865dd9e99c002016e697024fc93cdfed690b7d54bb05e34e'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_prepare_recipe_sysroot.sigdata.73d0df5170ce762727a517856505f3505b2c47f479affdddb242ddcad34d5e29'
> ...
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1264
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/1350
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/1214
>
> Can you have a look a these please?

Also, I suspect this series is linked with this Xorg segfault in
parselogs.ParseLogsTest.test_parselogs:

Central error: Fatal server error:
***********************
[     1.468] 	compiled for 1.21.1.16, module version = 1.0.1
[     1.468] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     1.512] (EE)
[     1.512] (EE) Backtrace:
[     1.512] (EE) 0: /usr/bin/Xorg (xorg_backtrace+0x52) [0x566b2522]
[     1.512] (EE) 1: /usr/bin/Xorg (0x56583000+0x1332b5) [0x566b62b5]
[     1.512] (EE) 2: /lib/libc.so.6 (0xf75e8000+0x34060) [0xf761c060]
[     1.512] (EE) 3: /usr/lib/libgallium-25.0.2.so (0xf5140000+0x512634) [0xf5652634]
[     1.512] (EE)
[     1.512] (EE) Segmentation fault at address 0x0
[     1.512] (EE)
Fatal server error:
[     1.512] (EE) Caught signal 11 (Segmentation fault). Server aborting

https://autobuilder.yoctoproject.org/valkyrie/#/builders/11/builds/1274

-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-01  8:27   ` Mathieu Dubois-Briand
@ 2025-04-01  8:41     ` Alexander Kanavin
  0 siblings, 0 replies; 20+ messages in thread
From: Alexander Kanavin @ 2025-04-01  8:41 UTC (permalink / raw)
  To: mathieu.dubois-briand
  Cc: dmitry.baryshkov, openembedded-core, Khem Raj,
	Zoltán Böszörményi

On Tue, 1 Apr 2025 at 10:27, Mathieu Dubois-Briand via
lists.openembedded.org
<mathieu.dubois-briand=bootlin.com@lists.openembedded.org> wrote:
> Also, I suspect this series is linked with this Xorg segfault in
> parselogs.ParseLogsTest.test_parselogs:
>
> Central error: Fatal server error:
> ***********************
> [     1.468]    compiled for 1.21.1.16, module version = 1.0.1
> [     1.468]    ABI class: X.Org ANSI C Emulation, version 0.4
> [     1.512] (EE)
> [     1.512] (EE) Backtrace:
> [     1.512] (EE) 0: /usr/bin/Xorg (xorg_backtrace+0x52) [0x566b2522]
> [     1.512] (EE) 1: /usr/bin/Xorg (0x56583000+0x1332b5) [0x566b62b5]
> [     1.512] (EE) 2: /lib/libc.so.6 (0xf75e8000+0x34060) [0xf761c060]
> [     1.512] (EE) 3: /usr/lib/libgallium-25.0.2.so (0xf5140000+0x512634) [0xf5652634]
> [     1.512] (EE)
> [     1.512] (EE) Segmentation fault at address 0x0
> [     1.512] (EE)
> Fatal server error:
> [     1.512] (EE) Caught signal 11 (Segmentation fault). Server aborting
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/11/builds/1274

This one is specific to x86-x32. We've had to do this previously,
maybe it's not enough, or there's some other issue:
https://web.git.yoctoproject.org/poky/commit/?id=f32128bda2a035b01d2dbf7bc73738a310eb955c

I'd say we drop testing anything graphical from that platform, as the
only way to get it started is with fbdev. No one's using it.

Alex


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-01  7:40 ` [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2 Mathieu Dubois-Briand
  2025-04-01  8:06   ` Alexander Kanavin
  2025-04-01  8:27   ` Mathieu Dubois-Briand
@ 2025-04-01 16:19   ` Dmitry Baryshkov
  2025-04-01 16:28     ` Alexander Kanavin
  2 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-04-01 16:19 UTC (permalink / raw)
  To: Mathieu Dubois-Briand, openembedded-core
  Cc: Khem Raj, Zoltán Böszörményi

Hello Mathieu,

On 01/04/2025 10:40, Mathieu Dubois-Briand wrote:
> On Mon Mar 31, 2025 at 2:21 PM CEST, Dmitry Baryshkov via lists.openembedded.org wrote:
>> libclc is required in order to build Intel drivers in Mesa 24.1 and
>> later. Thus OE-Core is currently locked to the 24.0.x branch, which is
>> no longer maintained, having last release in June 2024.
>>
>> A clean solution is to package Clang, then use it to build libclc and
>> SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
>> creating proper recipes for Clang is a long process (ongoing by Khem
>> Raj).
>>
>> This patchset attempts to solve the issue in a simpler way: by building
>> libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
>> don't have to create target Clang recipes, there is no extra toolchain
>> to support, etc. Clang binaries are creted as a part of the build
>> process (in order to support building target packages), however it only
>> hits the LLVM sysroot-native and is only used by the LLVM target build.
>>
>> Future work by Khem (once Clang is properly supported in OE-Core) should
>> allow us to create proper recipes for libclc and spirv-llvm-translator
>> and drop them from the llvm / clang recipe.
>>
>> I think this approach provides a good balance between OE-Core being
>> stuck with the outdated Mesa release and being able to upgrade it,
>> bringing support for new hardware.
>>
>> Last two patches of the series bring in RustiCL support, a new OpenCL
>> implementation within Mesa. They are optional for the sake of the
>> upgrade and can be dropped if there is any issue with those. RustiCL
>> support is mostly compile-tested at this point.
>>
>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>> ---
> 
> Hi Dmitry,
> 
> Thanks for the new version.
> 
> It looks like we still have issues on the autobuilder, now during
> oe-selftests. I truncated a bit the logs below.
> 
> ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
> ...
> | FAILED: src/intel/shaders/intel_gfx80_shaders.spv
> | /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
> | /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found


I've fixed all other issues, except the x32 (working on reproducing it 
now) and this one. Would you have a pointer to the build job?


> 
> But also a lot of issues with sstate tests:
> 
> 2025-03-31 19:31:36,349 - oe-selftest - INFO - 6: 46/49 214/622 (88.62s) (0 failed) (sstatetests.SStateHashSameSigs.test_sstate_32_64_same_hash)
> 2025-03-31 19:31:36,349 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
>    File "/srv/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 418, in test_sstate_32_64_same_hash
>      self.sstate_hashtest("i686")
>    File "/srv/pokybuild/yocto-worker/oe-selftest-debian/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 409, in sstate_hashtest
>      self.assertCountEqual(files1, files2)
>    File "/usr/lib/python3.11/unittest/case.py", line 1233, in assertCountEqual
>      self.fail(msg)
>    File "/usr/lib/python3.11/unittest/case.py", line 703, in fail
>      raise self.failureException(msg)
> AssertionError: Element counts were not equal:
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_install.sigdata.f1121eb56f1f6b8335722e32d0e21eb777e95ab4af83b777971f3666d1265bed'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_create_spdx.sigdata.4c53505a0e3a5bba214d854ae8eea7c551f794d6b85392564d7c3923180e5d7f'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_create_package_spdx.sigdata.cefe11ad38c3c40968e4757314ad08b91f9584c9845cbcf08cc8635e1216912e'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_populate_sysroot.sigdata.2e3e3b9c17855a8a865dd9e99c002016e697024fc93cdfed690b7d54bb05e34e'
> First has 1, Second has 0:  '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53795/tmp-sstatesamehash/stamps/core2-32-poky-linux/mesa/25.0.2.do_prepare_recipe_sysroot.sigdata.73d0df5170ce762727a517856505f3505b2c47f479affdddb242ddcad34d5e29'
> ...
> 
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1264
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/1350
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/48/builds/1214
> 
> Can you have a look a these please?
> 


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-01 16:19   ` Dmitry Baryshkov
@ 2025-04-01 16:28     ` Alexander Kanavin
  2025-04-02  1:45       ` Dmitry Baryshkov
  0 siblings, 1 reply; 20+ messages in thread
From: Alexander Kanavin @ 2025-04-01 16:28 UTC (permalink / raw)
  To: dmitry.baryshkov
  Cc: Mathieu Dubois-Briand, openembedded-core, Khem Raj,
	Zoltán Böszörményi

On Tue, 1 Apr 2025 at 18:19, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> > ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
> > ...
> > | FAILED: src/intel/shaders/intel_gfx80_shaders.spv
> > | /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
> > | /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found
>
>
> I've fixed all other issues, except the x32 (working on reproducing it
> now) and this one. Would you have a pointer to the build job?

https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1264/steps/14/logs/stdio

This is in context of oe-selftest, but it is simply building
qemu-system-native on debian 12 - I suspect the mesa-native fail is
specific to that host distro. I can try to reproduce if you need help
with it.

Alex


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-01 16:28     ` Alexander Kanavin
@ 2025-04-02  1:45       ` Dmitry Baryshkov
  2025-04-02  6:55         ` Mathieu Dubois-Briand
  0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-04-02  1:45 UTC (permalink / raw)
  To: Alexander Kanavin
  Cc: Mathieu Dubois-Briand, openembedded-core, Khem Raj,
	Zoltán Böszörményi

On 01/04/2025 19:28, Alexander Kanavin wrote:
> On Tue, 1 Apr 2025 at 18:19, Dmitry Baryshkov via
> lists.openembedded.org
> <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
>>> ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
>>> ...
>>> | FAILED: src/intel/shaders/intel_gfx80_shaders.spv
>>> | /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
>>> | /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found
>>
>>
>> I've fixed all other issues, except the x32 (working on reproducing it
>> now) and this one. Would you have a pointer to the build job?
> 
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1264/steps/14/logs/stdio
> 
> This is in context of oe-selftest, but it is simply building
> qemu-system-native on debian 12 - I suspect the mesa-native fail is
> specific to that host distro. I can try to reproduce if you need help
> with it.

It's really strange as my build host is Debian 12. And it's even more 
strange as mesa-clc was built few lines above (16406).

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-02  1:45       ` Dmitry Baryshkov
@ 2025-04-02  6:55         ` Mathieu Dubois-Briand
  2025-04-02  7:56           ` Alexander Kanavin
  0 siblings, 1 reply; 20+ messages in thread
From: Mathieu Dubois-Briand @ 2025-04-02  6:55 UTC (permalink / raw)
  To: Dmitry Baryshkov, Alexander Kanavin
  Cc: openembedded-core, Khem Raj,
	Zoltán Böszörményi

On Wed Apr 2, 2025 at 3:45 AM CEST, Dmitry Baryshkov wrote:
> On 01/04/2025 19:28, Alexander Kanavin wrote:
>> On Tue, 1 Apr 2025 at 18:19, Dmitry Baryshkov via
>> lists.openembedded.org
>> <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
>>>> ERROR: mesa-native-2_25.0.2-r0 do_compile: Execution of '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/temp/run.do_compile.506477' failed with exit code 1
>>>> ...
>>>> | FAILED: src/intel/shaders/intel_gfx80_shaders.spv
>>>> | /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc ../mesa-25.0.2/src/intel/shaders/libintel_shaders.h ../mesa-25.0.2/src/intel/shaders/generate.cl ../mesa-25.0.2/src/intel/shaders/generate_draws.cl ../mesa-25.0.2/src/intel/shaders/generate_draws_iris.cl ../mesa-25.0.2/src/intel/shaders/query_copy.cl ../mesa-25.0.2/src/intel/shaders/util.cl -o src/intel/shaders/intel_gfx80_shaders.spv -- -DNDEBUG=1 -DGFX_VERx10=80 -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/shaders/. -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/compiler/libcl -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/intel -I/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/mesa-25.0.2/src/intel/genxml
>>>> | /bin/sh: 1: /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-53842/tmp/work/x86_64-linux/mesa-native/25.0.2/build/src/compiler/clc/mesa_clc: not found
>>>
>>>
>>> I've fixed all other issues, except the x32 (working on reproducing it
>>> now) and this one. Would you have a pointer to the build job?
>> 
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1264/steps/14/logs/stdio
>> 
>> This is in context of oe-selftest, but it is simply building
>> qemu-system-native on debian 12 - I suspect the mesa-native fail is
>> specific to that host distro. I can try to reproduce if you need help
>> with it.
>
> It's really strange as my build host is Debian 12. And it's even more 
> strange as mesa-clc was built few lines above (16406).

Ok, I will try to play a bit with it today, let's see if I can reproduce
easily.

I launched a rebuild of the previous job there:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/1274
I will try to reproduce it locally a bit later today.

Also, maybe this is linked with other fails. So if you have a new
version of your series fixing them, feel free to send it, I will be
happy to test it.


-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-02  6:55         ` Mathieu Dubois-Briand
@ 2025-04-02  7:56           ` Alexander Kanavin
  2025-04-02 12:50             ` Dmitry Baryshkov
  0 siblings, 1 reply; 20+ messages in thread
From: Alexander Kanavin @ 2025-04-02  7:56 UTC (permalink / raw)
  To: Mathieu Dubois-Briand
  Cc: Dmitry Baryshkov, openembedded-core, Khem Raj,
	Zoltán Böszörményi

On Wed, 2 Apr 2025 at 08:55, Mathieu Dubois-Briand
<mathieu.dubois-briand@bootlin.com> wrote:
 >
> > It's really strange as my build host is Debian 12. And it's even more
> > strange as mesa-clc was built few lines above (16406).
>
> Ok, I will try to play a bit with it today, let's see if I can reproduce
> easily.

I took v4, and ran 'bitbake mesa-native' on the exact build host
(debian-12-vk-1) where it happened, and it built without issues.
mesa_clc is built and used in build logs.

If this happens again, we should take care to preserve the failing
build directory, so it can be inspected post-mortem. 'Not found' error
can be misleading: it may mean there's a problem with one of the
libraries, or the executable is somehow in an incorrect format, etc.

Alex


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2
  2025-04-02  7:56           ` Alexander Kanavin
@ 2025-04-02 12:50             ` Dmitry Baryshkov
  0 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-04-02 12:50 UTC (permalink / raw)
  To: Alexander Kanavin, Mathieu Dubois-Briand
  Cc: openembedded-core, Khem Raj,
	Zoltán Böszörményi

On 02/04/2025 10:56, Alexander Kanavin wrote:
> On Wed, 2 Apr 2025 at 08:55, Mathieu Dubois-Briand
> <mathieu.dubois-briand@bootlin.com> wrote:
>   >
>>> It's really strange as my build host is Debian 12. And it's even more
>>> strange as mesa-clc was built few lines above (16406).
>>
>> Ok, I will try to play a bit with it today, let's see if I can reproduce
>> easily.
> 
> I took v4, and ran 'bitbake mesa-native' on the exact build host
> (debian-12-vk-1) where it happened, and it built without issues.
> mesa_clc is built and used in build logs.
> 
> If this happens again, we should take care to preserve the failing
> build directory, so it can be inspected post-mortem. 'Not found' error
> can be misleading: it may mean there's a problem with one of the
> libraries, or the executable is somehow in an incorrect format, etc.

Okay, I was able to reproduce the issue. It happens when the llvm-native 
was built with a different build-dir as the current build, because then 
the other build-dir (which might not exist ATM) crawls into llvm-config 
--ldflags.

For example, I caught this while doing builds in build-test, while the 
sstate-cache contained llvm-native build from the build-test-st (from 
selftests builds).

-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-04-02 12:50 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-31 12:21 [PATCH v4 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 3/9] llvm: handle libdir in llvm-config Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 4/9] llvm: also use llvm-config wrapper for nativesdk recipes Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 5/9] llvm: support building libclc Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 8/9] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
2025-03-31 12:21 ` [PATCH v4 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
2025-04-01  7:40 ` [OE-core] [PATCH v4 0/9] mesa: upgrade to 25.0.2 Mathieu Dubois-Briand
2025-04-01  8:06   ` Alexander Kanavin
2025-04-01  8:27   ` Mathieu Dubois-Briand
2025-04-01  8:41     ` Alexander Kanavin
2025-04-01 16:19   ` Dmitry Baryshkov
2025-04-01 16:28     ` Alexander Kanavin
2025-04-02  1:45       ` Dmitry Baryshkov
2025-04-02  6:55         ` Mathieu Dubois-Briand
2025-04-02  7:56           ` Alexander Kanavin
2025-04-02 12:50             ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox