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: dev-util/strace/, dev-util/strace/files/
Date: Mon, 28 Aug 2023 20:48:52 +0000 (UTC)	[thread overview]
Message-ID: <1693255723.00ddaae3501f0afd1880ea10d29b17143fb2b858.sam@gentoo> (raw)

commit:     00ddaae3501f0afd1880ea10d29b17143fb2b858
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 28 20:46:51 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug 28 20:48:43 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=00ddaae3

dev-util/strace: fix build w/ linux-headers-6.5

Closes: https://bugs.gentoo.org/913170
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/strace-6.4-linux-headers-6.5.patch       | 160 +++++++++++++++++++++
 dev-util/strace/strace-6.4-r1.ebuild               | 110 ++++++++++++++
 2 files changed, 270 insertions(+)

diff --git a/dev-util/strace/files/strace-6.4-linux-headers-6.5.patch b/dev-util/strace/files/strace-6.4-linux-headers-6.5.patch
new file mode 100644
index 000000000000..2814dee76258
--- /dev/null
+++ b/dev-util/strace/files/strace-6.4-linux-headers-6.5.patch
@@ -0,0 +1,160 @@
+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);
+ 		}

diff --git a/dev-util/strace/strace-6.4-r1.ebuild b/dev-util/strace/strace-6.4-r1.ebuild
new file mode 100644
index 000000000000..aaf9820a9637
--- /dev/null
+++ b/dev-util/strace/strace-6.4-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools edo flag-o-matic toolchain-funcs
+
+DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
+HOMEPAGE="https://strace.io/"
+
+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
+
+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"
+	"${FILESDIR}/${P}-linux-headers-6.5.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
+}


             reply	other threads:[~2023-08-28 20:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-28 20:48 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-04-17 17:06 [gentoo-commits] repo/gentoo:master commit in: dev-util/strace/, dev-util/strace/files/ Sam James
2021-02-18  9:14 Lars Wendler
2020-05-02 20:31 Mike Gilbert
2020-02-06 21:11 Lars Wendler

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=1693255723.00ddaae3501f0afd1880ea10d29b17143fb2b858.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