* [PATCH v3 0/9] mesa: upgrade to 25.0.2
@ 2025-03-29 20:07 Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
` (9 more replies)
0 siblings, 10 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj, Zoltán Böszörményi
libclc is required in order to build Intel drivers in Mesa 24.1 and
later. Thus OE-Core is currently locked to the 24.0.x branch, which is
no longer maintained, having last release in June 2024.
A clean solution is to package Clang, then use it to build libclc and
SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
creating proper recipes for Clang is a long process (ongoing by Khem
Raj).
This patchset attempts to solve the issue in a simpler way: by building
libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
don't have to create target Clang recipes, there is no extra toolchain
to support, etc. Clang binaries are creted as a part of the build
process (in order to support building target packages), however it only
hits the LLVM sysroot-native and is only used by the LLVM target build.
Future work by Khem (once Clang is properly supported in OE-Core) should
allow us to create proper recipes for libclc and spirv-llvm-translator
and drop them from the llvm / clang recipe.
I think this approach provides a good balance between OE-Core being
stuck with the outdated Mesa release and being able to upgrade it,
bringing support for new hardware.
Last two patches of the series bring in RustiCL support, a new OpenCL
implementation within Mesa. They are optional for the sake of the
upgrade and can be dropped if there is any issue with those. RustiCL
support is mostly compile-tested at this point.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v3:
- Dropped llvm/fix-native-compilation.patch and
llvm/0001-cmake-modules-CrossCompile-pass-SPIR-V-headers-path-.patch
in favour of installing prepare_builtins into the sysroot, dropped
corresponding EXTRA_OECMAKE params
- Dropepd -DCLANG_TABLEGEN from llvm's EXTRA_OECMAKE
- Enabled llvm-config wrapper for nativesdk too, fixing QA errors for
nativesdk-mesa
- Added --libdir handling to llvm-config, dropping the need for
mesa/0001-meson-use-target-path-for-Clang-libdir.patch
- Dropped extra LIBCEXTENSION from BINDGEN_TARGET, it is already a part
of TARGET_OS
- Expanded commit messages to explain the patches
- Link to v2: https://lore.kernel.org/r/20250327221807.2551544-1-dmitry.baryshkov@oss.qualcomm.com
Changes in v2:
- Dropped YOCTO_ALTERNATE_LIBDIR patch
- Reworked mesa / LLVM integration to always use get_option('libdir')
- Reenabled AMD Vulkan driver (got disabled because of c&p error)
- Moved mesa-clc options to the libclc PACKAGECONFIG to fix several
build errors
- Link to v1: https://lore.kernel.org/r/20250327135520.3920189-1-dmitry.baryshkov@oss.qualcomm.com/
---
Dmitry Baryshkov (8):
llvm: move libLLVM.so.N.M to llvm-libllvm package
llvm: use OECMAKE_SOURCEPATH to specify cmake dir
llvm: handle libdir in llvm-config
llvm: also use llvm-config wrapper for nativesdk recipes
llvm: support building libclc
llvm: add SPIRV-LLVM-Translator support
mesa: upgrade 24.0.7 -> 25.0.2
bindgen-cli: a tool to generate Rust bindings
Zoltán Böszörményi (1):
mesa: add support for RustiCL under PACKAGECONFIG "opencl"
meta/conf/distro/include/maintainers.inc | 1 +
.../bindgen-cli/bindgen-cli-crates.inc | 186 +++++++++++++++++++++
.../bindgen-cli/bindgen-cli_0.71.1.bb | 19 +++
meta/recipes-devtools/llvm/llvm/llvm-config | 3 +
.../llvm/llvm/spirv-internal-build.patch | 30 ++++
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 76 ++++++++-
...evert-meson-do-not-pull-in-clc-for-clover.patch | 53 ------
...d-Include-missing-llvm-IR-header-Module.h.patch | 41 -----
.../files/0001-drisw-fix-build-without-dri3.patch | 58 -------
...eno-don-t-encode-build-path-into-binaries.patch | 46 ++++-
...vide-cross-compilation-arguments-to-LLVM-.patch | 66 ++++++++
...ext-don-t-try-zink-if-not-enabled-in-mesa.patch | 42 -----
meta/recipes-graphics/mesa/mesa.inc | 101 ++++++-----
13 files changed, 468 insertions(+), 254 deletions(-)
---
base-commit: 8d4987cf652c9844d93000fb012dc09eebcf9fcc
change-id: 20250328-mesa-25-6b78a0ce2c90
Best regards,
--
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v3 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
` (8 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
Neither MAJOR_VER nor MINOR_VER are defined, so libLLVM.so.N.M ends up
in the main libllvm package rather than the llvm-libllvm package, as
expected. Fix this by properly using two-component version.
Fixes: db3bf550a372 ("llvm: Update to 18.1.0 RC4")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 7ffc6ec1cb8a041f3ce1c3ac75fad30f1d793916..296a164cdd7ffb45f056c879cc5fc4fbc459caba 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -19,6 +19,7 @@ VER_SUFFIX = ""
PV .= "${VER_SUFFIX}"
MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}"
+MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
LLVM_RELEASE = "${PV}"
@@ -152,7 +153,7 @@ FILES:${PN}-bugpointpasses = "\
FILES:${PN}-libllvm = "\
${libdir}/libLLVM-${MAJOR_VERSION}.so \
- ${libdir}/libLLVM.so.${MAJOR_VER}.${MINOR_VER} \
+ ${libdir}/libLLVM.so.${MAJ_MIN_VERSION} \
"
FILES:${PN}-liblto += "\
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 3/9] llvm: handle libdir in llvm-config Dmitry Baryshkov
` (7 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
Instead of pushing an `llvm` sourcedir into S, specify it through the
OECMAKE_SOURCEPATH so that all the patches are applied to the topdir and
debug paths also use top path to map.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 296a164cdd7ffb45f056c879cc5fc4fbc459caba..7470d2b4d8a55868fe5d2e88f5843a2ec3faf7c0 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -24,15 +24,17 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
LLVM_RELEASE = "${PV}"
SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \
- file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
- file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
+ file://0007-llvm-allow-env-override-of-exe-path.patch \
+ file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \
file://llvm-config \
"
SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a"
UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project"
UPSTREAM_CHECK_REGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)"
-S = "${WORKDIR}/llvm-project-${PV}.src/llvm"
+S = "${WORKDIR}/llvm-project-${PV}.src"
+
+OECMAKE_SOURCEPATH = "${S}/llvm"
LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install"
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 3/9] llvm: handle libdir in llvm-config
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 4/9] llvm: also use llvm-config wrapper for nativesdk recipes Dmitry Baryshkov
` (6 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
The llvm-config wrapper also needs to override a --libdir switch,
otherwise software (like mesa) end up using TMPDIR-based directory for
Clang resource lookup (and also encoding TMPDIR into the target binary).
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
meta/recipes-devtools/llvm/llvm/llvm-config | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/recipes-devtools/llvm/llvm/llvm-config b/meta/recipes-devtools/llvm/llvm/llvm-config
index 5e4ded2da5bc95d429c6f717a2f25223bbbe210e..6cf3e7578fa96f2893f73077bece4db45f29547c 100644
--- a/meta/recipes-devtools/llvm/llvm/llvm-config
+++ b/meta/recipes-devtools/llvm/llvm/llvm-config
@@ -35,6 +35,9 @@ for arg in "$@"; do
--libs)
output="${output} -lLLVM"
;;
+ --libdir)
+ output="${output} ${libdir}"
+ ;;
--link-shared)
break
;;
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 4/9] llvm: also use llvm-config wrapper for nativesdk recipes
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (2 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 3/9] llvm: handle libdir in llvm-config Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 5/9] llvm: support building libclc Dmitry Baryshkov
` (5 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
The recipes targeting the SDK (e.g. nativesdk-mesa) should also use the
llvm-config wrapper, otherwise they get get a lot of incorrect flags,
the most offensive being the rpath, as it results in TMPDIR being a part
of the resulting binary.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 7470d2b4d8a55868fe5d2e88f5843a2ec3faf7c0..c1c4138e8cc16b8b4ddfa3355a6141b5fede569d 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -138,6 +138,7 @@ do_install:append:class-native() {
}
SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess"
+SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess"
llvm_sysroot_preprocess() {
install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 5/9] llvm: support building libclc
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (3 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 4/9] llvm: also use llvm-config wrapper for nativesdk recipes Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
` (4 subsequent siblings)
9 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
Current Mesa requires libclc in order to build Intel Gallium (iris) or
Vulkan drivers. In order to unblock Mesa updates, build libclc as a part
of the LLVM build process.
The libclc requires Clang for building, so enable Clang too via
LLVM_PROJECTS. Remove clang from the DESTDIR, so that it is only used
during the build process. Proper handling of Clang as a toolchain is a
separate and much more complicated topic. Clang is enabled for all kinds
of builds as it is a requirement for libclc to build.
Cleaning of ${datadir} has been moved to happen at the end of do_install
to be performed after do clang removal and made not to fail if
${datadir} is not empty, as libclc install files into that location.
NVPTX and SPIRV targets are enabled since they are required for the
libclc to link.
LLVM_NATIVE_TOOL_DIR is used to pass a path to the native tools built
via llvm-native instead of building them during the target and/or
nativesdk build.
The llvm-clc package is set to RPROVIDE libclc (and the recipe also
PROVIDEs libclc) in order to be compatible with the meta-clang packages
(and to be future-compatible with the split package after proper Clang
support is introduced to OE-Core).
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 40 +++++++++++++++++++++++++++----
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index c1c4138e8cc16b8b4ddfa3355a6141b5fede569d..84345531714baa308077ff55b90d015f6fa167e6 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -56,19 +56,22 @@ def get_llvm_arch(bb, d, arch_var):
def get_llvm_host_arch(bb, d):
return get_llvm_arch(bb, d, 'HOST_ARCH')
-PACKAGECONFIG ??= "libllvm"
+PACKAGECONFIG ??= "libllvm libclc"
# if optviewer OFF, force the modules to be not found or the ones on the host would be found
PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml"
PACKAGECONFIG[libllvm] = ""
+PACKAGECONFIG[libclc] = ""
#
# Default to build all OE-Core supported target arches (user overridable).
#
-LLVM_TARGETS ?= "AMDGPU;${@get_llvm_host_arch(bb, d)}"
+LLVM_TARGETS ?= "AMDGPU;NVPTX;SPIRV;${@get_llvm_host_arch(bb, d)}"
ARM_INSTRUCTION_SET:armv5 = "arm"
ARM_INSTRUCTION_SET:armv4t = "arm"
+LLVM_PROJECTS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'clang;libclc', '', d)}"
+
EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
-DLLVM_ENABLE_PIC=ON \
@@ -82,6 +85,7 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
-DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
"
EXTRA_OECMAKE:append:class-target = "\
@@ -89,6 +93,7 @@ EXTRA_OECMAKE:append:class-target = "\
-DLLVM_HOST_TRIPLE=${TARGET_SYS} \
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
-DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
+ -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
"
EXTRA_OECMAKE:append:class-nativesdk = "\
@@ -96,6 +101,7 @@ EXTRA_OECMAKE:append:class-nativesdk = "\
-DLLVM_HOST_TRIPLE=${SDK_SYS} \
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \
-DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
+ -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
"
# patch out build host paths for reproducibility
@@ -124,17 +130,39 @@ do_install() {
# Remove opt-viewer: https://llvm.org/docs/Remarks.html
rm -rf ${D}${datadir}/opt-viewer
- rmdir ${D}${datadir}
# reproducibility
sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake
fi
+
+ # Remove clang bits from target packages, we are not providing it for the system
+ if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} &&
+ [ "${CLASSOVERRIDE}" != "class-native" ] ; then
+ rm -f ${D}${bindir}/clang*
+ rm -fr ${D}${libdir}/clang
+ rm -fr ${D}${datadir}/clang
+
+ rm -f ${D}${bindir}/scan*
+ rm -fr ${D}${libdir}/libscanbuild
+ rm -fr ${D}${datadir}/scan-build
+ rm -fr ${D}${datadir}/scan-view
+
+ rm -fr ${D}${libdir}/libear
+ fi
+
+ # Try to clean up datadir if it is empty, but don't fail if there are
+ # libclc files there
+ rmdir ${D}${datadir} || true
}
do_install:append:class-native() {
install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV}
install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV}
ln -sf llvm-config${PV} ${D}${bindir}/llvm-config
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} ; then
+ install -D -m 0755 ${B}/bin/prepare_builtins ${D}${bindir}/prepare_builtins
+ fi
}
SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess"
@@ -146,9 +174,11 @@ llvm_sysroot_preprocess() {
ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
}
-PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto"
+PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc"
+PROVIDES = "libclc"
RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks"
+RPROVIDES:${PN}-clc += "libclc"
FILES:${PN}-bugpointpasses = "\
${libdir}/BugpointPasses.so \
@@ -181,6 +211,8 @@ FILES:${PN}-staticdev += "\
${libdir}/*.a \
"
+FILES:${PN}-clc += "${datadir}/clc"
+
INSANE_SKIP:${PN}-libllvm += "dev-so"
BBCLASSEXTEND = "native nativesdk"
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (4 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 5/9] llvm: support building libclc Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:43 ` Patchtest results for " patchtest
2025-03-31 10:13 ` [OE-core] " Alexander Kanavin
2025-03-29 20:07 ` [PATCH v3 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
` (3 subsequent siblings)
9 siblings, 2 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
Mesa builds require SPIRV-LLVM-Translator in order to build CLC support.
While it is possible to build it separately (like meta-clang does), it
also requires a separate clang compiler (which OE-Core doesn't provide).
Use an alternative path and build SPIRV-LLVM-Translator as a part of the
LLVM build process, lifting the requirement for the separate clang. Once
Clang is properly integrated into the OE-Core layer, this can be split
to a separate package and dropped. In order to ease migration from
meta-clang and to ease future split, PROVIDE the spirv-llvm-translator
and make the llvm-spirv package RPROVIDE spirv-llvm-translator.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
.../llvm/llvm/spirv-internal-build.patch | 30 +++++++++++++++++++
meta/recipes-devtools/llvm/llvm_20.1.0.bb | 34 ++++++++++++++++++----
2 files changed, 59 insertions(+), 5 deletions(-)
diff --git a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
new file mode 100644
index 0000000000000000000000000000000000000000..555d40f4fb07342cc204c7c578662688605b2cb1
--- /dev/null
+++ b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch
@@ -0,0 +1,30 @@
+From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Date: Fri, 21 Mar 2025 17:17:52 +0200
+Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer
+
+If the SPIRV-LLVM-Translator is being built together with the LLVM, set
+the defines declaring whether SPIRV target is also included into the
+LLVM library or not. Otherwise llvm-spirv execution fails because
+spirv-ext option is registered twice.
+
+Upstream-Status: Pending [will be submitted upstream after internal clearance]
+Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+
+Index: llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt
+===================================================================
+--- llvm-project-20.1.0.src.orig/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt
++++ llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt
+@@ -116,6 +116,12 @@ if(LLVM_SPIRV_BUILD_EXTERNAL)
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+ endif()
++else()
++ is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS)
++ if(spirv_present_result)
++ set(SPIRV_BACKEND_FOUND TRUE)
++ add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT)
++ endif()
+ endif()
+
+ set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
diff --git a/meta/recipes-devtools/llvm/llvm_20.1.0.bb b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
index 84345531714baa308077ff55b90d015f6fa167e6..9ae5a5d380f074d942c94d4169671f42355c20dc 100644
--- a/meta/recipes-devtools/llvm/llvm_20.1.0.bb
+++ b/meta/recipes-devtools/llvm/llvm_20.1.0.bb
@@ -23,9 +23,18 @@ 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://spirv-internal-build.patch \
+"
+
SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \
file://0007-llvm-allow-env-override-of-exe-path.patch \
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \
+ ${@bb.utils.contains('PACKAGECONFIG', 'spirv', '${SRC_URI_SPIRV}', '', d)} \
file://llvm-config \
"
SRC_URI[sha256sum] = "4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a"
@@ -56,11 +65,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).
@@ -70,7 +80,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 \
@@ -136,7 +148,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
@@ -174,11 +186,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 \
@@ -213,6 +226,17 @@ FILES:${PN}-staticdev += "\
FILES:${PN}-clc += "${datadir}/clc"
+FILES:${PN}-spirv = " \
+ ${bindir}/llvm-spirv \
+ ${includedir}/LLVMSPIRVLib \
+ ${libdir}/pkgconfig/LLVMSPIRVLib.pc \
+ ${libdir}/libLLVMSPIRV* \
+"
+
INSANE_SKIP:${PN}-libllvm += "dev-so"
+# SPIRV-LLVM-Translator provides only static libraries, they are included into
+# the llvm-spirv package.
+INSANE_SKIP:${PN}-spirv += "staticdev"
+
BBCLASSEXTEND = "native nativesdk"
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 7/9] mesa: upgrade 24.0.7 -> 25.0.2
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (5 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-31 10:17 ` [OE-core] " Alexander Kanavin
2025-03-29 20:07 ` [PATCH v3 8/9] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
` (2 subsequent siblings)
9 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 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>
---
...evert-meson-do-not-pull-in-clc-for-clover.patch | 53 --------------
| 41 -----------
.../files/0001-drisw-fix-build-without-dri3.patch | 58 ---------------
...eno-don-t-encode-build-path-into-binaries.patch | 46 ++++++++++--
...ext-don-t-try-zink-if-not-enabled-in-mesa.patch | 42 -----------
meta/recipes-graphics/mesa/mesa.inc | 83 +++++++++++-----------
6 files changed, 81 insertions(+), 242 deletions(-)
diff --git a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch b/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
deleted file mode 100644
index 1711e22585a72d1909473e4d9716c4734d4c5eee..0000000000000000000000000000000000000000
--- a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 051f41beda540f0ae77b341db01a6de83c9e938a Mon Sep 17 00:00:00 2001
-From: Markus Volk <f_l_k@t-online.de>
-Date: Fri, 8 Mar 2024 15:53:11 +0100
-Subject: [PATCH] Revert "meson: do not pull in clc for clover"
-
-This reverts commit 815a6647eb1383e9dc704ffcc266d85f3b13338a.
-Upstream-Status: Inappropriate [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27783/diffs?commit_id=a976f2c9f0c07f9e06cc9affd9124b45bc60c2bd]
-
-Once the merge request above was added, it will only be possible to provide opencl spir-v with gallium-rusticl=true. This is not yet supported in the mesa recipe.
-For now reverting this commit allows to still use clover with opencl-spirv, which would otherwise be broken starting from mesa 24.0.2.
-
-After it was merged, this patch needs to be removed and rusticl support will be required
-
-Signed-off-by: Markus Volk <f_l_k@t-online.de>
----
- meson.build | 3 ++-
- src/compiler/meson.build | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 2db6185..741b5d1 100644
---- a/meson.build
-+++ b/meson.build
-@@ -813,6 +813,7 @@ if _opencl != 'disabled'
- error('The Clover OpenCL state tracker requires rtti')
- endif
-
-+ with_clc = true
- with_gallium_opencl = true
- with_opencl_icd = _opencl == 'icd'
- else
-@@ -837,7 +838,7 @@ if with_gallium_rusticl
- endif
-
- dep_clc = null_dep
--if with_gallium_opencl or with_clc
-+if with_clc
- dep_clc = dependency('libclc')
- endif
-
-diff --git a/src/compiler/meson.build b/src/compiler/meson.build
-index 8d73544..1dae56d 100644
---- a/src/compiler/meson.build
-+++ b/src/compiler/meson.build
-@@ -79,7 +79,7 @@ subdir('nir')
-
- subdir('spirv')
-
--if with_clc
-+if with_opencl_spirv
- subdir('clc')
- endif
- if with_gallium
diff --git a/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch b/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch
deleted file mode 100644
index 82ad88a079c144153778120bf2a3c1d1c36a0c94..0000000000000000000000000000000000000000
--- a/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 777d69cf15b80ab1f109a4936d6e4801c4b0e0f3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 1 Jul 2024 23:09:29 -0700
-Subject: [PATCH] amd: Include missing llvm IR header Module.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-With LLVM-19, Module.h header is not being pulled, which results in
-compile errors e.g.
-
-src/amd/llvm/ac_llvm_helper.cpp:102:10: error: no matching function for call to ‘unwrap(LLVMOpaqueModule*&)’
- 102 | unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple());
- | ~~~~~~^~~~~~~~
-In file included from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/Type.h:18,
- from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/DerivedTypes.h:23,
- from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/InstrTypes.h:26,
- from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/Analysis/TargetLibraryInfo.h:14,
- from ../mesa-24.0.7/src/amd/llvm/ac_llvm_helper.cpp:8:
-
-Its getting the definition from llvm/IR/Type.h instead of Module.h and caused
-confusion to compiler
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29993]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/amd/llvm/ac_llvm_helper.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp
-index 5d065279ad1..af4a50f8409 100644
---- a/src/amd/llvm/ac_llvm_helper.cpp
-+++ b/src/amd/llvm/ac_llvm_helper.cpp
-@@ -8,6 +8,7 @@
- #include <llvm/Analysis/TargetLibraryInfo.h>
- #include <llvm/IR/IRBuilder.h>
- #include <llvm/IR/LegacyPassManager.h>
-+#include <llvm/IR/Module.h>
- #include <llvm/IR/Verifier.h>
- #include <llvm/Target/TargetMachine.h>
- #include <llvm/MC/MCSubtargetInfo.h>
diff --git a/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch b/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
deleted file mode 100644
index ab1615209063fb0b7bee74f3b49843790801e40a..0000000000000000000000000000000000000000
--- a/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@smile.fr>
-Date: Tue, 6 Feb 2024 09:47:09 +0100
-Subject: [PATCH 1/2] drisw: fix build without dri3
-
-commit 1887368df41 ("glx/sw: check for modifier support in the kopper path")
-added dri3_priv.h header and dri3_check_multibuffer() function in drisw that
-can be build without dri3.
-
- i686-buildroot-linux-gnu/bin/ld: src/glx/libglx.a.p/drisw_glx.c.o: in function `driswCreateScreenDriver':
- drisw_glx.c:(.text.driswCreateScreenDriver+0x3a0): undefined reference to `dri3_check_multibuffer'
- collect2: error: ld returned 1 exit status
-
-Add HAVE_DRI3 guard around dri3_priv.h header and the zink code using
-dri3_check_multibuffer().
-
-Fixes: 1887368df41 ("glx/sw: check for modifier support in the kopper path")
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478]
-Signed-off-by: Romain Naour <romain.naour@smile.fr>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/glx/drisw_glx.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
-index 3d3f752..4b19e2d 100644
---- a/src/glx/drisw_glx.c
-+++ b/src/glx/drisw_glx.c
-@@ -32,7 +32,9 @@
- #include <dlfcn.h>
- #include "dri_common.h"
- #include "drisw_priv.h"
-+#ifdef HAVE_DRI3
- #include "dri3_priv.h"
-+#endif
- #include <X11/extensions/shmproto.h>
- #include <assert.h>
- #include <vulkan/vulkan_core.h>
-@@ -995,6 +997,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv,
- goto handle_error;
- }
-
-+#ifdef HAVE_DRI3
- if (pdpyp->zink) {
- bool err;
- psc->has_multibuffer = dri3_check_multibuffer(priv->dpy, &err);
-@@ -1005,6 +1008,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv,
- goto handle_error;
- }
- }
-+#endif
-
- glx_config_destroy_list(psc->base.configs);
- psc->base.configs = configs;
---
-2.44.0
-
diff --git a/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch
index 5975ab4472ecebc34ef1504904523de73c9f5c51..953a724dc092667a5ac6f19f6b41d4277fab4ba2 100644
--- a/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch
+++ b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch
@@ -22,18 +22,29 @@ diff --git a/src/freedreno/afuc/meson.build b/src/freedreno/afuc/meson.build
index bb7cebf5a748..351cc31ef2de 100644
--- a/src/freedreno/afuc/meson.build
+++ b/src/freedreno/afuc/meson.build
-@@ -56,6 +56,7 @@ if with_tests
+@@ -56,10 +56,12 @@ if with_tests
asm_fw = custom_target('afuc_test.fw',
output: 'afuc_test.fw',
- command: [asm, '-g', '6', files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'],
+ command: [asm, files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'],
++ env: {'RNN_PATH': rnn_src_path},
+ )
+ asm_fw_a7xx = custom_target('afuc_test_a7xx.fw',
+ output: 'afuc_test_a7xx.fw',
+ command: [asm, files('../.gitlab-ci/traces/afuc_test_a7xx.asm'), '@OUTPUT@'],
+ env: {'RNN_PATH': rnn_src_path},
)
test('afuc-asm',
diff,
-@@ -120,6 +122,7 @@ if cc.sizeof('size_t') > 4
+@@ -120,11 +122,13 @@ if cc.sizeof('size_t') > 4
disasm_fw = custom_target('afuc_test.asm',
output: 'afuc_test.asm',
- command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw'), '-g', '630'],
+ command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw')],
++ env: {'RNN_PATH': rnn_src_path},
+ capture: true
+ )
+ disasm_fw_a7xx = custom_target('afuc_test_a7xx.asm',
+ output: 'afuc_test_a7xx.asm',
+ command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw')],
+ env: {'RNN_PATH': rnn_src_path},
capture: true
)
@@ -71,8 +82,29 @@ index 98e49b8fcf0e..145e72597eb9 100644
-rnn_path = rnn_src_path + ':' + get_option('prefix') + '/' + rnn_install_path
+rnn_path = get_option('prefix') + '/' + rnn_install_path
- dep_lua = dependency('lua54', 'lua53', 'lua52', 'lua', required: false,
- allow_fallback: true, version: '>=5.2')
---
+ dep_libarchive = dependency('libarchive', allow_fallback: true, required: false)
+ dep_libxml2 = dependency('libxml-2.0', allow_fallback: true, required: false)
+diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py
+--- a/src/freedreno/registers/gen_header.py
++++ b/src/freedreno/registers/gen_header.py
+@@ -885,13 +885,14 @@ The rules-ng-ng source files this header
+ """)
+ maxlen = 0
+ for filepath in p.xml_files:
+- maxlen = max(maxlen, len(filepath))
++ maxlen = max(maxlen, len(os.path.basename(filepath)))
+ for filepath in p.xml_files:
+- pad = " " * (maxlen - len(filepath))
++ filename = os.path.basename(filepath)
++ pad = " " * (maxlen - len(filename))
+ filesize = str(os.path.getsize(filepath))
+ filesize = " " * (7 - len(filesize)) + filesize
+ filetime = time.ctime(os.path.getmtime(filepath))
+- print("- " + filepath + pad + " (" + filesize + " bytes, from " + filetime + ")")
++ print("- " + filename + pad + " (" + filesize + " bytes, from " + filetime + ")")
+ if p.copyright_year:
+ current_year = str(datetime.date.today().year)
+ print()
+---
2.39.2
diff --git a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
deleted file mode 100644
index 036a0b494539243e7850ba3ea24669e0749e2dd2..0000000000000000000000000000000000000000
--- a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@smile.fr>
-Date: Tue, 6 Feb 2024 09:47:10 +0100
-Subject: [PATCH 2/2] glxext: don't try zink if not enabled in mesa
-
-Commit 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers")
-added an automatic zink fallback even when the zink gallium is not
-enabled at build time.
-
-It leads to unexpected error log while loading drisw driver and
-zink is not installed on the rootfs:
-
- MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so
-
-Fixes: 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers")
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478]
-Signed-off-by: Romain Naour <romain.naour@smile.fr>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/glx/glxext.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/glx/glxext.c b/src/glx/glxext.c
-index 05c825a..7a06aa9 100644
---- a/src/glx/glxext.c
-+++ b/src/glx/glxext.c
-@@ -908,9 +908,11 @@ __glXInitialize(Display * dpy)
- #endif /* HAVE_DRI3 */
- if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false))
- dpyPriv->dri2Display = dri2CreateDisplay(dpy);
-+#if defined(HAVE_ZINK)
- if (!dpyPriv->dri3Display && !dpyPriv->dri2Display)
- try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) &&
- !getenv("GALLIUM_DRIVER");
-+#endif /* HAVE_ZINK */
- }
- #endif /* GLX_USE_DRM */
- if (glx_direct)
---
-2.44.0
-
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index f6a91a7002f8aebc8845eda7f339912e086839b5..52079f536ef785084e4a1e61969d162d067ee12d 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -10,21 +10,17 @@ HOMEPAGE = "http://mesa3d.org"
BUGTRACKER = "https://bugs.freedesktop.org"
SECTION = "x11"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
+LIC_FILES_CHKSUM = "file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11"
PE = "2"
SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
- file://0001-drisw-fix-build-without-dri3.patch \
- file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \
- file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \
- file://0001-amd-Include-missing-llvm-IR-header-Module.h.patch \
file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\
"
-SRC_URI[sha256sum] = "7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a"
-PV = "24.0.7"
+SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97"
+PV = "25.0.2"
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
@@ -38,8 +34,7 @@ do_install:append() {
fi
}
-DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native"
-DEPENDS:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'mesa-native', '', d)}"
+DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native"
EXTRANATIVEPATH += "chrpath-native"
PROVIDES = " \
${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \
@@ -77,44 +72,43 @@ EXTRA_OEMESON = " \
-Dplatforms='${@",".join("${PLATFORMS}".split())}' \
"
-EXTRA_OEMESON:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=system', '', d)}"
-EXTRA_OEMESON:append:class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=enabled', '', d)}"
-
def strip_comma(s):
return s.strip(',')
+
PACKAGECONFIG = " \
gallium \
video-codecs \
${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'dri3', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
"
-PACKAGECONFIG:append:class-native = " gallium-llvm r600"
+PACKAGECONFIG:append:x86 = " libclc gallium-llvm"
+PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm"
+PACKAGECONFIG:append:class-native = " libclc gallium-llvm r600"
# "gbm" requires "opengl"
PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled"
-X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr"
+X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence"
# "x11" requires "opengl"
PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols"
-PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence"
+VULKAN_DRIVERS_AMD = ""
+VULKAN_DRIVERS_AMD:x86 = ",amd"
+VULKAN_DRIVERS_AMD:x86-64 = ",amd"
+# i686 is a 32 bit override for mesa-native
+VULKAN_DRIVERS_AMD:i686 = ",amd"
+
+VULKAN_DRIVERS_INTEL = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ',intel', '', d)}"
+VULKAN_DRIVERS_LLVM = ",swrast${VULKAN_DRIVERS_AMD}${VULKAN_DRIVERS_INTEL}"
-# Vulkan drivers need dri3 enabled
-# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9
VULKAN_DRIVERS = ""
-VULKAN_DRIVERS:append:x86 = ",intel,amd"
-VULKAN_DRIVERS:append:x86-64 = ",intel,amd"
-# i686 is a 32 bit override for mesa-native
-VULKAN_DRIVERS:append:i686 = ",intel,amd"
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
-VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}"
+VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_LLVM}', '', d)}"
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
@@ -137,7 +131,7 @@ PACKAGECONFIG[freedreno-fdperf] = ",,libconfig"
PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}"
PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
-PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd"
+PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd"
# "gles" requires "opengl"
PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled"
@@ -145,9 +139,9 @@ PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2
# "egl" requires "opengl"
PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
-# "opencl" requires libclc from meta-clang and spirv-tools from OE-Core
-OPENCL_NATIVE = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', '-Dopencl-native=true', '', d)}"
-PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd -Dopencl-spirv=true ${OPENCL_NATIVE},-Dgallium-opencl=disabled -Dopencl-spirv=false,libclc spirv-tools python3-ply-native"
+# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG!
+# Be sure to enable them both for the target and for the native build.
+PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd,-Dgallium-opencl=disabled,"
PACKAGECONFIG[broadcom] = ""
PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
@@ -157,13 +151,13 @@ PACKAGECONFIG[vc4] = ""
PACKAGECONFIG[v3d] = ""
PACKAGECONFIG[zink] = ""
-GALLIUMDRIVERS = "swrast"
+GALLIUMDRIVERS = "softpipe"
# gallium swrast was found to crash Xorg on startup in x32 qemu
GALLIUMDRIVERS:x86-x32 = ""
-GALLIUMDRIVERS:append:x86 = ",i915,iris,crocus"
-GALLIUMDRIVERS:append:x86-64 = ",i915,iris,crocus"
+GALLIUMDRIVERS:append:x86 = ",i915,crocus"
+GALLIUMDRIVERS:append:x86-64 = ",i915,crocus"
# i686 is a 32 bit override for mesa-native
-GALLIUMDRIVERS:append:i686 = ",i915,iris,crocus"
+GALLIUMDRIVERS:append:i686 = ",i915,crocus"
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
@@ -173,8 +167,9 @@ GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', ''
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}"
# radeonsi requires LLVM
+GALLIUMDRIVERS_IRIS = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ',iris', '', d)}"
GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}"
-GALLIUMDRIVERS_LLVM = ",r300,nouveau${GALLIUMDRIVERS_RADEONSI}"
+GALLIUMDRIVERS_LLVM = ",llvmpipe,r300,nouveau${GALLIUMDRIVERS_IRIS}${GALLIUMDRIVERS_RADEONSI}"
GALLIUMDRIVERS_LLVM:append:x86 = ",svga"
GALLIUMDRIVERS_LLVM:append:x86-64 = ",svga"
# i686 is a 32 bit override for mesa-native
@@ -187,8 +182,16 @@ GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}"
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
+MESA_CLC = "system"
+MESA_CLC:class-native = "enabled"
+INSTALL_MESA_CLC = "false"
+INSTALL_MESA_CLC:class-native = "true"
+MESA_NATIVE = "mesa-native"
+MESA_NATIVE:class-native = ""
+
PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm"
PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils"
+PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC},,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}"
PACKAGECONFIG[xa] = "-Dgallium-xa=enabled, -Dgallium-xa=disabled"
PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
@@ -242,6 +245,7 @@ RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'lib
PACKAGES =+ "libegl-mesa libegl-mesa-dev \
libosmesa libosmesa-dev \
+ libgallium \
libgl-mesa libgl-mesa-dev \
libglx-mesa libglx-mesa-dev \
libglapi libglapi-dev \
@@ -267,13 +271,6 @@ do_install:append () {
rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc
}
-do_install:append:class-native () {
- if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'true', 'false', d)}; then
- install -d ${D}${bindir}
- install -m0755 ${B}/src/intel/compiler/intel_clc ${D}${bindir}
- fi
-}
-
# For the packages that make up the OpenGL interfaces, inject variables so that
# they don't get Debian-renamed (which would remove the -mesa suffix), and
# RPROVIDEs/RCONFLICTs on the generic libgl name.
@@ -344,7 +341,8 @@ FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
-FILES:libgbm = "${libdir}/libgbm.so.*"
+FILES:libgbm = "${libdir}/libgbm.so.* ${libdir}/gbm/*_gbm.so"
+FILES:libgallium = "${libdir}/libgallium-*.so"
FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
FILES:libgl-mesa = "${libdir}/libGL.so.*"
@@ -372,6 +370,9 @@ FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \
FILES:${PN}-tools = "${bindir} ${datadir}"
ALLOW_EMPTY:${PN}-tools = "1"
+# All DRI drivers are symlinks to libdril_dri.so
+INSANE_SKIP: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] 18+ messages in thread
* [PATCH v3 8/9] bindgen-cli: a tool to generate Rust bindings
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (6 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
2025-03-30 22:40 ` [OE-core] [PATCH v3 0/9] mesa: upgrade to 25.0.2 Richard Purdie
9 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
Import bindgen-cli from the meta-clang layer, as it is required to
generate bindings for Mesa / RustiCL. Specify Khem as maintainer as he
is maintaining the meta-clang layer, which included this recipe too.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
meta/conf/distro/include/maintainers.inc | 1 +
.../bindgen-cli/bindgen-cli-crates.inc | 186 +++++++++++++++++++++
.../bindgen-cli/bindgen-cli_0.71.1.bb | 19 +++
3 files changed, 206 insertions(+)
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 2b47d3103c03b1b8a11f40566fdd5334d906860d..953abed2a9433bf1842b92ca7fc0b99f4df8bcd9 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -64,6 +64,7 @@ RECIPE_MAINTAINER:pn-bash = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER:pn-bash-completion = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-bc = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER:pn-bind = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-bindgen-cli = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-binutils = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-binutils-cross-${TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
diff --git a/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc b/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a758440c9d324a2f17e6b2fef296d0d0dbd5e450
--- /dev/null
+++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli-crates.inc
@@ -0,0 +1,186 @@
+# Autogenerated with 'bitbake -c update_crates bindgen-cli'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/1.1.3 \
+ crate://crates.io/annotate-snippets/0.11.4 \
+ crate://crates.io/anstyle/1.0.10 \
+ crate://crates.io/autocfg/1.4.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.2.1 \
+ crate://crates.io/block/0.1.6 \
+ crate://crates.io/cc/1.2.2 \
+ crate://crates.io/cexpr/0.6.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clang-sys/1.8.1 \
+ crate://crates.io/clap/4.1.4 \
+ crate://crates.io/clap_complete/4.2.0 \
+ crate://crates.io/clap_derive/4.1.0 \
+ crate://crates.io/clap_lex/0.3.1 \
+ crate://crates.io/either/1.13.0 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/env_logger/0.8.4 \
+ crate://crates.io/errno/0.3.10 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/getrandom/0.2.15 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/hermit-abi/0.3.9 \
+ crate://crates.io/hermit-abi/0.4.0 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.13 \
+ crate://crates.io/itertools/0.13.0 \
+ crate://crates.io/libc/0.2.167 \
+ crate://crates.io/libloading/0.8.6 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/log/0.4.22 \
+ crate://crates.io/malloc_buf/0.0.6 \
+ crate://crates.io/memchr/2.7.4 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/objc/0.2.7 \
+ crate://crates.io/once_cell/1.20.2 \
+ crate://crates.io/os_str_bytes/6.4.1 \
+ crate://crates.io/owo-colors/4.1.0 \
+ crate://crates.io/prettyplease/0.2.25 \
+ crate://crates.io/proc-macro-error-attr/1.0.4 \
+ crate://crates.io/proc-macro-error/1.0.4 \
+ crate://crates.io/proc-macro2/1.0.92 \
+ crate://crates.io/quickcheck/1.0.3 \
+ crate://crates.io/quote/1.0.37 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex-automata/0.4.9 \
+ crate://crates.io/regex-syntax/0.8.5 \
+ crate://crates.io/regex/1.11.1 \
+ crate://crates.io/rustc-hash/2.1.0 \
+ crate://crates.io/rustix/0.37.27 \
+ crate://crates.io/shlex/1.3.0 \
+ crate://crates.io/similar/2.6.0 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.90 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/unicode-ident/1.0.14 \
+ crate://crates.io/unicode-width/0.1.14 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-sys/0.52.0 \
+ crate://crates.io/windows-targets/0.48.5 \
+ crate://crates.io/windows-targets/0.52.6 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
+ crate://crates.io/windows_aarch64_gnullvm/0.52.6 \
+ crate://crates.io/windows_aarch64_msvc/0.48.5 \
+ crate://crates.io/windows_aarch64_msvc/0.52.6 \
+ crate://crates.io/windows_i686_gnu/0.48.5 \
+ crate://crates.io/windows_i686_gnu/0.52.6 \
+ crate://crates.io/windows_i686_gnullvm/0.52.6 \
+ crate://crates.io/windows_i686_msvc/0.48.5 \
+ crate://crates.io/windows_i686_msvc/0.52.6 \
+ crate://crates.io/windows_x86_64_gnu/0.48.5 \
+ crate://crates.io/windows_x86_64_gnu/0.52.6 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
+ crate://crates.io/windows_x86_64_gnullvm/0.52.6 \
+ crate://crates.io/windows_x86_64_msvc/0.48.5 \
+ crate://crates.io/windows_x86_64_msvc/0.52.6 \
+"
+
+SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+SRC_URI[annotate-snippets-0.11.4.sha256sum] = "24e35ed54e5ea7997c14ed4c70ba043478db1112e98263b3b035907aa197d991"
+SRC_URI[anstyle-1.0.10.sha256sum] = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
+SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.2.1.sha256sum] = "24a6904aef64d73cf10ab17ebace7befb918b82164785cb89907993be7f83813"
+SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+SRC_URI[cc-1.2.2.sha256sum] = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
+SRC_URI[clap-4.1.4.sha256sum] = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
+SRC_URI[clap_complete-4.2.0.sha256sum] = "01c22dcfb410883764b29953103d9ef7bb8fe21b3fa1158bc99986c2067294bd"
+SRC_URI[clap_derive-4.1.0.sha256sum] = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8"
+SRC_URI[clap_lex-0.3.1.sha256sum] = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade"
+SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[errno-0.3.10.sha256sum] = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[getrandom-0.2.15.sha256sum] = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[hermit-abi-0.3.9.sha256sum] = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+SRC_URI[hermit-abi-0.4.0.sha256sum] = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.13.sha256sum] = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
+SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+SRC_URI[libc-0.2.167.sha256sum] = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
+SRC_URI[libloading-0.8.6.sha256sum] = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
+SRC_URI[os_str_bytes-6.4.1.sha256sum] = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+SRC_URI[owo-colors-4.1.0.sha256sum] = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56"
+SRC_URI[prettyplease-0.2.25.sha256sum] = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro2-1.0.92.sha256sum] = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[quote-1.0.37.sha256sum] = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+SRC_URI[rustc-hash-2.1.0.sha256sum] = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
+SRC_URI[rustix-0.37.27.sha256sum] = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+SRC_URI[similar-2.6.0.sha256sum] = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.90.sha256sum] = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[unicode-ident-1.0.14.sha256sum] = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
+SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
\ No newline at end of file
diff --git a/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
new file mode 100644
index 0000000000000000000000000000000000000000..5578fb3d18bf9cb622859ab3ff64ea23ea642e96
--- /dev/null
+++ b/meta/recipes-devtools/bindgen-cli/bindgen-cli_0.71.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Automatically generates Rust FFI bindings to C and C++ libraries."
+HOMEPAGE = "https://rust-lang.github.io/rust-bindgen/"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0b9a98cb3dcdefcceb145324693fda9b"
+
+inherit rust cargo cargo-update-recipe-crates
+
+SRC_URI += "git://github.com/rust-lang/rust-bindgen.git;protocol=https;branch=main"
+SRCREV = "af7fd38d5e80514406fb6a8bba2d407d252c30b9"
+S = "${WORKDIR}/git"
+
+require ${BPN}-crates.inc
+
+do_install:append:class-native() {
+ create_wrapper ${D}/${bindir}/bindgen LIBCLANG_PATH="${STAGING_LIBDIR_NATIVE}"
+}
+
+BBCLASSEXTEND = "native"
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (7 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 8/9] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
@ 2025-03-29 20:07 ` Dmitry Baryshkov
2025-03-31 10:22 ` [OE-core] " Alexander Kanavin
2025-03-30 22:40 ` [OE-core] [PATCH v3 0/9] mesa: upgrade to 25.0.2 Richard Purdie
9 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 20:07 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj, Zoltán Böszörményi
From: Zoltán Böszörményi <zboszor@gmail.com>
Mesa now has two OpenCL implementations: Clover (older one) and RustiCL
(newer one). Extend the "opencl" package config to include both
implementations into the libopencl-mesa (-dev) packages. As the Clover
implementation is in maintenance mode and is expected to be removed at
Mesa 25.2, it doesn't make sense to split the packages or to provide
two config options.
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
[DB: merged "rusticl" and "clover" back to "opencl", reworked rust inheritance]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
...vide-cross-compilation-arguments-to-LLVM-.patch | 66 ++++++++++++++++++++++
meta/recipes-graphics/mesa/mesa.inc | 20 +++++--
2 files changed, 81 insertions(+), 5 deletions(-)
diff --git a/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
new file mode 100644
index 0000000000000000000000000000000000000000..652f99bc80653cfaf34ab069ed9d370ae3c4948a
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch
@@ -0,0 +1,66 @@
+From b9cf34f39ca7e7546508ce2ab1f053edef5fc201 Mon Sep 17 00:00:00 2001
+From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+Date: Wed, 26 Mar 2025 17:47:09 +0200
+Subject: [PATCH] rusticl: provide cross-compilation arguments to LLVM bindgen
+ invocation
+
+Correctly generating LLVM bindings requires several croos-compilation
+arguments. Provide them to rust.bindgen(). Karol Herbst on IRC suggested
+that a proper fix should be to fix meson's rust.bindgen() to support
+cross-compilation. Carry this patch until meson is fixed.
+
+Upstream-Status: Inappropriate [OE-Specific]
+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 52079f536ef785084e4a1e61969d162d067ee12d..b7db5f8d00a10d59c15fdfaea318875d2b4ddc4d 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -17,6 +17,7 @@ PE = "2"
SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\
+ file://0001-rusticl-provide-cross-compilation-arguments-to-LLVM-.patch \
"
SRC_URI[sha256sum] = "adf904d083b308df95898600ffed435f4b5c600d95fb6ec6d4c45638627fdc97"
@@ -45,7 +46,7 @@ PROVIDES = " \
virtual/mesa \
"
-inherit meson pkgconfig python3native gettext features_check
+inherit meson pkgconfig python3native gettext features_check rust
BBCLASSEXTEND = "native nativesdk"
@@ -84,6 +85,9 @@ PACKAGECONFIG = " \
${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
"
+# skip all Rust dependencies if we are not building OpenCL"
+INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}"
+
PACKAGECONFIG:append:x86 = " libclc gallium-llvm"
PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm"
PACKAGECONFIG:append:class-native = " libclc gallium-llvm r600"
@@ -139,9 +143,15 @@ PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2
# "egl" requires "opengl"
PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
+BINDGEN_TARGET = "${TARGET_ARCH}-${TARGET_OS}${@['-gnu', ''][d.getVar('LIBCEXTENSION') != '']}"
+
# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG!
# Be sure to enable them both for the target and for the native build.
-PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd,-Dgallium-opencl=disabled,"
+PACKAGECONFIG[opencl] = " \
+ -Dgallium-opencl=icd -Dgallium-rusticl=true -Dbindgen-includedir=${STAGING_INCDIR} -Dbindgen-target=${BINDGEN_TARGET},\
+ -Dgallium-opencl=disabled -Dgallium-rusticl=false, \
+ bindgen-cli-native \
+"
PACKAGECONFIG[broadcom] = ""
PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
@@ -241,7 +251,7 @@ RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev"
RDEPENDS:libgles2-mesa += "libgles3-mesa"
ALLOW_EMPTY:libgles3-mesa = "1"
-RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools', '', d)}"
+RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools spirv-llvm-translator', '', d)}"
PACKAGES =+ "libegl-mesa libegl-mesa-dev \
libosmesa libosmesa-dev \
@@ -347,7 +357,7 @@ FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
FILES:libgl-mesa = "${libdir}/libGL.so.*"
FILES:libglx-mesa = "${libdir}/libGLX*.so.*"
-FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/mesa.icd"
+FILES:libopencl-mesa = "${libdir}/lib*OpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/*.icd"
FILES:libglapi = "${libdir}/libglapi.so.*"
FILES:libosmesa = "${libdir}/libOSMesa.so.*"
FILES:libxatracker = "${libdir}/libxatracker.so.*"
@@ -361,7 +371,7 @@ FILES:libglapi-dev = "${libdir}/libglapi.*"
FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc"
FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc"
FILES:libgles3-mesa-dev = "${includedir}/GLES3"
-FILES:libopencl-mesa-dev = "${libdir}/libMesaOpenCL.so"
+FILES:libopencl-mesa-dev = "${libdir}/lib*OpenCL.so"
FILES:libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc"
FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \
${includedir}/xa_tracker.h ${includedir}/xa_composite.h ${includedir}/xa_context.h \
--
2.39.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Patchtest results for [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support
2025-03-29 20:07 ` [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
@ 2025-03-29 20:43 ` patchtest
2025-03-29 21:02 ` Dmitry Baryshkov
2025-03-31 10:13 ` [OE-core] " Alexander Kanavin
1 sibling, 1 reply; 18+ messages in thread
From: patchtest @ 2025-03-29 20:43 UTC (permalink / raw)
To: Dmitry Baryshkov; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 2903 bytes --]
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:
---
Testing patch /home/patchtest/share/mboxes/v3-6-9-llvm-add-SPIRV-LLVM-Translator-support.patch
FAIL: test Upstream-Status presence: Upstream-Status is Submitted, but it is not mentioned where (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: pretest src uri left files (test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Signed-off-by presence (test_patch.TestPatch.test_signed_off_by_presence)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test lic files chksum modified not mentioned (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test src uri left files (test_metadata.TestMetadata.test_src_uri_left_files)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)
---
Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Patchtest results for [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support
2025-03-29 20:43 ` Patchtest results for " patchtest
@ 2025-03-29 21:02 ` Dmitry Baryshkov
0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-29 21:02 UTC (permalink / raw)
To: patchtest; +Cc: openembedded-core
On Sat, Mar 29, 2025 at 08:43:29PM +0000, patchtest@automation.yoctoproject.org wrote:
> Thank you for your submission. Patchtest identified one
> or more issues with the patch. Please see the log below for
> more information:
>
> ---
> Testing patch /home/patchtest/share/mboxes/v3-6-9-llvm-add-SPIRV-LLVM-Translator-support.patch
>
> FAIL: test Upstream-Status presence: Upstream-Status is Submitted, but it is not mentioned where (test_patch.TestPatch.test_upstream_status_presence_format)
This is a fail positive.
Upstream-Status: Pending [will be submitted upstream after internal clearance]
>
> PASS: pretest src uri left files (test_metadata.TestMetadata.pretest_src_uri_left_files)
> PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
> PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
> PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
> PASS: test Signed-off-by presence (test_patch.TestPatch.test_signed_off_by_presence)
> PASS: test author valid (test_mbox.TestMbox.test_author_valid)
> PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
> PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
> PASS: test lic files chksum modified not mentioned (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
> PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
> PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
> PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
> PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
> PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
> PASS: test src uri left files (test_metadata.TestMetadata.test_src_uri_left_files)
> PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
>
> SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
> SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
> SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
> SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
> SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
> SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
> SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)
>
> ---
>
> Please address the issues identified and
> submit a new revision of the patch, or alternatively, reply to this
> email with an explanation of why the patch should be accepted. If you
> believe these results are due to an error in patchtest, please submit a
> bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
> under 'Yocto Project Subprojects'). For more information on specific
> failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
> you!
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [OE-core] [PATCH v3 0/9] mesa: upgrade to 25.0.2
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
` (8 preceding siblings ...)
2025-03-29 20:07 ` [PATCH v3 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
@ 2025-03-30 22:40 ` Richard Purdie
2025-03-31 10:15 ` Dmitry Baryshkov
9 siblings, 1 reply; 18+ messages in thread
From: Richard Purdie @ 2025-03-30 22:40 UTC (permalink / raw)
To: dmitry.baryshkov, openembedded-core
Cc: Khem Raj, Zoltán Böszörményi
On Sat, 2025-03-29 at 22:07 +0200, Dmitry Baryshkov via
lists.openembedded.org wrote:
> libclc is required in order to build Intel drivers in Mesa 24.1 and
> later. Thus OE-Core is currently locked to the 24.0.x branch, which
> is
> no longer maintained, having last release in June 2024.
>
> A clean solution is to package Clang, then use it to build libclc and
> SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
> creating proper recipes for Clang is a long process (ongoing by Khem
> Raj).
>
> This patchset attempts to solve the issue in a simpler way: by
> building
> libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
> don't have to create target Clang recipes, there is no extra
> toolchain
> to support, etc. Clang binaries are creted as a part of the build
> process (in order to support building target packages), however it
> only
> hits the LLVM sysroot-native and is only used by the LLVM target
> build.
>
> Future work by Khem (once Clang is properly supported in OE-Core)
> should
> allow us to create proper recipes for libclc and spirv-llvm-
> translator
> and drop them from the llvm / clang recipe.
>
> I think this approach provides a good balance between OE-Core being
> stuck with the outdated Mesa release and being able to upgrade it,
> bringing support for new hardware.
>
> Last two patches of the series bring in RustiCL support, a new OpenCL
> implementation within Mesa. They are optional for the sake of the
> upgrade and can be dropped if there is any issue with those. RustiCL
> support is mostly compile-tested at this point.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Thanks for the patches. I haven't looked in detail yet but I did try
running them through testing which revealed:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/92/builds/1283
as well as some issues working with meta-clang:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/18/builds/652
There are other patches causing issues in that build, I'll leave it
running in case it can spot any other issues with this patch series.
Cheers,
Richard
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [OE-core] [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support
2025-03-29 20:07 ` [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
2025-03-29 20:43 ` Patchtest results for " patchtest
@ 2025-03-31 10:13 ` Alexander Kanavin
2025-03-31 11:46 ` Dmitry Baryshkov
1 sibling, 1 reply; 18+ messages in thread
From: Alexander Kanavin @ 2025-03-31 10:13 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: openembedded-core, Khem Raj
On Sat, 29 Mar 2025 at 21:07, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> @@ -23,9 +23,18 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
>
> LLVM_RELEASE = "${PV}"
>
> +SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715"
> +SPIRV_BRANCH = "llvm_release_200"
This can be similarly set from PV using oe.utils.trim_version. That
way there's no need to manually rewrite the value on version updates:
https://github.com/KhronosGroup/SPIRV-LLVM-Translator/branches/active
Alex
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [OE-core] [PATCH v3 0/9] mesa: upgrade to 25.0.2
2025-03-30 22:40 ` [OE-core] [PATCH v3 0/9] mesa: upgrade to 25.0.2 Richard Purdie
@ 2025-03-31 10:15 ` Dmitry Baryshkov
0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 10:15 UTC (permalink / raw)
To: Richard Purdie
Cc: openembedded-core, Khem Raj,
Zoltán Böszörményi
On Sun, Mar 30, 2025 at 11:40:19PM +0100, Richard Purdie wrote:
> On Sat, 2025-03-29 at 22:07 +0200, Dmitry Baryshkov via
> lists.openembedded.org wrote:
> > libclc is required in order to build Intel drivers in Mesa 24.1 and
> > later. Thus OE-Core is currently locked to the 24.0.x branch, which
> > is
> > no longer maintained, having last release in June 2024.
> >
> > A clean solution is to package Clang, then use it to build libclc and
> > SPIRV-LLVM-Translator (required for Mesa OpenCL support). However
> > creating proper recipes for Clang is a long process (ongoing by Khem
> > Raj).
> >
> > This patchset attempts to solve the issue in a simpler way: by
> > building
> > libclc and SPIRV-LLVM-Translator together with the LLVM. This way we
> > don't have to create target Clang recipes, there is no extra
> > toolchain
> > to support, etc. Clang binaries are creted as a part of the build
> > process (in order to support building target packages), however it
> > only
> > hits the LLVM sysroot-native and is only used by the LLVM target
> > build.
> >
> > Future work by Khem (once Clang is properly supported in OE-Core)
> > should
> > allow us to create proper recipes for libclc and spirv-llvm-
> > translator
> > and drop them from the llvm / clang recipe.
> >
> > I think this approach provides a good balance between OE-Core being
> > stuck with the outdated Mesa release and being able to upgrade it,
> > bringing support for new hardware.
> >
> > Last two patches of the series bring in RustiCL support, a new OpenCL
> > implementation within Mesa. They are optional for the sake of the
> > upgrade and can be dropped if there is any issue with those. RustiCL
> > support is mostly compile-tested at this point.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>
> Thanks for the patches. I haven't looked in detail yet but I did try
> running them through testing which revealed:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/92/builds/1283
Okay, that's easy to fix, I missed multilib support.
>
> as well as some issues working with meta-clang:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/18/builds/652
This one is more interesting. I will open a PR against meta-clang to
disable libclc and spirv-llvm bits in the llvm recipe, which should also
remove clang conflict.
>
> There are other patches causing issues in that build, I'll leave it
> running in case it can spot any other issues with this patch series.
>
> Cheers,
>
> Richard
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [OE-core] [PATCH v3 7/9] mesa: upgrade 24.0.7 -> 25.0.2
2025-03-29 20:07 ` [PATCH v3 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
@ 2025-03-31 10:17 ` Alexander Kanavin
0 siblings, 0 replies; 18+ messages in thread
From: Alexander Kanavin @ 2025-03-31 10:17 UTC (permalink / raw)
To: dmitry.baryshkov; +Cc: openembedded-core, Khem Raj
On Sat, 29 Mar 2025 at 21:07, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> Changelog:
> https://docs.mesa3d.org/relnotes/25.0.2.html
This includes only 25.0.1 -> 25.0.2 changes, and so is misleading if
the update itself is from something much older. It's better to link to
the overall release note list:
https://docs.mesa3d.org/relnotes.html
or simply not include the changelog link at all.
Alex
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [OE-core] [PATCH v3 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl"
2025-03-29 20:07 ` [PATCH v3 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
@ 2025-03-31 10:22 ` Alexander Kanavin
0 siblings, 0 replies; 18+ messages in thread
From: Alexander Kanavin @ 2025-03-31 10:22 UTC (permalink / raw)
To: dmitry.baryshkov
Cc: openembedded-core, Khem Raj,
Zoltán Böszörményi
On Sat, 29 Mar 2025 at 21:07, Dmitry Baryshkov via
lists.openembedded.org
<dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> +Correctly generating LLVM bindings requires several croos-compilation
> +arguments. Provide them to rust.bindgen(). Karol Herbst on IRC suggested
> +that a proper fix should be to fix meson's rust.bindgen() to support
> +cross-compilation. Carry this patch until meson is fixed.
> +
> +Upstream-Status: Inappropriate [OE-Specific]
This does need a link to the meson ticket then.
Alex
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [OE-core] [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support
2025-03-31 10:13 ` [OE-core] " Alexander Kanavin
@ 2025-03-31 11:46 ` Dmitry Baryshkov
0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-31 11:46 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: openembedded-core, Khem Raj
On Mon, 31 Mar 2025 at 13:14, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
>
> On Sat, 29 Mar 2025 at 21:07, Dmitry Baryshkov via
> lists.openembedded.org
> <dmitry.baryshkov=oss.qualcomm.com@lists.openembedded.org> wrote:
> > @@ -23,9 +23,18 @@ MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}"
> >
> > LLVM_RELEASE = "${PV}"
> >
> > +SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715"
> > +SPIRV_BRANCH = "llvm_release_200"
>
> This can be similarly set from PV using oe.utils.trim_version. That
> way there's no need to manually rewrite the value on version updates:
Good idea, thanks!
>
> https://github.com/KhronosGroup/SPIRV-LLVM-Translator/branches/active
>
> Alex
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2025-03-31 11:46 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-29 20:07 [PATCH v3 0/9] mesa: upgrade to 25.0.2 Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 1/9] llvm: move libLLVM.so.N.M to llvm-libllvm package Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 2/9] llvm: use OECMAKE_SOURCEPATH to specify cmake dir Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 3/9] llvm: handle libdir in llvm-config Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 4/9] llvm: also use llvm-config wrapper for nativesdk recipes Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 5/9] llvm: support building libclc Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 6/9] llvm: add SPIRV-LLVM-Translator support Dmitry Baryshkov
2025-03-29 20:43 ` Patchtest results for " patchtest
2025-03-29 21:02 ` Dmitry Baryshkov
2025-03-31 10:13 ` [OE-core] " Alexander Kanavin
2025-03-31 11:46 ` Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 7/9] mesa: upgrade 24.0.7 -> 25.0.2 Dmitry Baryshkov
2025-03-31 10:17 ` [OE-core] " Alexander Kanavin
2025-03-29 20:07 ` [PATCH v3 8/9] bindgen-cli: a tool to generate Rust bindings Dmitry Baryshkov
2025-03-29 20:07 ` [PATCH v3 9/9] mesa: add support for RustiCL under PACKAGECONFIG "opencl" Dmitry Baryshkov
2025-03-31 10:22 ` [OE-core] " Alexander Kanavin
2025-03-30 22:40 ` [OE-core] [PATCH v3 0/9] mesa: upgrade to 25.0.2 Richard Purdie
2025-03-31 10:15 ` Dmitry Baryshkov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.