commit:     c7c4e417ac9c0e113dbf679baca04019dcb85723
Author:     Haelwenn (lanodan) Monnier <contact <AT> hacktivis <DOT> me>
AuthorDate: Fri Nov 22 06:55:13 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec  1 11:25:58 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7c4e417

sys-devel/dwz: fix hardcoded readelf, pull error-standalone

Closes: https://bugs.gentoo.org/829239
Closes: https://bugs.gentoo.org/902197
Signed-off-by: Haelwenn (lanodan) Monnier <contact <AT> hacktivis.me>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-devel/dwz/dwz-0.15-r3.ebuild           | 72 ++++++++++++++++++++++++++++++
 sys-devel/dwz/files/dwz-0.15-readelf.patch | 43 ++++++++++++++++++
 2 files changed, 115 insertions(+)

diff --git a/sys-devel/dwz/dwz-0.15-r3.ebuild b/sys-devel/dwz/dwz-0.15-r3.ebuild
new file mode 100644
index 000000000000..c3edf6b147e7
--- /dev/null
+++ b/sys-devel/dwz/dwz-0.15-r3.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="DWARF optimization and duplicate removal tool"
+HOMEPAGE="https://sourceware.org/dwz";
+if [[ ${PV} == 9999 ]] ; then
+       EGIT_REPO_URI="https://sourceware.org/git/dwz.git";
+       inherit git-r3
+else
+       SRC_URI="https://sourceware.org/ftp/dwz/releases/${P}.tar.xz";
+       S="${WORKDIR}/${PN}"
+
+       #KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+       KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+fi
+
+LICENSE="GPL-2+ GPL-3+"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-libs/elfutils
+       dev-libs/xxhash
+       elibc_musl? (
+               sys-libs/error-standalone
+               sys-libs/obstack-standalone
+       )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       test? (
+               dev-debug/gdb
+               dev-libs/elfutils[utils]
+               dev-util/dejagnu
+       )
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-gdb-15.patch
+       "${FILESDIR}"/${P}-readelf.patch
+)
+
+src_prepare() {
+       default
+       tc-export CC
+}
+
+src_compile() {
+       tc-export PKG_CONFIG
+
+       export LIBS="-lelf"
+       if use elibc_musl; then
+               export CFLAGS="${CFLAGS} $(${PKG_CONFIG} --cflags 
obstack-standalone)"
+               export LIBS="${LIBS} $(${PKG_CONFIG} --libs obstack-standalone)"
+       fi
+
+       emake CFLAGS="${CFLAGS}" LIBS="${LIBS}" srcdir="${S}"
+}
+
+src_test() {
+       emake CFLAGS="${CFLAGS}" LIBS="${LIBS}" srcdir="${S}" check
+}
+
+src_install() {
+       emake DESTDIR="${D}" CFLAGS="${CFLAGS}" LIBS="${LIBS}" srcdir="${S}" 
install
+}

diff --git a/sys-devel/dwz/files/dwz-0.15-readelf.patch 
b/sys-devel/dwz/files/dwz-0.15-readelf.patch
new file mode 100644
index 000000000000..038c832e3950
--- /dev/null
+++ b/sys-devel/dwz/files/dwz-0.15-readelf.patch
@@ -0,0 +1,43 @@
+From 2ae1b0ee518ba40fe985aa644d3a66ebca1165e4 Mon Sep 17 00:00:00 2001
+From: "Haelwenn (lanodan) Monnier" <[email protected]>
+Upstream: https://sourceware.org/pipermail/dwz/2024q4/001435.html
+Date: Fri, 22 Nov 2024 07:33:09 +0100
+Subject: [PATCH 2/2] Makefile: use $READELF variable instead of hardcoding
+ 'readelf'
+
+---
+ Makefile | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 3dc6c6f..f0841aa 100644
+--- a/Makefile
++++ b/Makefile
+@@ -19,6 +19,8 @@ endif
+ 
+ override CFLAGS += $(CFLAGS_COMMON) $(CFLAGS_VERSION) $(CFLAGS_COPYRIGHT)
+ 
++READELF ?= $(CROSS_COMPILE)readelf
++
+ prefix = /usr
+ exec_prefix = $(prefix)
+ bindir = $(exec_prefix)/bin
+@@ -35,13 +37,13 @@ args.o: native.o
+ args.o: CFLAGS_FOR_SOURCE = \
+       -DNATIVE_ENDIAN_VAL=$(NATIVE_ENDIAN_VAL) \
+       -DNATIVE_POINTER_SIZE=$(NATIVE_POINTER_SIZE)
+-NATIVE_ENDIAN=$(shell readelf -h native.o \
++NATIVE_ENDIAN=$(shell ${READELF} -h native.o \
+       | grep Data \
+       | sed 's/.*, //;s/ endian//')
+ NATIVE_ENDIAN_LITTLE=$(findstring $(NATIVE_ENDIAN),$(findstring 
little,$(NATIVE_ENDIAN)))
+ NATIVE_ENDIAN_BIG=$(findstring $(NATIVE_ENDIAN),$(findstring 
big,$(NATIVE_ENDIAN)))
+ NATIVE_ENDIAN_VAL=$(if $(NATIVE_ENDIAN_LITTLE),ELFDATA2LSB,$(if 
$(NATIVE_ENDIAN_BIG),ELFDATA2MSB,ELFDATANONE))
+-NATIVE_POINTER_SIZE=$(shell readelf -wi native.o \
++NATIVE_POINTER_SIZE=$(shell ${READELF} -wi native.o \
+       | grep "Pointer Size:" \
+       | sed 's/.*: *//')
+ %.o: %.c
+-- 
+2.45.2
+

Reply via email to