summaryrefslogtreecommitdiff
path: root/sys-devel/mold/mold-9999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/mold/mold-9999.ebuild')
-rw-r--r--sys-devel/mold/mold-9999.ebuild32
1 files changed, 24 insertions, 8 deletions
diff --git a/sys-devel/mold/mold-9999.ebuild b/sys-devel/mold/mold-9999.ebuild
index 3e1594e0daec..5ea54e0926db 100644
--- a/sys-devel/mold/mold-9999.ebuild
+++ b/sys-devel/mold/mold-9999.ebuild
@@ -18,24 +18,42 @@ fi
LICENSE="AGPL-3"
SLOT="0"
-# Try again after 1.0 (nearly there, but path-related issues)
-# https://github.com/rui314/mold/issues/137
-RESTRICT="test"
-
RDEPEND=">=dev-cpp/tbb-2021.4.0:=
- dev-libs/xxhash:=
sys-libs/zlib
!kernel_Darwin? (
>=dev-libs/mimalloc-2:=
dev-libs/openssl:=
)"
+# As of 1.1, xxhash is now a header-only dep, but it's now bundled :(
+# TODO: restore SYSTEM_XXHASH upstream?
DEPEND="${RDEPEND}"
+pkg_pretend() {
+ # Requires a c++20 compiler, see #831473
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]]; then
+ die "${PN} needs at least gcc 10"
+ elif tc-is-clang && [[ $(clang-major-version) -lt 12 ]]; then
+ die "${PN} needs at least clang 12"
+ fi
+ fi
+}
+
src_prepare() {
default
# Needs unpackaged dwarfdump
rm test/elf/{compress-debug-sections,compressed-debug-info}.sh || die
+
+ # Sandbox sadness
+ rm test/elf/run.sh || die
+ sed -i 's|$mold-wrapper.so|"& ${LD_PRELOAD}"|' \
+ test/elf/mold-wrapper{,2}.sh || die
+
+ # static-pie tests require glibc built with static-pie support
+ if ! has_version -d 'sys-libs/glibc[static-pie(+)]'; then
+ rm test/elf/{hello,ifunc}-static-pie.sh || die
+ fi
}
src_compile() {
@@ -46,7 +64,6 @@ src_compile() {
CXXFLAGS="${CXXFLAGS}" \
SYSTEM_TBB=1 \
SYSTEM_MIMALLOC=1 \
- SYSTEM_XXHASH=1 \
STRIP="true" \
LIBDIR="${EPREFIX}/usr/$(get_libdir)"
}
@@ -62,8 +79,7 @@ src_install() {
emake \
SYSTEM_TBB=1 \
SYSTEM_MIMALLOC=1 \
- SYSTEM_XXHASH=1 \
- DESTDIR="${ED}" \
+ DESTDIR="${D}" \
PREFIX="${EPREFIX}/usr" \
LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
STRIP="true" \