public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/mold/files/, sys-devel/mold/
Date: Thu, 28 Jul 2022 10:17:33 +0000 (UTC)	[thread overview]
Message-ID: <1659003199.b53e78583cc4390f7660936543b7417af040e141.sam@gentoo> (raw)

commit:     b53e78583cc4390f7660936543b7417af040e141
Author:     Han Gao <rabenda.cn <AT> gmail <DOT> com>
AuthorDate: Thu Jul 28 09:32:30 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jul 28 10:13:19 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b53e7858

sys-devel/mold: fix riscv R_RISCV_SET32 in EhFrameSection

Bug: https://bugs.gentoo.org/861488
Signed-off-by: Han Gao <rabenda.cn <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../mold/files/mold-1.3.1-fix-riscv-set32.patch    | 25 ++++++
 sys-devel/mold/mold-1.3.1-r1.ebuild                | 99 ++++++++++++++++++++++
 2 files changed, 124 insertions(+)

diff --git a/sys-devel/mold/files/mold-1.3.1-fix-riscv-set32.patch b/sys-devel/mold/files/mold-1.3.1-fix-riscv-set32.patch
new file mode 100644
index 000000000000..5613d8ddc003
--- /dev/null
+++ b/sys-devel/mold/files/mold-1.3.1-fix-riscv-set32.patch
@@ -0,0 +1,25 @@
+From https://github.com/rui314/mold/pull/590
+From 68bd00caa7c7946f380f72a5dd263e7c1d436e9f Mon Sep 17 00:00:00 2001
+From: Alex Fan <alex.fan.q@gmail.com>
+Date: Thu, 28 Jul 2022 14:04:21 +1000
+Subject: [PATCH] [ELF][RISCV] add missing R_RISCV_SET32 in EhFrameSection
+
+Signed-off-by: Alex Fan <alex.fan.q@gmail.com>
+---
+ elf/arch-riscv64.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/elf/arch-riscv64.cc b/elf/arch-riscv64.cc
+index 8761c6ac..0c589118 100644
+--- a/elf/arch-riscv64.cc
++++ b/elf/arch-riscv64.cc
+@@ -183,6 +183,9 @@ void EhFrameSection<E>::apply_reloc(Context<E> &ctx, const ElfRel<E> &rel,
+   case R_RISCV_SET16:
+     *(ul16 *)loc = val;
+     return;
++  case R_RISCV_SET32:
++    *(ul32 *)loc = val;
++    return;
+   case R_RISCV_32_PCREL:
+     *(ul32 *)loc = val - this->shdr.sh_addr - offset;
+     return;

diff --git a/sys-devel/mold/mold-1.3.1-r1.ebuild b/sys-devel/mold/mold-1.3.1-r1.ebuild
new file mode 100644
index 000000000000..b4a955bb2dea
--- /dev/null
+++ b/sys-devel/mold/mold-1.3.1-r1.ebuild
@@ -0,0 +1,99 @@
+# 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 ~riscv"
+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
+	"${FILESDIR}"/${PN}-1.3.0-openssl-pkgconfig.patch
+	# Bug #861488
+	"${FILESDIR}"/${PN}-1.3.1-fix-riscv-set32.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
+	rm test/elf/lto-{archive,dso,gcc,llvm,version-script}.sh || die
+
+	# Sandbox sadness
+	rm test/elf/run.sh || die
+	sed -i 's|`pwd`/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/{,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
+}


             reply	other threads:[~2022-07-28 10:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-28 10:17 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-14  5:20 [gentoo-commits] repo/gentoo:master commit in: sys-devel/mold/files/, sys-devel/mold/ Sam James
2024-12-20  6:10 Sam James
2024-12-09  5:54 Sam James
2024-09-02  5:14 Sam James
2024-06-24  0:32 Sam James
2024-04-30  7:03 Sam James
2023-11-13  2:11 Sam James
2023-07-29  4:43 Sam James
2022-12-04  8:55 Matthew Smith
2021-12-20  5:08 Sam James
2021-12-14 11:14 Sam James

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1659003199.b53e78583cc4390f7660936543b7417af040e141.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox