diff options
author | Alexander Kanavin <alex.kanavin@gmail.com> | 2019-04-15 12:54:49 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-04-16 11:10:02 +0100 |
commit | c46c419929910e28de9b1d56993b3958bee35457 (patch) | |
tree | f6ef445ddf39303fc813592a354e2bb45e371ca6 | |
parent | 8a9aaf9e1e311e7172d5551e380481aee4be1bd3 (diff) | |
download | poky-c46c419929910e28de9b1d56993b3958bee35457.tar.gz |
meson: update to 0.50.0
Remove 0001-Linker-rules-move-cross_args-in-front-of-output_args.patch
as the upstream code has been completely reworked; if the issues pops up
again, we need to re-write the fix.
Rebase:
0001-Make-CPU-family-warnings-fatal.patch
0001-environment.py-detect-windows-also-if-the-system-str.patch
0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
0002-Support-building-allarch-recipes-again.patch
Add 0001-mesonbuild-environment.py-check-environment-for-vari.patch
as particularly we set windows resource compiler through an
environment variable WINDRES. This has replaced the
0001-modules-windows-split-WINDRES-env-variable.patch as the code
has been refactored.
Add 0001-mesonbuild-environment.py-do-not-determine-whether-a.patch
for a more robust detection of cross builds.
Replace many-cross.patch with corresponding backports from upcoming 0.50.1:
0007-mesonbuild-allow-multiple-cross-file-options.patch
load-configs-generalise-search-path.patch
Drop cross-libdir.patch as it has been merged upstream.
(From OE-Core rev: 3f9a0f0c6c99364eb128ffc2db704e957f1c0bce)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
14 files changed, 222 insertions, 222 deletions
diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc index 2d18f72c0c..6d743fbe14 100644 --- a/meta/recipes-devtools/meson/meson.inc +++ b/meta/recipes-devtools/meson/meson.inc | |||
@@ -7,18 +7,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" | |||
7 | SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz \ | 7 | SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz \ |
8 | file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \ | 8 | file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \ |
9 | file://0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch \ | 9 | file://0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch \ |
10 | file://0001-Linker-rules-move-cross_args-in-front-of-output_args.patch \ | ||
11 | file://0003-native_bindir.patch \ | 10 | file://0003-native_bindir.patch \ |
12 | file://0001-python-module-do-not-manipulate-the-environment-when.patch \ | 11 | file://0001-python-module-do-not-manipulate-the-environment-when.patch \ |
13 | file://disable-rpath-handling.patch \ | 12 | file://disable-rpath-handling.patch \ |
14 | file://0001-modules-windows-split-WINDRES-env-variable.patch \ | ||
15 | file://0002-environment.py-detect-windows-also-if-the-system-str.patch \ | ||
16 | file://cross-prop-default.patch \ | 13 | file://cross-prop-default.patch \ |
17 | file://many-cross.patch \ | 14 | file://load-configs-generalise-search-path.patch \ |
18 | file://cross-libdir.patch \ | 15 | file://0007-mesonbuild-allow-multiple-cross-file-options.patch \ |
16 | file://0001-environment.py-detect-windows-also-if-the-system-str.patch \ | ||
17 | file://0001-mesonbuild-environment.py-do-not-determine-whether-a.patch \ | ||
18 | file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \ | ||
19 | " | 19 | " |
20 | SRC_URI[sha256sum] = "ef9f14326ec1e30d3ba1a26df0f92826ede5a79255ad723af78a2691c37109fd" | 20 | SRC_URI[sha256sum] = "2a1bc42dda58206fb922cda5e1ca95cc03ad126321d26acc47d3493ec4e7021f" |
21 | SRC_URI[md5sum] = "0267b0871266056184c484792572c682" | 21 | SRC_URI[md5sum] = "433483107fda4616eaf33de7e7083a84" |
22 | 22 | ||
23 | SRC_URI_append_class-native = " \ | 23 | SRC_URI_append_class-native = " \ |
24 | file://0001-Make-CPU-family-warnings-fatal.patch \ | 24 | file://0001-Make-CPU-family-warnings-fatal.patch \ |
diff --git a/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch b/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch deleted file mode 100644 index 97778c32eb..0000000000 --- a/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From 4676224dbdff0f7107e8cbdbe0eab19c855f1454 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 17 Nov 2017 13:18:28 +0200 | ||
4 | Subject: [PATCH] Linker rules: move {cross_args} in front of {output_args} | ||
5 | |||
6 | The previous order was found to break linking in some cases | ||
7 | (e.g. when -no-pic -fno-PIC was present in {cross_args}. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
11 | --- | ||
12 | mesonbuild/backend/ninjabackend.py | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py | ||
16 | index bb281e1..969b70e 100644 | ||
17 | --- a/mesonbuild/backend/ninjabackend.py | ||
18 | +++ b/mesonbuild/backend/ninjabackend.py | ||
19 | @@ -1501,7 +1501,7 @@ int dummy; | ||
20 | rspfile_content = $ARGS {output_args} $in $LINK_ARGS {cross_args} $aliasing | ||
21 | ''' | ||
22 | else: | ||
23 | - command_template = ' command = {executable} $ARGS {output_args} $in $LINK_ARGS {cross_args} $aliasing\n' | ||
24 | + command_template = ' command = {executable} $ARGS {cross_args} {output_args} $in $LINK_ARGS $aliasing\n' | ||
25 | command = command_template.format( | ||
26 | executable=' '.join(compiler.get_linker_exelist()), | ||
27 | cross_args=' '.join(cross_args), | ||
28 | -- | ||
29 | 2.15.0 | ||
30 | |||
diff --git a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch index fbc3f5ad82..2580b1e366 100644 --- a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch +++ b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 2db829d865bb6464ac15dbb4a58c9a675e296866 Mon Sep 17 00:00:00 2001 | 1 | From f76d2bf09f7ffd871d068c4ac4c4be083f5fb07f Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@intel.com> | 2 | From: Ross Burton <ross.burton@intel.com> |
3 | Date: Tue, 3 Jul 2018 13:59:09 +0100 | 3 | Date: Tue, 3 Jul 2018 13:59:09 +0100 |
4 | Subject: [PATCH] Make CPU family warnings fatal | 4 | Subject: [PATCH] Make CPU family warnings fatal |
@@ -7,15 +7,29 @@ Upstream-Status: Inappropriate [OE specific] | |||
7 | Signed-off-by: Ross Burton <ross.burton@intel.com> | 7 | Signed-off-by: Ross Burton <ross.burton@intel.com> |
8 | 8 | ||
9 | --- | 9 | --- |
10 | mesonbuild/environment.py | 6 ++---- | 10 | mesonbuild/envconfig.py | 2 +- |
11 | 1 file changed, 2 insertions(+), 4 deletions(-) | 11 | mesonbuild/environment.py | 4 +--- |
12 | 2 files changed, 2 insertions(+), 4 deletions(-) | ||
12 | 13 | ||
14 | diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py | ||
15 | index f2510c1..b9841fe 100644 | ||
16 | --- a/mesonbuild/envconfig.py | ||
17 | +++ b/mesonbuild/envconfig.py | ||
18 | @@ -178,7 +178,7 @@ class MachineInfo: | ||
19 | |||
20 | cpu_family = literal['cpu_family'] | ||
21 | if cpu_family not in known_cpu_families: | ||
22 | - mlog.warning('Unknown CPU family %s, please report this at https://github.com/mesonbuild/meson/issues/new' % cpu_family) | ||
23 | + raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % cpu_family) | ||
24 | |||
25 | endian = literal['endian'] | ||
26 | if endian not in ('little', 'big'): | ||
13 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | 27 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py |
14 | index 2ccd31e..5fcf9df 100644 | 28 | index 4c1c5ac..a5a7461 100644 |
15 | --- a/mesonbuild/environment.py | 29 | --- a/mesonbuild/environment.py |
16 | +++ b/mesonbuild/environment.py | 30 | +++ b/mesonbuild/environment.py |
17 | @@ -265,9 +265,7 @@ def detect_cpu_family(compilers): | 31 | @@ -242,9 +242,7 @@ def detect_cpu_family(compilers): |
18 | # below. | 32 | trial = 'parisc' |
19 | 33 | ||
20 | if trial not in known_cpu_families: | 34 | if trial not in known_cpu_families: |
21 | - mlog.warning('Unknown CPU family {!r}, please report this at ' | 35 | - mlog.warning('Unknown CPU family {!r}, please report this at ' |
@@ -25,12 +39,3 @@ index 2ccd31e..5fcf9df 100644 | |||
25 | 39 | ||
26 | return trial | 40 | return trial |
27 | 41 | ||
28 | @@ -1232,7 +1230,7 @@ class MachineInfo: | ||
29 | |||
30 | cpu_family = literal['cpu_family'] | ||
31 | if cpu_family not in known_cpu_families: | ||
32 | - mlog.warning('Unknown CPU family %s, please report this at https://github.com/mesonbuild/meson/issues/new' % cpu_family) | ||
33 | + raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % cpu_family) | ||
34 | |||
35 | endian = literal['endian'] | ||
36 | if endian not in ('little', 'big'): | ||
diff --git a/meta/recipes-devtools/meson/meson/0002-environment.py-detect-windows-also-if-the-system-str.patch b/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch index 1be5d66329..f6043190af 100644 --- a/meta/recipes-devtools/meson/meson/0002-environment.py-detect-windows-also-if-the-system-str.patch +++ b/meta/recipes-devtools/meson/meson/0001-environment.py-detect-windows-also-if-the-system-str.patch | |||
@@ -1,20 +1,20 @@ | |||
1 | From 7bf4c2c02eb7fe1bf24b23e3ba2d7df36495e0aa Mon Sep 17 00:00:00 2001 | 1 | From 63b78b7990c5d60f7bc674a26f655caa0bec3c49 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Wed, 13 Feb 2019 17:45:09 +0100 | 3 | Date: Mon, 25 Mar 2019 17:17:06 +0100 |
4 | Subject: [PATCH] environment.py: detect windows also if the system string | 4 | Subject: [PATCH] environment.py: detect windows also if the system string |
5 | contains 'mingw' | 5 | contains 'mingw' |
6 | 6 | ||
7 | Upstream-Status: Pending | 7 | Upstream-Status: Pending |
8 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | 8 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
9 | --- | 9 | --- |
10 | mesonbuild/environment.py | 2 +- | 10 | mesonbuild/envconfig.py | 2 +- |
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | 11 | 1 file changed, 1 insertion(+), 1 deletion(-) |
12 | 12 | ||
13 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | 13 | diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py |
14 | index b4fc0dc..845077e 100644 | 14 | index f2510c1..5309ef4 100644 |
15 | --- a/mesonbuild/environment.py | 15 | --- a/mesonbuild/envconfig.py |
16 | +++ b/mesonbuild/environment.py | 16 | +++ b/mesonbuild/envconfig.py |
17 | @@ -1247,7 +1247,7 @@ class MachineInfo: | 17 | @@ -194,7 +194,7 @@ class MachineInfo: |
18 | """ | 18 | """ |
19 | Machine is windows? | 19 | Machine is windows? |
20 | """ | 20 | """ |
diff --git a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch index 11fd9ed3ac..7c3238bf91 100644 --- a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch +++ b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch | |||
@@ -27,7 +27,7 @@ index bf49770..7c5a363 100644 | |||
27 | '--mode=' + mode] | 27 | '--mode=' + mode] |
28 | if namespace: | 28 | if namespace: |
29 | args.append('--namespace=' + namespace) | 29 | args.append('--namespace=' + namespace) |
30 | + gtkdoc_exe_wrapper = state.environment.cross_info.config["properties"].get('gtkdoc_exe_wrapper', None) | 30 | + gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None) |
31 | + if gtkdoc_exe_wrapper is not None: | 31 | + if gtkdoc_exe_wrapper is not None: |
32 | + args.append('--run=' + gtkdoc_exe_wrapper) | 32 | + args.append('--run=' + gtkdoc_exe_wrapper) |
33 | + | 33 | + |
diff --git a/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch b/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch new file mode 100644 index 0000000000..fadb2734f4 --- /dev/null +++ b/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From 63e79329b5dd00882f0cea56a6d907a831b94171 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Mon, 25 Mar 2019 18:52:48 +0100 | ||
4 | Subject: [PATCH] mesonbuild/environment.py: check environment for various | ||
5 | binaries | ||
6 | |||
7 | Upstream-Status: Inappropriate [oe-core specific] | ||
8 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
9 | --- | ||
10 | mesonbuild/environment.py | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | ||
14 | index 6e5d689..bbfd87d 100644 | ||
15 | --- a/mesonbuild/environment.py | ||
16 | +++ b/mesonbuild/environment.py | ||
17 | @@ -398,7 +398,7 @@ class Environment: | ||
18 | config = MesonConfigFile.from_config_parser( | ||
19 | coredata.load_configs(self.coredata.cross_files, 'cross')) | ||
20 | self.properties.host = Properties(config.get('properties', {}), False) | ||
21 | - self.binaries.host = BinaryTable(config.get('binaries', {}), False) | ||
22 | + self.binaries.host = BinaryTable(config.get('binaries', {}), True) | ||
23 | if 'host_machine' in config: | ||
24 | self.machines.host = MachineInfo.from_literal(config['host_machine']) | ||
25 | if 'target_machine' in config: | ||
26 | -- | ||
27 | 2.17.1 | ||
28 | |||
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 new file mode 100644 index 0000000000..e64e13b836 --- /dev/null +++ b/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-do-not-determine-whether-a.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From c040f0dbace3259c80f3710bc019433b9c817940 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Mon, 25 Mar 2019 18:18:33 +0100 | ||
4 | Subject: [PATCH] mesonbuild/environment.py: do not determine whether a build | ||
5 | is cross by comparing architectures | ||
6 | |||
7 | This can, and does, go wrong when our host architecture is same as the target one(e.g. x86_64). | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
11 | --- | ||
12 | mesonbuild/environment.py | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | ||
16 | index 4c1c5ac..6e5d689 100644 | ||
17 | --- a/mesonbuild/environment.py | ||
18 | +++ b/mesonbuild/environment.py | ||
19 | @@ -478,7 +478,7 @@ class Environment: | ||
20 | self.first_invocation = True | ||
21 | |||
22 | def is_cross_build(self): | ||
23 | - return not self.machines.matches_build_machine(MachineChoice.HOST) | ||
24 | + return self.need_exe_wrapper() | ||
25 | |||
26 | def dump_coredata(self): | ||
27 | return coredata.save(self.coredata, self.get_build_dir()) | ||
28 | -- | ||
29 | 2.17.1 | ||
30 | |||
diff --git a/meta/recipes-devtools/meson/meson/0001-modules-windows-split-WINDRES-env-variable.patch b/meta/recipes-devtools/meson/meson/0001-modules-windows-split-WINDRES-env-variable.patch deleted file mode 100644 index c334e6dd66..0000000000 --- a/meta/recipes-devtools/meson/meson/0001-modules-windows-split-WINDRES-env-variable.patch +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | From 5293d0f5067b2aeefe9ce3c175c972de367589bc Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Wed, 13 Feb 2019 17:43:54 +0100 | ||
4 | Subject: [PATCH] modules/windows: split WINDRES env variable | ||
5 | |||
6 | As it may contain not just the binary, but also the arguments to it. | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
10 | --- | ||
11 | mesonbuild/modules/windows.py | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py | ||
15 | index d185d89..dbaeb9b 100644 | ||
16 | --- a/mesonbuild/modules/windows.py | ||
17 | +++ b/mesonbuild/modules/windows.py | ||
18 | @@ -56,7 +56,7 @@ class WindowsModule(ExtensionModule): | ||
19 | if 'WINDRES' in os.environ: | ||
20 | # Pick-up env var WINDRES if set. This is often used for | ||
21 | # specifying an arch-specific windres. | ||
22 | - rescomp = ExternalProgram('windres', command=os.environ.get('WINDRES'), silent=True) | ||
23 | + rescomp = ExternalProgram('windres', command=os.environ.get('WINDRES').split(), silent=True) | ||
24 | |||
25 | if not rescomp or not rescomp.found(): | ||
26 | # Take windres from the config file after the environment, which is | ||
diff --git a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch index 81548cdfb8..f0ea61bac5 100644 --- a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch +++ b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From f8419d5f279f1fb9b5e7eead4f1579bce7cb0e4e Mon Sep 17 00:00:00 2001 | 1 | From 755902910ad124095c671b3c7f057e6513d9c0c6 Mon Sep 17 00:00:00 2001 |
2 | From: Peter Kjellerstedt <pkj@axis.com> | 2 | From: Peter Kjellerstedt <pkj@axis.com> |
3 | Date: Thu, 26 Jul 2018 16:32:49 +0200 | 3 | Date: Thu, 26 Jul 2018 16:32:49 +0200 |
4 | Subject: [PATCH] Support building allarch recipes again | 4 | Subject: [PATCH] Support building allarch recipes again |
@@ -9,15 +9,15 @@ Upstream-Status: Inappropriate [OE specific] | |||
9 | Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 9 | Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> |
10 | 10 | ||
11 | --- | 11 | --- |
12 | mesonbuild/environment.py | 1 + | 12 | mesonbuild/envconfig.py | 1 + |
13 | 1 file changed, 1 insertion(+) | 13 | 1 file changed, 1 insertion(+) |
14 | 14 | ||
15 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | 15 | diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py |
16 | index 5fcf9df..b4fc0dc 100644 | 16 | index b9841fe..9c0487e 100644 |
17 | --- a/mesonbuild/environment.py | 17 | --- a/mesonbuild/envconfig.py |
18 | +++ b/mesonbuild/environment.py | 18 | +++ b/mesonbuild/envconfig.py |
19 | @@ -72,6 +72,7 @@ from .compilers import ( | 19 | @@ -34,6 +34,7 @@ from . import mlog |
20 | build_filename = 'meson.build' | 20 | |
21 | 21 | ||
22 | known_cpu_families = ( | 22 | known_cpu_families = ( |
23 | + 'allarch', | 23 | + 'allarch', |
diff --git a/meta/recipes-devtools/meson/meson/many-cross.patch b/meta/recipes-devtools/meson/meson/0007-mesonbuild-allow-multiple-cross-file-options.patch index d04c28b8a3..6c2949c0e8 100644 --- a/meta/recipes-devtools/meson/meson/many-cross.patch +++ b/meta/recipes-devtools/meson/meson/0007-mesonbuild-allow-multiple-cross-file-options.patch | |||
@@ -1,4 +1,7 @@ | |||
1 | mesonbuild: allow multiple --cross-file options | 1 | From 07ae4f949b8402cff178dd12c210d9a726ffe2da Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@intel.com> | ||
3 | Date: Mon, 18 Mar 2019 17:27:57 +0000 | ||
4 | Subject: [PATCH] mesonbuild: allow multiple --cross-file options | ||
2 | 5 | ||
3 | Just like --native-file, allow multiple --cross-file options. This is mostly | 6 | Just like --native-file, allow multiple --cross-file options. This is mostly |
4 | unifying the logic between cross_files and config_files. | 7 | unifying the logic between cross_files and config_files. |
@@ -6,11 +9,30 @@ unifying the logic between cross_files and config_files. | |||
6 | Upstream-Status: Backport [will be in 0.50.1] | 9 | Upstream-Status: Backport [will be in 0.50.1] |
7 | Signed-off-by: Ross Burton <ross.burton@intel.com> | 10 | Signed-off-by: Ross Burton <ross.burton@intel.com> |
8 | 11 | ||
12 | --- | ||
13 | .../markdown/snippets/multiple-cross-files.md | 3 ++ | ||
14 | mesonbuild/backend/backends.py | 3 +- | ||
15 | mesonbuild/coredata.py | 52 +++---------------- | ||
16 | mesonbuild/environment.py | 5 +- | ||
17 | mesonbuild/msetup.py | 4 +- | ||
18 | mesonbuild/munstable_coredata.py | 5 +- | ||
19 | 6 files changed, 20 insertions(+), 52 deletions(-) | ||
20 | create mode 100644 docs/markdown/snippets/multiple-cross-files.md | ||
21 | |||
22 | diff --git a/docs/markdown/snippets/multiple-cross-files.md b/docs/markdown/snippets/multiple-cross-files.md | ||
23 | new file mode 100644 | ||
24 | index 0000000..de229be | ||
25 | --- /dev/null | ||
26 | +++ b/docs/markdown/snippets/multiple-cross-files.md | ||
27 | @@ -0,0 +1,3 @@ | ||
28 | +## Multipe cross files can be specified | ||
29 | + | ||
30 | +`--cross-file` can be passed multiple times, with the configuration files overlaying the same way as `--native-file`. | ||
9 | diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py | 31 | diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py |
10 | index 40402513..4b9bcb59 100644 | 32 | index 4d35d22..5b270d3 100644 |
11 | --- a/mesonbuild/backend/backends.py | 33 | --- a/mesonbuild/backend/backends.py |
12 | +++ b/mesonbuild/backend/backends.py | 34 | +++ b/mesonbuild/backend/backends.py |
13 | @@ -726,8 +726,7 @@ class Backend: | 35 | @@ -788,8 +788,7 @@ class Backend: |
14 | deps = [os.path.join(self.build_to_src, df) | 36 | deps = [os.path.join(self.build_to_src, df) |
15 | for df in self.interpreter.get_build_def_files()] | 37 | for df in self.interpreter.get_build_def_files()] |
16 | if self.environment.is_cross_build(): | 38 | if self.environment.is_cross_build(): |
@@ -21,39 +43,19 @@ index 40402513..4b9bcb59 100644 | |||
21 | if os.path.exists(os.path.join(self.environment.get_source_dir(), 'meson_options.txt')): | 43 | if os.path.exists(os.path.join(self.environment.get_source_dir(), 'meson_options.txt')): |
22 | deps.append(os.path.join(self.build_to_src, 'meson_options.txt')) | 44 | deps.append(os.path.join(self.build_to_src, 'meson_options.txt')) |
23 | diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py | 45 | diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py |
24 | index c3f5a745..ff810683 100644 | 46 | index 066ad30..d80e9a0 100644 |
25 | --- a/mesonbuild/coredata.py | 47 | --- a/mesonbuild/coredata.py |
26 | +++ b/mesonbuild/coredata.py | 48 | +++ b/mesonbuild/coredata.py |
27 | @@ -201,8 +201,8 @@ class UserFeatureOption(UserComboOption): | 49 | @@ -265,7 +265,7 @@ class CoreData: |
28 | return self.value == 'auto' | 50 | self.compiler_options = PerMachine({}, {}, {}) |
29 | |||
30 | |||
31 | -def load_configs(filenames): | ||
32 | - """Load native files.""" | ||
33 | +def load_configs(filenames, subdir): | ||
34 | + """Load configuration files from a named subdirectory.""" | ||
35 | def gen(): | ||
36 | for f in filenames: | ||
37 | f = os.path.expanduser(os.path.expandvars(f)) | ||
38 | @@ -215,7 +215,7 @@ def load_configs(filenames): | ||
39 | os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')), | ||
40 | ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':') | ||
41 | for path in paths: | ||
42 | - path_to_try = os.path.join(path, 'meson', 'native', f) | ||
43 | + path_to_try = os.path.join(path, 'meson', subdir, f) | ||
44 | if os.path.isfile(path_to_try): | ||
45 | yield path_to_try | ||
46 | break | ||
47 | @@ -291,7 +291,7 @@ class CoreData: | ||
48 | self.compiler_options = {} | ||
49 | self.base_options = {} | 51 | self.base_options = {} |
50 | self.external_preprocess_args = {} # CPPFLAGS only | 52 | self.external_preprocess_args = PerMachine({}, {}, {}) # CPPFLAGS only |
51 | - self.cross_file = self.__load_cross_file(options.cross_file) | 53 | - self.cross_file = self.__load_cross_file(options.cross_file) |
52 | + self.cross_files = self.__load_config_files(options.cross_file) | 54 | + self.cross_files = self.__load_config_files(options.cross_file) |
53 | self.compilers = OrderedDict() | 55 | self.compilers = OrderedDict() |
54 | self.cross_compilers = OrderedDict() | 56 | self.cross_compilers = OrderedDict() |
55 | self.deps = OrderedDict() | 57 | self.deps = OrderedDict() |
56 | @@ -301,52 +301,14 @@ class CoreData: | 58 | @@ -276,57 +276,19 @@ class CoreData: |
57 | 59 | ||
58 | @staticmethod | 60 | @staticmethod |
59 | def __load_config_files(filenames): | 61 | def __load_config_files(filenames): |
@@ -105,10 +107,16 @@ index c3f5a745..ff810683 100644 | |||
105 | - | 107 | - |
106 | - raise MesonException('Cannot find specified cross file: ' + filename) | 108 | - raise MesonException('Cannot find specified cross file: ' + filename) |
107 | - | 109 | - |
110 | def libdir_cross_fixup(self): | ||
111 | # By default set libdir to "lib" when cross compiling since | ||
112 | # getting the "system default" is always wrong on multiarch | ||
113 | # platforms as it gets a value like lib/x86_64-linux-gnu. | ||
114 | - if self.cross_file is not None: | ||
115 | + if self.cross_files: | ||
116 | self.builtins['libdir'].value = 'lib' | ||
117 | |||
108 | def sanitize_prefix(self, prefix): | 118 | def sanitize_prefix(self, prefix): |
109 | if not os.path.isabs(prefix): | 119 | @@ -642,8 +604,8 @@ def read_cmd_line_file(build_dir, options): |
110 | raise MesonException('prefix value {!r} must be an absolute path' | ||
111 | @@ -558,8 +520,8 @@ def read_cmd_line_file(build_dir, options): | ||
112 | options.cmd_line_options = d | 120 | options.cmd_line_options = d |
113 | 121 | ||
114 | properties = config['properties'] | 122 | properties = config['properties'] |
@@ -119,7 +127,7 @@ index c3f5a745..ff810683 100644 | |||
119 | if not options.native_file: | 127 | if not options.native_file: |
120 | # This will be a string in the form: "['first', 'second', ...]", use | 128 | # This will be a string in the form: "['first', 'second', ...]", use |
121 | # literal_eval to get it into the list of strings. | 129 | # literal_eval to get it into the list of strings. |
122 | @@ -570,7 +532,7 @@ def write_cmd_line_file(build_dir, options): | 130 | @@ -654,7 +616,7 @@ def write_cmd_line_file(build_dir, options): |
123 | config = CmdLineFileParser() | 131 | config = CmdLineFileParser() |
124 | 132 | ||
125 | properties = {} | 133 | properties = {} |
@@ -129,50 +137,26 @@ index c3f5a745..ff810683 100644 | |||
129 | if options.native_file: | 137 | if options.native_file: |
130 | properties['native_file'] = options.native_file | 138 | properties['native_file'] = options.native_file |
131 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | 139 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py |
132 | index 6d86daf9..406ab8b8 100644 | 140 | index c25ef33..4c1c5ac 100644 |
133 | --- a/mesonbuild/environment.py | 141 | --- a/mesonbuild/environment.py |
134 | +++ b/mesonbuild/environment.py | 142 | +++ b/mesonbuild/environment.py |
135 | @@ -355,8 +355,8 @@ class Environment: | 143 | @@ -394,8 +394,9 @@ class Environment: |
136 | self.machines = MachineInfos() | 144 | self.binaries.build = BinaryTable(config.get('binaries', {})) |
137 | # Will be fully initialized later using compilers later. | 145 | self.paths.build = Directories(**config.get('paths', {})) |
138 | self.machines.detect_build() | ||
139 | - if self.coredata.cross_file: | ||
140 | - self.cross_info = CrossBuildInfo(self.coredata.cross_file) | ||
141 | + if self.coredata.cross_files: | ||
142 | + self.cross_info = CrossBuildInfo(self.coredata.cross_files) | ||
143 | if 'exe_wrapper' in self.cross_info.config['binaries']: | ||
144 | from .dependencies import ExternalProgram | ||
145 | self.exe_wrapper = ExternalProgram.from_bin_list( | ||
146 | @@ -373,7 +373,7 @@ class Environment: | ||
147 | 146 | ||
148 | if self.coredata.config_files: | 147 | - if self.coredata.cross_file is not None: |
149 | self.config_info = coredata.ConfigData( | 148 | - config = MesonConfigFile.parse_datafile(self.coredata.cross_file) |
150 | - coredata.load_configs(self.coredata.config_files)) | 149 | + if self.coredata.cross_files: |
151 | + coredata.load_configs(self.coredata.config_files, 'native')) | 150 | + config = MesonConfigFile.from_config_parser( |
152 | else: | 151 | + coredata.load_configs(self.coredata.cross_files, 'cross')) |
153 | self.config_info = coredata.ConfigData() | 152 | self.properties.host = Properties(config.get('properties', {}), False) |
154 | 153 | self.binaries.host = BinaryTable(config.get('binaries', {}), False) | |
155 | @@ -1113,13 +1113,8 @@ class CrossBuildInfo: | 154 | if 'host_machine' in config: |
156 | def ok_type(self, i): | ||
157 | return isinstance(i, (str, int, bool)) | ||
158 | |||
159 | - def parse_datafile(self, filename): | ||
160 | - config = configparser.ConfigParser() | ||
161 | - try: | ||
162 | - with open(filename, 'r') as f: | ||
163 | - config.read_file(f, filename) | ||
164 | - except FileNotFoundError: | ||
165 | - raise EnvironmentException('File not found: %s.' % filename) | ||
166 | + def parse_datafile(self, filenames): | ||
167 | + config = coredata.load_configs(filenames, 'cross') | ||
168 | # This is a bit hackish at the moment. | ||
169 | for s in config.sections(): | ||
170 | self.config[s] = {} | ||
171 | diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py | 155 | diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py |
172 | index 56a0e9a7..f0a1ae19 100644 | 156 | index 023afdb..6e8ca83 100644 |
173 | --- a/mesonbuild/msetup.py | 157 | --- a/mesonbuild/msetup.py |
174 | +++ b/mesonbuild/msetup.py | 158 | +++ b/mesonbuild/msetup.py |
175 | @@ -27,7 +27,9 @@ from .mesonlib import MesonException | 159 | @@ -29,7 +29,9 @@ from .mesonlib import MesonException |
176 | 160 | ||
177 | def add_arguments(parser): | 161 | def add_arguments(parser): |
178 | coredata.register_builtin_arguments(parser) | 162 | coredata.register_builtin_arguments(parser) |
@@ -183,25 +167,19 @@ index 56a0e9a7..f0a1ae19 100644 | |||
183 | help='File describing cross compilation environment.') | 167 | help='File describing cross compilation environment.') |
184 | parser.add_argument('--native-file', | 168 | parser.add_argument('--native-file', |
185 | default=[], | 169 | default=[], |
186 | diff --git a/run_unittests.py b/run_unittests.py | 170 | diff --git a/mesonbuild/munstable_coredata.py b/mesonbuild/munstable_coredata.py |
187 | index e6874b25..1d247291 100755 | 171 | index 78f3f34..913f942 100644 |
188 | --- a/run_unittests.py | 172 | --- a/mesonbuild/munstable_coredata.py |
189 | +++ b/run_unittests.py | 173 | +++ b/mesonbuild/munstable_coredata.py |
190 | @@ -529,7 +529,7 @@ class InternalTests(unittest.TestCase): | 174 | @@ -81,8 +81,9 @@ def run(options): |
191 | config.write(configfile) | 175 | print('Last seen PKGCONFIG enviroment variable value: ' + v) |
192 | configfile.flush() | 176 | elif k == 'version': |
193 | configfile.close() | 177 | print('Meson version: ' + v) |
194 | - detected_value = mesonbuild.environment.CrossBuildInfo(configfile.name).need_exe_wrapper() | 178 | - elif k == 'cross_file': |
195 | + detected_value = mesonbuild.environment.CrossBuildInfo((configfile.name,)).need_exe_wrapper() | 179 | - print('Cross File: ' + (v or 'None')) |
196 | os.unlink(configfilename) | 180 | + elif k == 'cross_files': |
197 | 181 | + if v: | |
198 | desired_value = not detected_value | 182 | + print('Cross File: ' + ' '.join(v)) |
199 | @@ -541,7 +541,7 @@ class InternalTests(unittest.TestCase): | 183 | elif k == 'config_files': |
200 | configfilename = configfile.name | 184 | if v: |
201 | config.write(configfile) | 185 | print('Native File: ' + ' '.join(v)) |
202 | configfile.close() | ||
203 | - forced_value = mesonbuild.environment.CrossBuildInfo(configfile.name).need_exe_wrapper() | ||
204 | + forced_value = mesonbuild.environment.CrossBuildInfo((configfile.name,)).need_exe_wrapper() | ||
205 | os.unlink(configfilename) | ||
206 | |||
207 | self.assertEqual(forced_value, desired_value) | ||
diff --git a/meta/recipes-devtools/meson/meson/cross-libdir.patch b/meta/recipes-devtools/meson/meson/cross-libdir.patch deleted file mode 100644 index 7395fdbdaa..0000000000 --- a/meta/recipes-devtools/meson/meson/cross-libdir.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | Upstream-Status: Backport | ||
2 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
3 | |||
4 | From ce24f0d6a9be22ba61d80cd254e0409de2eaffd7 Mon Sep 17 00:00:00 2001 | ||
5 | From: Jussi Pakkanen <jpakkane@gmail.com> | ||
6 | Date: Thu, 27 Dec 2018 23:43:35 +0200 | ||
7 | Subject: [PATCH] Default libdir is "lib" when cross compiling. Closes #2535. | ||
8 | |||
9 | --- | ||
10 | diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py | ||
11 | index ff810683..9ee23a69 100644 | ||
12 | --- a/mesonbuild/coredata.py | ||
13 | +++ b/mesonbuild/coredata.py | ||
14 | @@ -298,6 +298,7 @@ class CoreData: | ||
15 | # Only to print a warning if it changes between Meson invocations. | ||
16 | self.pkgconf_envvar = os.environ.get('PKG_CONFIG_PATH', '') | ||
17 | self.config_files = self.__load_config_files(options.native_file) | ||
18 | + self.libdir_cross_fixup() | ||
19 | |||
20 | @staticmethod | ||
21 | def __load_config_files(filenames): | ||
22 | @@ -309,6 +310,13 @@ class CoreData: | ||
23 | for f in filenames] | ||
24 | return filenames | ||
25 | |||
26 | + def libdir_cross_fixup(self): | ||
27 | + # By default set libdir to "lib" when cross compiling since | ||
28 | + # getting the "system default" is always wrong on multiarch | ||
29 | + # platforms as it gets a value like lib/x86_64-linux-gnu. | ||
30 | + if self.cross_files: | ||
31 | + self.builtins['libdir'].value = 'lib' | ||
32 | + | ||
33 | def sanitize_prefix(self, prefix): | ||
34 | if not os.path.isabs(prefix): | ||
35 | raise MesonException('prefix value {!r} must be an absolute path' | ||
diff --git a/meta/recipes-devtools/meson/meson/load-configs-generalise-search-path.patch b/meta/recipes-devtools/meson/meson/load-configs-generalise-search-path.patch new file mode 100644 index 0000000000..fc02576f5b --- /dev/null +++ b/meta/recipes-devtools/meson/meson/load-configs-generalise-search-path.patch | |||
@@ -0,0 +1,50 @@ | |||
1 | From d57dd1092e84e08ee15d7063b6c56bd6d864f2e1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@intel.com> | ||
3 | Date: Mon, 18 Mar 2019 16:16:56 +0000 | ||
4 | Subject: [PATCH] load_configs: generalise the search path | ||
5 | |||
6 | Instead of hard-coding the fact that load_configs() searches for files under | ||
7 | meson/native, pass in the subdirectory allowing the cross-file code to use the | ||
8 | same logic. | ||
9 | --- | ||
10 | mesonbuild/coredata.py | 6 +++--- | ||
11 | mesonbuild/environment.py | 2 +- | ||
12 | 2 files changed, 4 insertions(+), 4 deletions(-) | ||
13 | |||
14 | diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py | ||
15 | index fba90fa369..6e60917d10 100644 | ||
16 | --- a/mesonbuild/coredata.py | ||
17 | +++ b/mesonbuild/coredata.py | ||
18 | @@ -211,8 +211,8 @@ def is_auto(self): | ||
19 | return self.value == 'auto' | ||
20 | |||
21 | |||
22 | -def load_configs(filenames): | ||
23 | - """Load native files.""" | ||
24 | +def load_configs(filenames, subdir): | ||
25 | + """Load configuration files from a named subdirectory.""" | ||
26 | def gen(): | ||
27 | for f in filenames: | ||
28 | f = os.path.expanduser(os.path.expandvars(f)) | ||
29 | @@ -225,7 +225,7 @@ def gen(): | ||
30 | os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')), | ||
31 | ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':') | ||
32 | for path in paths: | ||
33 | - path_to_try = os.path.join(path, 'meson', 'native', f) | ||
34 | + path_to_try = os.path.join(path, 'meson', subdir, f) | ||
35 | if os.path.isfile(path_to_try): | ||
36 | yield path_to_try | ||
37 | break | ||
38 | diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py | ||
39 | index 58adb06960..92a00dd7bf 100644 | ||
40 | --- a/mesonbuild/environment.py | ||
41 | +++ b/mesonbuild/environment.py | ||
42 | @@ -408,7 +408,7 @@ def __init__(self, source_dir, build_dir, options): | ||
43 | |||
44 | if self.coredata.config_files is not None: | ||
45 | config = MesonConfigFile.from_config_parser( | ||
46 | - coredata.load_configs(self.coredata.config_files)) | ||
47 | + coredata.load_configs(self.coredata.config_files, 'native')) | ||
48 | self.binaries.build = BinaryTable(config.get('binaries', {})) | ||
49 | self.paths.build = Directories(**config.get('paths', {})) | ||
50 | |||
diff --git a/meta/recipes-devtools/meson/meson_0.49.2.bb b/meta/recipes-devtools/meson/meson_0.50.0.bb index de9b905c12..de9b905c12 100644 --- a/meta/recipes-devtools/meson/meson_0.49.2.bb +++ b/meta/recipes-devtools/meson/meson_0.50.0.bb | |||
diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.49.2.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.50.0.bb index 1549357a55..1549357a55 100644 --- a/meta/recipes-devtools/meson/nativesdk-meson_0.49.2.bb +++ b/meta/recipes-devtools/meson/nativesdk-meson_0.50.0.bb | |||