On Mon Nov 4, 2024 at 4:37 PM CST, Ryan Eatmon wrote: > On 11/4/2024 4:19 PM, Randolph Sapp wrote: > > On Mon Nov 4, 2024 at 1:46 PM CST, Ryan Eatmon via lists.yoctoproject.org > > wrote: > >> Backport two fixes from the latest mesa project to fix two builds issues > >> related to newer llvm versions. > >> > >> Signed-off-by: Ryan Eatmon <[email protected]> > >> --- > >> ...allium-Fix-build-with-llvm-18-and-19.patch | 53 +++++++++++++++++++ > >> .../recipes-graphics/mesa/mesa-pvr_23.2.1.bb | 1 + > >> 2 files changed, 54 insertions(+) > >> create mode 100644 > >> meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-23.2.1/0001-gallium-Fix-build-with-llvm-18-and-19.patch > >> > >> diff --git > >> a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-23.2.1/0001-gallium-Fix-build-with-llvm-18-and-19.patch > >> > >> b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-23.2.1/0001-gallium-Fix-build-with-llvm-18-and-19.patch > >> new file mode 100644 > >> index 00000000..ad5059f1 > >> --- /dev/null > >> +++ > >> b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-23.2.1/0001-gallium-Fix-build-with-llvm-18-and-19.patch > >> @@ -0,0 +1,53 @@ > >> +From 6c5033bb01a3a1341d4db5007586a5f2e2727b0a Mon Sep 17 00:00:00 2001 > >> +From: Ryan Eatmon <[email protected]> > >> +Date: Mon, 4 Nov 2024 13:37:29 -0600 > >> +Subject: [PATCH] gallium: Fix build with llvm 18 and 19 > >> + > >> +- CodeGenOpt::Level changed to CodeGenOoptLevel. [1] > >> +- llvm::sys::getHostCPUFeatures() now returns the features instead of > >> +modifying the passed in argument. [2] > >> + > >> +Upstream-Status: Backport > >> [1][https://gitlab.freedesktop.org/mesa/mesa/-/commit/f79617fe804ea6524651ff1bc3a91098d3199179] > >> +Upstream-Status: Backport > >> [2][https://gitlab.freedesktop.org/mesa/mesa/-/commit/fa9cd89a85b904615ebc11da609445b5b751e68d] > >> + > >> +Signed-off-by: Ryan Eatmon <[email protected]> > >> +--- > >> + src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 14 ++++++++++++-- > >> + 1 file changed, 12 insertions(+), 2 deletions(-) > >> + > >> +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp > >> b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp > >> +index 5e7a30a6cc2..dbc777e3096 100644 > >> +--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp > >> ++++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp > >> +@@ -366,7 +366,11 @@ > >> lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, > >> + builder.setEngineKind(EngineKind::JIT) > >> + .setErrorStr(&Error) > >> + .setTargetOptions(options) > >> ++#if LLVM_VERSION_MAJOR >= 18 > >> ++ .setOptLevel((CodeGenOptLevel)OptLevel); > >> ++#else > >> + .setOptLevel((CodeGenOpt::Level)OptLevel); > >> ++#endif > >> + > >> + #if DETECT_OS_WINDOWS > >> + /* > >> +@@ -394,8 +398,14 @@ > >> lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, > >> + * which allows us to enable/disable code generation based > >> + * on the results of cpuid on these architectures. > >> + */ > >> +- llvm::StringMap<bool> features; > >> +- llvm::sys::getHostCPUFeatures(features); > >> ++ #if LLVM_VERSION_MAJOR >= 19 > >> ++ /* llvm-19+ returns StringMap from getHostCPUFeatures. > >> ++ */ > >> ++ auto features = llvm::sys::getHostCPUFeatures(); > >> ++ #else > >> ++ llvm::StringMap<bool> features; > >> ++ llvm::sys::getHostCPUFeatures(features); > >> ++ #endif > >> + > >> + for (StringMapIterator<bool> f = features.begin(); > >> + f != features.end(); > >> +-- > >> +2.17.1 > >> + > >> diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb > >> b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb > >> index 21134bc7..33af456d 100644 > >> --- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb > >> +++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_23.2.1.bb > >> @@ -16,6 +16,7 @@ SRC_URI = " \ > >> file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ > >> file://0001-gallium-Fix-build-with-llvm-17.patch \ > >> file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \ > >> + file://0001-gallium-Fix-build-with-llvm-18-and-19.patch \ > >> " > >> > >> S = "${WORKDIR}/git" > > > > Thanks Ryan! Since it's an upstream commit, I can carry it on the powervr > > mesa > > branches directly, if that's preferable. Up to you. > > That's up to you. But you will need to fix both of the versions.
Suppose it makes more sense to keep it here then. This is a rather unusual configuration. > > Worth noting that in my tests right now I'm seeing a runtime fault. Don't > > believe it's related to this patch but I would be cautious enabling > > gallium-llvmpipe at this moment. > > I'll hold off on accepting it while you fully test it. Just let me know. Fix for that posted to meta-arago. Good to go here. > > Reviewed-by: Randolph Sapp <[email protected]>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#18040): https://lists.yoctoproject.org/g/meta-ti/message/18040 Mute This Topic: https://lists.yoctoproject.org/mt/109392601/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
