dev-debug/strace: Sync with Gentoo

It's from Gentoo commit 805fb1be3b62606fe4dfd0fe2f63e07fbeab9973.
This commit is contained in:
Flatcar Buildbot 2024-02-19 07:11:54 +00:00 committed by Krzesimir Nowak
parent fedca8663c
commit b7ba1abf54
7 changed files with 4 additions and 563 deletions

View File

@ -1,4 +1,2 @@
DIST strace-6.2.tar.xz 2364280 BLAKE2B 8e51cb3e426e9b99d598b4fcece21ba7873e81468cddae04c2f0b1a48dc40643c626acadd226389c33dbef5350b502817d3459d445fc17cce149f7e501c15ae2 SHA512 56708faa3f73c0673c98a5b8b8fe35289ecf2870f4f775bcb7a6be59451ef84685564c0129aca15b576d851f8efa1ff760e27658b914d1f31adf4de3b1ad721f
DIST strace-6.3.tar.xz 2382284 BLAKE2B 7373ebddd6f23713b752ed91598e536d61e08865907c7825dd3492574c7feb0ad6d56bea0e144e1082ac1882d68bb5f160f25e70bfc6e2fd47571ef2c40403fb SHA512 2b0a57e3ee8a23eb3882123149cd732c568322614bf8fde69fabcea64d0d4e3c46c71d63183e0e8d9f8744a7b1cebc823cc67023660c37547f5b854fcc1ca9df
DIST strace-6.4.tar.xz 2391828 BLAKE2B a9d359679bc5cc61061eb9f19a6156637f12509cb1045462b1547cba8a1218a9b2a4d3b87cf4a33856500515cc0bd457c1374b0ed349293821d80e3cc0de0452 SHA512 29f47195b2766dc0d2907aba2d561e87ec87939251d07fd82d22ffdd3c864944ab0c47eabd7b13272345dfc5dfae7ca435c94fd5ccc297dd46e0747c6d463e01
DIST strace-6.6.tar.xz 2420364 BLAKE2B f1465fec58ac20ccce6a88441a34b1402e5c51f0bb4b7963f69b5ab5019a8c8722e3406c6f93c10c1eea11d17de7f9874895d6f4df24cf9ec42a18f36267687b SHA512 77ea45c72e513f6c07026cd9b2cc1a84696a5a35cdd3b06dd4a360fb9f9196958e3f6133b4a9c91e091c24066ba29e0330b6459d18a9c390caae2dba97ab399b
DIST strace-6.7.tar.xz 2434880 BLAKE2B 249c149a9140fc79be1365e4e8697b46f6558334eefac11b51c96d2d2e67bb82cb2eac3c38c2fa31f40fc5e0ad3c52967e15a034c01c12ed041d51f006a194ae SHA512 da28fd9fb987044782e6fd6f5e90e2cea2ab8e536cbd3893ef4c9b11c9b3185f073ca3d8ca0eade49e9a2af8efbda8c2b66b8988be7ebc463dc45e8f48ca1256

View File

@ -1,178 +0,0 @@
--- strace-5.11/configure.ac
+++ strace-5.11/configure.ac
@@ -47,6 +47,15 @@
AC_DEFINE([MANPAGE_DATE], "[manpage_date]", [Date])
AC_SUBST([MANPAGE_DATE], [manpage_date])
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static],
+ [link strace statically])],
+ [], [enable_static=no])
+if test "$enable_static" = "yes"; then
+ # Add -pthread since strace wants -lrt for timer_create, and -lrt uses -lpthread.
+ LDFLAGS="$LDFLAGS -pthread -static"
+fi
+
AC_C_BIGENDIAN
dnl arch-specific default for --enable-gcc-Werror
--- strace-5.11/m4/st_libdw.m4
+++ strace-5.11/m4/st_libdw.m4
@@ -8,7 +8,6 @@
AC_DEFUN([st_ARG_LIBDW], [dnl
: ${libdw_CPPFLAGS=}
-: ${libdw_CFLAGS=}
: ${libdw_LDFLAGS=}
: ${libdw_LIBS=}
@@ -34,48 +33,14 @@
have_libdw=
AS_IF([test "x$with_libdw" != xno && test "x$use_unwinder" = x],
- [saved_CPPFLAGS="$CPPFLAGS"
- saved_CFLAGS="$CFLAGS"
- CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS"
- CFLAGS="$CFLAGS $libdw_CFLAGS"
-
- AC_CHECK_HEADERS([elfutils/libdwfl.h],
- [AC_CHECK_LIB([dw], [dwfl_linux_proc_attach],
- [libdw_LIBS="-ldw $libdw_LIBS"
- AC_CACHE_CHECK([for elfutils version],
- [st_cv_ELFUTILS_VERSION],
- [[st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION |
- $CPP $CPPFLAGS -P -imacros elfutils/version.h - |
- grep '^[0-9]')"
- test -n "$st_cv_ELFUTILS_VERSION" ||
- st_cv_ELFUTILS_VERSION=0
- ]]
- )
- AS_IF([test "$st_cv_ELFUTILS_VERSION" -ge 164],
- [have_libdw=yes],
- [AS_IF([test "x$with_libdw" = xyes],
- [AC_MSG_ERROR([elfutils version >= 164 is required for stack tracing support])],
- [AC_MSG_WARN([elfutils version >= 164 is required for stack tracing support])]
- )
- ]
- )
- ],
- [AS_IF([test "x$with_libdw" = xyes],
- [AC_MSG_FAILURE([failed to find dwfl_linux_proc_attach in libdw])],
- )
- ],
- [$libdw_LDFLAGS $libdw_LIBS]
- )
- ],
- [AS_IF([test "x$with_libdw" = xyes],
- [AC_MSG_FAILURE([failed to find elfutils/libdwfl.h])]
- )
- ]
- )
-
- CFLAGS="$saved_CFLAGS"
- CPPFLAGS="$saved_CPPFLAGS"
- ]
+ [if test "$enable_static" = "yes"; then
+ PKG_CHECK_MODULES_STATIC([LIBDW], [libdw >= 0.164])
+ else
+ PKG_CHECK_MODULES([LIBDW], [libdw >= 0.164])
+ fi
+ have_libdw=yes
+ libdw_CPPFLAGS="$LIBDW_CFLAGS"
+ libdw_LIBS="$LIBDW_LIBS"]
)
AS_IF([test "x$have_libdw" = xyes],
@@ -84,7 +49,6 @@
[Whether to use libdw for stack tracing]
)
AC_SUBST(libdw_CPPFLAGS)
- AC_SUBST(libdw_CFLAGS)
AC_SUBST(libdw_LDFLAGS)
AC_SUBST(libdw_LIBS)
]
--- strace-5.11/m4/st_libunwind.m4
+++ strace-5.11/m4/st_libunwind.m4
@@ -28,64 +28,14 @@
AC_DEFUN([st_LIBUNWIND], [dnl
AS_IF([test "x$with_libunwind" != xno && test "x$use_unwinder" = x],
- [saved_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
-
- AC_CHECK_HEADERS([libunwind-ptrace.h],
- [saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
-
- AC_CHECK_LIB([unwind], [backtrace],
- [libunwind_LIBS="-lunwind $libunwind_LIBS"
-
- AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
- saved_LIBS="$LIBS"
- LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
-
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
- [[return !unw_create_addr_space(0, 0)]])
- ],
- [AC_MSG_RESULT([yes])
- libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
-
- AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
- [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
- use_unwinder=libunwind
- ],
- [if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
- fi
- ],
- [$libunwind_LIBS]
- )
- ],
- [AC_MSG_RESULT([no])
- if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
- fi
- ]
- )
-
- LIBS="$saved_LIBS"
- ],
- [if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find libunwind])
- fi
- ],
- [$libunwind_LIBS]
- )
-
- LDFLAGS="$saved_LDFLAGS"
- ],
- [if test "x$with_libunwind" != xcheck; then
- AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
- fi
- ]
- )
-
- CPPFLAGS="$saved_CPPFLAGS"
- ]
+ [if test "$enable_static" = "yes"; then
+ PKG_CHECK_MODULES_STATIC([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace])
+ else
+ PKG_CHECK_MODULES([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace])
+ fi
+ use_unwinder="libunwind"
+ libunwind_CPPFLAGS="$LIBUNWIND_CFLAGS"
+ libunwind_LIBS="$LIBUNWIND_LIBS"]
)
if test "x$use_unwinder" = xlibunwind; then
--- strace-5.11/src/Makefile.am
+++ strace-5.11/src/Makefile.am
@@ -393,7 +393,6 @@
if USE_LIBDW
libstrace_a_SOURCES += unwind-libdw.c
strace_CPPFLAGS += $(libdw_CPPFLAGS)
-strace_CFLAGS += $(libdw_CFLAGS)
strace_LDFLAGS += $(libdw_LDFLAGS)
strace_LDADD += $(libdw_LIBS)
endif

View File

@ -1,160 +0,0 @@
https://bugs.gentoo.org/913170
https://github.com/strace/strace/issues/262
https://github.com/strace/strace/commit/a8cec18845220cc82e45014ffdcab449ad664584
https://github.com/strace/strace/commit/e0da3633669fcb829dd8d902d15443a755bd10fb
From a8cec18845220cc82e45014ffdcab449ad664584 Mon Sep 17 00:00:00 2001
From: "Dmitry V. Levin" <ldv@strace.io>
Date: Tue, 4 Jul 2023 08:00:00 +0000
Subject: [PATCH] ptp: add max_phase_adj field and update rsv field of struct
ptp_clock_caps
* bundled/linux/include/uapi/linux/ptp_clock.h (struct ptp_clock_caps):
Add max_phase_adj field and update rsv field following the change
introduced by Linux kernel commit v6.5-rc1~163^2~65^2~4.
* src/ptp.c (ptp_ioctl): Likewise.
* tests/ioctl_ptp.c (test_no_device): Update expected output.
--- a/bundled/linux/include/uapi/linux/ptp_clock.h
+++ b/bundled/linux/include/uapi/linux/ptp_clock.h
@@ -95,7 +95,8 @@ struct ptp_clock_caps {
int cross_timestamping;
/* Whether the clock supports adjust phase */
int adjust_phase;
- int rsv[12]; /* Reserved for future use. */
+ int max_phase_adj; /* Maximum phase adjustment in nanoseconds. */
+ int rsv[11]; /* Reserved for future use. */
};
struct ptp_extts_request {
--- a/src/ptp.c
+++ b/src/ptp.c
@@ -78,7 +78,7 @@ ptp_ioctl(struct tcb *const tcp, const unsigned int code,
case PTP_CLOCK_GETCAPS:
case PTP_CLOCK_GETCAPS2: {
struct ptp_clock_caps caps;
- CHECK_TYPE_SIZE(caps.rsv, sizeof(unsigned int) * 12);
+ CHECK_TYPE_SIZE(caps.rsv, sizeof(unsigned int) * 11);
CHECK_IOCTL_SIZE(PTP_CLOCK_GETCAPS, 80);
CHECK_IOCTL_SIZE(PTP_CLOCK_GETCAPS2, 80);
@@ -106,6 +106,8 @@ ptp_ioctl(struct tcb *const tcp, const unsigned int code,
PRINT_FIELD_D(caps, cross_timestamping);
tprint_struct_next();
PRINT_FIELD_D(caps, adjust_phase);
+ tprint_struct_next();
+ PRINT_FIELD_D(caps, max_phase_adj);
PRINT_RSV(caps, rsv);
tprint_struct_end();
break;
--- a/tests/ioctl_ptp.c
+++ b/tests/ioctl_ptp.c
@@ -151,7 +151,7 @@ test_no_device(void)
if (rc >= 0) {
printf("{max_adj=0, n_alarm=0, n_ext_ts=0, n_per_out=0"
", pps=0, n_pins=0, cross_timestamping=0"
- ", adjust_phase=0}");
+ ", adjust_phase=0, max_phase_adj=0}");
} else {
printf("%p", caps);
}
@@ -166,7 +166,8 @@ test_no_device(void)
", pps=-2136948508, n_pins=-2136948507"
", cross_timestamping=-2136948506"
", adjust_phase=-2136948505"
- ", rsv=[0x80a0c0e8, 0x80a0c0e9, 0x80a0c0ea"
+ ", max_phase_adj=-2136948504"
+ ", rsv=[0x80a0c0e9, 0x80a0c0ea"
", 0x80a0c0eb, 0x80a0c0ec, 0x80a0c0ed"
", 0x80a0c0ee, 0x80a0c0ef, 0x80a0c0f0"
", 0x80a0c0f1, 0x80a0c0f2, 0x80a0c0f3]}");
From e0da3633669fcb829dd8d902d15443a755bd10fb Mon Sep 17 00:00:00 2001
From: "Dmitry V. Levin" <ldv@strace.io>
Date: Mon, 3 Jul 2023 08:00:00 +0000
Subject: [PATCH] io_uring: rename resv2 fields of io_[cs]qring_offsets to
user_addr
* bundled/linux/include/uapi/linux/io_uring.h (struct io_sqring_offsets,
struct io_cqring_offsets): Rename resv2 to user_addr following
the change introduced by Linux kernel commit v6.5-rc1~235^2~32.
* src/io_uring.c (print_io_sqring_offsets, print_io_cqring_offsets):
Likewise.
* tests/io_uring_setup.c (main): Update expected output.
--- a/bundled/linux/include/uapi/linux/io_uring.h
+++ b/bundled/linux/include/uapi/linux/io_uring.h
@@ -406,7 +406,7 @@ struct io_sqring_offsets {
__u32 dropped;
__u32 array;
__u32 resv1;
- __u64 resv2;
+ __u64 user_addr;
};
/*
@@ -425,7 +425,7 @@ struct io_cqring_offsets {
__u32 cqes;
__u32 flags;
__u32 resv1;
- __u64 resv2;
+ __u64 user_addr;
};
/*
--- a/src/io_uring.c
+++ b/src/io_uring.c
@@ -45,10 +45,8 @@ print_io_sqring_offsets(const struct io_sqring_offsets *const p)
tprint_struct_next();
PRINT_FIELD_X(*p, resv1);
}
- if (p->resv2) {
- tprint_struct_next();
- PRINT_FIELD_X(*p, resv2);
- }
+ tprint_struct_next();
+ PRINT_FIELD_X(*p, user_addr);
tprint_struct_end();
}
@@ -73,10 +71,8 @@ print_io_cqring_offsets(const struct io_cqring_offsets *const p)
tprint_struct_next();
PRINT_FIELD_X(*p, resv1);
}
- if (p->resv2) {
- tprint_struct_next();
- PRINT_FIELD_X(*p, resv2);
- }
+ tprint_struct_next();
+ PRINT_FIELD_X(*p, user_addr);
tprint_struct_end();
}
--- a/tests/io_uring_setup.c
+++ b/tests/io_uring_setup.c
@@ -113,10 +113,9 @@ main(void)
params->sq_off.array);
if (params->sq_off.resv1)
printf(", resv1=%#x", params->sq_off.resv1);
- if (params->sq_off.resv2)
- printf(", resv1=%#llx",
- (unsigned long long)
- params->sq_off.resv2);
+ printf(", user_addr=%#llx",
+ (unsigned long long)
+ params->sq_off.user_addr);
printf("}, cq_off={head=%u, tail=%u, ring_mask=%u"
", ring_entries=%u, overflow=%u, cqes=%u"
@@ -130,10 +129,9 @@ main(void)
params->cq_off.flags);
if (params->cq_off.resv1)
printf(", resv1=%#x", params->cq_off.resv1);
- if (params->cq_off.resv2)
- printf(", resv2=%#llx",
- (unsigned long long)
- params->cq_off.resv2);
+ printf(", user_addr=%#llx",
+ (unsigned long long)
+ params->cq_off.user_addr);
printf("}}) = %ld<anon_inode:[io_uring]>\n", rc);
}

View File

@ -1,109 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools edo flag-o-matic toolchain-funcs
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/strace/strace.git"
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="A useful diagnostic, instructional, and debugging tool"
HOMEPAGE="https://strace.io/"
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
SLOT="0"
IUSE="aio perl selinux static test unwind elfutils"
RESTRICT="!test? ( test )"
REQUIRED_USE="?? ( unwind elfutils )"
BDEPEND="virtual/pkgconfig"
LIB_DEPEND="
unwind? ( sys-libs/libunwind[static-libs(+)] )
elfutils? ( dev-libs/elfutils[static-libs(+)] )
selinux? ( sys-libs/libselinux[static-libs(+)] )
"
# strace only uses the header from libaio to decode structs
DEPEND="
static? ( ${LIB_DEPEND} )
aio? ( >=dev-libs/libaio-0.3.106 )
sys-kernel/linux-headers
"
RDEPEND="
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
perl? ( dev-lang/perl )
"
PATCHES=(
"${FILESDIR}/${PN}-5.11-static.patch"
)
src_prepare() {
default
if [[ ! -e configure ]] ; then
# git generation
sed /autoreconf/d -i bootstrap || die
edo ./bootstrap
[[ ! -e CREDITS ]] && cp CREDITS{.in,}
fi
eautoreconf
# Stub out the -k test since it's known to be flaky. bug #545812
sed -i '1iexit 77' tests*/strace-k.test || die
}
src_configure() {
# Set up the default build settings, and then use the names strace expects.
tc-export_build_env BUILD_{CC,CPP}
local v bv
for v in CC CPP {C,CPP,LD}FLAGS ; do
bv="BUILD_${v}"
export "${v}_FOR_BUILD=${!bv}"
done
filter-lfs-flags # configure handles this sanely
export ac_cv_header_libaio_h=$(usex aio)
use elibc_musl && export ac_cv_header_stdc=no
local myeconfargs=(
--disable-gcc-Werror
# Don't require mpers support on non-multilib systems. #649560
--enable-mpers=check
$(use_enable static)
$(use_with unwind libunwind)
$(use_with elfutils libdw)
$(use_with selinux libselinux)
)
econf "${myeconfargs[@]}"
}
src_test() {
if has usersandbox ${FEATURES} ; then
# bug #643044
ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..."
return 0
fi
default
}
src_install() {
default
if use perl ; then
exeinto /usr/bin
doexe src/strace-graph
fi
dodoc CREDITS
}

View File

@ -1,109 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools edo flag-o-matic toolchain-funcs
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/strace/strace.git"
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="A useful diagnostic, instructional, and debugging tool"
HOMEPAGE="https://strace.io/"
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
SLOT="0"
IUSE="aio perl selinux static test unwind elfutils"
RESTRICT="!test? ( test )"
REQUIRED_USE="?? ( unwind elfutils )"
BDEPEND="virtual/pkgconfig"
LIB_DEPEND="
unwind? ( sys-libs/libunwind[static-libs(+)] )
elfutils? ( dev-libs/elfutils[static-libs(+)] )
selinux? ( sys-libs/libselinux[static-libs(+)] )
"
# strace only uses the header from libaio to decode structs
DEPEND="
static? ( ${LIB_DEPEND} )
aio? ( >=dev-libs/libaio-0.3.106 )
sys-kernel/linux-headers
"
RDEPEND="
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
perl? ( dev-lang/perl )
"
PATCHES=(
"${FILESDIR}/${PN}-5.11-static.patch"
)
src_prepare() {
default
if [[ ! -e configure ]] ; then
# git generation
sed /autoreconf/d -i bootstrap || die
edo ./bootstrap
[[ ! -e CREDITS ]] && cp CREDITS{.in,}
fi
eautoreconf
# Stub out the -k test since it's known to be flaky. bug #545812
sed -i '1iexit 77' tests*/strace-k.test || die
}
src_configure() {
# Set up the default build settings, and then use the names strace expects.
tc-export_build_env BUILD_{CC,CPP}
local v bv
for v in CC CPP {C,CPP,LD}FLAGS ; do
bv="BUILD_${v}"
export "${v}_FOR_BUILD=${!bv}"
done
filter-lfs-flags # configure handles this sanely
export ac_cv_header_libaio_h=$(usex aio)
use elibc_musl && export ac_cv_header_stdc=no
local myeconfargs=(
--disable-gcc-Werror
# Don't require mpers support on non-multilib systems. #649560
--enable-mpers=check
$(use_enable static)
$(use_with unwind libunwind)
$(use_with elfutils libdw)
$(use_with selinux libselinux)
)
econf "${myeconfargs[@]}"
}
src_test() {
if has usersandbox ${FEATURES} ; then
# bug #643044
ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..."
return 0
fi
default
}
src_install() {
default
if use perl ; then
exeinto /usr/bin
doexe src/strace-graph
fi
dodoc CREDITS
}

View File

@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
@ -40,8 +40,7 @@ RDEPEND="
"
PATCHES=(
"${FILESDIR}/${PN}-5.11-static.patch"
"${FILESDIR}/${P}-linux-headers-6.5.patch"
"${FILESDIR}/${PN}-6.5-static.patch"
)
src_prepare() {

View File

@ -40,7 +40,7 @@ RDEPEND="
"
PATCHES=(
"${FILESDIR}/${PN}-5.11-static.patch"
"${FILESDIR}/${PN}-6.5-static.patch"
)
src_prepare() {