poky: meson: cherry-pick 0.52.0 -> 0.53.2

Alexander Kanavin (3):
      meson: update 0.52.0 -> 0.52.1
      meson: update 0.52.1 -> 0.53.0
      meson: upgrade 0.53.0 -> 0.53.1

William A. Kennington III (1):
      meson: upgrade 0.53.1 -> 0.53.2

Change-Id: I5617b9f3f710968e57e0c3330dc57abe3f23d1e2
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc
index 84bcc84..50fb41a 100644
--- a/poky/meta/recipes-devtools/meson/meson.inc
+++ b/poky/meta/recipes-devtools/meson/meson.inc
@@ -16,10 +16,9 @@
            file://cross-prop-default.patch \
            file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \
            file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
-           file://dbc9e971bd320f3df15c1ee74f54858e6792b183.patch \
            "
-SRC_URI[sha256sum] = "d60f75f0dedcc4fd249dbc7519d6f3ce6df490033d276ef1cf27453ef4938d32"
-SRC_URI[md5sum] = "7ea7772414dda8ae11072244bf7ba991"
+SRC_URI[sha256sum] = "3e8f830f33184397c2eb0b651ec502adb63decb28978bdc84b3558d71284c21f"
+SRC_URI[md5sum] = "80303535995fcae72bdb887df102b421"
 
 SRC_URI_append_class-native = " \
     file://0001-Make-CPU-family-warnings-fatal.patch \
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index fc55dca..9ce31e5 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -1,4 +1,4 @@
-From c07d29b715209cd5d75b142a00a540d45b00c36d Mon Sep 17 00:00:00 2001
+From ee638fd4a299bfc53a2238e9f71ae310c8d97460 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 3 Jul 2018 13:59:09 +0100
 Subject: [PATCH] Make CPU family warnings fatal
@@ -12,10 +12,10 @@
  2 files changed, 2 insertions(+), 4 deletions(-)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index a59cd89..17de654 100644
+index 0f277a7..24578ea 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -186,7 +186,7 @@ class MachineInfo:
+@@ -192,7 +192,7 @@ class MachineInfo:
  
          cpu_family = literal['cpu_family']
          if cpu_family not in known_cpu_families:
@@ -25,15 +25,15 @@
          endian = literal['endian']
          if endian not in ('little', 'big'):
 diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 3704921..f1988f2 100644
+index dc8b14f..3aab71e 100644
 --- a/mesonbuild/environment.py
 +++ b/mesonbuild/environment.py
-@@ -251,9 +251,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+@@ -354,9 +354,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
          trial = 'parisc'
  
      if trial not in known_cpu_families:
 -        mlog.warning('Unknown CPU family {!r}, please report this at '
--                     'https://github.com/mesonbuild/meson/issues/new with the'
+-                     'https://github.com/mesonbuild/meson/issues/new with the '
 -                     'output of `uname -a` and `cat /proc/cpuinfo`'.format(trial))
 +        raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % trial)
  
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
index bf715d1..eb0e90d 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
@@ -1,4 +1,4 @@
-From 3cb2c811dc6d4890342afa5b709cd30cf7b8f3ca Mon Sep 17 00:00:00 2001
+From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 19 Nov 2018 14:24:26 +0100
 Subject: [PATCH] python module: do not manipulate the environment when calling
@@ -12,10 +12,10 @@
  1 file changed, 12 deletions(-)
 
 diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
-index 9cfbd6f..3ff687a 100644
+index 07be318..b770603 100644
 --- a/mesonbuild/modules/python.py
 +++ b/mesonbuild/modules/python.py
-@@ -75,11 +75,6 @@ class PythonDependency(ExternalDependency):
+@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
                  old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
                  old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
  
@@ -25,10 +25,10 @@
 -                    os.environ['PKG_CONFIG_LIBDIR'] = pkg_libdir
 -
                  try:
-                     self.pkgdep = PkgConfigDependency('python-{}'.format(pkg_version), environment, kwargs)
-                     mlog.debug('Found "python-{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_version, pkg_libdir))
-@@ -88,13 +83,6 @@ class PythonDependency(ExternalDependency):
-                     mlog.debug('"python-{}" could not be found in LIBPC ({})'.format(pkg_version, pkg_libdir))
+                     self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
+                     mlog.debug('Found "{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_name, pkg_libdir))
+@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
+                     mlog.debug('"{}" could not be found in LIBPC ({})'.format(pkg_name, pkg_libdir))
                      mlog.debug(e)
  
 -                if old_pkg_path is not None:
@@ -39,5 +39,5 @@
 -                else:
 -                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
              else:
-                 mlog.debug('"python-{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_version, pkg_libdir))
+                 mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir))
  
diff --git a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
index b8837d7..ce18660 100644
--- a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
@@ -1,4 +1,4 @@
-From 263fc0e26e1fd92e25fa3ef93f4a549dcebc5887 Mon Sep 17 00:00:00 2001
+From 9c221c74bd306dfa6fec22c8f156eb9d4e4f7fcb Mon Sep 17 00:00:00 2001
 From: Peter Kjellerstedt <pkj@axis.com>
 Date: Thu, 26 Jul 2018 16:32:49 +0200
 Subject: [PATCH] Support building allarch recipes again
@@ -13,7 +13,7 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 17de654..2d2deef 100644
+index 24578ea..216e71f 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
 @@ -36,6 +36,7 @@ _T = typing.TypeVar('_T')
@@ -22,5 +22,5 @@
  known_cpu_families = (
 +    'allarch',
      'aarch64',
+     'alpha',
      'arc',
-     'arm',
diff --git a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
index 76cc493..dc822fb 100644
--- a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -1,4 +1,4 @@
-From 4a1d676522d6b56cbe9a45c3b040afaa27d37f78 Mon Sep 17 00:00:00 2001
+From e76726321067748362b39937bd1e663a1a948ad5 Mon Sep 17 00:00:00 2001
 From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
 Date: Wed, 15 Nov 2017 15:05:01 +0100
 Subject: [PATCH] native_bindir
@@ -22,10 +22,10 @@
  2 files changed, 14 insertions(+), 11 deletions(-)
 
 diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
-index 3c55a56..eb52fd1 100644
+index 40e304c..4b687df 100644
 --- a/mesonbuild/dependencies/base.py
 +++ b/mesonbuild/dependencies/base.py
-@@ -185,7 +185,7 @@ class Dependency:
+@@ -184,7 +184,7 @@ class Dependency:
      def get_exe_args(self, compiler):
          return []
  
@@ -34,7 +34,7 @@
          raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
  
      def get_configtool_variable(self, variable_name):
-@@ -248,7 +248,7 @@ class InternalDependency(Dependency):
+@@ -247,7 +247,7 @@ class InternalDependency(Dependency):
          self.sources = sources
          self.ext_deps = ext_deps
  
@@ -43,7 +43,7 @@
          raise DependencyException('Method "get_pkgconfig_variable()" is '
                                    'invalid for an internal dependency')
  
-@@ -670,15 +670,18 @@ class PkgConfigDependency(ExternalDependency):
+@@ -673,15 +673,18 @@ class PkgConfigDependency(ExternalDependency):
          return s.format(self.__class__.__name__, self.name, self.is_found,
                          self.version_reqs)
  
@@ -54,18 +54,18 @@
 +            cmd = [self.pkgbin.get_command()[0] + "-native"] + args
 +        else:
 +            cmd = self.pkgbin.get_command() + args
-         p, out = Popen_safe(cmd, env=env)[0:2]
-         rc, out = p.returncode, out.strip()
+         p, out, err = Popen_safe(cmd, env=env)
+         rc, out, err = p.returncode, out.strip(), err.strip()
          call = ' '.join(cmd)
          mlog.debug("Called `{}` -> {}\n{}".format(call, rc, out))
-         return rc, out
+         return rc, out, err
  
 -    def _call_pkgbin(self, args, env=None):
 +    def _call_pkgbin(self, args, env=None, use_native=False):
          # Always copy the environment since we're going to modify it
          # with pkg-config variables
          if env is None:
-@@ -698,7 +701,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -701,7 +704,7 @@ class PkgConfigDependency(ExternalDependency):
          targs = tuple(args)
          cache = PkgConfigDependency.pkgbin_cache
          if (self.pkgbin, targs, fenv) not in cache:
@@ -73,27 +73,27 @@
 +            cache[(self.pkgbin, targs, fenv)] = self._call_pkgbin_real(args, env, use_native)
          return cache[(self.pkgbin, targs, fenv)]
  
-     def _convert_mingw_paths(self, args):
-@@ -926,7 +929,7 @@ class PkgConfigDependency(ExternalDependency):
-             mlog.warning('Could not determine complete list of dependencies for %s' % self.name)
-         self.link_args, self.raw_link_args = self._search_libs(out, out_raw, out_all)
+     def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
+@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
+                                       (self.name, out_raw))
+         self.link_args, self.raw_link_args = self._search_libs(out, out_raw)
  
 -    def get_pkgconfig_variable(self, variable_name, kwargs):
 +    def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False):
          options = ['--variable=' + variable_name, self.name]
  
          if 'define_variable' in kwargs:
-@@ -939,7 +942,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -920,7 +923,7 @@ class PkgConfigDependency(ExternalDependency):
  
              options = ['--define-variable=' + '='.join(definition)] + options
  
--        ret, out = self._call_pkgbin(options)
-+        ret, out = self._call_pkgbin(options, use_native=use_native)
+-        ret, out, err = self._call_pkgbin(options)
++        ret, out, err = self._call_pkgbin(options, use_native=use_native)
          variable = ''
          if ret != 0:
              if self.required:
 diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
-index 6d784e6..73a9e13 100644
+index da411ef..856506a 100644
 --- a/mesonbuild/dependencies/ui.py
 +++ b/mesonbuild/dependencies/ui.py
 @@ -330,7 +330,7 @@ class QtBaseDependency(ExternalDependency):
@@ -105,7 +105,7 @@
              if prefix:
                  self.bindir = os.path.join(prefix, 'bin')
  
-@@ -507,7 +507,7 @@ class Qt4Dependency(QtBaseDependency):
+@@ -508,7 +508,7 @@ class Qt4Dependency(QtBaseDependency):
          applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
          for application in applications:
              try:
@@ -114,7 +114,7 @@
              except MesonException:
                  pass
  
-@@ -517,7 +517,7 @@ class Qt5Dependency(QtBaseDependency):
+@@ -518,7 +518,7 @@ class Qt5Dependency(QtBaseDependency):
          QtBaseDependency.__init__(self, 'qt5', env, kwargs)
  
      def get_pkgconfig_host_bins(self, core):
diff --git a/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch b/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch
deleted file mode 100644
index 7ea8a13..0000000
--- a/poky/meta/recipes-devtools/meson/meson/dbc9e971bd320f3df15c1ee74f54858e6792b183.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From dbc9e971bd320f3df15c1ee74f54858e6792b183 Mon Sep 17 00:00:00 2001
-From: Xavier Claessens <xavier.claessens@collabora.com>
-Date: Fri, 11 Oct 2019 11:01:22 -0400
-Subject: [PATCH] Remove duplicated object files in static libraries
-
-When a static library link_whole to a bunch of other static libraries,
-we have to extract all their objects recursively. But that could
-introduce duplicated objects. ar is dumb enough to allow this without
-error, but once the resulting static library is linked into an
-executable or shared library, the linker will complain about duplicated
-symbols.
-
-Upstream-Status: Backport
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
----
- mesonbuild/backend/backends.py                 |  3 ++-
- test cases/unit/69 static link/lib/func17.c    |  4 ++++
- test cases/unit/69 static link/lib/func18.c    |  6 ++++++
- test cases/unit/69 static link/lib/func19.c    |  7 +++++++
- test cases/unit/69 static link/lib/meson.build | 12 ++++++++++++
- 5 files changed, 31 insertions(+), 1 deletion(-)
- create mode 100644 test cases/unit/69 static link/lib/func17.c
- create mode 100644 test cases/unit/69 static link/lib/func18.c
- create mode 100644 test cases/unit/69 static link/lib/func19.c
-
-diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
-index 947be1cbef..e54809657f 100644
---- a/mesonbuild/backend/backends.py
-+++ b/mesonbuild/backend/backends.py
-@@ -281,7 +281,8 @@ def relpath(self, todir, fromdir):
-                                os.path.join('dummyprefixdir', fromdir))
- 
-     def flatten_object_list(self, target, proj_dir_to_build_root=''):
--        return self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
-+        obj_list = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
-+        return list(dict.fromkeys(obj_list))
- 
-     def _flatten_object_list(self, target, objects, proj_dir_to_build_root):
-         obj_list = []
-diff --git a/test cases/unit/69 static link/lib/func17.c b/test cases/unit/69 static link/lib/func17.c
-new file mode 100644
-index 0000000000..d1d8ec498c
---- /dev/null
-+++ b/test cases/unit/69 static link/lib/func17.c	
-@@ -0,0 +1,4 @@
-+int func17()
-+{
-+  return 1;
-+}
-diff --git a/test cases/unit/69 static link/lib/func18.c b/test cases/unit/69 static link/lib/func18.c
-new file mode 100644
-index 0000000000..c149085ba4
---- /dev/null
-+++ b/test cases/unit/69 static link/lib/func18.c	
-@@ -0,0 +1,6 @@
-+int func17();
-+
-+int func18()
-+{
-+  return func17() + 1;
-+}
-diff --git a/test cases/unit/69 static link/lib/func19.c b/test cases/unit/69 static link/lib/func19.c
-new file mode 100644
-index 0000000000..69120e4bf8
---- /dev/null
-+++ b/test cases/unit/69 static link/lib/func19.c	
-@@ -0,0 +1,7 @@
-+int func17();
-+int func18();
-+
-+int func19()
-+{
-+  return func17() + func18();
-+}
-diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build
-index 5f04aab6a1..8f95fc4546 100644
---- a/test cases/unit/69 static link/lib/meson.build	
-+++ b/test cases/unit/69 static link/lib/meson.build	
-@@ -66,3 +66,15 @@ libfunc15 = static_library('func15', 'func15.c',
- libfunc16 = static_library('func16', 'func16.c',
-   link_with : libfunc15,
-   install : true)
-+
-+# Verify func17.c.o gets included only once into libfunc19, otherwise
-+# func19-shared would failed with duplicated symbol.
-+libfunc17 = static_library('func17', 'func17.c',
-+  install : false)
-+libfunc18 = static_library('func18', 'func18.c',
-+  link_with : libfunc17,
-+  install : false)
-+libfunc19 = static_library('func19', 'func19.c',
-+  link_whole : [libfunc17, libfunc18],
-+  install : false)
-+shared_library('func19-shared', link_whole : [libfunc19])
diff --git a/poky/meta/recipes-devtools/meson/meson_0.52.0.bb b/poky/meta/recipes-devtools/meson/meson_0.53.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/meson/meson_0.52.0.bb
rename to poky/meta/recipes-devtools/meson/meson_0.53.2.bb
index 897fa14..de9b905 100644
--- a/poky/meta/recipes-devtools/meson/meson_0.52.0.bb
+++ b/poky/meta/recipes-devtools/meson/meson_0.53.2.bb
@@ -1,3 +1,4 @@
 include meson.inc
 
 BBCLASSEXTEND = "native"
+
diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.52.0.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
similarity index 99%
rename from poky/meta/recipes-devtools/meson/nativesdk-meson_0.52.0.bb
rename to poky/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
index 1756f34..67add2c 100644
--- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.52.0.bb
+++ b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb
@@ -31,7 +31,6 @@
 cpp = @CXX
 ar = @AR
 nm = @NM
-ld = @LD
 strip = @STRIP
 pkgconfig = 'pkg-config'