From 135d88401a60dbbc0905c1f16391cea46b8d0cc0 Mon Sep 17 00:00:00 2001 From: Matthew Smith Date: Sat, 30 Apr 2022 07:47:12 +0100 Subject: sys-devel/mold: don't invoke python during build Closes: https://bugs.gentoo.org/841575 Signed-off-by: Matthew Smith --- .../mold/files/mold-1.2.1-install-nopython.patch | 34 ++++++++ sys-devel/mold/mold-1.2.1-r1.ebuild | 95 ++++++++++++++++++++++ sys-devel/mold/mold-1.2.1.ebuild | 90 -------------------- sys-devel/mold/mold-9999.ebuild | 5 ++ 4 files changed, 134 insertions(+), 90 deletions(-) create mode 100644 sys-devel/mold/files/mold-1.2.1-install-nopython.patch create mode 100644 sys-devel/mold/mold-1.2.1-r1.ebuild delete mode 100644 sys-devel/mold/mold-1.2.1.ebuild (limited to 'sys-devel') diff --git a/sys-devel/mold/files/mold-1.2.1-install-nopython.patch b/sys-devel/mold/files/mold-1.2.1-install-nopython.patch new file mode 100644 index 000000000000..661d3dcf392f --- /dev/null +++ b/sys-devel/mold/files/mold-1.2.1-install-nopython.patch @@ -0,0 +1,34 @@ +From 4fb6d4208cfb20bad4a3491a18e78409b5a8183f Mon Sep 17 00:00:00 2001 +From: Matthew Smith +Date: Sat, 30 Apr 2022 07:42:50 +0100 +Subject: [PATCH] Don't invoke Python to create libexec/mold/ld symlink + +Reverts commits 8073a92614fb59f59570031badab5dd4bc3b4f7f and +5803c3c200f301adc3abdb66df16d3d669712d70. + +Bug #841575 +--- + Makefile | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/Makefile b/Makefile +index d1abc850..10e053a9 100644 +--- a/Makefile ++++ b/Makefile +@@ -204,12 +204,7 @@ install: all + $(STRIP) $D$(LIBDIR)/mold/mold-wrapper.so + + $(INSTALL) -d $D$(LIBEXECDIR)/mold +- +-# We want to make a symblink with a relative path, so that users can +-# move the entire directory to other place without breaking the reference. +-# GNU ln supports `--relative` to do that, but that's not supported by +-# non-GNU systems. So we use Python to compute a relative path. +- ln -sf `python3 -c "import os.path; print(os.path.relpath('$(BINDIR)/mold', '$(LIBEXECDIR)/mold'))"` $D$(LIBEXECDIR)/mold/ld ++ ln -sf $(BINDIR)/mold $D$(LIBEXECDIR)/mold/ld + + $(INSTALL) -d $D$(MANDIR)/man1 + $(INSTALL_DATA) docs/mold.1 $D$(MANDIR)/man1 +-- +2.35.3 + diff --git a/sys-devel/mold/mold-1.2.1-r1.ebuild b/sys-devel/mold/mold-1.2.1-r1.ebuild new file mode 100644 index 000000000000..87931221e192 --- /dev/null +++ b/sys-devel/mold/mold-1.2.1-r1.ebuild @@ -0,0 +1,95 @@ +# Copyright 2021-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="A Modern Linker" +HOMEPAGE="https://github.com/rui314/mold" +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" + +RDEPEND=">=dev-cpp/tbb-2021.4.0:= + sys-libs/zlib + !kernel_Darwin? ( + >=dev-libs/mimalloc-2:= + dev-libs/openssl:= + )" +# As of 1.1, xxhash is now a header-only dep, but it's now bundled :( +# TODO: restore SYSTEM_XXHASH upstream? +DEPEND="${RDEPEND}" + +PATCHES=( + # Bug #841575 + "${FILESDIR}"/${PN}-1.2.1-install-nopython.patch +) + +pkg_pretend() { + # Requires a c++20 compiler, see #831473 + if [[ ${MERGE_TYPE} != binary ]]; then + if tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]]; then + die "${PN} needs at least gcc 10" + elif tc-is-clang && [[ $(clang-major-version) -lt 12 ]]; then + die "${PN} needs at least clang 12" + fi + fi +} + +src_prepare() { + default + + # Needs unpackaged dwarfdump + rm test/elf/{{dead,compress}-debug-sections,compressed-debug-info}.sh || die + + # Heavy tests, need qemu + rm test/elf/gdb-index-{compress-output,dwarf{2,3,4,5}}.sh || die + + # Sandbox sadness + rm test/elf/run.sh || die + sed -i 's|$mold-wrapper.so|"& ${LD_PRELOAD}"|' \ + test/elf/mold-wrapper{,2}.sh || die + + # static-pie tests require glibc built with static-pie support + if ! has_version -d 'sys-libs/glibc[static-pie(+)]'; then + rm test/elf/{hello,ifunc}-static-pie.sh || die + fi +} + +src_compile() { + tc-export CC CXX + + emake \ + CFLAGS="${CFLAGS}" \ + CXXFLAGS="${CXXFLAGS}" \ + SYSTEM_TBB=1 \ + SYSTEM_MIMALLOC=1 \ + STRIP="true" \ + LIBDIR="${EPREFIX}/usr/$(get_libdir)" +} + +src_test() { + emake \ + SYSTEM_TBB=1 \ + SYSTEM_MIMALLOC=1 \ + check +} + +src_install() { + emake \ + SYSTEM_TBB=1 \ + SYSTEM_MIMALLOC=1 \ + DESTDIR="${D}" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ + STRIP="true" \ + install +} diff --git a/sys-devel/mold/mold-1.2.1.ebuild b/sys-devel/mold/mold-1.2.1.ebuild deleted file mode 100644 index a9e0aa6a2c2e..000000000000 --- a/sys-devel/mold/mold-1.2.1.ebuild +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright 2021-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs - -DESCRIPTION="A Modern Linker" -HOMEPAGE="https://github.com/rui314/mold" -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" - -RDEPEND=">=dev-cpp/tbb-2021.4.0:= - sys-libs/zlib - !kernel_Darwin? ( - >=dev-libs/mimalloc-2:= - dev-libs/openssl:= - )" -# As of 1.1, xxhash is now a header-only dep, but it's now bundled :( -# TODO: restore SYSTEM_XXHASH upstream? -DEPEND="${RDEPEND}" - -pkg_pretend() { - # Requires a c++20 compiler, see #831473 - if [[ ${MERGE_TYPE} != binary ]]; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]]; then - die "${PN} needs at least gcc 10" - elif tc-is-clang && [[ $(clang-major-version) -lt 12 ]]; then - die "${PN} needs at least clang 12" - fi - fi -} - -src_prepare() { - default - - # Needs unpackaged dwarfdump - rm test/elf/{{dead,compress}-debug-sections,compressed-debug-info}.sh || die - - # Heavy tests, need qemu - rm test/elf/gdb-index-{compress-output,dwarf{2,3,4,5}}.sh || die - - # Sandbox sadness - rm test/elf/run.sh || die - sed -i 's|$mold-wrapper.so|"& ${LD_PRELOAD}"|' \ - test/elf/mold-wrapper{,2}.sh || die - - # static-pie tests require glibc built with static-pie support - if ! has_version -d 'sys-libs/glibc[static-pie(+)]'; then - rm test/elf/{hello,ifunc}-static-pie.sh || die - fi -} - -src_compile() { - tc-export CC CXX - - emake \ - CFLAGS="${CFLAGS}" \ - CXXFLAGS="${CXXFLAGS}" \ - SYSTEM_TBB=1 \ - SYSTEM_MIMALLOC=1 \ - STRIP="true" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" -} - -src_test() { - emake \ - SYSTEM_TBB=1 \ - SYSTEM_MIMALLOC=1 \ - check -} - -src_install() { - emake \ - SYSTEM_TBB=1 \ - SYSTEM_MIMALLOC=1 \ - DESTDIR="${D}" \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - STRIP="true" \ - install -} diff --git a/sys-devel/mold/mold-9999.ebuild b/sys-devel/mold/mold-9999.ebuild index a9e0aa6a2c2e..87931221e192 100644 --- a/sys-devel/mold/mold-9999.ebuild +++ b/sys-devel/mold/mold-9999.ebuild @@ -28,6 +28,11 @@ RDEPEND=">=dev-cpp/tbb-2021.4.0:= # TODO: restore SYSTEM_XXHASH upstream? DEPEND="${RDEPEND}" +PATCHES=( + # Bug #841575 + "${FILESDIR}"/${PN}-1.2.1-install-nopython.patch +) + pkg_pretend() { # Requires a c++20 compiler, see #831473 if [[ ${MERGE_TYPE} != binary ]]; then -- cgit v1.2.3-65-gdbad