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 }