From 710206365ed860b159d2620a28ba6e6b92145179 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Tue, 14 Dec 2021 02:47:12 +0000
Subject: sys-devel/mold: fix wrapper libdir path

Bug: https://github.com/rui314/mold/issues/127
Closes: https://bugs.gentoo.org/823653
Signed-off-by: Sam James <sam@gentoo.org>
---
 .../mold/files/mold-0.9.6-fix-libdir-wrapper.patch | 26 ++++++
 sys-devel/mold/mold-0.9.6-r1.ebuild                | 92 ++++++++++++++++++++++
 sys-devel/mold/mold-0.9.6.ebuild                   | 85 --------------------
 3 files changed, 118 insertions(+), 85 deletions(-)
 create mode 100644 sys-devel/mold/files/mold-0.9.6-fix-libdir-wrapper.patch
 create mode 100644 sys-devel/mold/mold-0.9.6-r1.ebuild
 delete mode 100644 sys-devel/mold/mold-0.9.6.ebuild

(limited to 'sys-devel/mold')

diff --git a/sys-devel/mold/files/mold-0.9.6-fix-libdir-wrapper.patch b/sys-devel/mold/files/mold-0.9.6-fix-libdir-wrapper.patch
new file mode 100644
index 000000000000..d8155cde8f58
--- /dev/null
+++ b/sys-devel/mold/files/mold-0.9.6-fix-libdir-wrapper.patch
@@ -0,0 +1,26 @@
+Should be fixed with a LIBDIR variable in the next release.
+
+https://bugs.gentoo.org/823653
+https://github.com/rui314/mold/issues/127
+--- a/elf/subprocess.cc
++++ b/elf/subprocess.cc
+@@ -267,18 +267,7 @@
+ 
+ template <typename E>
+ std::string find_dso(Context<E> &ctx, const std::string &self) {
+-  // Look for mold-wrapper.so from the same directory as the executable is.
+-  std::string path = std::string(path_dirname(self)) + "/mold-wrapper.so";
+-  if (is_regular_file(path))
+-    return path;
+-
+-  // If not exist, mold might be installed as $PREFIX/bin/mold and the
+-  // DSO as $PREFIX/lib/mold/mold-wrapper.so.
+-  path = path_clean(self + "/../../lib/mold/mold-wrapper.so");
+-  if (is_regular_file(path))
+-    return path;
+-
+-  Fatal(ctx) << "mold-wrapper.so is missing";
++  return "/usr/lib64/mold/mold-wrapper.so";
+ }
+ 
+ template <typename E>
diff --git a/sys-devel/mold/mold-0.9.6-r1.ebuild b/sys-devel/mold/mold-0.9.6-r1.ebuild
new file mode 100644
index 000000000000..0321cd2b708e
--- /dev/null
+++ b/sys-devel/mold/mold-0.9.6-r1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="A Modern Linker"
+HOMEPAGE="https://github.com/rui314/mold"
+SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+# Try again after 0.9.6
+RESTRICT="test"
+
+RDEPEND=">=dev-cpp/tbb-2021.4.0:=
+	dev-libs/xxhash:=
+	sys-libs/zlib
+	!kernel_Darwin? (
+		dev-libs/mimalloc:=
+		dev-libs/openssl:=
+	)"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-0.9.6-respect-flags.patch
+	"${FILESDIR}"/${PN}-0.9.6-fix-libdir-wrapper.patch
+)
+
+src_prepare() {
+	default
+
+	sed -i \
+		-e '/	strip/d' \
+		-e '/	gzip/d' \
+		-e "s:\$(DEST)/lib:\$(DEST)/$(get_libdir):" \
+		Makefile || die
+
+	# Drop on next release: bug #823653
+	# https://github.com/rui314/mold/issues/127
+	sed -i \
+		-e "s:/usr/lib64/mold/mold-wrapper.so:${EPREFIX}/usr/$(get_libdir)/mold/mold-wrapper.so:" \
+
+
+	# Needs unpackaged dwarfutils
+	rm test/compressed-debug-info.sh \
+		test/compress-debug-sections.sh || die
+
+	# Seems to have been fixed in git (> 0.9.6)
+	# Broken atm?
+	rm test/mold-wrapper.sh || die
+
+	# Needs llvmgold
+	rm test/hello-static.sh || die
+}
+
+src_compile() {
+	tc-export CC CXX
+
+	emake \
+		SYSTEM_TBB=1 \
+		SYSTEM_MIMALLOC=1 \
+		EXTRA_CFLAGS="${CFLAGS}" \
+		EXTRA_CXXFLAGS="${CXXFLAGS}" \
+		EXTRA_CPPFLAGS="${CPPFLAGS}" \
+		EXTRA_LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+        emake \
+		SYSTEM_TBB=1 \
+		SYSTEM_MIMALLOC=1 \
+		EXTRA_CFLAGS="${CFLAGS}" \
+		EXTRA_CXXFLAGS="${CXXFLAGS}" \
+		EXTRA_CPPFLAGS="${CPPFLAGS}" \
+		EXTRA_LDFLAGS="${LDFLAGS}" \
+		check
+}
+
+src_install() {
+	emake \
+		SYSTEM_TBB=1 \
+		SYSTEM_MIMALLOC=1 \
+		EXTRA_CFLAGS="${CFLAGS}" \
+		EXTRA_CXXFLAGS="${CXXFLAGS}" \
+		EXTRA_CPPFLAGS="${CPPFLAGS}" \
+		EXTRA_LDFLAGS="${LDFLAGS}" \
+		DESTDIR="${ED}" \
+		install
+}
diff --git a/sys-devel/mold/mold-0.9.6.ebuild b/sys-devel/mold/mold-0.9.6.ebuild
deleted file mode 100644
index 2edeabeb5579..000000000000
--- a/sys-devel/mold/mold-0.9.6.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="A Modern Linker"
-HOMEPAGE="https://github.com/rui314/mold"
-SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="AGPL-3"
-SLOT="0"
-KEYWORDS="~amd64"
-# Try again after 0.9.6
-RESTRICT="test"
-
-RDEPEND=">=dev-cpp/tbb-2021.4.0:=
-	dev-libs/xxhash:=
-	sys-libs/zlib
-	!kernel_Darwin? (
-		dev-libs/mimalloc:=
-		dev-libs/openssl:=
-	)"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-0.9.6-respect-flags.patch
-)
-
-src_prepare() {
-	default
-
-	sed -i \
-		-e '/	strip/d' \
-		-e '/	gzip/d' \
-		-e "s:\$(DEST)/lib:\$(DEST)/$(get_libdir):" \
-		Makefile || die
-
-	# Needs unpackaged dwarfutils
-	rm test/compressed-debug-info.sh \
-		test/compress-debug-sections.sh || die
-
-	# Seems to have been fixed in git (> 0.9.6)
-	# Broken atm?
-	rm test/mold-wrapper.sh || die
-
-	# Needs llvmgold
-	rm test/hello-static.sh || die
-}
-
-src_compile() {
-	tc-export CC CXX
-
-	emake \
-		SYSTEM_TBB=1 \
-		SYSTEM_MIMALLOC=1 \
-		EXTRA_CFLAGS="${CFLAGS}" \
-		EXTRA_CXXFLAGS="${CXXFLAGS}" \
-		EXTRA_CPPFLAGS="${CPPFLAGS}" \
-		EXTRA_LDFLAGS="${LDFLAGS}"
-}
-
-src_test() {
-        emake \
-		SYSTEM_TBB=1 \
-		SYSTEM_MIMALLOC=1 \
-		EXTRA_CFLAGS="${CFLAGS}" \
-		EXTRA_CXXFLAGS="${CXXFLAGS}" \
-		EXTRA_CPPFLAGS="${CPPFLAGS}" \
-		EXTRA_LDFLAGS="${LDFLAGS}" \
-		check
-}
-
-src_install() {
-	emake \
-		SYSTEM_TBB=1 \
-		SYSTEM_MIMALLOC=1 \
-		EXTRA_CFLAGS="${CFLAGS}" \
-		EXTRA_CXXFLAGS="${CXXFLAGS}" \
-		EXTRA_CPPFLAGS="${CPPFLAGS}" \
-		EXTRA_LDFLAGS="${LDFLAGS}" \
-		DESTDIR="${ED}" \
-		install
-}
-- 
cgit v1.2.3-65-gdbad