Message ID | 20241104194638.14864-1-reatmon@ti.com |
---|---|
State | Superseded |
Delegated to: | Ryan Eatmon |
Headers | show |
Series | [meta-ti,master/scarthgap] mesa-pvr: Fix build issues with llvm 18+ | expand |
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 <reatmon@ti.com> > --- > ...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 <reatmon@ti.com> > +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 <reatmon@ti.com> > +--- > + 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. 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. Reviewed-by: Randolph Sapp <rs@ti.com>
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 <reatmon@ti.com> >> --- >> ...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 <reatmon@ti.com> >> +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 <reatmon@ti.com> >> +--- >> + 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. > 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. > Reviewed-by: Randolph Sapp <rs@ti.com>
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 <reatmon@ti.com> > >> --- > >> ...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 <reatmon@ti.com> > >> +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 <reatmon@ti.com> > >> +--- > >> + 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 <rs@ti.com>
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 <reatmon@ti.com> +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 <reatmon@ti.com> +--- + 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"
Backport two fixes from the latest mesa project to fix two builds issues related to newer llvm versions. Signed-off-by: Ryan Eatmon <reatmon@ti.com> --- ...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