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/, sys-devel/mold/files/
Date: Fri, 29 Oct 2021 22:23:19
Message-Id: 1635546153.43d9863e8abd71e2b8fa242795f95c42c688cb43.sam@gentoo
1 commit: 43d9863e8abd71e2b8fa242795f95c42c688cb43
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 29 21:55:04 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 29 22:22:33 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=43d9863e
7
8 sys-devel/mold: initial import
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 sys-devel/mold/Manifest | 1 +
13 .../mold/files/mold-0.9.6-respect-flags.patch | 49 +++++++++++++
14 sys-devel/mold/metadata.xml | 11 +++
15 sys-devel/mold/mold-0.9.6.ebuild | 85 ++++++++++++++++++++++
16 4 files changed, 146 insertions(+)
17
18 diff --git a/sys-devel/mold/Manifest b/sys-devel/mold/Manifest
19 new file mode 100644
20 index 00000000000..fc960548595
21 --- /dev/null
22 +++ b/sys-devel/mold/Manifest
23 @@ -0,0 +1 @@
24 +DIST mold-0.9.6.tar.gz 3378698 BLAKE2B 1352e4f2bc018b53f6f18f6412c4747660a808a896d0c5c620db64babe42a6a949ca444f14a426a41202c8e26ff5973996819c6e4778eeaff6cb20b5746deb0d SHA512 d3de30b371413e974728fba03958d6043026f59aead8371058a0b1dc672e2675e169a1def3afd3751058f529d6ec80ff78c773d2718c1d9f0bdea74d9f13bc2e
25
26 diff --git a/sys-devel/mold/files/mold-0.9.6-respect-flags.patch b/sys-devel/mold/files/mold-0.9.6-respect-flags.patch
27 new file mode 100644
28 index 00000000000..270a28988f9
29 --- /dev/null
30 +++ b/sys-devel/mold/files/mold-0.9.6-respect-flags.patch
31 @@ -0,0 +1,49 @@
32 +From: Sam James <sam@g.o>
33 +Date: Fri, 29 Oct 2021 22:50:40 +0100
34 +Subject: [PATCH] Respect *FLAGS
35 +
36 +--- a/Makefile
37 ++++ b/Makefile
38 +@@ -10,10 +10,11 @@ GIT_HASH ?= $(shell [ -d .git ] && git rev-parse HEAD)
39 +
40 + OS ?= $(shell uname -s)
41 +
42 +-CPPFLAGS = -g -pthread -std=c++20 -fPIE \
43 +- -DMOLD_VERSION=\"0.9.6\" \
44 +- -DGIT_HASH=\"$(GIT_HASH)\" \
45 +- $(EXTRA_CPPFLAGS)
46 ++CFLAGS = -pthread -fPIE $(EXTRA_CFLAGS)
47 ++CXXFLAGS = -pthread -std=c++20 -fPIE $(EXTRA_CXXFLAGS)
48 ++CPPFLAGS = -DMOLD_VERSION=\"0.9.6\" \
49 ++ -DGIT_HASH=\"$(GIT_HASH)\" \
50 ++ $(EXTRA_CPPFLAGS)
51 + LDFLAGS += $(EXTRA_LDFLAGS)
52 + LIBS = -pthread -lz -lxxhash -ldl -lm
53 +
54 +@@ -28,12 +29,6 @@ LTO ?= 0
55 + ASAN ?= 0
56 + TSAN ?= 0
57 +
58 +-ifeq ($(DEBUG), 1)
59 +- CPPFLAGS += -O0
60 +-else
61 +- CPPFLAGS += -O2
62 +-endif
63 +-
64 + ifeq ($(LTO), 1)
65 + CPPFLAGS += -flto -O3
66 + LDFLAGS += -flto
67 +@@ -73,11 +68,11 @@ endif
68 + all: mold mold-wrapper.so
69 +
70 + mold: $(OBJS) $(MIMALLOC_LIB) $(TBB_LIB)
71 +- $(CXX) $(CXXFLAGS) $(OBJS) -o $@ $(LDFLAGS) $(LIBS)
72 ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LIBS)
73 + ln -sf mold ld
74 +
75 + mold-wrapper.so: elf/mold-wrapper.c Makefile
76 +- $(CC) -fPIC -shared -o $@ $< -ldl
77 ++ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $< -ldl
78 +
79 + $(OBJS): $(HEADERS) Makefile
80 +
81
82 diff --git a/sys-devel/mold/metadata.xml b/sys-devel/mold/metadata.xml
83 new file mode 100644
84 index 00000000000..42610750e82
85 --- /dev/null
86 +++ b/sys-devel/mold/metadata.xml
87 @@ -0,0 +1,11 @@
88 +<?xml version="1.0" encoding="UTF-8"?>
89 +<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
90 +<pkgmetadata>
91 + <maintainer type="person">
92 + <email>sam@g.o</email>
93 + <name>Sam James</name>
94 + </maintainer>
95 + <upstream>
96 + <remote-id type="github">rui314/mold</remote-id>
97 + </upstream>
98 +</pkgmetadata>
99
100 diff --git a/sys-devel/mold/mold-0.9.6.ebuild b/sys-devel/mold/mold-0.9.6.ebuild
101 new file mode 100644
102 index 00000000000..2edeabeb557
103 --- /dev/null
104 +++ b/sys-devel/mold/mold-0.9.6.ebuild
105 @@ -0,0 +1,85 @@
106 +# Copyright 2021 Gentoo Authors
107 +# Distributed under the terms of the GNU General Public License v2
108 +
109 +EAPI=8
110 +
111 +inherit toolchain-funcs
112 +
113 +DESCRIPTION="A Modern Linker"
114 +HOMEPAGE="https://github.com/rui314/mold"
115 +SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
116 +
117 +LICENSE="AGPL-3"
118 +SLOT="0"
119 +KEYWORDS="~amd64"
120 +# Try again after 0.9.6
121 +RESTRICT="test"
122 +
123 +RDEPEND=">=dev-cpp/tbb-2021.4.0:=
124 + dev-libs/xxhash:=
125 + sys-libs/zlib
126 + !kernel_Darwin? (
127 + dev-libs/mimalloc:=
128 + dev-libs/openssl:=
129 + )"
130 +DEPEND="${RDEPEND}"
131 +
132 +PATCHES=(
133 + "${FILESDIR}"/${PN}-0.9.6-respect-flags.patch
134 +)
135 +
136 +src_prepare() {
137 + default
138 +
139 + sed -i \
140 + -e '/ strip/d' \
141 + -e '/ gzip/d' \
142 + -e "s:\$(DEST)/lib:\$(DEST)/$(get_libdir):" \
143 + Makefile || die
144 +
145 + # Needs unpackaged dwarfutils
146 + rm test/compressed-debug-info.sh \
147 + test/compress-debug-sections.sh || die
148 +
149 + # Seems to have been fixed in git (> 0.9.6)
150 + # Broken atm?
151 + rm test/mold-wrapper.sh || die
152 +
153 + # Needs llvmgold
154 + rm test/hello-static.sh || die
155 +}
156 +
157 +src_compile() {
158 + tc-export CC CXX
159 +
160 + emake \
161 + SYSTEM_TBB=1 \
162 + SYSTEM_MIMALLOC=1 \
163 + EXTRA_CFLAGS="${CFLAGS}" \
164 + EXTRA_CXXFLAGS="${CXXFLAGS}" \
165 + EXTRA_CPPFLAGS="${CPPFLAGS}" \
166 + EXTRA_LDFLAGS="${LDFLAGS}"
167 +}
168 +
169 +src_test() {
170 + emake \
171 + SYSTEM_TBB=1 \
172 + SYSTEM_MIMALLOC=1 \
173 + EXTRA_CFLAGS="${CFLAGS}" \
174 + EXTRA_CXXFLAGS="${CXXFLAGS}" \
175 + EXTRA_CPPFLAGS="${CPPFLAGS}" \
176 + EXTRA_LDFLAGS="${LDFLAGS}" \
177 + check
178 +}
179 +
180 +src_install() {
181 + emake \
182 + SYSTEM_TBB=1 \
183 + SYSTEM_MIMALLOC=1 \
184 + EXTRA_CFLAGS="${CFLAGS}" \
185 + EXTRA_CXXFLAGS="${CXXFLAGS}" \
186 + EXTRA_CPPFLAGS="${CPPFLAGS}" \
187 + EXTRA_LDFLAGS="${LDFLAGS}" \
188 + DESTDIR="${ED}" \
189 + install
190 +}