summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/mold/mold-0.9.6-r3.ebuild')
-rw-r--r--sys-devel/mold/mold-0.9.6-r3.ebuild98
1 files changed, 98 insertions, 0 deletions
diff --git a/sys-devel/mold/mold-0.9.6-r3.ebuild b/sys-devel/mold/mold-0.9.6-r3.ebuild
new file mode 100644
index 000000000000..3baea582d9ec
--- /dev/null
+++ b/sys-devel/mold/mold-0.9.6-r3.ebuild
@@ -0,0 +1,98 @@
+# 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"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/rui314/mold.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="AGPL-3"
+SLOT="0"
+
+# 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-2:=
+ 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:" \
+ elf/subprocess.cc || 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
+}