summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2024-11-22 07:55:13 +0100
committerSam James <sam@gentoo.org>2024-12-01 11:25:58 +0000
commitc7c4e417ac9c0e113dbf679baca04019dcb85723 (patch)
treea37dbcd436d89e815aed45c5139b25194f72ad8d /sys-devel/dwz
parentsys-libs/error-standalone: new package, add 1.0 (diff)
downloadgentoo-c7c4e417ac9c0e113dbf679baca04019dcb85723.tar.gz
gentoo-c7c4e417ac9c0e113dbf679baca04019dcb85723.tar.bz2
gentoo-c7c4e417ac9c0e113dbf679baca04019dcb85723.zip
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@hacktivis.me> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-devel/dwz')
-rw-r--r--sys-devel/dwz/dwz-0.15-r3.ebuild72
-rw-r--r--sys-devel/dwz/files/dwz-0.15-readelf.patch43
2 files changed, 115 insertions, 0 deletions
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" <contact@hacktivis.me>
+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
+