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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to