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 |
+} |