From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1349372-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 885B4158087
	for <garchives@archives.gentoo.org>; Tue, 14 Dec 2021 11:14:15 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id B7AC82BC014;
	Tue, 14 Dec 2021 11:14:14 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 3E4C82BC011
	for <gentoo-commits@lists.gentoo.org>; Tue, 14 Dec 2021 11:14:13 +0000 (UTC)
Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 323113436F9
	for <gentoo-commits@lists.gentoo.org>; Tue, 14 Dec 2021 11:14:12 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id BFCB1238
	for <gentoo-commits@lists.gentoo.org>; Tue, 14 Dec 2021 11:14:10 +0000 (UTC)
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org>
Message-ID: <1639480442.cb38ac7fc6ad1953967241e3520eb754f263840e.sam@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/mold/files/, sys-devel/mold/
X-VCS-Repository: repo/gentoo
X-VCS-Files: sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch sys-devel/mold/mold-0.9.6-r2.ebuild sys-devel/mold/mold-9999.ebuild
X-VCS-Directories: sys-devel/mold/files/ sys-devel/mold/
X-VCS-Committer: sam
X-VCS-Committer-Name: Sam James
X-VCS-Revision: cb38ac7fc6ad1953967241e3520eb754f263840e
X-VCS-Branch: master
Date: Tue, 14 Dec 2021 11:14:10 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 57d1cef7-6dab-43b5-8e58-11cf85711a6e
X-Archives-Hash: 8dbc4f4aa420149203cdf0a8af94e520

commit:     cb38ac7fc6ad1953967241e3520eb754f263840e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 14 11:13:03 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 14 11:14:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb38ac7f

sys-devel/mold: add live ebuild

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/mold-9999-build-respect-user-FLAGS.patch | 83 ++++++++++++++++++++++
 .../files/mold-9999-don-t-compress-man-page.patch  | 22 ++++++
 sys-devel/mold/mold-0.9.6-r2.ebuild                | 10 ++-
 .../{mold-0.9.6-r2.ebuild => mold-9999.ebuild}     | 49 +++++--------
 4 files changed, 130 insertions(+), 34 deletions(-)

diff --git a/sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch b/sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch
new file mode 100644
index 000000000000..ac218201b902
--- /dev/null
+++ b/sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch
@@ -0,0 +1,83 @@
+https://github.com/rui314/mold/pull/135
+
+From: Sam James <sam@gentoo.org>
+Date: Tue, 14 Dec 2021 10:53:44 +0000
+Subject: [PATCH 1/2] build: respect user *FLAGS
+
+- Respect user CXXFLAGS
+- Rename CPPFLAGS (previously used in the sense of "flags for the C++ compiler") -> CXXFLAGS
+- CPPFLAGS is generally used for "flags for the C(++) preprocessor.", so let's
+  use it for that
+- Respect user LDFLAGS
+  (In one instance, we were respecting LDFLAGS, but doing it too late.
+  We need to pass LDFLAGS _before_ any objects in order for -Wl,--as-needed
+  to work correctly.)
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile
++++ b/Makefile
+@@ -17,10 +17,15 @@ STRIP ?= strip
+ 
+ OS ?= $(shell uname -s)
+ 
+-CPPFLAGS = -pthread -std=c++20 -fPIE -DMOLD_VERSION=\"0.9.6\" \
+-	   -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables \
+-	   -DLIBDIR="\"$(LIBDIR)\"" $(EXTRA_CPPFLAGS)
+-LDFLAGS += $(EXTRA_LDFLAGS)
++# Used for both C and C++
++COMMON_FLAGS = -pthread -fPIE -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
++
++CFLAGS ?= -O2
++CFLAGS += $(COMMON_FLAGS)
++
++CXXFLAGS ?= -O2
++CXXFLAGS += $(COMMON_FLAGS) -std=c++20
++CPPFLAGS += -DMOLD_VERSION=\"0.9.6\" -DLIBDIR="\"$(LIBDIR)\""
+ LIBS = -pthread -lz -lxxhash -ldl -lm
+ 
+ SRCS=$(wildcard *.cc elf/*.cc macho/*.cc)
+@@ -38,21 +43,19 @@ ifneq ($(GIT_HASH),)
+ endif
+ 
+ ifeq ($(DEBUG), 1)
+-  CPPFLAGS += -O0 -g
+-else
+-  CPPFLAGS += -O2
++  CXXFLAGS += -O0 -g
+ endif
+ 
+ ifeq ($(LTO), 1)
+-  CPPFLAGS += -flto -O3
++  CXXFLAGS += -flto -O3
+   LDFLAGS  += -flto
+ endif
+ 
+ ifeq ($(ASAN), 1)
+-  CPPFLAGS += -fsanitize=address
++  CXXFLAGS += -fsanitize=address
+   LDFLAGS  += -fsanitize=address
+ else ifeq ($(TSAN), 1)
+-  CPPFLAGS += -fsanitize=thread
++  CXXFLAGS += -fsanitize=thread
+   LDFLAGS  += -fsanitize=thread
+ else ifneq ($(OS), Darwin)
+   # By default, we want to use mimalloc as a memory allocator.
+@@ -89,15 +92,15 @@ endif
+ all: mold mold-wrapper.so
+ 
+ mold: $(OBJS) $(MIMALLOC_LIB) $(TBB_LIB)
+-	$(CXX) $(CPPFLAGS) $(OBJS) -o $@ $(LDFLAGS) $(LIBS)
++	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LIBS)
+ 	ln -sf mold ld
+ 	ln -sf mold ld64.mold
+ 
+ mold-wrapper.so: elf/mold-wrapper.c Makefile
+-	$(CC) -fPIC -shared -o $@ $< -ldl
++	$(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $< -ldl
+ 
+ out/%.o: %.cc $(HEADERS) Makefile out/elf/.keep out/macho/.keep
+-	$(CXX) $(CPPFLAGS) -c -o $@ $<
++	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
+ 
+ out/elf/.keep:
+ 	mkdir -p out/elf

diff --git a/sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch b/sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch
new file mode 100644
index 000000000000..23dd705b553a
--- /dev/null
+++ b/sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch
@@ -0,0 +1,22 @@
+https://github.com/rui314/mold/pull/135
+
+From: Sam James <sam@gentoo.org>
+Date: Tue, 14 Dec 2021 11:01:19 +0000
+Subject: [PATCH 2/2] build: don't compress man page
+
+Negligible saving and downstream, distributions usually recompress or
+compress with their own specific options. Unconditionally compressing
+man pages, while well intended, usually creates more hassle there.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile
++++ b/Makefile
+@@ -140,8 +140,6 @@ install: all
+ 
+ 	install -m 755 -d $D$(MANDIR)/man1
+ 	install -m 644 docs/mold.1 $D$(MANDIR)/man1
+-	rm -f $D$(MANDIR)/man1/mold.1.gz
+-	gzip -9 $D$(MANDIR)/man1/mold.1
+ 
+ 	ln -sf mold $D$(BINDIR)/ld.mold
+ 	ln -sf mold $D$(BINDIR)/ld64.mold

diff --git a/sys-devel/mold/mold-0.9.6-r2.ebuild b/sys-devel/mold/mold-0.9.6-r2.ebuild
index a8bb3b7a4246..ceaaeaf2af4f 100644
--- a/sys-devel/mold/mold-0.9.6-r2.ebuild
+++ b/sys-devel/mold/mold-0.9.6-r2.ebuild
@@ -7,11 +7,17 @@ inherit toolchain-funcs
 
 DESCRIPTION="A Modern Linker"
 HOMEPAGE="https://github.com/rui314/mold"
-SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+if [[ ${PV} == 9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/rui314/mold.git"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64"
+fi
 
 LICENSE="AGPL-3"
 SLOT="0"
-KEYWORDS="~amd64"
+
 # Try again after 0.9.6
 RESTRICT="test"
 

diff --git a/sys-devel/mold/mold-0.9.6-r2.ebuild b/sys-devel/mold/mold-9999.ebuild
similarity index 55%
copy from sys-devel/mold/mold-0.9.6-r2.ebuild
copy to sys-devel/mold/mold-9999.ebuild
index a8bb3b7a4246..0a936b317bbc 100644
--- a/sys-devel/mold/mold-0.9.6-r2.ebuild
+++ b/sys-devel/mold/mold-9999.ebuild
@@ -7,11 +7,17 @@ inherit toolchain-funcs
 
 DESCRIPTION="A Modern Linker"
 HOMEPAGE="https://github.com/rui314/mold"
-SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+if [[ ${PV} == 9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/rui314/mold.git"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64"
+fi
 
 LICENSE="AGPL-3"
 SLOT="0"
-KEYWORDS="~amd64"
+
 # Try again after 0.9.6
 RESTRICT="test"
 
@@ -25,37 +31,10 @@ RDEPEND=">=dev-cpp/tbb-2021.4.0:=
 DEPEND="${RDEPEND}"
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-0.9.6-respect-flags.patch
-	"${FILESDIR}"/${PN}-0.9.6-fix-libdir-wrapper.patch
+	"${FILESDIR}"/${PN}-9999-build-respect-user-FLAGS.patch
+	"${FILESDIR}"/${PN}-9999-don-t-compress-man-page.patch
 )
 
-src_prepare() {
-	default
-
-	sed -i \
-		-e '/	strip/d' \
-		-e '/	gzip/d' \
-		-e "s:\$(DEST)/lib:\$(DEST)/$(get_libdir):" \
-		Makefile || die
-
-	# Drop on next release: bug #823653
-	# https://github.com/rui314/mold/issues/127
-	sed -i \
-		-e "s:/usr/lib64/mold/mold-wrapper.so:${EPREFIX}/usr/$(get_libdir)/mold/mold-wrapper.so:" \
-		elf/subprocess.cc || die
-
-	# Needs unpackaged dwarfutils
-	rm test/compressed-debug-info.sh \
-		test/compress-debug-sections.sh || die
-
-	# Seems to have been fixed in git (> 0.9.6)
-	# Broken atm?
-	rm test/mold-wrapper.sh || die
-
-	# Needs llvmgold
-	rm test/hello-static.sh || die
-}
-
 src_compile() {
 	tc-export CC CXX
 
@@ -65,7 +44,9 @@ src_compile() {
 		EXTRA_CFLAGS="${CFLAGS}" \
 		EXTRA_CXXFLAGS="${CXXFLAGS}" \
 		EXTRA_CPPFLAGS="${CPPFLAGS}" \
-		EXTRA_LDFLAGS="${LDFLAGS}"
+		EXTRA_LDFLAGS="${LDFLAGS}" \
+		STRIP="true"
+		LIBDIR="${EPREFIX}/usr/$(get_libdir)"
 }
 
 src_test() {
@@ -76,6 +57,8 @@ src_test() {
 		EXTRA_CXXFLAGS="${CXXFLAGS}" \
 		EXTRA_CPPFLAGS="${CPPFLAGS}" \
 		EXTRA_LDFLAGS="${LDFLAGS}" \
+		LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
+		STRIP="true"
 		check
 }
 
@@ -88,5 +71,7 @@ src_install() {
 		EXTRA_CPPFLAGS="${CPPFLAGS}" \
 		EXTRA_LDFLAGS="${LDFLAGS}" \
 		DESTDIR="${ED}" \
+		LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
+		STRIP="true" \
 		install
 }