Gentoo Archives: gentoo-commits

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