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: Thu, 16 Mar 2023 23:51:14
Message-Id: 1679010632.51813aa3bbc2dda40272c2a4bfc40b9ebcc7465e.sam@gentoo
1 commit: 51813aa3bbc2dda40272c2a4bfc40b9ebcc7465e
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Thu Mar 16 23:45:13 2023 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Thu Mar 16 23:50:32 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51813aa3
7
8 sys-devel/mold: add 1.11.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.11.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 8075830bf769..331edf201d83 100644
18 --- a/sys-devel/mold/Manifest
19 +++ b/sys-devel/mold/Manifest
20 @@ -1 +1,2 @@
21 DIST mold-1.10.1.tar.gz 8173701 BLAKE2B 142b4ec6297f1d4eb7576d16603a214244216592df7320639da3fce32890fc3d13e681dcb79ed23e4c0c7dba1f97eb10c622052c67787b6699925ae67ddb1d15 SHA512 b9df5ddc3a3a022523506638309373c3440128f3c702a7db69c44c180177148e92fbf73347be0c4e0e890395cfb2a5b12d2650ee267f9f58212ccfa981519bbf
22 +DIST mold-1.11.0.tar.gz 8210923 BLAKE2B b3854a14a956dd568625fc28c96636e7cadf81b9a93954601b03e249db0aedf726a5a1f24c0758c8189a936501ebb778b472ee6e958fe9f43cb3c3093b2dda2a SHA512 a9068600dd2db757552cce027f358c0b9e6af0941b92f81c1e99e2dde674bd06cc3533d432258e42a2197d9b3f8e7bb263de281928357a79e4fb17fb19719bc0
23
24 diff --git a/sys-devel/mold/mold-1.11.0.ebuild b/sys-devel/mold/mold-1.11.0.ebuild
25 new file mode 100644
26 index 000000000000..ea88934048d6
27 --- /dev/null
28 +++ b/sys-devel/mold/mold-1.11.0.ebuild
29 @@ -0,0 +1,89 @@
30 +# Copyright 2021-2023 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 ~ppc64 ~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-r1:=
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 +}