Message ID | 20230928230106.1058552-1-raj.khem@gmail.com |
---|---|
State | Accepted, archived |
Commit | 941089fa63e2b38608291251d52a354f0f624926 |
Headers | show |
Series | [1/2] mesa: Fix native build on hosts with llvm-dev installed | expand |
2023. 09. 29. 1:01 keltezéssel, Khem Raj írta: > This issue is always there, it just shows up with newer LLVM since > symbol mismatches are being found otherwise it was happily linking with > host libLLVM.so silently. > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > ...e-cmake-dependency-detector-for-llvm.patch | 47 +++++++++++++++++++ > meta/recipes-graphics/mesa/mesa.inc | 1 + > 2 files changed, 48 insertions(+) > create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch > > diff --git a/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch b/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch > new file mode 100644 > index 00000000000..3a836ab4821 > --- /dev/null > +++ b/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch > @@ -0,0 +1,47 @@ > +From 00d41cd5aa3f4b494dc276c9b4ccdc096310c91f Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Thu, 28 Sep 2023 15:34:22 -0700 > +Subject: [PATCH] meson: Disable cmake dependency detector for llvm > + > +meson dependency auto dependency detection uses cmake and then > +config-tool to process dependencies, in mesa the logic to detect llvm is > +using auto detection which means if it finds cmake then it will try to > +use cmake method. Cmake method works ok except a case when llvm-dev > +package is installed on the build host then it generates its own > +native.meson file and ignores OE supplied meson.native file which has > +correct llvm-config tool specified which is pointing to llvm-config from > +native sysroot. The generated meson.native file points to one found in > +/usr/bin and there onwards detector finds native install of llvm and > +configures that into building native mesa package. > + > +Since cmake detector does not always work, disable it by default and use > +config-tool which works in all cases. This is suggested in below issues > +too > + > +A similar issue is open in meson upstream [1] and mesa [2] > + > +[1] https://github.com/mesonbuild/meson/issues/10483 > +[2] https://gitlab.freedesktop.org/mesa/mesa/-/issues/6738 https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25438 > + > +Upstream-Status: Inappropriate [Cross-compile specific] > + > +Signed-off-by: Khem Raj <raj.khem@gmail.com> > +--- > + meson.build | 1 + > + 1 file changed, 1 insertion(+) > + > +diff --git a/meson.build b/meson.build > +index 00a6953..05815ec 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -1659,6 +1659,7 @@ with_llvm = false > + if _llvm.allowed() > + dep_llvm = dependency( > + 'llvm', > ++ method : 'config-tool', > + version : _llvm_version, > + modules : llvm_modules, > + optional_modules : llvm_optional_modules, > +-- > +2.42.0 > + > diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc > index 559d445ae5e..4e824500dd0 100644 > --- a/meta/recipes-graphics/mesa/mesa.inc > +++ b/meta/recipes-graphics/mesa/mesa.inc > @@ -19,6 +19,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ > file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ > file://0001-gallium-Fix-build-with-llvm-17.patch \ > file://0001-intel-Allow-using-intel_clc-from-the-system.patch \ > + file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \ > " > > SRC_URI[sha256sum] = "45434ff91a709844130a3174d9c0ef39c6b50725b2bb0c13e736f36134db14ad" > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#188386): https://lists.openembedded.org/g/openembedded-core/message/188386 > Mute This Topic: https://lists.openembedded.org/mt/101648329/3617728 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [zboszor@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch b/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch new file mode 100644 index 00000000000..3a836ab4821 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch @@ -0,0 +1,47 @@ +From 00d41cd5aa3f4b494dc276c9b4ccdc096310c91f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 28 Sep 2023 15:34:22 -0700 +Subject: [PATCH] meson: Disable cmake dependency detector for llvm + +meson dependency auto dependency detection uses cmake and then +config-tool to process dependencies, in mesa the logic to detect llvm is +using auto detection which means if it finds cmake then it will try to +use cmake method. Cmake method works ok except a case when llvm-dev +package is installed on the build host then it generates its own +native.meson file and ignores OE supplied meson.native file which has +correct llvm-config tool specified which is pointing to llvm-config from +native sysroot. The generated meson.native file points to one found in +/usr/bin and there onwards detector finds native install of llvm and +configures that into building native mesa package. + +Since cmake detector does not always work, disable it by default and use +config-tool which works in all cases. This is suggested in below issues +too + +A similar issue is open in meson upstream [1] and mesa [2] + +[1] https://github.com/mesonbuild/meson/issues/10483 +[2] https://gitlab.freedesktop.org/mesa/mesa/-/issues/6738 + +Upstream-Status: Inappropriate [Cross-compile specific] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/meson.build b/meson.build +index 00a6953..05815ec 100644 +--- a/meson.build ++++ b/meson.build +@@ -1659,6 +1659,7 @@ with_llvm = false + if _llvm.allowed() + dep_llvm = dependency( + 'llvm', ++ method : 'config-tool', + version : _llvm_version, + modules : llvm_modules, + optional_modules : llvm_optional_modules, +-- +2.42.0 + diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 559d445ae5e..4e824500dd0 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -19,6 +19,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ file://0001-gallium-Fix-build-with-llvm-17.patch \ file://0001-intel-Allow-using-intel_clc-from-the-system.patch \ + file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \ " SRC_URI[sha256sum] = "45434ff91a709844130a3174d9c0ef39c6b50725b2bb0c13e736f36134db14ad"
This issue is always there, it just shows up with newer LLVM since symbol mismatches are being found otherwise it was happily linking with host libLLVM.so silently. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- ...e-cmake-dependency-detector-for-llvm.patch | 47 +++++++++++++++++++ meta/recipes-graphics/mesa/mesa.inc | 1 + 2 files changed, 48 insertions(+) create mode 100644 meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch