From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Message-ID: Date: Mon, 11 Oct 2021 10:47:58 +0800 Subject: Re: [OE-core] [PATCH 01/26] meson: update 0.58.1 -> 0.59.1 References: <20210908180125.103473-1-alex.kanavin@gmail.com> From: "Hsia-Jun Li" In-Reply-To: <20210908180125.103473-1-alex.kanavin@gmail.com> Return-Path: Randy.Li@synaptics.com MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit List-id: To: openembedded-core@lists.openembedded.org Cc: alex.kanavin@gmail.com On 9/9/21 02:01, Alexander Kanavin wrote: > CAUTION: Email originated externally, do not click links or open attachments unless you recognize the sender and know the content is safe. > > > Drop 0003-native_bindir.patch: it doesn't seem to actually define > anything where the use_native parameter is set to true. > > Also, the issue should be solved without invasive, custom patching > of the code: via meson.cross, custom .pc files for the items in > question or some other configuration mechanism. > > Signed-off-by: Alexander Kanavin > --- > meta/recipes-devtools/meson/meson.inc | 4 +- > .../0001-Make-CPU-family-warnings-fatal.patch | 20 ++-- > .../meson/meson/0003-native_bindir.patch | 94 ------------------- > .../meson/meson/gi-target-dep.patch | 41 -------- > .../{meson_0.58.1.bb => meson_0.59.1.bb} | 0 > ...on_0.58.1.bb => nativesdk-meson_0.59.1.bb} | 0 > 6 files changed, 10 insertions(+), 149 deletions(-) > delete mode 100644 meta/recipes-devtools/meson/meson/0003-native_bindir.patch > delete mode 100644 meta/recipes-devtools/meson/meson/gi-target-dep.patch > rename meta/recipes-devtools/meson/{meson_0.58.1.bb => meson_0.59.1.bb} (100%) > rename meta/recipes-devtools/meson/{nativesdk-meson_0.58.1.bb => nativesdk-meson_0.59.1.bb} (100%) I think we should update the meson.cross.template generated by this ^^^ file. c_args, c_link_args, cpp_args, cpp_link_args have been moved to the '[built-in options]' section. Also we need an native-file here. That is what 06b4910c3ada5398faf9369d686b82eee441bb19 has done for OE itself. > > diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc > index f1746d2094..c83ea406f0 100644 > --- a/meta/recipes-devtools/meson/meson.inc > +++ b/meta/recipes-devtools/meson/meson.inc > @@ -9,15 +9,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" > > SRC_URI = "https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mesonbuild_meson_releases_download_-24-257BPV-257D_meson-2D-24-257BPV-257D.tar.gz&d=DwIDAg&c=7dfBJ8cXbWjhc0BhImu8wQ&r=P4xb2_7biqBxD4LGGPrSV6j-jf3C3xlR7PXU-mLTeZE&m=gNJ7fQTAkVT-8n-Ph62ngFvOrjzapJ1INbXHP6rg2xU&s=5dqRty1dyk5ogg5-EgVkgg4YPUEY5-3UME8k0bWkEv4&e= \ > file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \ > - file://0003-native_bindir.patch \ > file://0001-python-module-do-not-manipulate-the-environment-when.patch \ > file://disable-rpath-handling.patch \ > file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ > - file://gi-target-dep.patch \ > file://0001-Make-CPU-family-warnings-fatal.patch \ > file://0002-Support-building-allarch-recipes-again.patch \ > " > -SRC_URI[sha256sum] = "3144a3da662fcf79f1e5602fa929f2821cba4eba28c2c923fe0a7d3e3db04d5d" > +SRC_URI[sha256sum] = "db586a451650d46bbe10984a87b79d9bcdc1caebf38d8e189f8848f8d502356d" > > UPSTREAM_CHECK_URI = "https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mesonbuild_meson_releases&d=DwIDAg&c=7dfBJ8cXbWjhc0BhImu8wQ&r=P4xb2_7biqBxD4LGGPrSV6j-jf3C3xlR7PXU-mLTeZE&m=gNJ7fQTAkVT-8n-Ph62ngFvOrjzapJ1INbXHP6rg2xU&s=O7nZ0g946ut7YnoPv_FaabmxnkHPuAKY-r8ztXYdtT4&e= " > UPSTREAM_CHECK_REGEX = "meson-(?P\d+(\.\d+)+)\.tar" > 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 bcccfabd17..c5be526b10 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,20 +1,21 @@ > -From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001 > +From 6c4eef1d92e9e42fdbc888365cab3c95fb33c605 Mon Sep 17 00:00:00 2001 > From: Ross Burton > Date: Tue, 3 Jul 2018 13:59:09 +0100 > -Subject: [PATCH 1/2] Make CPU family warnings fatal > +Subject: [PATCH] Make CPU family warnings fatal > > Upstream-Status: Inappropriate [OE specific] > Signed-off-by: Ross Burton > + > --- > mesonbuild/envconfig.py | 2 +- > mesonbuild/environment.py | 4 +--- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py > -index c6a4df3..4d58c91 100644 > +index 307aac3..66fb7ec 100644 > --- a/mesonbuild/envconfig.py > +++ b/mesonbuild/envconfig.py > -@@ -266,7 +266,7 @@ class MachineInfo: > +@@ -267,7 +267,7 @@ class MachineInfo(HoldableObject): > > cpu_family = literal['cpu_family'] > if cpu_family not in known_cpu_families: > @@ -24,20 +25,17 @@ index c6a4df3..4d58c91 100644 > endian = literal['endian'] > if endian not in ('little', 'big'): > diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py > -index fc9b703..eea8345 100644 > +index 71286a5..179917e 100644 > --- a/mesonbuild/environment.py > +++ b/mesonbuild/environment.py > -@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str: > +@@ -352,9 +352,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str: > trial = 'ppc64' > > if trial not in known_cpu_families: > -- mlog.warning('Unknown CPU family {!r}, please report this at ' > +- mlog.warning(f'Unknown CPU family {trial!r}, please report this at ' > - 'https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mesonbuild_meson_issues_new&d=DwIDAg&c=7dfBJ8cXbWjhc0BhImu8wQ&r=P4xb2_7biqBxD4LGGPrSV6j-jf3C3xlR7PXU-mLTeZE&m=gNJ7fQTAkVT-8n-Ph62ngFvOrjzapJ1INbXHP6rg2xU&s=E6p11_8xxyyW5xmKHE5K7_iKGL15ydVn4LzjxYHhyaw&e= with the ' > -- 'output of `uname -a` and `cat /proc/cpuinfo`'.format(trial)) > +- 'output of `uname -a` and `cat /proc/cpuinfo`') > + raise EnvironmentException('Unknown CPU family %s, see https://urldefense.proofpoint.com/v2/url?u=https-3A__wiki.yoctoproject.org_wiki_Meson_UnknownCPU&d=DwIDAg&c=7dfBJ8cXbWjhc0BhImu8wQ&r=P4xb2_7biqBxD4LGGPrSV6j-jf3C3xlR7PXU-mLTeZE&m=gNJ7fQTAkVT-8n-Ph62ngFvOrjzapJ1INbXHP6rg2xU&s=LluHbSsMmrwW57hP78ICwNrhaI_HYzqgsK9MAnx37ho&e= for directions.' % trial) > > return trial > > --- > -2.24.0 > - > diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch > deleted file mode 100644 > index 89257b9e05..0000000000 > --- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch > +++ /dev/null > @@ -1,94 +0,0 @@ > -From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001 > -From: Ricardo Ribalda Delgado > -Date: Wed, 15 Nov 2017 15:05:01 +0100 > -Subject: [PATCH] native_bindir > - > -Some libraries, like QT, have pre-processors that convert their input > -files into something that the cross-compiler can process. We find the > -path of those pre-processors via pkg-config-native instead of > -pkg-config. > - > -This path forces the use of pkg-config-native for host_bins arguments. > - > -There are some discussions upstream to merge this patch, but I presonaly believe > -that is is OE only. https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mesonbuild_meson_issues_1849-23issuecomment-2D303730323&d=DwIDAg&c=7dfBJ8cXbWjhc0BhImu8wQ&r=P4xb2_7biqBxD4LGGPrSV6j-jf3C3xlR7PXU-mLTeZE&m=gNJ7fQTAkVT-8n-Ph62ngFvOrjzapJ1INbXHP6rg2xU&s=IApmoQBXk9DnxLOwc7ZqQvK3y6eYJzND5r08-dht6wE&e= > - > -Upstream-Status: Inappropriate [OE specific] > -Signed-off-by: Ricardo Ribalda Delgado > - > ---- > - mesonbuild/dependencies/base.py | 19 +++++++++++-------- > - 1 file changed, 11 insertions(+), 8 deletions(-) > - > -diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py > -index 14380d4..d0c443f 100644 > ---- a/mesonbuild/dependencies/base.py > -+++ b/mesonbuild/dependencies/base.py > -@@ -179,7 +179,7 @@ class Dependency: > - def get_exe_args(self, compiler): > - return [] > - > -- def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any]) -> str: > -+ def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str: > - raise DependencyException(f'{self.name!r} is not a pkgconfig dependency') > - > - def get_configtool_variable(self, variable_name): > -@@ -267,7 +267,7 @@ class InternalDependency(Dependency): > - return True > - return any(d.is_built() for d in self.ext_deps) > - > -- def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any]) -> str: > -+ def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str: > - raise DependencyException('Method "get_pkgconfig_variable()" is ' > - 'invalid for an internal dependency') > - > -@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency): > - return s.format(self.__class__.__name__, self.name, self.is_found, > - self.version_reqs) > - > -- def _call_pkgbin_real(self, args, env): > -- cmd = self.pkgbin.get_command() + args > -+ def _call_pkgbin_real(self, args, env, use_native=False): > -+ if use_native: > -+ cmd = [self.pkgbin.get_command()[0] + "-native"] + args > -+ else: > -+ cmd = self.pkgbin.get_command() + args > - p, out, err = Popen_safe(cmd, env=env) > - rc, out, err = p.returncode, out.strip(), err.strip() > - call = ' '.join(cmd) > -@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency): > - if key.startswith('PKG_'): > - mlog.debug(f'env[{key}]: {value}') > - > -- 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: > -@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency): > - targs = tuple(args) > - cache = PkgConfigDependency.pkgbin_cache > - if (self.pkgbin, targs, fenv) not in cache: > -- cache[(self.pkgbin, targs, fenv)] = self._call_pkgbin_real(args, env) > -+ 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: T.List[str]) -> T.List[str]: > -@@ -894,7 +897,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: str, kwargs: T.Dict[str, T.Any]) -> str: > -+ def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str: > - options = ['--variable=' + variable_name, self.name] > - > - if 'define_variable' in kwargs: > -@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency): > - > - options = ['--define-variable=' + '='.join(definition)] + options > - > -- 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/meta/recipes-devtools/meson/meson/gi-target-dep.patch b/meta/recipes-devtools/meson/meson/gi-target-dep.patch > deleted file mode 100644 > index 29e164ccc7..0000000000 > --- a/meta/recipes-devtools/meson/meson/gi-target-dep.patch > +++ /dev/null > @@ -1,41 +0,0 @@ > -When building gobject-introspection we want the *native* binaries (as they need > -to be executed) but *host* gobject-introspection libraries, as otherwise the > -native pkg-config can be used and the build will try to link native and host > -binaries together. > - > -Upstream-Status: Backport [589236226856f591c9e8daf0cb7aa1aef8862388] > -Signed-off-by: Ross Burton > - > -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py > -index f9660838e..2eefc3fc7 100644 > ---- a/mesonbuild/modules/gnome.py > -+++ b/mesonbuild/modules/gnome.py > -@@ -84,8 +84,8 @@ class GnomeModule(ExtensionModule): > - mlog.bold('https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mesonbuild_meson_issues_1387&d=DwIDAg&c=7dfBJ8cXbWjhc0BhImu8wQ&r=P4xb2_7biqBxD4LGGPrSV6j-jf3C3xlR7PXU-mLTeZE&m=gNJ7fQTAkVT-8n-Ph62ngFvOrjzapJ1INbXHP6rg2xU&s=IN-Sy6yGBdhGjdLP8A2fUqMEAFSx_84xWoeH1jIeb7Q&e= '), > - once=True) > - > -- def _get_native_dep(self, state, depname, required=True): > -- kwargs = {'native': True, 'required': required} > -+ def _get_dep(self, state, depname, native=False, required=True): > -+ kwargs = {'native': native, 'required': required} > - holder = self.interpreter.func_dependency(state.current_node, [depname], kwargs) > - return holder.held_object > - > -@@ -101,7 +101,7 @@ class GnomeModule(ExtensionModule): > - return ExternalProgram.from_entry(name, prog) > - > - # Check if pkgconfig has a variable > -- dep = self._get_native_dep(state, depname, required=False) > -+ dep = self._get_dep(state, depname, native=True, required=False) > - if dep.found() and dep.type_name == 'pkgconfig': > - value = dep.get_pkgconfig_variable(varname, {}) > - if value: > -@@ -481,7 +481,7 @@ class GnomeModule(ExtensionModule): > - > - def _get_gir_dep(self, state): > - if not self.gir_dep: > -- self.gir_dep = self._get_native_dep(state, 'gobject-introspection-1.0') > -+ self.gir_dep = self._get_dep(state, 'gobject-introspection-1.0') > - self.giscanner = self._get_native_binary(state, 'g-ir-scanner', 'gobject-introspection-1.0', 'g_ir_scanner') > - self.gicompiler = self._get_native_binary(state, 'g-ir-compiler', 'gobject-introspection-1.0', 'g_ir_compiler') > - return self.gir_dep, self.giscanner, self.gicompiler > diff --git a/meta/recipes-devtools/meson/meson_0.58.1.bb b/meta/recipes-devtools/meson/meson_0.59.1.bb > similarity index 100% > rename from meta/recipes-devtools/meson/meson_0.58.1.bb > rename to meta/recipes-devtools/meson/meson_0.59.1.bb > diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.58.1.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.59.1.bb > similarity index 100% > rename from meta/recipes-devtools/meson/nativesdk-meson_0.58.1.bb > rename to meta/recipes-devtools/meson/nativesdk-meson_0.59.1.bb > -- > 2.31.1 > > > > > -- Hsia-Jun(Randy) Li