Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/mold/
Date: Fri, 30 Dec 2022 07:32:34
Message-Id: 1672385514.81321815097982e61b631852a821f5d35f2b7ac6.sam@gentoo
1 commit: 81321815097982e61b631852a821f5d35f2b7ac6
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Fri Dec 30 07:28:53 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Fri Dec 30 07:31:54 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81321815
7
8 sys-devel/mold: add 1.8.0
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 sys-devel/mold/Manifest | 1 +
13 sys-devel/mold/mold-1.8.0.ebuild | 89 ++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 90 insertions(+)
15
16 diff --git a/sys-devel/mold/Manifest b/sys-devel/mold/Manifest
17 index d00b1f11c936..948732ee3caf 100644
18 --- a/sys-devel/mold/Manifest
19 +++ b/sys-devel/mold/Manifest
20 @@ -1 +1,2 @@
21 DIST mold-1.7.1.tar.gz 8381932 BLAKE2B 3355304cfe4de7aa96608e68183868debe6d7749940c507e717c5f6def3344bf1bfba8605275506bec6bab018f921c1da87515c4a8fc4f4488d37d874e70c452 SHA512 2e1b6203591718976a3b6c22cb9cdc4037efd101ecb520b809aaa242ee758ee24ed98d0b53012fa8423725fd9b89da94e67603af57b9de1dfb3189a096e1ae5b
22 +DIST mold-1.8.0.tar.gz 8155820 BLAKE2B cd4285953ec56fa437d32c74b928617a50508c0b947dd0c0a3fac6813d7b929d9499f24aa2641faab78d5e81fbced48d734389c61313d752f509d25d2e1f9c61 SHA512 923158563c7abd39c7111e3871a90c7f6f17e0b2412c5de0c9924f3fb55d7fe57db4a83d8a20c3d4966b7b117d1c95cf4a59f63d5076db422b9aa5c3485fd7f8
23
24 diff --git a/sys-devel/mold/mold-1.8.0.ebuild b/sys-devel/mold/mold-1.8.0.ebuild
25 new file mode 100644
26 index 000000000000..82b43f78b777
27 --- /dev/null
28 +++ b/sys-devel/mold/mold-1.8.0.ebuild
29 @@ -0,0 +1,89 @@
30 +# Copyright 2021-2022 Gentoo Authors
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=8
34 +
35 +inherit cmake toolchain-funcs
36 +
37 +DESCRIPTION="A Modern Linker"
38 +HOMEPAGE="https://github.com/rui314/mold"
39 +if [[ ${PV} == 9999 ]] ; then
40 + EGIT_REPO_URI="https://github.com/rui314/mold.git"
41 + inherit git-r3
42 +else
43 + SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
44 + KEYWORDS="~amd64 ~riscv ~x86"
45 +fi
46 +
47 +# mold (AGPL-3)
48 +# - xxhash (BSD-2)
49 +LICENSE="AGPL-3 BSD-2"
50 +SLOT="0"
51 +
52 +RDEPEND="
53 + app-arch/zstd:=
54 + >=dev-cpp/tbb-2021.7.0:=
55 + sys-libs/zlib
56 + !kernel_Darwin? (
57 + >=dev-libs/mimalloc-2:=
58 + dev-libs/openssl:=
59 + )
60 +"
61 +DEPEND="${RDEPEND}"
62 +
63 +pkg_pretend() {
64 + # Requires a c++20 compiler, see #831473
65 + if [[ ${MERGE_TYPE} != binary ]]; then
66 + if tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]]; then
67 + die "${PN} needs at least gcc 10"
68 + elif tc-is-clang && [[ $(clang-major-version) -lt 12 ]]; then
69 + die "${PN} needs at least clang 12"
70 + fi
71 + fi
72 +}
73 +
74 +src_prepare() {
75 + cmake_src_prepare
76 +
77 + # Needs unpackaged dwarfdump
78 + rm test/elf/{{dead,compress}-debug-sections,compressed-debug-info}.sh || die
79 +
80 + # Heavy tests, need qemu
81 + rm test/elf/gdb-index-{compress-output,dwarf{2,3,4,5}}.sh || die
82 + rm test/elf/lto-{archive,dso,gcc,llvm,version-script}.sh || die
83 +
84 + # Sandbox sadness
85 + rm test/elf/run.sh || die
86 + sed -i 's|`pwd`/mold-wrapper.so|"& ${LD_PRELOAD}"|' \
87 + test/elf/mold-wrapper{,2}.sh || die
88 +
89 + # static-pie tests require glibc built with static-pie support
90 + if ! has_version -d 'sys-libs/glibc[static-pie(+)]'; then
91 + rm test/elf/{,ifunc-}static-pie.sh || die
92 + fi
93 +}
94 +
95 +src_configure() {
96 + local mycmakeargs=(
97 + -DMOLD_ENABLE_QEMU_TESTS=OFF
98 + -DMOLD_LTO=OFF # Should be up to the user to decide this with CXXFLAGS.
99 + -DMOLD_USE_SYSTEM_MIMALLOC=ON
100 + -DMOLD_USE_SYSTEM_TBB=ON
101 + )
102 + cmake_src_configure
103 +}
104 +
105 +src_install() {
106 + dobin "${BUILD_DIR}"/${PN}
107 +
108 + # https://bugs.gentoo.org/872773
109 + insinto /usr/$(get_libdir)/mold
110 + doins "${BUILD_DIR}"/${PN}-wrapper.so
111 +
112 + dodoc docs/{design,execstack}.md
113 + doman docs/${PN}.1
114 +
115 + dosym ${PN} /usr/bin/ld.${PN}
116 + dosym ${PN} /usr/bin/ld64.${PN}
117 + dosym ../../../usr/bin/${PN} /usr/libexec/${PN}/ld
118 +}