* [PATCH v2 0/7] mesa: upgrade to 25.0.2
@ 2025-03-27 22:18 Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 1/7] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
` (8 more replies)
0 siblings, 9 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
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.
Changes since v1:
- 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
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Dmitry Baryshkov (6):
llvm: move libLLVM.so.N.M to llvm-libllvm package
llvm: use OECMAKE_SOURCEPATH to specify cmake dir
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 ++
...ossCompile-pass-SPIR-V-headers-path-.patch | 40 ++++
.../llvm/llvm/fix-native-compilation.patch | 67 +++++++
.../llvm/llvm/spirv-internal-build.patch | 27 +++
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 76 ++++++-
...-meson-do-not-pull-in-clc-for-clover.patch | 53 -----
...lude-missing-llvm-IR-header-Module.h.patch | 41 ----
.../0001-drisw-fix-build-without-dri3.patch | 58 ------
...on-t-encode-build-path-into-binaries.patch | 46 ++++-
...son-use-target-path-for-Clang-libdir.patch | 57 ++++++
...cross-compilation-arguments-to-LLVM-.patch | 64 ++++++
...on-t-try-zink-if-not-enabled-in-mesa.patch | 42 ----
meta/recipes-graphics/mesa/mesa.inc | 102 +++++-----
15 files changed, 625 insertions(+), 254 deletions(-)
create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc
create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
create mode 100644 meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
create mode 100644 meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch
create mode 100644 meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch
create mode 100644 meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
--
2.39.5
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 1/7] llvm: move libLLVM.so.N.M to llvm-libllvm package
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 2/7] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
` (7 subsequent siblings)
8 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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 7ffc6ec1cb8a..296a164cdd7f 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -19,6 +19,7 @@ VER_SUFFIX = ""
PV .= "${VER_SUFFIX}"
MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}"
+MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
LLVM_RELEASE = "${PV}"
@@ -152,7 +153,7 @@ FILES:${PN}-bugpointpasses = "\
FILES:${PN}-libllvm = "\
${libdir}/libLLVM-${MAJOR_VERSION}.so \
- ${libdir}/libLLVM.so.${MAJOR_VER}.${MINOR_VER} \
+ ${libdir}/libLLVM.so.${MAJ_MIN_VERSION} \
"
FILES:${PN}-liblto += "\
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/7] llvm: use OECMAKE_SOURCEPATH to specify cmake dir
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 1/7] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 3/7] llvm: support building libclc Dmitry Baryshkov
` (6 subsequent siblings)
8 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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 296a164cdd7f..7470d2b4d8a5 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -24,15 +24,17 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
LLVM_RELEASE = "${PV}"
SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \
- file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
- file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
+ file://0007-llvm-allow-env-override-of-exe-path.patch \
+ file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \
file://llvm-config \
"
SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a"
UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project"
UPSTREAM_CHECK_REGEX = "llvmorg-(?P<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 v2 3/7] llvm: support building libclc
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 1/7] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 2/7] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-28 9:35 ` [OE-core] " Alexander Kanavin
2025-03-27 22:18 ` [PATCH v2 4/7] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
` (5 subsequent siblings)
8 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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 (and
clang) as a part of the build process. Don't install clang into the
target system, it is only used during the build process. Proper handling
of clang as a toolchain is a separate and much more complicated topic.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
.../llvm/llvm/fix-native-compilation.patch | 67 +++++++++++++++++++
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 43 ++++++++++--
2 files changed, 106 insertions(+), 4 deletions(-)
create mode 100644 meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch
diff --git a/meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch b/meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch
new file mode 100644
index 000000000000..4d51b6617cc4
--- /dev/null
+++ b/meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch
@@ -0,0 +1,67 @@
+From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Date: Fri, 21 Mar 2025 17:17:52 +0200
+Subject: [PATCH] cmake/modules/CrossCompile: fix NATIVE build setup
+
+Fix variables being passed to cmake when generating NATIVE build dir.
+
+Upstream-Status: Inappropriate [OE-Specific build-system fix]
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+
+Index: llvm-project-20.1.0.src/llvm/cmake/modules/CrossCompile.cmake
+===================================================================
+--- llvm-project-20.1.0.src.orig/llvm/cmake/modules/CrossCompile.cmake
++++ llvm-project-20.1.0.src/llvm/cmake/modules/CrossCompile.cmake
+@@ -23,19 +23,37 @@ function(llvm_create_cross_target projec
+ if (EXISTS ${LLVM_MAIN_SRC_DIR}/cmake/platforms/${toolchain}.cmake)
+ set(CROSS_TOOLCHAIN_FLAGS_INIT
+ -DCMAKE_TOOLCHAIN_FILE=\"${LLVM_MAIN_SRC_DIR}/cmake/platforms/${toolchain}.cmake\")
++ elseif (${target_name} STREQUAL NATIVE)
++ set(CROSS_TOOLCHAIN_FLAGS_INIT
++ -DCMAKE_C_COMPILER=\"${LLVM_NATIVE_C_COMPILER}\"
++ -DCMAKE_CXX_COMPILER=\"${LLVM_NATIVE_CXX_COMPILER}\"
++ -DCMAKE_C_FLAGS=\"${LLVM_NATIVE_C_FLAGS}\"
++ -DCMAKE_CXX_FLAGS=\"${LLVM_NATIVE_CXX_FLAGS}\"
++ -DCMAKE_EXE_LINKER_FLAGS=\"${LLVM_NATIVE_LD_FLAGS}\"
++ )
+ elseif (NOT CMAKE_CROSSCOMPILING)
+ set(CROSS_TOOLCHAIN_FLAGS_INIT
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ )
+ endif()
+ set(CROSS_TOOLCHAIN_FLAGS_${target_name} ${CROSS_TOOLCHAIN_FLAGS_INIT}
+ CACHE STRING "Toolchain configuration for ${target_name}")
+
+ # project specific version of the flags up above
+ set(CROSS_TOOLCHAIN_FLAGS_${project_name}_${target_name} ""
+ CACHE STRING "Toolchain configuration for ${project_name}_${target_name}")
+
++ if (${target_name} STREQUAL NATIVE)
++ set(cross_flags
++ "-DLLVM_DEFAULT_TARGET_TRIPLE='${LLVM_NATIVE_TRIPLE}'")
++ else()
++ set(cross_flags
++ "-DLLVM_DEFAULT_TARGET_TRIPLE='${LLVM_TARGET_TRIPLE}'"
++ "-DLLVM_TARGET_ARCH='${LLVM_TARGET_ARCH}'"
++ "-DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE")
++ endif()
++
+ if (buildtype)
+ set(build_type_flags "-DCMAKE_BUILD_TYPE=${buildtype}")
+ endif()
+@@ -91,12 +111,11 @@ function(llvm_create_cross_target projec
+ -DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_C_COMPILER_LAUNCHER}"
+ -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CXX_COMPILER_LAUNCHER}"
+ ${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_CURRENT_SOURCE_DIR}
++ #${CROSS_TOOLCHAIN_FLAGS_INIT} ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CROSS_TOOLCHAIN_FLAGS_${project_name}_${target_name}}
+- -DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE
++ ${cross_flags}
+ -DLLVM_TARGETS_TO_BUILD="${targets_to_build_arg}"
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${experimental_targets_to_build_arg}"
+- -DLLVM_DEFAULT_TARGET_TRIPLE="${LLVM_TARGET_TRIPLE}"
+- -DLLVM_TARGET_ARCH="${LLVM_TARGET_ARCH}"
+ -DLLVM_ENABLE_PROJECTS="${llvm_enable_projects_arg}"
+ -DLLVM_EXTERNAL_PROJECTS="${llvm_external_projects_arg}"
+ -DLLVM_ENABLE_RUNTIMES="${llvm_enable_runtimes_arg}"
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 7470d2b4d8a5..0fb336ee7747 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -26,8 +26,10 @@ LLVM_RELEASE = "${PV}"
SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \
file://0007-llvm-allow-env-override-of-exe-path.patch \
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \
+ file://fix-native-compilation.patch \
file://llvm-config \
"
+
SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a"
UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project"
UPSTREAM_CHECK_REGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)"
@@ -56,19 +58,22 @@ def get_llvm_arch(bb, d, arch_var):
def get_llvm_host_arch(bb, d):
return get_llvm_arch(bb, d, 'HOST_ARCH')
-PACKAGECONFIG ??= "libllvm"
+PACKAGECONFIG ??= "libllvm libclc"
# if optviewer OFF, force the modules to be not found or the ones on the host would be found
PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml"
PACKAGECONFIG[libllvm] = ""
+PACKAGECONFIG[libclc] = ""
#
# Default to build all OE-Core supported target arches (user overridable).
#
-LLVM_TARGETS ?= "AMDGPU;${@get_llvm_host_arch(bb, d)}"
+LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}"
ARM_INSTRUCTION_SET:armv5 = "arm"
ARM_INSTRUCTION_SET:armv4t = "arm"
+LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}"
+
EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
-DLLVM_ENABLE_PIC=ON \
@@ -82,6 +87,13 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
-DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
+ -DLLVM_NATIVE_TRIPLE='${BUILD_SYS}' \
+ -DLLVM_NATIVE_C_COMPILER=\'${@ d.getVar('BUILD_CC').replace('ccache', '').strip()}\' \
+ -DLLVM_NATIVE_CXX_COMPILER=\'${@ d.getVar('BUILD_CXX').replace('ccache', '').strip()}\' \
+ -DLLVM_NATIVE_C_FLAGS='${BUILD_CFLAGS}' \
+ -DLLVM_NATIVE_CXX_FLAGS='${BUILD_CXXFLAGS}' \
+ -DLLVM_NATIVE_LD_FLAGS='${BUILD_LDFLAGS}' \
"
EXTRA_OECMAKE:append:class-target = "\
@@ -89,6 +101,8 @@ EXTRA_OECMAKE:append:class-target = "\
-DLLVM_HOST_TRIPLE=${TARGET_SYS} \
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
-DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
+ -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
+ -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
"
EXTRA_OECMAKE:append:class-nativesdk = "\
@@ -96,6 +110,8 @@ EXTRA_OECMAKE:append:class-nativesdk = "\
-DLLVM_HOST_TRIPLE=${SDK_SYS} \
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
-DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
+ -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
+ -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
"
# patch out build host paths for reproducibility
@@ -124,11 +140,26 @@ do_install() {
# Remove opt-viewer: https://llvm.org/docs/Remarks.html
rm -rf ${D}${datadir}/opt-viewer
- rmdir ${D}${datadir}
+ rmdir ${D}${datadir} || true
# reproducibility
sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake
fi
+
+ # Remove clang bits from target packages, we are not providing it for the system
+ if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} &&
+ [ "${CLASSOVERRIDE}" != "class-native" ] ; then
+ rm -f ${D}${bindir}/clang*
+ rm -fr ${D}${libdir}/clang
+ rm -fr ${D}${datadir}/clang
+
+ rm -f ${D}${bindir}/scan*
+ rm -fr ${D}${libdir}/libscanbuild
+ rm -fr ${D}${datadir}/scan-build
+ rm -fr ${D}${datadir}/scan-view
+
+ rm -fr ${D}${libdir}/libear
+ fi
}
do_install:append:class-native() {
@@ -145,9 +176,11 @@ llvm_sysroot_preprocess() {
ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
}
-PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto"
+PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc"
+PROVIDES = "libclc"
RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks"
+RPROVIDES:${PN}-clc += "libclc"
FILES:${PN}-bugpointpasses = "\
${libdir}/BugpointPasses.so \
@@ -180,6 +213,8 @@ FILES:${PN}-staticdev += "\
${libdir}/*.a \
"
+FILES:${PN}-clc += "${datadir}/clc"
+
INSANE_SKIP:${PN}-libllvm += "dev-so"
BBCLASSEXTEND = "native nativesdk"
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 4/7] llvm: add SPIRV-LLVM-Translator support
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (2 preceding siblings ...)
2025-03-27 22:18 ` [PATCH v2 3/7] llvm: support building libclc Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-28 9:42 ` [OE-core] " Alexander Kanavin
2025-03-27 22:18 ` [PATCH v2 5/7] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
` (4 subsequent siblings)
8 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
| 40 +++++++++++++++++++
.../llvm/llvm/spirv-internal-build.patch | 27 +++++++++++++
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 32 ++++++++++++---
3 files changed, 94 insertions(+), 5 deletions(-)
create mode 100644 meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
create mode 100644 meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
--git a/meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch b/meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
new file mode 100644
index 000000000000..316a6bdbf2b1
--- /dev/null
+++ b/meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
@@ -0,0 +1,40 @@
+From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Date: Fri, 21 Mar 2025 17:17:52 +0200
+Subject: [PATCH] cmake/modules/CrossCompile: pass SPIR-V headers path to
+ native build
+
+In case LLVM is being built together with SPIRV-LLVM-Translator, it
+might be required to pass LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR define
+to the native build too. Extend native build setup to pass that variable
+to the called cmake too.
+
+Upstream-Status: Inappropriate [OE-Specific build-system fix]
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+---
+ llvm/cmake/modules/CrossCompile.cmake | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/llvm/cmake/modules/CrossCompile.cmake b/llvm/cmake/modules/CrossCompile.cmake
+index 3b31d3e218a3..24b62f4ff8af 100644
+--- a/llvm/cmake/modules/CrossCompile.cmake
++++ b/llvm/cmake/modules/CrossCompile.cmake
+@@ -81,6 +81,10 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype)
+ set(libc_flags -DLLVM_LIBC_GPU_BUILD=ON)
+ endif()
+
++ if (LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR)
++ set(spirv_headers "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR}")
++ endif()
++
+ add_custom_command(OUTPUT ${${project_name}_${target_name}_BUILD}/CMakeCache.txt
+ COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
+ -DCMAKE_MAKE_PROGRAM="${CMAKE_MAKE_PROGRAM}"
+@@ -101,6 +105,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype)
+ -DLLVM_INCLUDE_BENCHMARKS=OFF
+ -DLLVM_INCLUDE_TESTS=OFF
+ ${build_type_flags} ${linker_flag} ${external_clang_dir} ${libc_flags}
++ ${spirv_headers}
+ ${ARGN}
+ WORKING_DIRECTORY ${${project_name}_${target_name}_BUILD}
+ DEPENDS CREATE_${project_name}_${target_name}
diff --git a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
new file mode 100644
index 000000000000..14233d312870
--- /dev/null
+++ b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
@@ -0,0 +1,27 @@
+From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <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
+
+Upstream-Status: Pending
+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,14 @@ if(LLVM_SPIRV_BUILD_EXTERNAL)
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+ endif()
++else()
++ message(STATUS "Internal LLVM library")
++ is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS)
++ if(spirv_present_result)
++ message(STATUS "Found SPIR-V Backend")
++ set(SPIRV_BACKEND_FOUND TRUE)
++ add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT)
++ endif()
+ endif()
+
+ set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 0fb336ee7747..df2c497c14cc 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -23,10 +23,20 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
LLVM_RELEASE = "${PV}"
+SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715"
+SPIRV_BRANCH = "llvm_release_200"
+
+SRC_URI_SPIRV = " \
+ git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \
+ file://0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch \
+ file://spirv-internal-build.patch \
+"
+
SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \
file://0007-llvm-allow-env-override-of-exe-path.patch \
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \
file://fix-native-compilation.patch \
+ ${@bb.utils.contains('PACKAGECONFIG', 'spirv', '${SRC_URI_SPIRV}', '', d)} \
file://llvm-config \
"
@@ -58,11 +68,12 @@ def get_llvm_arch(bb, d, arch_var):
def get_llvm_host_arch(bb, d):
return get_llvm_arch(bb, d, 'HOST_ARCH')
-PACKAGECONFIG ??= "libllvm libclc"
+PACKAGECONFIG ??= "libllvm libclc spirv"
# if optviewer OFF, force the modules to be not found or the ones on the host would be found
PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml"
PACKAGECONFIG[libllvm] = ""
PACKAGECONFIG[libclc] = ""
+PACKAGECONFIG[spirv] = "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. ,,spirv-tools-native spirv-headers"
#
# Default to build all OE-Core supported target arches (user overridable).
@@ -72,7 +83,9 @@ LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}"
ARM_INSTRUCTION_SET:armv5 = "arm"
ARM_INSTRUCTION_SET:armv4t = "arm"
-LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}"
+LLVM_PROJECTS_CLANG = "${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv', 'clang', '', d)}"
+LLVM_PROJECTS_CLC = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ';libclc', '', d)}"
+LLVM_PROJECTS = "${LLVM_PROJECTS_CLANG}${LLVM_PROJECTS_CLC}"
EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
@@ -147,7 +160,7 @@ do_install() {
fi
# Remove clang bits from target packages, we are not providing it for the system
- if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} &&
+ if ${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv', 'true', 'false', d)} &&
[ "${CLASSOVERRIDE}" != "class-native" ] ; then
rm -f ${D}${bindir}/clang*
rm -fr ${D}${libdir}/clang
@@ -176,11 +189,12 @@ llvm_sysroot_preprocess() {
ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
}
-PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc"
-PROVIDES = "libclc"
+PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc ${PN}-spirv"
+PROVIDES = "libclc spirv-llvm-translator"
RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks"
RPROVIDES:${PN}-clc += "libclc"
+RPROVIDES:${PN}-spirv += "spirv-llvm-translator"
FILES:${PN}-bugpointpasses = "\
${libdir}/BugpointPasses.so \
@@ -215,6 +229,14 @@ FILES:${PN}-staticdev += "\
FILES:${PN}-clc += "${datadir}/clc"
+FILES:${PN}-spirv = " \
+ ${bindir}/llvm-spirv \
+ ${includedir}/LLVMSPIRVLib \
+ ${libdir}/pkgconfig/LLVMSPIRVLib.pc \
+ ${libdir}/libLLVMSPIRV* \
+"
+
INSANE_SKIP:${PN}-libllvm += "dev-so"
+INSANE_SKIP:${PN}-spirv += "staticdev"
BBCLASSEXTEND = "native nativesdk"
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 5/7] mesa: upgrade 24.0.7 -> 25.0.2
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (3 preceding siblings ...)
2025-03-27 22:18 ` [PATCH v2 4/7] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-28 9:57 ` [OE-core] " Alexander Kanavin
2025-03-27 22:18 ` [PATCH v2 6/7] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
` (3 subsequent siblings)
8 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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.
Changelog:
https://docs.mesa3d.org/relnotes/25.0.2.html
License-Update: license text cleared and clarified.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
...-meson-do-not-pull-in-clc-for-clover.patch | 53 ------------
| 41 ---------
.../0001-drisw-fix-build-without-dri3.patch | 58 -------------
...on-t-encode-build-path-into-binaries.patch | 46 ++++++++--
...son-use-target-path-for-Clang-libdir.patch | 57 +++++++++++++
...on-t-try-zink-if-not-enabled-in-mesa.patch | 42 ----------
meta/recipes-graphics/mesa/mesa.inc | 84 ++++++++++---------
7 files changed, 139 insertions(+), 242 deletions(-)
delete mode 100644 meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch
delete mode 100644 meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
diff --git a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch b/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
deleted file mode 100644
index 1711e22585a7..000000000000
--- a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 051f41beda540f0ae77b341db01a6de83c9e938a Mon Sep 17 00:00:00 2001
-From: Markus Volk <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 82ad88a079c1..000000000000
--- a/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 777d69cf15b80ab1f109a4936d6e4801c4b0e0f3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <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 ab1615209063..000000000000
--- a/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001
-From: Romain Naour <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 5975ab4472ec..953a724dc092 100644
--- a/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch
+++ b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch
@@ -22,18 +22,29 @@ diff --git a/src/freedreno/afuc/meson.build b/src/freedreno/afuc/meson.build
index bb7cebf5a748..351cc31ef2de 100644
--- a/src/freedreno/afuc/meson.build
+++ b/src/freedreno/afuc/meson.build
-@@ -56,6 +56,7 @@ if with_tests
+@@ -56,10 +56,12 @@ if with_tests
asm_fw = custom_target('afuc_test.fw',
output: 'afuc_test.fw',
- command: [asm, '-g', '6', files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'],
+ command: [asm, files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'],
++ env: {'RNN_PATH': rnn_src_path},
+ )
+ asm_fw_a7xx = custom_target('afuc_test_a7xx.fw',
+ output: 'afuc_test_a7xx.fw',
+ command: [asm, files('../.gitlab-ci/traces/afuc_test_a7xx.asm'), '@OUTPUT@'],
+ env: {'RNN_PATH': rnn_src_path},
)
test('afuc-asm',
diff,
-@@ -120,6 +122,7 @@ if cc.sizeof('size_t') > 4
+@@ -120,11 +122,13 @@ if cc.sizeof('size_t') > 4
disasm_fw = custom_target('afuc_test.asm',
output: 'afuc_test.asm',
- command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw'), '-g', '630'],
+ command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw')],
++ env: {'RNN_PATH': rnn_src_path},
+ capture: true
+ )
+ disasm_fw_a7xx = custom_target('afuc_test_a7xx.asm',
+ output: 'afuc_test_a7xx.asm',
+ command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw')],
+ env: {'RNN_PATH': rnn_src_path},
capture: true
)
@@ -71,8 +82,29 @@ index 98e49b8fcf0e..145e72597eb9 100644
-rnn_path = rnn_src_path + ':' + get_option('prefix') + '/' + rnn_install_path
+rnn_path = get_option('prefix') + '/' + rnn_install_path
- dep_lua = dependency('lua54', 'lua53', 'lua52', 'lua', required: false,
- allow_fallback: true, version: '>=5.2')
---
+ dep_libarchive = dependency('libarchive', allow_fallback: true, required: false)
+ dep_libxml2 = dependency('libxml-2.0', allow_fallback: true, required: false)
+diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py
+--- a/src/freedreno/registers/gen_header.py
++++ b/src/freedreno/registers/gen_header.py
+@@ -885,13 +885,14 @@ The rules-ng-ng source files this header
+ """)
+ maxlen = 0
+ for filepath in p.xml_files:
+- maxlen = max(maxlen, len(filepath))
++ maxlen = max(maxlen, len(os.path.basename(filepath)))
+ for filepath in p.xml_files:
+- pad = " " * (maxlen - len(filepath))
++ filename = os.path.basename(filepath)
++ pad = " " * (maxlen - len(filename))
+ filesize = str(os.path.getsize(filepath))
+ filesize = " " * (7 - len(filesize)) + filesize
+ filetime = time.ctime(os.path.getmtime(filepath))
+- print("- " + filepath + pad + " (" + filesize + " bytes, from " + filetime + ")")
++ print("- " + filename + pad + " (" + filesize + " bytes, from " + filetime + ")")
+ if p.copyright_year:
+ current_year = str(datetime.date.today().year)
+ print()
+---
2.39.2
diff --git a/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch b/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch
new file mode 100644
index 000000000000..4747738a4868
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch
@@ -0,0 +1,57 @@
+From f2202e7c0d4cbf5ea9c9c783c3926c1b298e8464 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Date: Wed, 26 Mar 2025 12:19:10 +0200
+Subject: [PATCH] meson: use target path for Clang libdir
+
+Instead of trying to detect the target libdir through llvm-config tool
+(and ending up with the sysroot path), get libdir from the build
+options. Clang is known to use the same libdir in OE build environment.
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+---
+ meson.build | 2 +-
+ src/compiler/clc/meson.build | 3 ++-
+ src/gallium/frontends/clover/meson.build | 2 +-
+ 3 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 095aec5d9ead..c0e47813cc34 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1895,7 +1895,7 @@ endif
+
+ dep_clang = null_dep
+ if with_clc or with_gallium_clover
+- llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir')
++ llvm_libdir = join_paths(get_option('prefix'), get_option('libdir'))
+
+ dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false)
+
+diff --git a/src/compiler/clc/meson.build b/src/compiler/clc/meson.build
+index 743cd236bb5c..ea9e83519330 100644
+--- a/src/compiler/clc/meson.build
++++ b/src/compiler/clc/meson.build
+@@ -8,7 +8,8 @@ files_libmesaclc = files(
+ )
+
+ _libmesaclc_c_args = []
+-_libmesaclc_cpp_args = ['-DLLVM_LIB_DIR="@0@"'.format(llvm_libdir)]
++_libmesaclc_cpp_args = ['-DLLVM_LIB_DIR="@0@"'.format(
++ join_paths(get_option('prefix'), get_option('libdir')))]
+ _libmesaclc_sources = []
+
+ if not _shared_llvm
+diff --git a/src/gallium/frontends/clover/meson.build b/src/gallium/frontends/clover/meson.build
+index e569b86a1bea..0f7b50716179 100644
+--- a/src/gallium/frontends/clover/meson.build
++++ b/src/gallium/frontends/clover/meson.build
+@@ -44,7 +44,7 @@ libclllvm = static_library(
+ clover_cpp_args,
+ clover_opencl_cpp_args,
+ '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths(
+- dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir'), 'clang',
++ get_option('prefix'), get_option('libdir'), 'clang',
+ dep_llvm.version(), 'include',
+ )),
+ ],
diff --git a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
deleted file mode 100644
index 036a0b494539..000000000000
--- a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001
-From: Romain Naour <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 f6a91a7002f8..e52a6394bb1a 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -10,21 +10,18 @@ HOMEPAGE = "http://mesa3d.org"
BUGTRACKER = "https://bugs.freedesktop.org"
SECTION = "x11"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
+LIC_FILES_CHKSUM = "file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11"
PE = "2"
SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
- file://0001-drisw-fix-build-without-dri3.patch \
- file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \
- file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \
- file://0001-amd-Include-missing-llvm-IR-header-Module.h.patch \
file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\
+ file://0001-meson-use-target-path-for-Clang-libdir.patch \
"
-SRC_URI[sha256sum] = "7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a"
-PV = "24.0.7"
+SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97"
+PV = "25.0.2"
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
@@ -38,8 +35,7 @@ do_install:append() {
fi
}
-DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native"
-DEPENDS:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'mesa-native', '', d)}"
+DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native"
EXTRANATIVEPATH += "chrpath-native"
PROVIDES = " \
${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \
@@ -77,44 +73,43 @@ EXTRA_OEMESON = " \
-Dplatforms='${@",".join("${PLATFORMS}".split())}' \
"
-EXTRA_OEMESON:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=system', '', d)}"
-EXTRA_OEMESON:append:class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=enabled', '', d)}"
-
def strip_comma(s):
return s.strip(',')
+
PACKAGECONFIG = " \
gallium \
video-codecs \
${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'dri3', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
"
-PACKAGECONFIG:append:class-native = " gallium-llvm r600"
+PACKAGECONFIG:append:x86 = " libclc gallium-llvm"
+PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm"
+PACKAGECONFIG:append:class-native = " libclc gallium-llvm r600"
# "gbm" requires "opengl"
PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled"
-X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr"
+X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence"
# "x11" requires "opengl"
PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols"
-PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence"
+VULKAN_DRIVERS_AMD = ""
+VULKAN_DRIVERS_AMD:x86 = ",amd"
+VULKAN_DRIVERS_AMD:x86-64 = ",amd"
+# i686 is a 32 bit override for mesa-native
+VULKAN_DRIVERS_AMD:i686 = ",amd"
+
+VULKAN_DRIVERS_INTEL = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ',intel', '', d)}"
+VULKAN_DRIVERS_LLVM = ",swrast${VULKAN_DRIVERS_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 +132,7 @@ PACKAGECONFIG[freedreno-fdperf] = ",,libconfig"
PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}"
PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
-PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd"
+PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=disabled, libglvnd"
# "gles" requires "opengl"
PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled"
@@ -145,9 +140,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 +152,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 +168,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 +183,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 +246,7 @@ RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'lib
PACKAGES =+ "libegl-mesa libegl-mesa-dev \
libosmesa libosmesa-dev \
+ libgallium \
libgl-mesa libgl-mesa-dev \
libglx-mesa libglx-mesa-dev \
libglapi libglapi-dev \
@@ -267,13 +272,6 @@ do_install:append () {
rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc
}
-do_install:append:class-native () {
- if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'true', 'false', d)}; then
- install -d ${D}${bindir}
- install -m0755 ${B}/src/intel/compiler/intel_clc ${D}${bindir}
- fi
-}
-
# For the packages that make up the OpenGL interfaces, inject variables so that
# they don't get Debian-renamed (which would remove the -mesa suffix), and
# RPROVIDEs/RCONFLICTs on the generic libgl name.
@@ -344,7 +342,8 @@ FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
-FILES:libgbm = "${libdir}/libgbm.so.*"
+FILES:libgbm = "${libdir}/libgbm.so.* ${libdir}/gbm/*_gbm.so"
+FILES:libgallium = "${libdir}/libgallium-*.so"
FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
FILES:libgl-mesa = "${libdir}/libGL.so.*"
@@ -372,6 +371,9 @@ FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \
FILES:${PN}-tools = "${bindir} ${datadir}"
ALLOW_EMPTY:${PN}-tools = "1"
+# All DRI drivers are symlinks to libdril_dri.so
+INSANE_SKIP:mesa-megadriver += "dev-so"
+
# Fix upgrade path from mesa to mesa-megadriver
RREPLACES:mesa-megadriver = "mesa"
RCONFLICTS:mesa-megadriver = "mesa"
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 6/7] bindgen-cli: a tool to generate Rust bindings
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (4 preceding siblings ...)
2025-03-27 22:18 ` [PATCH v2 5/7] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 7/7] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
` (2 subsequent siblings)
8 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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(+)
create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc
create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 2b47d3103c03..953abed2a943 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -64,6 +64,7 @@ RECIPE_MAINTAINER:pn-bash = "Hongxu Jia <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 000000000000..a758440c9d32
--- /dev/null
+++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc
@@ -0,0 +1,186 @@
+# Autogenerated with 'bitbake -c update_crates bindgen-cli'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.1.3 \
+ crate://crates.io/annotate-snippets/0.11.4 \
+ crate://crates.io/anstyle/1.0.10 \
+ crate://crates.io/autocfg/1.4.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.2.1 \
+ crate://crates.io/block/0.1.6 \
+ crate://crates.io/cc/1.2.2 \
+ crate://crates.io/cexpr/0.6.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clang-sys/1.8.1 \
+ crate://crates.io/clap/4.1.4 \
+ crate://crates.io/clap_complete/4.2.0 \
+ crate://crates.io/clap_derive/4.1.0 \
+ crate://crates.io/clap_lex/0.3.1 \
+ crate://crates.io/either/1.13.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/env_logger/0.8.4 \
+ crate://crates.io/errno/0.3.10 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/getrandom/0.2.15 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.9 \
+ crate://crates.io/hermit-abi/0.4.0 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.13 \
+ crate://crates.io/itertools/0.13.0 \
+ crate://crates.io/libc/0.2.167 \
+ crate://crates.io/libloading/0.8.6 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/log/0.4.22 \
+ crate://crates.io/malloc_buf/0.0.6 \
+ crate://crates.io/memchr/2.7.4 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/objc/0.2.7 \
+ crate://crates.io/once_cell/1.20.2 \
+ crate://crates.io/os_str_bytes/6.4.1 \
+ crate://crates.io/owo-colors/4.1.0 \
+ crate://crates.io/prettyplease/0.2.25 \
+ crate://crates.io/proc-macro-error-attr/1.0.4 \
+ crate://crates.io/proc-macro-error/1.0.4 \
+ crate://crates.io/proc-macro2/1.0.92 \
+ crate://crates.io/quickcheck/1.0.3 \
+ crate://crates.io/quote/1.0.37 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex-automata/0.4.9 \
+ crate://crates.io/regex-syntax/0.8.5 \
+ crate://crates.io/regex/1.11.1 \
+ crate://crates.io/rustc-hash/2.1.0 \
+ crate://crates.io/rustix/0.37.27 \
+ crate://crates.io/shlex/1.3.0 \
+ crate://crates.io/similar/2.6.0 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.90 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/unicode-ident/1.0.14 \
+ crate://crates.io/unicode-width/0.1.14 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-sys/0.52.0 \
+ crate://crates.io/windows-targets/0.48.5 \
+ crate://crates.io/windows-targets/0.52.6 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
+ crate://crates.io/windows_aarch64_gnullvm/0.52.6 \
+ crate://crates.io/windows_aarch64_msvc/0.48.5 \
+ crate://crates.io/windows_aarch64_msvc/0.52.6 \
+ crate://crates.io/windows_i686_gnu/0.48.5 \
+ crate://crates.io/windows_i686_gnu/0.52.6 \
+ crate://crates.io/windows_i686_gnullvm/0.52.6 \
+ crate://crates.io/windows_i686_msvc/0.48.5 \
+ crate://crates.io/windows_i686_msvc/0.52.6 \
+ crate://crates.io/windows_x86_64_gnu/0.48.5 \
+ crate://crates.io/windows_x86_64_gnu/0.52.6 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
+ crate://crates.io/windows_x86_64_gnullvm/0.52.6 \
+ crate://crates.io/windows_x86_64_msvc/0.48.5 \
+ crate://crates.io/windows_x86_64_msvc/0.52.6 \
+"
+
+SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+SRC_URI[annotate-snippets-0.11.4.sha256sum] = "24e35ed54e5ea7997c14ed4c70ba043478db1112e98263b3b035907aa197d991"
+SRC_URI[anstyle-1.0.10.sha256sum] = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
+SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.2.1.sha256sum] = "24a6904aef64d73cf10ab17ebace7befb918b82164785cb89907993be7f83813"
+SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+SRC_URI[cc-1.2.2.sha256sum] = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
+SRC_URI[clap-4.1.4.sha256sum] = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
+SRC_URI[clap_complete-4.2.0.sha256sum] = "01c22dcfb410883764b29953103d9ef7bb8fe21b3fa1158bc99986c2067294bd"
+SRC_URI[clap_derive-4.1.0.sha256sum] = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8"
+SRC_URI[clap_lex-0.3.1.sha256sum] = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade"
+SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[errno-0.3.10.sha256sum] = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.9.sha256sum] = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+SRC_URI[hermit-abi-0.4.0.sha256sum] = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.13.sha256sum] = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
+SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+SRC_URI[libc-0.2.167.sha256sum] = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
+SRC_URI[libloading-0.8.6.sha256sum] = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
+SRC_URI[os_str_bytes-6.4.1.sha256sum] = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+SRC_URI[owo-colors-4.1.0.sha256sum] = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56"
+SRC_URI[prettyplease-0.2.25.sha256sum] = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro2-1.0.92.sha256sum] = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+SRC_URI[rustc-hash-2.1.0.sha256sum] = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
+SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+SRC_URI[similar-2.6.0.sha256sum] = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.90.sha256sum] = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[unicode-ident-1.0.14.sha256sum] = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
+SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
\ No newline at end of file
diff --git a/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
new file mode 100644
index 000000000000..5578fb3d18bf
--- /dev/null
+++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Automatically generates Rust FFI bindings to C and C++ libraries."
+HOMEPAGE = "https://rust-lang.github.io/rust-bindgen/"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0b9a98cb3dcdefcceb145324693fda9b"
+
+inherit rust cargo cargo-update-recipe-crates
+
+SRC_URI += "git://github.com/rust-lang/rust-bindgen.git;protocol=https;branch=main"
+SRCREV = "af7fd38d5e80514406fb6a8bba2d407d252c30b9"
+S = "${WORKDIR}/git"
+
+require ${BPN}-crates.inc
+
+do_install:append:class-native() {
+ create_wrapper ${D}/${bindir}/bindgen LIBCLANG_PATH="${STAGING_LIBDIR_NATIVE}"
+}
+
+BBCLASSEXTEND = "native"
--
2.39.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 7/7] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (5 preceding siblings ...)
2025-03-27 22:18 ` [PATCH v2 6/7] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
@ 2025-03-27 22:18 ` Dmitry Baryshkov
2025-03-28 9:59 ` [OE-core] " Alexander Kanavin
2025-03-28 4:33 ` [PATCH v2 0/7] mesa: upgrade to 25.0.2 Khem Raj
2025-03-28 9:18 ` Mathieu Dubois-Briand
8 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-27 22:18 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>
---
...cross-compilation-arguments-to-LLVM-.patch | 64 +++++++++++++++++++
meta/recipes-graphics/mesa/mesa.inc | 20 ++++--
2 files changed, 79 insertions(+), 5 deletions(-)
create mode 100644 meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
diff --git a/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
new file mode 100644
index 000000000000..c9213fbe4eec
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
@@ -0,0 +1,64 @@
+From b9cf34f39ca7e7546508ce2ab1f053edef5fc201 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <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().
+
+Upstream-Status: Inappropriate [OE-Specific]
+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 e52a6394bb1a..153de1d8701d 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -18,6 +18,7 @@ SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\
file://0001-meson-use-target-path-for-Clang-libdir.patch \
+ file://0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch \
"
SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97"
@@ -46,7 +47,7 @@ PROVIDES = " \
virtual/mesa \
"
-inherit meson pkgconfig python3native gettext features_check
+inherit meson pkgconfig python3native gettext features_check rust
BBCLASSEXTEND = "native nativesdk"
@@ -85,6 +86,9 @@ PACKAGECONFIG = " \
${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
"
+# skip all Rust dependencies if we are not building OpenCL"
+INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}"
+
PACKAGECONFIG:append:x86 = " libclc gallium-llvm"
PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm"
PACKAGECONFIG:append:class-native = " libclc gallium-llvm r600"
@@ -140,9 +144,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}${LIBCEXTENSION}${@['-gnu', ''][d.getVar('LIBCEXTENSION') != '']}"
+
# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG!
# Be sure to enable them both for the target and for the native build.
-PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd,-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"
@@ -242,7 +252,7 @@ RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev"
RDEPENDS:libgles2-mesa += "libgles3-mesa"
ALLOW_EMPTY:libgles3-mesa = "1"
-RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools', '', d)}"
+RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools spirv-llvm-translator', '', d)}"
PACKAGES =+ "libegl-mesa libegl-mesa-dev \
libosmesa libosmesa-dev \
@@ -348,7 +358,7 @@ FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
FILES:libgl-mesa = "${libdir}/libGL.so.*"
FILES:libglx-mesa = "${libdir}/libGLX*.so.*"
-FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/mesa.icd"
+FILES:libopencl-mesa = "${libdir}/lib*OpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/*.icd"
FILES:libglapi = "${libdir}/libglapi.so.*"
FILES:libosmesa = "${libdir}/libOSMesa.so.*"
FILES:libxatracker = "${libdir}/libxatracker.so.*"
@@ -362,7 +372,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: [PATCH v2 0/7] mesa: upgrade to 25.0.2
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (6 preceding siblings ...)
2025-03-27 22:18 ` [PATCH v2 7/7] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
@ 2025-03-28 4:33 ` Khem Raj
2025-03-28 11:01 ` Dmitry Baryshkov
2025-03-28 9:18 ` Mathieu Dubois-Briand
8 siblings, 1 reply; 20+ messages in thread
From: Khem Raj @ 2025-03-28 4:33 UTC (permalink / raw)
To: Dmitry Baryshkov; +Cc: openembedded-core
On Thu, Mar 27, 2025 at 3:18 PM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> 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.
I took a look at the patchset, I don't have any particular objection to it.
Since this is too late for walnascar release I think this will be considered
for next release only atm. In that case, Since clang is also deferred until
next release I wonder if we should do it along with clang merge into core
but then I don't see big conflicts in there, it could even make mesa stable
and a good litmus test for clang merge if that happens after it.
>
> Changes since v1:
> - 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
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>
> Dmitry Baryshkov (6):
> llvm: move libLLVM.so.N.M to llvm-libllvm package
> llvm: use OECMAKE_SOURCEPATH to specify cmake dir
> 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 ++
> ...ossCompile-pass-SPIR-V-headers-path-.patch | 40 ++++
> .../llvm/llvm/fix-native-compilation.patch | 67 +++++++
> .../llvm/llvm/spirv-internal-build.patch | 27 +++
> meta/recipes-devtools/llvm/llvm_20.1.0.bb | 76 ++++++-
> ...-meson-do-not-pull-in-clc-for-clover.patch | 53 -----
> ...lude-missing-llvm-IR-header-Module.h.patch | 41 ----
> .../0001-drisw-fix-build-without-dri3.patch | 58 ------
> ...on-t-encode-build-path-into-binaries.patch | 46 ++++-
> ...son-use-target-path-for-Clang-libdir.patch | 57 ++++++
> ...cross-compilation-arguments-to-LLVM-.patch | 64 ++++++
> ...on-t-try-zink-if-not-enabled-in-mesa.patch | 42 ----
> meta/recipes-graphics/mesa/mesa.inc | 102 +++++-----
> 15 files changed, 625 insertions(+), 254 deletions(-)
> create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc
> create mode 100644 meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
> create mode 100644 meta/recipes-devtools/llvm/llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
> create mode 100644 meta/recipes-devtools/llvm/llvm/fix-native-compilation.patch
> create mode 100644 meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
> delete mode 100644 meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
> delete mode 100644 meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch
> delete mode 100644 meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
> create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-use-target-path-for-Clang-libdir.patch
> create mode 100644 meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
> delete mode 100644 meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
>
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 0/7] mesa: upgrade to 25.0.2
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (7 preceding siblings ...)
2025-03-28 4:33 ` [PATCH v2 0/7] mesa: upgrade to 25.0.2 Khem Raj
@ 2025-03-28 9:18 ` Mathieu Dubois-Briand
2025-03-28 10:56 ` Dmitry Baryshkov
8 siblings, 1 reply; 20+ messages in thread
From: Mathieu Dubois-Briand @ 2025-03-28 9:18 UTC (permalink / raw)
To: dmitry.baryshkov, openembedded-core; +Cc: Khem Raj
On Thu Mar 27, 2025 at 11:18 PM CET, 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.
>
> Changes since v1:
> - 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
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Hi,
Thanks for the v2, but it looks like we still have some issues on the
autobuilder:
ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: File /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/dri/libdril_dri.so in package nativesdk-mesa-megadriver contains reference to TMPDIR [buildpaths]
ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: nativesdk-mesa-megadriver: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/dri/libdril_dri.so contains bad RPATH /srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/usr/lib:/srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/lib [rpaths]
ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: File /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/libgallium-25.0.2.so in package nativesdk-libgallium contains reference to TMPDIR [buildpaths]
ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: nativesdk-libgallium: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/libgallium-25.0.2.so contains bad RPATH /srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/usr/lib:/srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/lib [rpaths]
ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: Fatal QA errors were found, failing task.
https://autobuilder.yoctoproject.org/valkyrie/#/builders/4/builds/1288
https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/1289
--
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 v2 3/7] llvm: support building libclc
2025-03-27 22:18 ` [PATCH v2 3/7] llvm: support building libclc Dmitry Baryshkov
@ 2025-03-28 9:35 ` Alexander Kanavin
2025-03-28 10:55 ` Dmitry Baryshkov
0 siblings, 1 reply; 20+ messages in thread
From: Alexander Kanavin @ 2025-03-28 9:35 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: openembedded-core, Khem Raj
On Thu, 27 Mar 2025 at 23:18, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> +Fix variables being passed to cmake when generating NATIVE build dir.
> +
> +Upstream-Status: Inappropriate [OE-Specific build-system fix]
Please write a better, detailed explanation of what the patch does.
Why do we need it in the first place?
> -LLVM_TARGETS ?= "AMDGPU;${@get_llvm_host_arch(bb, d)}"
> +LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}"
Why this addition? Needs to be explained in commit message.
> +LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}"
> +
Same.
> + -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
> + -DLLVM_NATIVE_TRIPLE='${BUILD_SYS}' \
> + -DLLVM_NATIVE_C_COMPILER=\'${@ d.getVar('BUILD_CC').replace('ccache', '').strip()}\' \
> + -DLLVM_NATIVE_CXX_COMPILER=\'${@ d.getVar('BUILD_CXX').replace('ccache', '').strip()}\' \
> + -DLLVM_NATIVE_C_FLAGS='${BUILD_CFLAGS}' \
> + -DLLVM_NATIVE_CXX_FLAGS='${BUILD_CXXFLAGS}' \
> + -DLLVM_NATIVE_LD_FLAGS='${BUILD_LDFLAGS}' \
Same.
> EXTRA_OECMAKE:append:class-target = "\
> @@ -89,6 +101,8 @@ EXTRA_OECMAKE:append:class-target = "\
> -DLLVM_HOST_TRIPLE=${TARGET_SYS} \
> -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
> -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
> + -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
> + -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
Same.
> EXTRA_OECMAKE:append:class-nativesdk = "\
> @@ -96,6 +110,8 @@ EXTRA_OECMAKE:append:class-nativesdk = "\
> -DLLVM_HOST_TRIPLE=${SDK_SYS} \
> -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
> -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
> + -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
> + -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
Same.
> # patch out build host paths for reproducibility
> @@ -124,11 +140,26 @@ do_install() {
>
> # Remove opt-viewer: https://llvm.org/docs/Remarks.html
> rm -rf ${D}${datadir}/opt-viewer
> - rmdir ${D}${datadir}
> + rmdir ${D}${datadir} || true
Same.
> + # 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
Why does this need to be done, if we're only adding libclc? Is it
dependent on those bits being built?
> +PROVIDES = "libclc"
> +RPROVIDES:${PN}-clc += "libclc"
Why these additions?
Alex
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 4/7] llvm: add SPIRV-LLVM-Translator support
2025-03-27 22:18 ` [PATCH v2 4/7] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
@ 2025-03-28 9:42 ` Alexander Kanavin
0 siblings, 0 replies; 20+ messages in thread
From: Alexander Kanavin @ 2025-03-28 9:42 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: openembedded-core, Khem Raj
On Thu, 27 Mar 2025 at 23:18, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> +Upstream-Status: Inappropriate [OE-Specific build-system fix]
What makes it inappropriate? I know people commonly use 'oe-core
specific' as a shortcut, but there really should be a proper
explanation.
> +Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer
> +
> +Upstream-Status: Pending
Fix handling how? Pending why?
> +INSANE_SKIP:${PN}-spirv += "staticdev"
Why this tweak?
I understand you want to get to a working patchset as quickly as
possible, but please do not take shortcuts with explaining what you
did and why. We need to make sure someone else can understand what is
going on.
Alex
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 5/7] mesa: upgrade 24.0.7 -> 25.0.2
2025-03-27 22:18 ` [PATCH v2 5/7] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
@ 2025-03-28 9:57 ` Alexander Kanavin
0 siblings, 0 replies; 20+ messages in thread
From: Alexander Kanavin @ 2025-03-28 9:57 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: openembedded-core, Khem Raj
On Thu, 27 Mar 2025 at 23:18, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> +Subject: [PATCH] meson: use target path for Clang libdir
> +
> +Instead of trying to detect the target libdir through llvm-config tool
> +(and ending up with the sysroot path), get libdir from the build
> +options. Clang is known to use the same libdir in OE build environment.
llvm-config should probably be tweaked to return the correct value
instead? Then this patch is unnecessary. Alternatively, we can perhaps
offer the patch upstream, explaining why dep_llvm.get_variable(cmake :
'LLVM_LIBRARY_DIR', configtool: 'libdir') won't work in cross-builds?
> -PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd"
> +PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=disabled, libglvnd"
This change is somewhat puzzling - true and false match, but true and
disabled do not.
Alex
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 7/7] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
2025-03-27 22:18 ` [PATCH v2 7/7] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
@ 2025-03-28 9:59 ` Alexander Kanavin
0 siblings, 0 replies; 20+ messages in thread
From: Alexander Kanavin @ 2025-03-28 9:59 UTC (permalink / raw)
To: dmitry.baryshkov
Cc: openembedded-core, Khem Raj,
Zoltán Böszörményi
On Thu, 27 Mar 2025 at 23:18, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> +Subject: [PATCH] rusticl: provide cross-compilation arguments to LLVM bindgen
> + invocation
> +
> +Correctly generating LLVM bindings requires several croos-compilation
> +arguments. Provide them to rust.bindgen().
> +
> +Upstream-Status: Inappropriate [OE-Specific]
This patch does look like it should be submitted upstream.
Alex
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 3/7] llvm: support building libclc
2025-03-28 9:35 ` [OE-core] " Alexander Kanavin
@ 2025-03-28 10:55 ` Dmitry Baryshkov
2025-03-28 11:00 ` Alexander Kanavin
0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-28 10:55 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: openembedded-core, Khem Raj
On Fri, Mar 28, 2025 at 10:35:37AM +0100, Alexander Kanavin wrote:
> On Thu, 27 Mar 2025 at 23:18, Dmitry Baryshkov via
> lists.openembedded.org
> <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> > +Fix variables being passed to cmake when generating NATIVE build dir.
> > +
> > +Upstream-Status: Inappropriate [OE-Specific build-system fix]
>
> Please write a better, detailed explanation of what the patch does.
> Why do we need it in the first place?
ack
>
> > -LLVM_TARGETS ?= "AMDGPU;${@get_llvm_host_arch(bb, d)}"
> > +LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}"
>
> Why this addition? Needs to be explained in commit message.
ack, I'll split it to a separate patch
>
> > +LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}"
> > +
>
> Same.
Well... This is kind of described in the commit message, but I will
expand the clang part.
>
> > + -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
> > + -DLLVM_NATIVE_TRIPLE='${BUILD_SYS}' \
> > + -DLLVM_NATIVE_C_COMPILER=\'${@ d.getVar('BUILD_CC').replace('ccache', '').strip()}\' \
> > + -DLLVM_NATIVE_CXX_COMPILER=\'${@ d.getVar('BUILD_CXX').replace('ccache', '').strip()}\' \
> > + -DLLVM_NATIVE_C_FLAGS='${BUILD_CFLAGS}' \
> > + -DLLVM_NATIVE_CXX_FLAGS='${BUILD_CXXFLAGS}' \
> > + -DLLVM_NATIVE_LD_FLAGS='${BUILD_LDFLAGS}' \
>
> Same.
>
> > EXTRA_OECMAKE:append:class-target = "\
> > @@ -89,6 +101,8 @@ EXTRA_OECMAKE:append:class-target = "\
> > -DLLVM_HOST_TRIPLE=${TARGET_SYS} \
> > -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
> > -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
> > + -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
> > + -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
>
> Same.
>
> > EXTRA_OECMAKE:append:class-nativesdk = "\
> > @@ -96,6 +110,8 @@ EXTRA_OECMAKE:append:class-nativesdk = "\
> > -DLLVM_HOST_TRIPLE=${SDK_SYS} \
> > -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
> > -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
> > + -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
> > + -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \
>
> Same.
>
> > # patch out build host paths for reproducibility
> > @@ -124,11 +140,26 @@ do_install() {
> >
> > # Remove opt-viewer: https://llvm.org/docs/Remarks.html
> > rm -rf ${D}${datadir}/opt-viewer
> > - rmdir ${D}${datadir}
> > + rmdir ${D}${datadir} || true
>
> Same.
Ack
>
> > + # 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
>
> Why does this need to be done, if we're only adding libclc? Is it
> dependent on those bits being built?
This definitely is described in the commit message: 'Don't install clang
into the target system, it is only used during the build process.'
>
> > +PROVIDES = "libclc"
> > +RPROVIDES:${PN}-clc += "libclc"
>
> Why these additions?
>
> Alex
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 0/7] mesa: upgrade to 25.0.2
2025-03-28 9:18 ` Mathieu Dubois-Briand
@ 2025-03-28 10:56 ` Dmitry Baryshkov
0 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-28 10:56 UTC (permalink / raw)
To: Mathieu Dubois-Briand; +Cc: openembedded-core, Khem Raj
On Fri, Mar 28, 2025 at 10:18:05AM +0100, Mathieu Dubois-Briand wrote:
> On Thu Mar 27, 2025 at 11:18 PM CET, 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.
> >
> > Changes since v1:
> > - 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
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>
> Hi,
>
> Thanks for the v2, but it looks like we still have some issues on the
> autobuilder:
>
> ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: File /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/dri/libdril_dri.so in package nativesdk-mesa-megadriver contains reference to TMPDIR [buildpaths]
> ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: nativesdk-mesa-megadriver: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/dri/libdril_dri.so contains bad RPATH /srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/usr/lib:/srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/lib [rpaths]
> ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: File /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/libgallium-25.0.2.so in package nativesdk-libgallium contains reference to TMPDIR [buildpaths]
> ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: QA Issue: nativesdk-libgallium: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/libgallium-25.0.2.so contains bad RPATH /srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/usr/lib:/srv/pokybuild/yocto-worker/meta-intel/build/build/tmp/work/x86_64-linux/llvm-native/20.1.0/recipe-sysroot-native/lib [rpaths]
> ERROR: nativesdk-mesa-2_25.0.2-r0 do_package_qa: Fatal QA errors were found, failing task.
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/4/builds/1288
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/1289
I will take a look at the SDK builds, thanks!
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 3/7] llvm: support building libclc
2025-03-28 10:55 ` Dmitry Baryshkov
@ 2025-03-28 11:00 ` Alexander Kanavin
0 siblings, 0 replies; 20+ messages in thread
From: Alexander Kanavin @ 2025-03-28 11:00 UTC (permalink / raw)
To: Dmitry Baryshkov; +Cc: openembedded-core, Khem Raj
On Fri, 28 Mar 2025 at 11:55, Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > + # 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
> >
> > Why does this need to be done, if we're only adding libclc? Is it
> > dependent on those bits being built?
>
> This definitely is described in the commit message: 'Don't install clang
> into the target system, it is only used during the build process.'
What I don't understand is why target executables are being built, if
we only need to build a target library. If they can't be run directly,
how are they used during the build process?
Alex
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/7] mesa: upgrade to 25.0.2
2025-03-28 4:33 ` [PATCH v2 0/7] mesa: upgrade to 25.0.2 Khem Raj
@ 2025-03-28 11:01 ` Dmitry Baryshkov
2025-03-28 11:03 ` [OE-core] " Alexander Kanavin
0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-28 11:01 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core
On Thu, Mar 27, 2025 at 09:33:26PM -0700, Khem Raj wrote:
> On Thu, Mar 27, 2025 at 3:18 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> 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.
>
> I took a look at the patchset, I don't have any particular objection to it.
> Since this is too late for walnascar release I think this will be considered
> for next release only atm.
I was kind of hoping that this can get into walnascar, but it seems we
missed the boat. I saw that the branch was created this night.
> In that case, Since clang is also deferred until
> next release I wonder if we should do it along with clang merge into core
As I wrote earlier, I think we should not be left with the outdated
Mesa. Otherwise, we lack modern hardware support. I really fear that
it will take several more months to land proper Clang support (sorry).
> but then I don't see big conflicts in there, it could even make mesa stable
> and a good litmus test for clang merge if that happens after it.
I tried to stay as close as possible to the upcoming changes, as
possible
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 0/7] mesa: upgrade to 25.0.2
2025-03-28 11:01 ` Dmitry Baryshkov
@ 2025-03-28 11:03 ` Alexander Kanavin
2025-03-28 11:20 ` Dmitry Baryshkov
0 siblings, 1 reply; 20+ messages in thread
From: Alexander Kanavin @ 2025-03-28 11:03 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: Khem Raj, openembedded-core
On Fri, 28 Mar 2025 at 12:01, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> As I wrote earlier, I think we should not be left with the outdated
> Mesa. Otherwise, we lack modern hardware support. I really fear that
> it will take several more months to land proper Clang support (sorry).
Just to be clear, I fully support you here. Outdated mesa is starting
to hurt the project. I only want the patches to be as high quality,
well-documented, and maintainable as they can be.
Alex
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [OE-core] [PATCH v2 0/7] mesa: upgrade to 25.0.2
2025-03-28 11:03 ` [OE-core] " Alexander Kanavin
@ 2025-03-28 11:20 ` Dmitry Baryshkov
0 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-03-28 11:20 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: Khem Raj, openembedded-core
On Fri, 28 Mar 2025 at 13:03, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
>
> On Fri, 28 Mar 2025 at 12:01, Dmitry Baryshkov via
> lists.openembedded.org
> <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> > As I wrote earlier, I think we should not be left with the outdated
> > Mesa. Otherwise, we lack modern hardware support. I really fear that
> > it will take several more months to land proper Clang support (sorry).
>
> Just to be clear, I fully support you here. Outdated mesa is starting
> to hurt the project. I only want the patches to be as high quality,
> well-documented, and maintainable as they can be.
I know. I fully appreciate that.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2025-03-28 11:21 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-27 22:18 [PATCH v2 0/7] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 1/7] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 2/7] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 3/7] llvm: support building libclc Dmitry Baryshkov
2025-03-28 9:35 ` [OE-core] " Alexander Kanavin
2025-03-28 10:55 ` Dmitry Baryshkov
2025-03-28 11:00 ` Alexander Kanavin
2025-03-27 22:18 ` [PATCH v2 4/7] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
2025-03-28 9:42 ` [OE-core] " Alexander Kanavin
2025-03-27 22:18 ` [PATCH v2 5/7] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
2025-03-28 9:57 ` [OE-core] " Alexander Kanavin
2025-03-27 22:18 ` [PATCH v2 6/7] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
2025-03-27 22:18 ` [PATCH v2 7/7] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
2025-03-28 9:59 ` [OE-core] " Alexander Kanavin
2025-03-28 4:33 ` [PATCH v2 0/7] mesa: upgrade to 25.0.2 Khem Raj
2025-03-28 11:01 ` Dmitry Baryshkov
2025-03-28 11:03 ` [OE-core] " Alexander Kanavin
2025-03-28 11:20 ` Dmitry Baryshkov
2025-03-28 9:18 ` Mathieu Dubois-Briand
2025-03-28 10:56 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox