tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Sutichaykuna

⎇ 534014c3ec69daea789a1d0523e1d00a69c6ed65 recipes/strace-io-uring-7.1.patch 36 siq'ikuna · 1.2 KB Ñawpa willay ch'uya

strace: construye — headers del rootfs (Linux 7.1) contra strace 6.19 1cbcac660 · Sergio ·

1strace 6.19 espera `struct io_uring_buf_reg` de Linux ~6.x (`__u64 resv[3]`), pero
2los headers UAPI que MANDAN en el sandbox son los del rootfs del lab, que ya son
3**Linux 7.1** y traen el campo nuevo `min_left` con `__u32 resv[5]`:
4
5    __u32 min_left;
6    __u32 resv[5];
7
8=> `CHECK_TYPE_SIZE(arg.resv, sizeof(uint64_t) * 3)` salta como
9`static assertion failed ... Unexpected size of arg.resv`.
10
11Este cambio es el de UPSTREAM (strace master ya lo trae; ver src/io_uring.c en
12strace/strace): comprueba min_left y resv[5], e imprime min_left. Mismo criterio
13que `linux-headers-7.0.patch`, que tambien es un cherry-pick de upstream.
14
15--- a/src/io_uring.c
16+++ b/src/io_uring.c
17@@ -640,7 +640,8 @@
18 	struct io_uring_buf_reg arg;
19 	CHECK_TYPE_SIZE(arg, 40);
20 	CHECK_TYPE_SIZE(arg.flags, sizeof(uint16_t));
21-	CHECK_TYPE_SIZE(arg.resv, sizeof(uint64_t) * 3);
22+	CHECK_TYPE_SIZE(arg.min_left, sizeof(uint32_t));
23+	CHECK_TYPE_SIZE(arg.resv, sizeof(uint32_t) * 5);
24 
25 	if (nargs != 1) {
26 		printaddr(addr);
27@@ -662,6 +663,9 @@
28 	tprint_struct_next();
29 	PRINT_FIELD_X(arg, flags);
30 
31+	tprint_struct_next();
32+	PRINT_FIELD_U(arg, min_left);
33+
34 	if (!IS_ARRAY_ZERO(arg.resv)) {
35 		tprint_struct_next();
36 		PRINT_FIELD_ARRAY(arg, resv, tcp, print_xint_array_member);