public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mike Gilbert" <floppym@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/meson/, dev-util/meson/files/
Date: Sun, 24 May 2020 16:46:35 +0000 (UTC)	[thread overview]
Message-ID: <1590338519.61fb31c86760964f605b8e78cf9c6450a8a0fbbd.floppym@gentoo> (raw)

commit:     61fb31c86760964f605b8e78cf9c6450a8a0fbbd
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun May 24 16:41:30 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun May 24 16:41:59 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=61fb31c8

dev-util/meson: bump to 0.45.2

Closes: https://bugs.gentoo.org/721786
Closes: https://bugs.gentoo.org/723224
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 dev-util/meson/Manifest                            |   1 +
 dev-util/meson/files/0.54.2-multilib-clang.patch   | 181 +++++++++++++++++++++
 .../{meson-9999.ebuild => meson-0.54.2.ebuild}     |  19 +++
 dev-util/meson/meson-9999.ebuild                   |  15 ++
 4 files changed, 216 insertions(+)

diff --git a/dev-util/meson/Manifest b/dev-util/meson/Manifest
index fab95ba0c3e..3ac6a08caa1 100644
--- a/dev-util/meson/Manifest
+++ b/dev-util/meson/Manifest
@@ -2,3 +2,4 @@ DIST meson-0.52.1.tar.gz 1507764 BLAKE2B 8daf43d84186905d5c32629ab6a250955bdffda
 DIST meson-0.53.1.tar.gz 1552121 BLAKE2B 3f0bbbeba6307397dfe5e49c1f978d6246d8e18317d0361b6f013f5c2ba55ad7cba53c985418686c20db159b7790b45a0c2e05d86f861cd0280fb07afdbeb847 SHA512 0c96c354bcd7e6945473c7df0ddff929ef2bae9c2dfc7b48c6c6174c7f2be4f798398929f9c4d5986aa5fc882305ff76371ad0d65a499f058b33b05ff7025859
 DIST meson-0.54.0.tar.gz 1683491 BLAKE2B 3016beb44c4401672947afa898253b69769f998e18e00baedc3bcb525a9923b9154d7db79cfa4c38fcf66eeaee8137f47917689fdde33674b1f0483b21923393 SHA512 e3c97ffd9409a543e45c8be7b12d4e8437de8dbd0cd236fbe092952d7d0833728d46ff6b679c8a73dae4c4016fdf38b43b56f3959a95968a29db109ebfe254e7
 DIST meson-0.54.1.tar.gz 1687532 BLAKE2B 5bd355b35a4aa037e490615629480a194c04821fb18b137f090af89f6c33c700d0756bb2d7e9e608ecf4873886be10493bfeddce55fef3d905793ad3ccccfa68 SHA512 dbc3fed326ba208f5a6eee7e3106d07450e7a3569d425013fba8c51e7cfd6485f9b083836dc74be49bc9839bd640ce54741d9335097cbd28f6a320d5fec7ecfe
+DIST meson-0.54.2.tar.gz 1691270 BLAKE2B c1ba552b5d56e0b6b73de46ec6bc90fb520665688d2f5c809baf84749d3bb1dec1fe0131136e1539369fa666ae2427c8fccd5928cbda0b8e3e1edb4a5dc8abbc SHA512 ad5ec826879d3d85088ca40d768599a4c8e66983f2a6a7ebe8ab12051cad18b4ade9a2afd30fe543b0a75900822992c8ef7161d369489e2211dd7a1a8ccc32ed

diff --git a/dev-util/meson/files/0.54.2-multilib-clang.patch b/dev-util/meson/files/0.54.2-multilib-clang.patch
new file mode 100644
index 00000000000..b3aa3693e69
--- /dev/null
+++ b/dev-util/meson/files/0.54.2-multilib-clang.patch
@@ -0,0 +1,181 @@
+From 9dc3ca2c1c9fbb47e731551c6432df144f725261 Mon Sep 17 00:00:00 2001
+From: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
+Date: Thu, 21 May 2020 18:58:47 +0300
+Subject: [PATCH] compilers: add fetching of define list for clang
+
+Simmilar to gcc, the list of pre-processor defines can be fetched with
+`-dM -E` option. The way cpu_family is determined on linux relies on
+this list.
+
+Fixes incorrect value of cpu_family on linux, when crosscompiling:
+
+```
+CC="clang -m32" meson ./build
+```
+
+Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
+Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
+---
+ mesonbuild/compilers/c.py            |  5 +++--
+ mesonbuild/compilers/cpp.py          |  5 +++--
+ mesonbuild/compilers/fortran.py      |  2 +-
+ mesonbuild/compilers/mixins/clang.py |  9 ++++++++-
+ mesonbuild/compilers/objc.py         |  2 +-
+ mesonbuild/compilers/objcpp.py       |  2 +-
+ mesonbuild/environment.py            | 26 +++++++++++++++++++++++++-
+ 7 files changed, 42 insertions(+), 9 deletions(-)
+
+diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
+index 1bc9e84998..aac99b4269 100644
+--- a/mesonbuild/compilers/c.py
++++ b/mesonbuild/compilers/c.py
+@@ -86,9 +86,10 @@ class ClangCCompiler(ClangCompiler, CCompiler):
+     _C18_VERSION = '>=8.0.0'
+ 
+     def __init__(self, exelist, version, for_machine: MachineChoice,
+-                 is_cross, info: 'MachineInfo', exe_wrapper=None, **kwargs):
++                 is_cross, info: 'MachineInfo', exe_wrapper=None,
++                 defines: T.Optional[T.List[str]] = None, **kwargs):
+         CCompiler.__init__(self, exelist, version, for_machine, is_cross, info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, defines)
+         default_warn_args = ['-Wall', '-Winvalid-pch']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
+index f4bcfa9f89..478a68c13c 100644
+--- a/mesonbuild/compilers/cpp.py
++++ b/mesonbuild/compilers/cpp.py
+@@ -155,10 +155,11 @@ def _find_best_cpp_std(self, cpp_std):
+ 
+ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
+     def __init__(self, exelist, version, for_machine: MachineChoice,
+-                 is_cross, info: 'MachineInfo', exe_wrapper=None, **kwargs):
++                 is_cross, info: 'MachineInfo', exe_wrapper=None,
++                 defines : T.Optional[T.List[str]] = None, **kwargs):
+         CPPCompiler.__init__(self, exelist, version, for_machine, is_cross,
+                              info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, defines)
+         default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
+index c155b5b4f3..af83c0e564 100644
+--- a/mesonbuild/compilers/fortran.py
++++ b/mesonbuild/compilers/fortran.py
+@@ -424,7 +424,7 @@ def __init__(self, exelist, version, for_machine: MachineChoice,
+                  **kwargs):
+         FortranCompiler.__init__(self, exelist, version, for_machine,
+                                  is_cross, info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, [])
+         self.id = 'flang'
+         default_warn_args = ['-Minform=inform']
+         self.warn_args = {'0': [],
+diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py
+index 1c0ee452f4..0ee10ad5d5 100644
+--- a/mesonbuild/compilers/mixins/clang.py
++++ b/mesonbuild/compilers/mixins/clang.py
+@@ -42,9 +42,10 @@
+ }  # type: T.Dict[str, T.List[str]]
+ 
+ class ClangCompiler(GnuLikeCompiler):
+-    def __init__(self):
++    def __init__(self, defines: T.Optional[T.Dict[str, str]]):
+         super().__init__()
+         self.id = 'clang'
++        self.defines = defines or {}
+         self.base_options.append('b_colorout')
+         # TODO: this really should be part of the linker base_options, but
+         # linkers don't have base_options.
+@@ -56,6 +57,12 @@ def __init__(self):
+     def get_colorout_args(self, colortype: str) -> T.List[str]:
+         return clang_color_args[colortype][:]
+ 
++    def has_builtin_define(self, define: str) -> bool:
++        return define in self.defines
++
++    def get_builtin_define(self, define: str) -> T.Optional[str]:
++        return self.defines.get(define)
++
+     def get_optimization_args(self, optimization_level: str) -> T.List[str]:
+         return clang_optimization_args[optimization_level]
+ 
+diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py
+index 52d258dcdb..d351c8826a 100644
+--- a/mesonbuild/compilers/objc.py
++++ b/mesonbuild/compilers/objc.py
+@@ -86,7 +86,7 @@ def __init__(self, exelist, version, for_machine: MachineChoice,
+                  **kwargs):
+         ObjCCompiler.__init__(self, exelist, version, for_machine, is_cross,
+                               info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, [])
+         default_warn_args = ['-Wall', '-Winvalid-pch']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/compilers/objcpp.py b/mesonbuild/compilers/objcpp.py
+index c8b422b35d..10555b4551 100644
+--- a/mesonbuild/compilers/objcpp.py
++++ b/mesonbuild/compilers/objcpp.py
+@@ -84,7 +84,7 @@ def __init__(self, exelist, version, for_machine: MachineChoice,
+                  is_cross, info: 'MachineInfo', exe_wrapper=None,
+                  **kwargs):
+         ObjCPPCompiler.__init__(self, exelist, version, for_machine, is_cross, info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, [])
+         default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
+index 8fad6288b1..cb6ae7d514 100644
+--- a/mesonbuild/environment.py
++++ b/mesonbuild/environment.py
+@@ -726,6 +726,28 @@ def get_lcc_version_from_defines(defines):
+         minor = defines.get('__LCC_MINOR__', '0')
+         return dot.join((generation, major, minor))
+ 
++    @staticmethod
++    def get_clang_compiler_defines(compiler):
++        """
++        Get the list of Clang pre-processor defines
++        """
++        args = compiler + ['-E', '-dM', '-']
++        p, output, error = Popen_safe(args, write='', stdin=subprocess.PIPE)
++        if p.returncode != 0:
++            raise EnvironmentException('Unable to get clang pre-processor defines:\n' + output + error)
++        defines = {}
++        for line in output.split('\n'):
++            if not line:
++                continue
++            d, *rest = line.split(' ', 2)
++            if d != '#define':
++                continue
++            if len(rest) == 1:
++                defines[rest] = True
++            if len(rest) == 2:
++                defines[rest[0]] = rest[1]
++        return defines
++
+     def _get_compilers(self, lang, for_machine):
+         '''
+         The list of compilers is detected in the exact same way for
+@@ -1043,6 +1065,8 @@ def sanitize(p):
+             if 'clang' in out:
+                 linker = None
+ 
++                defines = self.get_clang_compiler_defines(compiler)
++
+                 # Even if the for_machine is darwin, we could be using vanilla
+                 # clang.
+                 if 'Apple' in out:
+@@ -1063,7 +1087,7 @@ def sanitize(p):
+ 
+                 return cls(
+                     ccache + compiler, version, for_machine, is_cross, info,
+-                    exe_wrap, full_version=full_version, linker=linker)
++                    exe_wrap, defines, full_version=full_version, linker=linker)
+ 
+             if 'Intel(R) C++ Intel(R)' in err:
+                 version = search_version(err)

diff --git a/dev-util/meson/meson-9999.ebuild b/dev-util/meson/meson-0.54.2.ebuild
similarity index 73%
copy from dev-util/meson/meson-9999.ebuild
copy to dev-util/meson/meson-0.54.2.ebuild
index 77f6244e6e2..2ef1f787f28 100644
--- a/dev-util/meson/meson-9999.ebuild
+++ b/dev-util/meson/meson-0.54.2.ebuild
@@ -34,6 +34,25 @@ DEPEND="
 	)
 "
 
+PATCHES=(
+	"${FILESDIR}"/0.54.2-multilib-clang.patch
+)
+
+python_prepare_all() {
+	# ASAN and sandbox both want control over LD_PRELOAD
+	# https://bugs.gentoo.org/673016
+	sed -i -e 's/test_generate_gir_with_address_sanitizer/_&/' run_unittests.py || die
+
+	# ASAN is unsupported on some targets
+	# https://bugs.gentoo.org/692822
+	sed -i -e 's/test_pch_with_address_sanitizer/_&/' run_unittests.py || die
+
+	# Broken due to python2 script created by python_wrapper_setup
+	rm -r "test cases/frameworks/1 boost" || die
+
+	distutils-r1_python_prepare_all
+}
+
 src_test() {
 	tc-export PKG_CONFIG
 	if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then

diff --git a/dev-util/meson/meson-9999.ebuild b/dev-util/meson/meson-9999.ebuild
index 77f6244e6e2..053a12bbeb2 100644
--- a/dev-util/meson/meson-9999.ebuild
+++ b/dev-util/meson/meson-9999.ebuild
@@ -34,6 +34,21 @@ DEPEND="
 	)
 "
 
+python_prepare_all() {
+	# ASAN and sandbox both want control over LD_PRELOAD
+	# https://bugs.gentoo.org/673016
+	sed -i -e 's/test_generate_gir_with_address_sanitizer/_&/' run_unittests.py || die
+
+	# ASAN is unsupported on some targets
+	# https://bugs.gentoo.org/692822
+	sed -i -e 's/test_pch_with_address_sanitizer/_&/' run_unittests.py || die
+
+	# Broken due to python2 script created by python_wrapper_setup
+	rm -r "test cases/frameworks/1 boost" || die
+
+	distutils-r1_python_prepare_all
+}
+
 src_test() {
 	tc-export PKG_CONFIG
 	if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then


             reply	other threads:[~2020-05-24 16:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-24 16:46 Mike Gilbert [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-01-13 16:24 [gentoo-commits] repo/gentoo:master commit in: dev-util/meson/, dev-util/meson/files/ Fabian Groffen
2023-12-03  1:09 Sam James
2022-07-14  0:40 Mike Gilbert
2022-03-28  5:44 Sam James
2021-12-27  3:41 Mike Gilbert
2021-08-27 17:06 Mike Gilbert
2020-07-04 23:45 Mike Gilbert
2020-06-19 18:38 Fabian Groffen
2019-08-22 15:52 William Hubbs
2018-10-07  2:27 Mike Gilbert
2018-10-07  0:26 Mike Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1590338519.61fb31c86760964f605b8e78cf9c6450a8a0fbbd.floppym@gentoo \
    --to=floppym@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox