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