summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/mold/mold-9999.ebuild')
-rw-r--r--sys-devel/mold/mold-9999.ebuild82
1 files changed, 42 insertions, 40 deletions
diff --git a/sys-devel/mold/mold-9999.ebuild b/sys-devel/mold/mold-9999.ebuild
index 2a7faac5052d..ac067b811ef2 100644
--- a/sys-devel/mold/mold-9999.ebuild
+++ b/sys-devel/mold/mold-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit toolchain-funcs
+inherit cmake toolchain-funcs
DESCRIPTION="A Modern Linker"
HOMEPAGE="https://github.com/rui314/mold"
@@ -12,28 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86"
fi
-LICENSE="AGPL-3"
+# mold (MIT)
+# - xxhash (BSD-2)
+LICENSE="MIT BSD-2"
SLOT="0"
-RDEPEND=">=dev-cpp/tbb-2021.4.0:=
+RDEPEND="
+ app-arch/zstd:=
+ >=dev-cpp/tbb-2021.7.0-r1:=
+ dev-libs/blake3:=
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}"
-PATCHES=(
- # Bug #841575
- "${FILESDIR}"/${PN}-1.2.1-install-nopython.patch
- "${FILESDIR}"/${PN}-1.3.0-openssl-pkgconfig.patch
-)
-
pkg_pretend() {
# Requires a c++20 compiler, see #831473
if [[ ${MERGE_TYPE} != binary ]]; then
@@ -46,7 +43,7 @@ pkg_pretend() {
}
src_prepare() {
- default
+ cmake_src_prepare
# Needs unpackaged dwarfdump
rm test/elf/{{dead,compress}-debug-sections,compressed-debug-info}.sh || die
@@ -66,32 +63,37 @@ src_prepare() {
fi
}
-src_compile() {
- tc-export CC CXX
-
- emake \
- CFLAGS="${CFLAGS}" \
- CXXFLAGS="${CXXFLAGS}" \
- SYSTEM_TBB=1 \
- SYSTEM_MIMALLOC=1 \
- STRIP="true" \
- LIBDIR="${EPREFIX}/usr/$(get_libdir)"
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON
+ -DMOLD_ENABLE_QEMU_TESTS=OFF
+ -DMOLD_LTO=OFF # Should be up to the user to decide this with CXXFLAGS.
+ -DMOLD_USE_MIMALLOC=$(usex !kernel_Darwin)
+ -DMOLD_USE_SYSTEM_MIMALLOC=ON
+ -DMOLD_USE_SYSTEM_TBB=ON
+ )
+ cmake_src_configure
}
-src_test() {
- emake \
- SYSTEM_TBB=1 \
- SYSTEM_MIMALLOC=1 \
- check
+src_install() {
+ dobin "${BUILD_DIR}"/${PN}
+
+ # https://bugs.gentoo.org/872773
+ insinto /usr/$(get_libdir)/mold
+ doins "${BUILD_DIR}"/${PN}-wrapper.so
+
+ dodoc docs/{design,execstack}.md
+ doman docs/${PN}.1
+
+ dosym ${PN} /usr/bin/ld.${PN}
+ dosym ${PN} /usr/bin/ld64.${PN}
+ dosym -r /usr/bin/${PN} /usr/libexec/${PN}/ld
}
-src_install() {
- emake \
- SYSTEM_TBB=1 \
- SYSTEM_MIMALLOC=1 \
- DESTDIR="${D}" \
- PREFIX="${EPREFIX}/usr" \
- LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
- STRIP="true" \
- install
+src_test() {
+ export TEST_CC="$(tc-getCC)" \
+ TEST_GCC="$(tc-getCC)" \
+ TEST_CXX="$(tc-getCXX)" \
+ TEST_GXX="$(tc-getCXX)"
+ cmake_src_test
}