summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2019-10-07 11:11:38 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-10-08 11:22:19 +0100
commit9aa543aa9bd78c63343ae28fc85113ca2c9e0094 (patch)
treed0a398bbc58b57294ec47bdaeca2e82a8f6f49da
parente78641854c54f102301cec3d341a86c520c3edd0 (diff)
downloadopenembedded-core-contrib-9aa543aa9bd78c63343ae28fc85113ca2c9e0094.tar.gz
openembedded-core-contrib-9aa543aa9bd78c63343ae28fc85113ca2c9e0094.tar.bz2
openembedded-core-contrib-9aa543aa9bd78c63343ae28fc85113ca2c9e0094.zip
meson: fix cross detection
Meson 0.51 onwards detects if a build is cross by whether the host and build machines match. However this doesn't work in a number of cross compilation cases: notably where host is Windows but build is Linux, but also the common OpenEmbedded case where the host and build machine are both x86-64. Previously we'd patched this to instead look at whether an executable wrapper is needed: our cross files always set this to true so all cross builds would be identified as cross. However, this breaks build on the target as without a cross file the early cross build detection fails as we don't yet know if an exe wrapper is needed. The neater solution is to simply go back to the older logic: a cross build has cross files defined. [ YOCTO #13571 ] Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/meson/meson.inc2
-rw-r--r--meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch28
-rw-r--r--meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch28
3 files changed, 29 insertions, 29 deletions
diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
index d365bcd8a3..8219d87c74 100644
--- a/meta/recipes-devtools/meson/meson.inc
+++ b/meta/recipes-devtools/meson/meson.inc
@@ -15,7 +15,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
file://disable-rpath-handling.patch \
file://cross-prop-default.patch \
file://0001-environment.py-detect-windows-also-if-the-system-str.patch \
- file://0001-mesonbuild-environment.py-do-not-determine-whether-a.patch \
+ file://0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch \
file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \
file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
file://vala-cross-compile.patch \
diff --git a/meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch b/meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch
new file mode 100644
index 0000000000..a5dbb81b08
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/0001-Cross-build-is-defined-by-the-existance-of-a-cross-f.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 0b4d1e8afd5428a495f8624ee061f63977b4c268 Mon Sep 17 00:00:00 2001
+From: Jussi Pakkanen <jpakkane@gmail.com>
+Date: Sun, 6 Oct 2019 15:17:32 +0300
+Subject: [PATCH] Cross build is defined by the existance of a cross file.
+
+---
+ mesonbuild/environment.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
+index e5d041b4..03c65688 100644
+--- a/mesonbuild/environment.py
++++ b/mesonbuild/environment.py
+@@ -611,7 +611,7 @@ class Environment:
+ self.first_invocation = True
+
+ def is_cross_build(self) -> bool:
+- return not self.machines.matches_build_machine(MachineChoice.HOST)
++ return self.coredata.is_cross_build()
+
+ def dump_coredata(self):
+ return coredata.save(self.coredata, self.get_build_dir())
+--
+2.20.1
+
diff --git a/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch b/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch
deleted file mode 100644
index 8cb11879f4..0000000000
--- a/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ec9c4a22424a5d55fcf213a55d03f096ec24bcae Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 25 Mar 2019 18:18:33 +0100
-Subject: [PATCH] mesonbuild/environment.py: do not determine whether a build
- is cross by comparing architectures
-
-This can, and does, go wrong when our host architecture is same as the target one(e.g. x86_64).
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- mesonbuild/environment.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 84a7596..9a029f4 100644
---- a/mesonbuild/environment.py
-+++ b/mesonbuild/environment.py
-@@ -520,7 +520,7 @@ class Environment:
- self.first_invocation = True
-
- def is_cross_build(self) -> bool:
-- return not self.machines.matches_build_machine(MachineChoice.HOST)
-+ return self.need_exe_wrapper()
-
- def dump_coredata(self):
- return coredata.save(self.coredata, self.get_build_dir())