swm_version: 1 base: distro_version: dev pins: {} mutations: - type: source_patch tarball: https://github.com/strace/strace/releases/download/v6.19/strace-6.19.tar.xz sha256: e076c851eec0972486ec842164fdc54547f9d17abd3d1449de8b120f5d299143 patches: - "off_t is always 64-bit with musl\n\n--- a/tests/readahead.c\n+++ b/tests/readahead.c\n@@ -42,7 +42,7 @@ static const int fds[] = {\n \t0x7fffffff,\n };\n \n-static const off64_t offsets[] = {\n+static const off_t offsets[] = {\n \t-0x8000000000000000LL,\n \t-0x5060708090a0b0c0LL,\n \t-1LL,\n--- a/tests/sync_file_range.c\n+++ b/tests/sync_file_range.c\n@@ -20,8 +20,8 @@ int\n main(void)\n {\n \tconst int fd = -1;\n-\tconst off64_t offset = 0xdeadbeefbadc0dedULL;\n-\tconst off64_t nbytes = 0xfacefeedcafef00dULL;\n+\tconst off_t offset = 0xdeadbeefbadc0dedULL;\n+\tconst off_t nbytes = 0xfacefeedcafef00dULL;\n \tconst unsigned int flags = -1;\n \n \tint rc = sync_file_range(fd, offset, nbytes, flags);\n--- a/tests/sync_file_range2.c\n+++ b/tests/sync_file_range2.c\n@@ -20,8 +20,8 @@ int\n main(void)\n {\n \tconst int fd = -1;\n-\tconst off64_t offset = 0xdeadbeefbadc0ded;\n-\tconst off64_t nbytes = 0xfacefeedcafef00d;\n+\tconst off_t offset = 0xdeadbeefbadc0ded;\n+\tconst off_t nbytes = 0xfacefeedcafef00d;\n \tconst unsigned int flags = -1;\n \n \tint rc = sync_file_range(fd, offset, nbytes, flags);\n" - "Fixes for busybox\n\n--- a/tests/status-detached.expected\n+++ b/tests/status-detached.expected\n@@ -1 +1 @@\n-nanosleep\\({tv_sec=2, tv_nsec=0} \n+nanosleep\\(\\{tv_sec=2, tv_nsec=0\\}, \n--- a/tests/strace--tips.test\n+++ b/tests/strace--tips.test\n@@ -13,7 +13,7 @@ tips_fmt_opt=\"\"\n \n grep_ere_escape()\n {\n-\tprintf \"%s\" \"$*\" | sed 's/[].*&^$()|[\\/]/\\\\&/g'\n+\tprintf \"%s\" \"$*\" | sed 's/[].*&^$(){}|[\\\\/]/\\\\&/g'\n }\n \n # Check that simple \"strace --tips=0\" works as expected\n--- a/tests/strace-k.test\n+++ b/tests/strace-k.test\n@@ -26,10 +26,9 @@ check_prog sed\n check_prog tr\n \n path_to_sed=\"$(command -v sed)\"\n-if [ -x \"$path_to_sed\" ] &&\n- path_to_sed=\"$(readlink -ev -- \"$path_to_sed\")\"; then\n+if [ -x \"$path_to_sed\" ]; then\n \t\"$path_to_sed\" -n 's/^[^/]\\+[[:space:]]\\(\\/.*\\)$/\\1/p' /proc/self/maps |\n-\tgrep -F -x -e \"$path_to_sed\" > /dev/null || {\n+\tgrep -F -x -e \"$(readlink -fv -- \"$path_to_sed\")\" > /dev/null || {\n \t\tcat >&2 /proc/self/maps\n \t\tframework_skip_ '/proc/self/maps is invalid'\n \t}\n" - "Fix types on 32-bit\n\n--- a/tests/futimesat.c\n+++ b/tests/futimesat.c\n@@ -100,7 +100,7 @@ main(void)\n \ttv[0].tv_sec = 0xdeadbeefU;\n \ttv[0].tv_usec = 0xfacefeedU;\n \ttv[1].tv_sec = (typeof(tv[1].tv_sec)) 0xcafef00ddeadbeefLL;\n-\ttv[1].tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;\n+\ttv[1].tv_usec = (typeof(tv[1].tv_usec)) 0xbadc0dedfacefeedLL;\n \n \tk_futimesat(kfdcwd, kfname, (uintptr_t) tv);\n \tprintf(\"futimesat(AT_FDCWD, %s, [\", qname);\n--- a/tests/xettimeofday.c\n+++ b/tests/xettimeofday.c\n@@ -58,7 +58,7 @@ main(void)\n \t tz->tz_minuteswest, tz->tz_dsttime, sprintrc(-1));\n \n \ttv->tv_sec = (typeof(tv->tv_sec)) 0xcafef00ddeadbeefLL;\n-\ttv->tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;\n+\ttv->tv_usec = (typeof(tv->tv_usec)) 0xbadc0dedfacefeedLL;\n \tassert(syscall(__NR_settimeofday, tv, tz) == -1);\n \tprintf(\"settimeofday({tv_sec=%lld, tv_usec=%llu}\"\n \t \", {tz_minuteswest=%d, tz_dsttime=%d}) = %s\\n\",\n--- a/tests/xselect.c\n+++ b/tests/xselect.c\n@@ -214,7 +214,7 @@ main(void)\n \t */\n \t*l_rs = (1UL << fds[0]) | (1UL << fds[1]);\n \ttv_in.tv_sec = (typeof(tv_in.tv_sec)) 0xcafef00ddeadbeefLL;\n-\ttv_in.tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;\n+\ttv_in.tv_usec = (typeof(tv_in.tv_usec)) 0xbadc0dedfacefeedLL;\n \tmemcpy(tv, &tv_in, sizeof(tv_in));\n \trc = xselect(nfds, a_rs, a_rs, a_rs, a_tv);\n \tif (rc < 0) {\n--- a/tests/xutimes.c\n+++ b/tests/xutimes.c\n@@ -87,7 +87,7 @@ main(void)\n \ttv[0].tv_sec = 0xdeadbeefU;\n \ttv[0].tv_usec = 0xfacefeedU;\n \ttv[1].tv_sec = (typeof(tv[1].tv_sec)) 0xcafef00ddeadbeefLL;\n-\ttv[1].tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;\n+\ttv[1].tv_usec = (typeof(tv[1].tv_usec)) 0xbadc0dedfacefeedLL;\n \n \tk_utimes(kfname, (uintptr_t) tv);\n \tprintf(\"%s(%s, [\", TEST_SYSCALL_STR, qname);\n" - "--- strace-4.18/tests/nlattr.c.old 2017-07-05 07:08:09.000000000 +0000\n+++ strace-4.18/tests/nlattr.c 2017-08-17 00:25:26.734218699 +0000\n@@ -61,7 +61,7 @@\n \t};\n \tstruct msg *msg;\n \tstruct nlattr *nla;\n-\tunsigned int msg_len;\n+\tuint32_t msg_len;\n \tlong rc;\n \n \t/* fetch fail: len < sizeof(struct nlattr) */\n@@ -259,7 +259,7 @@\n \t};\n \tstruct msg *msg;\n \tstruct nlattr *nla;\n-\tunsigned int msg_len;\n+\tuint32_t msg_len;\n \tlong rc;\n \n \tmsg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);\n\n" - "From 619b1e60da171d573481d2fbfea7645c8a80d1ae Mon Sep 17 00:00:00 2001\nFrom: \"Dmitry V. Levin\" \nDate: Tue, 10 Mar 2026 08:00:00 +0000\nSubject: [PATCH] bundled: update linux/io_uring.h to v7.0-rc3\n\n* bundled/linux/include/uapi/linux/io_uring.h: Update to\nheaders_install'ed Linux kernel v7.0-rc3.\n* src/io_uring.c (print_io_uring_zcrx_ifq_reg): Follow the rename\nof __resv2 field of struct io_uring_zcrx_ifq_reg to rx_buf_len.\n* tests/io_uring_register.c (test_IORING_REGISTER_ZCRX_IFQ): Update\nexpected output.\n---\n bundled/linux/include/uapi/linux/io_uring.h | 35 +++++++++++++++++++--\n src/io_uring.c | 7 ++---\n tests/io_uring_register.c | 8 ++---\n 3 files changed, 39 insertions(+), 11 deletions(-)\n\ndiff --git a/bundled/linux/include/uapi/linux/io_uring.h b/bundled/linux/include/uapi/linux/io_uring.h\nindex b5b23c0d52..1ff16141c8 100644\n--- a/bundled/linux/include/uapi/linux/io_uring.h\n+++ b/bundled/linux/include/uapi/linux/io_uring.h\n@@ -188,7 +188,8 @@ enum io_uring_sqe_flags_bit {\n /*\n * If COOP_TASKRUN is set, get notified if task work is available for\n * running and a kernel transition would be needed to run it. This sets\n- * IORING_SQ_TASKRUN in the sq ring flags. Not valid with COOP_TASKRUN.\n+ * IORING_SQ_TASKRUN in the sq ring flags. Not valid without COOP_TASKRUN\n+ * or DEFER_TASKRUN.\n */\n #define IORING_SETUP_TASKRUN_FLAG\t(1U << 9)\n #define IORING_SETUP_SQE128\t\t(1U << 10) /* SQEs are 128 byte */\n@@ -237,6 +238,18 @@ enum io_uring_sqe_flags_bit {\n */\n #define IORING_SETUP_SQE_MIXED\t\t(1U << 19)\n \n+/*\n+ * When set, io_uring ignores SQ head and tail and fetches SQEs to submit\n+ * starting from index 0 instead from the index stored in the head pointer.\n+ * IOW, the user should place all SQE at the beginning of the SQ memory\n+ * before issuing a submission syscall.\n+ *\n+ * It requires IORING_SETUP_NO_SQARRAY and is incompatible with\n+ * IORING_SETUP_SQPOLL. The user must also never change the SQ head and tail\n+ * values and keep it set to 0. Any other value is undefined behaviour.\n+ */\n+#define IORING_SETUP_SQ_REWIND\t\t(1U << 20)\n+\n enum io_uring_op {\n \tIORING_OP_NOP,\n \tIORING_OP_READV,\n@@ -700,6 +713,9 @@ enum io_uring_register_op {\n \t/* auxiliary zcrx configuration, see enum zcrx_ctrl_op */\n \tIORING_REGISTER_ZCRX_CTRL\t\t= 36,\n \n+\t/* register bpf filtering programs */\n+\tIORING_REGISTER_BPF_FILTER\t\t= 37,\n+\n \t/* this goes last */\n \tIORING_REGISTER_LAST,\n \n@@ -805,6 +821,13 @@ struct io_uring_restriction {\n \t__u32 resv2[3];\n };\n \n+struct io_uring_task_restriction {\n+\t__u16 flags;\n+\t__u16 nr_res;\n+\t__u32 resv[3];\n+\t__DECLARE_FLEX_ARRAY(struct io_uring_restriction, restrictions);\n+};\n+\n struct io_uring_clock_register {\n \t__u32\tclockid;\n \t__u32\t__resv[3];\n@@ -1068,6 +1091,14 @@ enum zcrx_reg_flags {\n \tZCRX_REG_IMPORT\t= 1,\n };\n \n+enum zcrx_features {\n+\t/*\n+\t * The user can ask for the desired rx page size by passing the\n+\t * value in struct io_uring_zcrx_ifq_reg::rx_buf_len.\n+\t */\n+\tZCRX_FEATURE_RX_PAGE_SIZE\t= 1 << 0,\n+};\n+\n /*\n * Argument for IORING_REGISTER_ZCRX_IFQ\n */\n@@ -1082,7 +1113,7 @@ struct io_uring_zcrx_ifq_reg {\n \n \tstruct io_uring_zcrx_offsets offsets;\n \t__u32\tzcrx_id;\n-\t__u32\t__resv2;\n+\t__u32\trx_buf_len;\n \t__u64\t__resv[3];\n };\n \ndiff --git a/src/io_uring.c b/src/io_uring.c\nindex a479c9570a..04de316513 100644\n--- a/src/io_uring.c\n+++ b/src/io_uring.c\n@@ -1254,11 +1254,8 @@ print_io_uring_zcrx_ifq_reg(struct tcb *tcp, const kernel_ulong_t addr)\n \tprint_io_uring_zcrx_offsets(tcp, &arg.offsets);\n \ttprint_struct_next();\n \tPRINT_FIELD_U(arg, zcrx_id);\n-\n-\tif (arg.__resv2) {\n-\t\ttprint_struct_next();\n-\t\tPRINT_FIELD_X(arg, __resv2);\n-\t}\n+\ttprint_struct_next();\n+\tPRINT_FIELD_U(arg, rx_buf_len);\n \n \tif (!IS_ARRAY_ZERO(arg.__resv)) {\n \t\ttprint_struct_next();\ndiff --git a/tests/io_uring_register.c b/tests/io_uring_register.c\nindex cfaa93d208..9952f0370e 100644\n--- a/tests/io_uring_register.c\n+++ b/tests/io_uring_register.c\n@@ -2058,7 +2058,7 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)\n \t \", flags=\" XLAT_FMT\n \t \", area_ptr=%#llx, region_ptr=%#llx\"\n \t \", offsets={head=%u, tail=%u, rqes=%u}\"\n-\t \", zcrx_id=%u}, 1) = %s\\n\",\n+\t \", zcrx_id=%u, rx_buf_len=0}, 1) = %s\\n\",\n \t fd_null, path_null,\n \t XLAT_SEL(zcrx_ifq_ops.val, zcrx_ifq_ops.str),\n \t zcrx_ifq->if_idx, zcrx_ifq->if_rxq, zcrx_ifq->rq_entries,\n@@ -2073,9 +2073,9 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)\n \tmemset(zcrx_ifq, 0, sizeof(*zcrx_ifq));\n \tzcrx_ifq->if_idx = 0xaaaa;\n \tzcrx_ifq->offsets.__resv2 = 0xbbbb;\n-\tzcrx_ifq->__resv2 = 0xcccc;\n \tzcrx_ifq->offsets.__resv[0] = 0xddddddddddddddddULL;\n \tzcrx_ifq->offsets.__resv[1] = 0xeeeeeeeeeeeeeeeeULL;\n+\tzcrx_ifq->rx_buf_len = 0xcccc;\n \tzcrx_ifq->__resv[0] = 0x1111111111111111ULL;\n \tzcrx_ifq->__resv[1] = 0x2222222222222222ULL;\n \tzcrx_ifq->__resv[2] = 0x3333333333333333ULL;\n@@ -2086,7 +2086,7 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)\n \t \", area_ptr=NULL, region_ptr=NULL\"\n \t \", offsets={head=0, tail=0, rqes=0, __resv2=%#x\"\n \t \", __resv=[%#llx, %#llx]}\"\n-\t \", zcrx_id=0, __resv2=%#x\"\n+\t \", zcrx_id=0, rx_buf_len=%u\"\n \t \", __resv=[%#llx, %#llx, %#llx]}, 1) = %s\\n\",\n \t fd_null, path_null,\n \t XLAT_SEL(zcrx_ifq_ops.val, zcrx_ifq_ops.str),\n@@ -2094,7 +2094,7 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)\n \t zcrx_ifq->offsets.__resv2,\n \t (unsigned long long) zcrx_ifq->offsets.__resv[0],\n \t (unsigned long long) zcrx_ifq->offsets.__resv[1],\n-\t zcrx_ifq->__resv2,\n+\t zcrx_ifq->rx_buf_len,\n \t (unsigned long long) zcrx_ifq->__resv[0],\n \t (unsigned long long) zcrx_ifq->__resv[1],\n \t (unsigned long long) zcrx_ifq->__resv[2],\nFrom 81fb4e6cd8b22acc51b8f7226a60a75825087d7b Mon Sep 17 00:00:00 2001\nFrom: \"Dmitry V. Levin\" \nDate: Wed, 11 Mar 2026 08:00:00 +0000\nSubject: [PATCH] bundled: update linux/io_uring/query.h to v7.0-rc3\n\n* bundled/linux/include/uapi/linux/io_uring/query.h: Update to\nheaders_install'ed Linux kernel v7.0-rc3.\n* src/io_uring.c (print_io_uring_query_zcrx): Follow the rename\nof \"__resv1\" field of struct io_uring_query_zcrx to \"features\".\n* tests/io_uring_register.c (test_IORING_REGISTER_QUERY): Update\nexpected output.\n---\n .../linux/include/uapi/linux/io_uring/query.h | 6 +++++-\n src/io_uring.c | 7 ++-----\n tests/io_uring_register.c | 16 ++++++++--------\n 3 files changed, 15 insertions(+), 14 deletions(-)\n\ndiff --git a/bundled/linux/include/uapi/linux/io_uring/query.h b/bundled/linux/include/uapi/linux/io_uring/query.h\nindex 2456e6c5e..95500759c 100644\n--- a/bundled/linux/include/uapi/linux/io_uring/query.h\n+++ b/bundled/linux/include/uapi/linux/io_uring/query.h\n@@ -1,6 +1,9 @@\n /* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */\n /*\n * Header file for the io_uring query interface.\n+ *\n+ * Copyright (C) 2026 Pavel Begunkov \n+ * Copyright (C) Meta Platforms, Inc.\n */\n #ifndef LINUX_IO_URING_QUERY_H\n #define LINUX_IO_URING_QUERY_H\n@@ -50,7 +53,8 @@ struct io_uring_query_zcrx {\n \t__u64 area_flags;\n \t/* The number of supported ZCRX_CTRL_* opcodes */\n \t__u32 nr_ctrl_opcodes;\n-\t__u32 __resv1;\n+\t/* Bitmask of ZCRX_FEATURE_* indicating which features are available */\n+\t__u32 features;\n \t/* The refill ring header size */\n \t__u32 rq_hdr_size;\n \t/* The alignment for the header */\ndiff --git a/src/io_uring.c b/src/io_uring.c\nindex 04de31651..d6eb63ffe 100644\n--- a/src/io_uring.c\n+++ b/src/io_uring.c\n@@ -1538,15 +1538,12 @@ print_io_uring_query_zcrx(struct tcb *tcp, const kernel_ulong_t addr)\n \ttprint_struct_next();\n \tPRINT_FIELD_U(zcrx, nr_ctrl_opcodes);\n \ttprint_struct_next();\n+\tPRINT_FIELD_X(zcrx, features);\n+\ttprint_struct_next();\n \tPRINT_FIELD_U(zcrx, rq_hdr_size);\n \ttprint_struct_next();\n \tPRINT_FIELD_U(zcrx, rq_hdr_alignment);\n \n-\tif (zcrx.__resv1) {\n-\t\ttprint_struct_next();\n-\t\tPRINT_FIELD_X(zcrx, __resv1);\n-\t}\n-\n \tif (zcrx.__resv2) {\n \t\ttprint_struct_next();\n \t\tPRINT_FIELD_X(zcrx, __resv2);\ndiff --git a/tests/io_uring_register.c b/tests/io_uring_register.c\nindex 9952f0370..158c714a0 100644\n--- a/tests/io_uring_register.c\n+++ b/tests/io_uring_register.c\n@@ -2373,8 +2373,8 @@ test_IORING_REGISTER_QUERY(int fd_null)\n \tprintf(\"io_uring_register(%u<%s>, \" XLAT_FMT\n \t \", {query_data=%p, query_op=\" XLAT_FMT \", size=%u, result=0\"\n \t \", query_data={register_flags=\" XLAT_FMT \", area_flags=\" XLAT_FMT\n-\t \", nr_ctrl_opcodes=%u, rq_hdr_size=%u, rq_hdr_alignment=%u}\"\n-\t \", next_entry=NULL}, 0) = %s\\n\",\n+\t \", nr_ctrl_opcodes=%u, features=0, rq_hdr_size=%u\"\n+\t \", rq_hdr_alignment=%u}, next_entry=NULL}, 0) = %s\\n\",\n \t fd_null, path_null,\n \t XLAT_SEL(query_ops.val, query_ops.str),\n \t zcrx_data,\n@@ -2490,8 +2490,8 @@ test_IORING_REGISTER_QUERY(int fd_null)\n \t \", sqe_flags=0, nr_query_opcodes=0}, next_entry=\"\n \t \"{query_data=%p, query_op=\" XLAT_FMT \", size=%u, result=0\"\n \t \", query_data={register_flags=0, area_flags=0\"\n-\t \", nr_ctrl_opcodes=%u, rq_hdr_size=0, rq_hdr_alignment=0}\"\n-\t \", next_entry=NULL}}, 0) = %s\\n\",\n+\t \", nr_ctrl_opcodes=%u, features=0, rq_hdr_size=0\"\n+\t \", rq_hdr_alignment=0}, next_entry=NULL}}, 0) = %s\\n\",\n \t fd_null, path_null,\n \t XLAT_SEL(query_ops.val, query_ops.str),\n \t opcode_data2,\n@@ -2570,22 +2570,22 @@ test_IORING_REGISTER_QUERY(int fd_null)\n \thdr->result = 0;\n \n \tmemset(zcrx_data, 0, sizeof(*zcrx_data));\n-\tzcrx_data->__resv1 = 0xdeadbeef;\n+\tzcrx_data->features = 0xdeadbeef;\n \tzcrx_data->__resv2 = 0xcafebabe12345678ULL;\n \n \tsys_io_uring_register(fd_null, query_ops.val, hdr, 0);\n \tprintf(\"io_uring_register(%u<%s>, \" XLAT_FMT\n \t \", {query_data=%p, query_op=\" XLAT_FMT \", size=%u, result=0\"\n \t \", query_data={register_flags=0, area_flags=0\"\n-\t \", nr_ctrl_opcodes=0, rq_hdr_size=0\"\n-\t \", rq_hdr_alignment=0, __resv1=%#x, __resv2=%#llx}\"\n+\t \", nr_ctrl_opcodes=0, features=%#x, rq_hdr_size=0\"\n+\t \", rq_hdr_alignment=0, __resv2=%#llx}\"\n \t \", next_entry=NULL}, 0) = %s\\n\",\n \t fd_null, path_null,\n \t XLAT_SEL(query_ops.val, query_ops.str),\n \t zcrx_data,\n \t XLAT_ARGS(IO_URING_QUERY_ZCRX),\n \t (unsigned int) sizeof(*zcrx_data),\n-\t zcrx_data->__resv1,\n+\t zcrx_data->features,\n \t (unsigned long long) zcrx_data->__resv2,\n \t errstr);\n \n" - "strace 6.19 espera `struct io_uring_buf_reg` de Linux ~6.x (`__u64 resv[3]`), pero\nlos headers UAPI que MANDAN en el sandbox son los del rootfs del lab, que ya son\n**Linux 7.1** y traen el campo nuevo `min_left` con `__u32 resv[5]`:\n\n __u32 min_left;\n __u32 resv[5];\n\n=> `CHECK_TYPE_SIZE(arg.resv, sizeof(uint64_t) * 3)` salta como\n`static assertion failed ... Unexpected size of arg.resv`.\n\nEste cambio es el de UPSTREAM (strace master ya lo trae; ver src/io_uring.c en\nstrace/strace): comprueba min_left y resv[5], e imprime min_left. Mismo criterio\nque `linux-headers-7.0.patch`, que tambien es un cherry-pick de upstream.\n\n--- a/src/io_uring.c\n+++ b/src/io_uring.c\n@@ -640,7 +640,8 @@\n \tstruct io_uring_buf_reg arg;\n \tCHECK_TYPE_SIZE(arg, 40);\n \tCHECK_TYPE_SIZE(arg.flags, sizeof(uint16_t));\n-\tCHECK_TYPE_SIZE(arg.resv, sizeof(uint64_t) * 3);\n+\tCHECK_TYPE_SIZE(arg.min_left, sizeof(uint32_t));\n+\tCHECK_TYPE_SIZE(arg.resv, sizeof(uint32_t) * 5);\n \n \tif (nargs != 1) {\n \t\tprintaddr(addr);\n@@ -662,6 +663,9 @@\n \ttprint_struct_next();\n \tPRINT_FIELD_X(arg, flags);\n \n+\ttprint_struct_next();\n+\tPRINT_FIELD_U(arg, min_left);\n+\n \tif (!IS_ARRAY_ZERO(arg.resv)) {\n \t\ttprint_struct_next();\n \t\tPRINT_FIELD_ARRAY(arg, resv, tcp, print_xint_array_member);\n" build: compiler: zig-cc target: x86_64-linux-musl link: static flags: [] phases: configure: "./configure \\\n\t--build=$CBUILD \\\n\t--host=$CHOST \\\n\t--prefix=/usr \\\n\t--sysconfdir=/etc \\\n\t--mandir=/usr/share/man \\\n\t--localstatedir=/var \\\n\t--disable-nls \\\n\t--enable-mpers=no \\\n\t--without-libunwind \\\n\t--without-libdw \\\n\t--without-libselinux\n" compile: | sed -i '/PRINT_FIELD_U(arg, rx_buf_len);/d; /PRINT_FIELD_X(zcrx, features);/d' src/io_uring.c # Sólo el binario (dir src/): el subdir tests/ preprocesa asm/unistd.h con `zig cc -E -` # desde stdin y zig rechaza -mcpu ahí; no lo necesitamos para un strace funcional. make -C src install: | make -C src DESTDIR="/out" install target_bin: /usr/bin/strace expected_hash: b3:4c970677fd328ee20dec7106acb2b69e23b659683d69d4e6a7287a6725679f2f deps: build: - make runtime: []