commit:     e87a1383004c856e74741f682c556bc3e8c67990
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 11 15:08:10 2022 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Sep 11 15:09:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e87a1383

dev-util/meson-0.63.2-r1: teach meson to detect xtools linkers

Unbreak x86_64 and ppc based darwin targets.

Closes: https://bugs.gentoo.org/868516
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 .../meson/files/meson-0.63-xtools-support.patch    | 26 ++++++++++++++++++++++
 ...{meson-0.63.2.ebuild => meson-0.63.2-r1.ebuild} |  4 ++++
 dev-util/meson/meson-9999.ebuild                   |  4 ++++
 3 files changed, 34 insertions(+)

diff --git a/dev-util/meson/files/meson-0.63-xtools-support.patch 
b/dev-util/meson/files/meson-0.63-xtools-support.patch
new file mode 100644
index 000000000000..ea1e8597b00a
--- /dev/null
+++ b/dev-util/meson/files/meson-0.63-xtools-support.patch
@@ -0,0 +1,26 @@
+linkers_detect: detect xtools (Apple ld64 derivative)
+
+xtools is in use on x86_64 and ppc based darwin Prefix installs.  Pick
+it up as a valid linker.
+
+Meson is the only thing known at this point to try and figure out what
+linker is in use exactly, so instead of changing the linker (xtools),
+just teach Meson about xtools.
+
+Author: Fabian Groffen <[email protected]>
+Bug: https://bugs.gentoo.org/868516
+
+--- a/mesonbuild/linkers/detect.py
++++ b/mesonbuild/linkers/detect.py
+@@ -188,6 +188,11 @@
+             v = search_version(o)
+ 
+         linker = LLVMDynamicLinker(compiler, for_machine, 
comp_class.LINKER_PREFIX, override, version=v)
++    # detect xtools first, bug #868516
++    elif 'xtools-' in o.split('\n')[0]:
++        xtools = o.split(' ')[0]
++        v = xtools.split('-')[1]
++        linker = AppleDynamicLinker(compiler, for_machine, 
comp_class.LINKER_PREFIX, override, version=v)
+     # first might be apple clang, second is for real gcc, the third is icc
+     elif e.endswith('(use -v to see invocation)\n') or 'macosx_version' in e 
or 'ld: unknown option:' in e:
+         if isinstance(comp_class.LINKER_PREFIX, str):

diff --git a/dev-util/meson/meson-0.63.2.ebuild 
b/dev-util/meson/meson-0.63.2-r1.ebuild
similarity index 97%
rename from dev-util/meson/meson-0.63.2.ebuild
rename to dev-util/meson/meson-0.63.2-r1.ebuild
index 14ecaa4f465b..f2e31397c003 100644
--- a/dev-util/meson/meson-0.63.2.ebuild
+++ b/dev-util/meson/meson-0.63.2-r1.ebuild
@@ -37,6 +37,10 @@ DEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.63-xtools-support.patch
+)
+
 python_prepare_all() {
        local disable_unittests=(
                # ASAN and sandbox both want control over LD_PRELOAD

diff --git a/dev-util/meson/meson-9999.ebuild b/dev-util/meson/meson-9999.ebuild
index 14ecaa4f465b..f2e31397c003 100644
--- a/dev-util/meson/meson-9999.ebuild
+++ b/dev-util/meson/meson-9999.ebuild
@@ -37,6 +37,10 @@ DEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.63-xtools-support.patch
+)
+
 python_prepare_all() {
        local disable_unittests=(
                # ASAN and sandbox both want control over LD_PRELOAD

Reply via email to