diff options
Diffstat (limited to 'dev-debug/ltrace')
-rw-r--r-- | dev-debug/ltrace/Manifest | 1 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch | 11 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch | 12 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch | 6 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch | 39 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch | 11 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch | 15 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch | 77 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch | 10 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch | 11 | ||||
-rw-r--r-- | dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch | 11 | ||||
-rw-r--r-- | dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild | 63 | ||||
-rw-r--r-- | dev-debug/ltrace/metadata.xml | 15 |
13 files changed, 282 insertions, 0 deletions
diff --git a/dev-debug/ltrace/Manifest b/dev-debug/ltrace/Manifest new file mode 100644 index 000000000000..09f36f2fb6a0 --- /dev/null +++ b/dev-debug/ltrace/Manifest @@ -0,0 +1 @@ +DIST ltrace-0.7.91_pre20221216.tar.bz2 288077 BLAKE2B cadc2ac551a96dfa95aee0d0eb251d8f41a8631350ba3be3f67d0cb10774a3db6abbd42481d24febdfcb0d565107e66b4de0056a85a7954bb050adb8e8fa5b4a SHA512 993c247797551b4fbb202c04f9af08063c8641946825b17d1f32c4647c606ece803a6b049c4afa3046c798add161ab58f01d90106f3b6029a223af03bca27a99 diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch b/dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch new file mode 100644 index 000000000000..06db36c46818 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch @@ -0,0 +1,11 @@ +Testsuite uses CXX to trace mangled symbols. +--- a/configure.ac ++++ b/configure.ac +@@ -53,6 +53,7 @@ AC_SUBST(HOST_CPU) + + # Checks for programs. + AC_PROG_CC ++AC_PROG_CXX + LT_INIT + # libtool-2: LT_INIT() + AM_INIT_AUTOMAKE([foreign no-exeext dist-bzip2]) diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch b/dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch new file mode 100644 index 000000000000..7ff573272963 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch @@ -0,0 +1,12 @@ +Fix build failure on alpha: + plt.c:32:12: error: dereferencing pointer to incomplete type ‘struct library_symbol’ + return sym->enter_addr; + ^ +--- a/sysdeps/linux-gnu/alpha/plt.c 2012-11-10 13:43:55.000000000 +0100 ++++ b/sysdeps/linux-gnu/alpha/plt.c 2016-06-27 23:21:28.000000000 +0200 +@@ -23,0 +24 @@ ++#include "library.h" +--- a/sysdeps/linux-gnu/alpha/trace.c 2016-06-27 23:30:08.000000000 +0200 ++++ b/sysdeps/linux-gnu/alpha/trace.c 2016-06-27 23:25:20.000000000 +0200 +@@ -29,0 +30 @@ ++#include "backend.h" diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch b/dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch new file mode 100644 index 000000000000..c466ce17e02d --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch @@ -0,0 +1,6 @@ +--- a/sysdeps/linux-gnu/ia64/breakpoint.c ++++ b/sysdeps/linux-gnu/ia64/breakpoint.c +@@ -26,2 +26,3 @@ + #include <sys/ptrace.h> ++#include <sys/types.h> /* pid_t */ + #include <string.h> diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch b/dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch new file mode 100644 index 000000000000..4fb1c4eba734 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch @@ -0,0 +1,39 @@ +Fix build fauilure on ia64. + +Build fails due to bitrot: some definitions +moved off from <sys/pthrace.h> to <asm/ptrace.h> +(similar to other arches). + +fetch.c:39:26: error: field 'regs' has incomplete type + struct pt_all_user_regs regs; + ^~~~ +fetch.c:209:25: warning: 'struct ia64_fpreg' declared inside parameter list will not be visible outside of this definition or declaration + fpreg_to_double (struct ia64_fpreg *fp) { + ^~~~~~~~~~ +fetch.c: In function 'fpreg_to_double': +fetch.c:211:45: error: dereferencing pointer to incomplete type 'struct ia64_fpreg' + asm ("ldf.fill %0=%1" : "=f"(result) : "m"(*fp)); + ^~~ + +diff --git a/sysdeps/linux-gnu/ia64/fetch.c b/sysdeps/linux-gnu/ia64/fetch.c +index 54dc5b8..b3b9a9a 100644 +--- a/sysdeps/linux-gnu/ia64/fetch.c ++++ b/sysdeps/linux-gnu/ia64/fetch.c +@@ -134,9 +134,4 @@ allocate_reg(struct fetch_context *ctx, struct Process *proc, + return 0; + +- /* This would normally be brought over from asm/ptrace.h, but +- * when we do, we get namespace conflicts between asm/fpu.h +- * and libunwind. */ +- enum { PT_AUR_BSP = 17 }; +- + union cfm_t cfm = { .value = ctx->regs.cfm }; + unsigned long *bsp = (unsigned long *)ctx->regs.ar[PT_AUR_BSP]; +diff --git a/sysdeps/linux-gnu/ia64/ptrace.h b/sysdeps/linux-gnu/ia64/ptrace.h +index ef63b4f..8b131f1 100644 +--- a/sysdeps/linux-gnu/ia64/ptrace.h ++++ b/sysdeps/linux-gnu/ia64/ptrace.h +@@ -20,2 +20,3 @@ + + #include <sys/ptrace.h> ++#include <asm/ptrace.h> diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch b/dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch new file mode 100644 index 000000000000..7729449d0604 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch @@ -0,0 +1,11 @@ +https://bugs.gentoo.org/713428 +--- a/configure.ac ++++ b/configure.ac +@@ -33,6 +33,7 @@ AC_CANONICAL_HOST + + case "${host_os}" in + linux-gnu*) HOST_OS="linux-gnu" ;; ++ linux-musl*) HOST_OS="linux-gnu" ;; + linux-uclibc*) HOST_OS="linux-gnu" ;; + *) AC_MSG_ERROR([unkown host-os ${host_os}]) ;; + esac diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch b/dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch new file mode 100644 index 000000000000..5e46135add3e --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch @@ -0,0 +1,15 @@ +--- a/testsuite/ltrace.minor/print-instruction-pointer.exp ++++ b/testsuite/ltrace.minor/print-instruction-pointer.exp +@@ -32,6 +32,12 @@ catch "exec sh -c {objdump -d $objdir/$subdir/$binfile | sed -n '/^\[0-9a-fA-F\] + catch "exec sh -c {echo \"$output\" | sed -n '2p'| awk -F' ' '{print \$1}'|awk -F: '{print \$1}'}" addr1 + catch "exec sh -c {echo \"$output\" | sed -n '5p'| awk -F' ' '{print \$1}'|awk -F: '{print \$1}'}" addr2 + ++# Pick at most last 3 digits: ++# PIE binaries randomize address on page level. ++# Let's assume page size is no bigger than 4096 (3 hex digits) ++set addr1 [string range $addr1 3 end] ++set addr2 [string range $addr2 3 end] ++ + verbose "addr1 = $addr1" + verbose "addr2 = $addr2" + # Verify the output by checking numbers of print in main.ltrace. diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch b/dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch new file mode 100644 index 000000000000..1f3bb5ec6a21 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch @@ -0,0 +1,77 @@ +Patches imported from the Debian patch set 6.4 for ltrace-0.7.3: + - 01-avoid-libstdc++ (adapted to account for the absence of configure), + - 03-alpha-debug.h + - 05-sparc-ftbfs + - 06-unexpected-breakpoint +The other two have since been merged upstream. + +--- a/configure.ac ++++ b/configure.ac +@@ -126,6 +126,15 @@ + libstdcxx_LIBS=""]) + AC_SUBST(libstdcxx_LIBS) + ++if test "x$liberty_LIBS" != "x" ++then ++ libsupcxx_LIBS="" ++ libstdcxx_LIBS="" ++elif test "x$libsupcxx_LIBS" != "x" ++then ++ libstdcxx_LIBS="" ++fi ++ + + dnl Check security_get_boolean_active availability. + AC_CHECK_HEADERS(selinux/selinux.h) +--- a/handle_event.c ++++ b/handle_event.c +@@ -740,9 +740,12 @@ + + if ((sbp = address2bpstruct(leader, brk_addr)) != NULL) + breakpoint_on_hit(sbp, event->proc); +- else if (event->proc->state != STATE_IGNORED) ++ else if (event->proc->state != STATE_IGNORED) { + output_line(event->proc, + "unexpected breakpoint at %p", brk_addr); ++ continue_process(event->proc->pid); ++ return; ++ } + + /* breakpoint_on_hit may delete its own breakpoint, so we have + * to look it up again. */ +--- a/sysdeps/linux-gnu/alpha/trace.c ++++ b/sysdeps/linux-gnu/alpha/trace.c +@@ -29,7 +29,6 @@ + + #include "proc.h" + #include "common.h" +-#include "debug.h" + + #if (!defined(PTRACE_PEEKUSER) && defined(PTRACE_PEEKUSR)) + # define PTRACE_PEEKUSER PTRACE_PEEKUSR +--- a/sysdeps/linux-gnu/sparc/plt.c ++++ b/sysdeps/linux-gnu/sparc/plt.c +@@ -19,8 +19,9 @@ + */ + + #include <gelf.h> ++ + #include "proc.h" +-#include "common.h" ++#include "library.h" + + GElf_Addr + arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) { +--- a/sysdeps/linux-gnu/sparc/trace.c ++++ b/sysdeps/linux-gnu/sparc/trace.c +@@ -26,8 +26,10 @@ + #include <sys/wait.h> + #include <signal.h> + #include <string.h> ++ + #include "ptrace.h" + #include "proc.h" ++#include "backend.h" + #include "common.h" + + void diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch b/dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch new file mode 100644 index 000000000000..06075006b2e1 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch @@ -0,0 +1,10 @@ +--- a/proc.h ++++ b/proc.h +@@ -27,6 +27,7 @@ + + #include <sys/time.h> + #include <stdint.h> ++#include <unistd.h> /* pid_t */ + + #if defined(HAVE_LIBDW) + # include <elfutils/libdwfl.h> diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch b/dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch new file mode 100644 index 000000000000..b78d4580b050 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch @@ -0,0 +1,11 @@ +--- a/testsuite/ltrace.main/system_calls.exp ++++ b/testsuite/ltrace.main/system_calls.exp +@@ -133,7 +133,7 @@ + { {^write$} == 1 } + { {^unlink(at)?$} >= 2 } + { {^open(at)?$} == 1 } +- { {^(new|f)?stat(64)?$} >= 1 } ++ { {^(new)?stat|fstatat64|newfstatat$} >= 1 } + { {^close$} == 1 } + { {^getcwd$} == 1 } + { {^chdir$} == 1 } diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch b/dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch new file mode 100644 index 000000000000..c7c997d5545e --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch @@ -0,0 +1,11 @@ +--- a/testsuite/Makefile.am ++++ b/testsuite/Makefile.am +@@ -42,6 +42,8 @@ + echo set elfutils_LD_LIBRARY_PATH '"$(elfutils_LD_LIBRARY_PATH)"' >> $@ + echo set libunwind_LD_LIBRARY_PATH '"$(libunwind_LD_LIBRARY_PATH)"' >> $@ + echo set PREFIX '"$(prefix)"' >> $@ ++ echo set CC_FOR_TARGET '"$(CC)"' >> $@ ++ echo set CXX_FOR_TARGET '"$(CXX)"' >> $@ + + CLEANFILES = *.o *.so *.log *.sum *.ltrace site.bak setval.tmp site.exp env.exp + diff --git a/dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild b/dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild new file mode 100644 index 000000000000..7c9e7b3f9740 --- /dev/null +++ b/dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +EGIT_COMMIT="5cffc0d2134f697fbac8627ec5b5f0085cd47c8a" + +DESCRIPTION="trace library calls made at runtime" +HOMEPAGE="https://gitlab.com/cespedes/ltrace" +SRC_URI="https://gitlab.com/cespedes/${PN}/-/archive/${EGIT_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ppc ~ppc64 ~sparc x86" +IUSE="debug elfutils selinux test unwind" + +REQUIRED_USE="?? ( elfutils unwind )" + +RDEPEND="virtual/libelf:= + elfutils? ( dev-libs/elfutils ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= )" +DEPEND="${RDEPEND} + sys-libs/binutils-libs + test? ( dev-util/dejagnu )" + +# Effectively abandoned upstream. Extremely sensitive to the sandbox, versions +# of core libraries, kernel security settings... +RESTRICT="test" + +S=${WORKDIR}/${PN}-${EGIT_COMMIT} + +PATCHES=( + "${FILESDIR}"/${PN}-0.7.91-debian-patchset-6.4.patch + "${FILESDIR}"/${PN}-0.7.3-CXX-for-tests.patch + "${FILESDIR}"/${PN}-0.7.3-alpha-protos.patch + "${FILESDIR}"/${PN}-0.7.3-ia64.patch + "${FILESDIR}"/${PN}-0.7.3-ia64-pid_t.patch + "${FILESDIR}"/${PN}-0.7.3-musl-host.patch + "${FILESDIR}"/${PN}-0.7.3-print-test-pie.patch + "${FILESDIR}"/${PN}-0.7.91-pid_t.patch + "${FILESDIR}"/${PN}-0.7.91-test-glibc-2.33.patch + "${FILESDIR}"/${PN}-0.7.91-tuple-tests.patch +) + +src_prepare() { + default + + sed -i '/^dist_doc_DATA/d' Makefile.am || die + eautoreconf +} + +src_configure() { + ac_cv_header_selinux_selinux_h=$(usex selinux) \ + ac_cv_lib_selinux_security_get_boolean_active=$(usex selinux) \ + econf \ + --disable-werror \ + $(use_enable debug) \ + $(use_with elfutils) \ + $(use_with unwind libunwind) +} diff --git a/dev-debug/ltrace/metadata.xml b/dev-debug/ltrace/metadata.xml new file mode 100644 index 000000000000..e7ef67f97d07 --- /dev/null +++ b/dev-debug/ltrace/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>marecki@gentoo.org</email> + <name>Marek Szuba</name> + </maintainer> + <upstream> + <remote-id type="gitlab">cespedes/ltrace</remote-id> + </upstream> + <use> + <flag name="elfutils">Use libdwfl from <pkg>dev-libs/elfutils</pkg> for frame unwinding support</flag> + <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> for frame unwinding support</flag> + </use> +</pkgmetadata> |