From 1965e55e0b7c9b83d61fa8af0321547e9fa5e85d Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 09 2020 18:10:02 +0000 Subject: import strace-5.7-1.el8 --- diff --git a/.gitignore b/.gitignore index c283e23..137831d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/strace-5.1.tar.xz +SOURCES/strace-5.7.tar.xz diff --git a/.strace.metadata b/.strace.metadata index aa6c4b8..cce1af2 100644 --- a/.strace.metadata +++ b/.strace.metadata @@ -1 +1 @@ -6474260dcc66aa1f591acee31ae6a1a457b34656 SOURCES/strace-5.1.tar.xz +95c9d5aa664982d53ce1e5ab058d8fb73e200f0c SOURCES/strace-5.7.tar.xz diff --git a/SOURCES/0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch b/SOURCES/0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch deleted file mode 100644 index 3d21fae..0000000 --- a/SOURCES/0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 7ada13f3a40e2f58aea335cf910666378e7dd99a Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Fri, 12 Jul 2019 14:38:33 +0200 -Subject: [PATCH 1/3] evdev: avoid bit vector decoding on non-successful and 0 - return codes - -Reported by Clang. - - strace/evdev.c:157:3: note: The value 0 is assigned to 'size' - # size = tcp->u_rval * 8; - # ^~~~~~~~~~~~~~~~~~~~~~ - strace/evdev.c:158:2: warning: Declared variable-length array (VLA) - has zero size - # char decoded_arg[size]; - # ^ - -* evdev.c (decode_bitset_): Bail out before decoded_arg VLA definition. ---- - evdev.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/evdev.c b/evdev.c -index e402d26e..4b811cf8 100644 ---- a/evdev.c -+++ b/evdev.c -@@ -155,6 +155,13 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg, - size = max_nr; - else - size = tcp->u_rval * 8; -+ -+ if (syserror(tcp) || !size) { -+ printaddr(arg); -+ -+ return RVAL_IOCTL_DECODED; -+ } -+ - char decoded_arg[size]; - - if (umove_or_printaddr(tcp, arg, &decoded_arg)) --- -2.13.6 - diff --git a/SOURCES/0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch b/SOURCES/0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch deleted file mode 100644 index 18cf773..0000000 --- a/SOURCES/0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 96194ed74158f0b9976fae43a910ad14eaea141e Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Fri, 12 Jul 2019 14:57:28 +0200 -Subject: [PATCH 2/3] evdev: fix array size calculation in decode_bitset_ - -max_nr is in bits (as it is a number of flags), result is in bytes, and -the array allocation has to be in personality words. - -There's still an open question, however, what to do on big-endian -architectures when a non-divisible-by-4 value is returned. - -* evdev.c (decode_bitset_): Declare size_bits, initialise it and use it -later instead of size; round up size by personality's word boundary. ---- - evdev.c | 12 ++++++++---- - 1 file changed, 8 insertions(+), 4 deletions(-) - -diff --git a/evdev.c b/evdev.c -index 4b811cf8..a3d9cb55 100644 ---- a/evdev.c -+++ b/evdev.c -@@ -151,10 +151,14 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg, - tprints(", "); - - unsigned int size; -+ unsigned int size_bits; -+ - if ((kernel_ulong_t) tcp->u_rval > max_nr / 8) -- size = max_nr; -+ size_bits = max_nr; - else -- size = tcp->u_rval * 8; -+ size_bits = tcp->u_rval * 8; -+ -+ size = ROUNDUP(ROUNDUP_DIV(size_bits, 8), current_wordsize); - - if (syserror(tcp) || !size) { - printaddr(arg); -@@ -170,13 +174,13 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg, - tprints("["); - - int bit_displayed = 0; -- int i = next_set_bit(decoded_arg, 0, size); -+ int i = next_set_bit(decoded_arg, 0, size_bits); - if (i < 0) { - tprints(" 0 "); - } else { - printxval_dispatch(decode_nr, decode_nr_size, i, dflt, xt); - -- while ((i = next_set_bit(decoded_arg, i + 1, size)) > 0) { -+ while ((i = next_set_bit(decoded_arg, i + 1, size_bits)) > 0) { - if (abbrev(tcp) && bit_displayed >= 3) { - tprints(", ..."); - break; --- -2.13.6 - diff --git a/SOURCES/0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch b/SOURCES/0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch deleted file mode 100644 index e2abf52..0000000 --- a/SOURCES/0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch +++ /dev/null @@ -1,795 +0,0 @@ -From cdd8206af74fcb961f0179e21eacf5d55d23f0ac Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Fri, 12 Jul 2019 14:31:44 +0200 -Subject: [PATCH 3/3] tests: test evdev bitset decoding more thoroughly - -* tests/ioctl_evdev-success-v.test: Inject various values. -* tests/ioctl_evdev-success.test: Likewise. -* tests/ioctl_evdev-success.c (NUM_WORDS): New macro. -(struct evdev_check): Constify arg_ptr and print_arg args. -(invoke_test_syscall, test_evdev, print_input_absinfo, print_input_id, -print_mtslots): Add const qualifiers. -(print_getbit): Add const qualifiers, rewrite to expect trailing NULL -in the string array instead of leading string count. -(main): Set size for ev_more, ev_less, ev_zero arrays; replace leading -count element in ev_more_str, ev_less_str, ev_zero_str with trailing -NULL; replace ev_more_str and ev_less_str with ev_more_str_2/ev_less_str_2 -and ev_more_str_3/ev_less_str_3 that differ by presence of flags that reside -beyond first two bytes; add static and const qualifiers where possible; -add key/key_sts_8/key_str_16 values; update a to provide either ev_more_str_2 -or ev_more_str_3 and either key_str_8 or key_str_16 depending on inject_retval -value. ---- - tests/ioctl_evdev-success-v.test | 15 +++--- - tests/ioctl_evdev-success.c | 100 ++++++++++++++++++++++++++------------- - tests/ioctl_evdev-success.test | 15 +++--- - 3 files changed, 84 insertions(+), 46 deletions(-) - -Index: strace-4.24/tests/ioctl_evdev-success-v.test -=================================================================== ---- strace-4.24.orig/tests/ioctl_evdev-success-v.test 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests/ioctl_evdev-success-v.test 2019-08-01 19:21:32.297062218 +0200 -@@ -3,11 +3,14 @@ - . "${srcdir=.}/scno_tampering.sh" - - : ${IOCTL_INJECT_START=256} --: ${IOCTL_INJECT_RETVAL=8} - - run_prog --run_strace -a16 -v -e trace=ioctl \ -- -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ -- ../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" --grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" --match_diff "$OUT" "$EXP" -+ -+for ret in 0 2 8 15 16; do -+ run_strace -a16 -v -e trace=ioctl \ -+ -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ -+ ../ioctl_evdev-success-v \ -+ "${IOCTL_INJECT_START}" "${ret}"> "$EXP.$ret" -+ grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" -+ match_diff "$OUT.$ret" "$EXP.$ret" -+done -Index: strace-4.24/tests/ioctl_evdev-success.c -=================================================================== ---- strace-4.24.orig/tests/ioctl_evdev-success.c 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests/ioctl_evdev-success.c 2019-08-01 19:21:32.297062218 +0200 -@@ -2,6 +2,7 @@ - - #ifdef HAVE_LINUX_INPUT_H - -+# include - # include - # include - # include -@@ -9,17 +10,19 @@ - # include - # include "print_fields.h" - -+# define NUM_WORDS 4 -+ - static const char *errstr; - - struct evdev_check { - unsigned long cmd; - const char *cmd_str; -- void *arg_ptr; -- void (*print_arg)(long rc, void *ptr, void *arg); -+ const void *arg_ptr; -+ void (*print_arg)(long rc, const void *ptr, const void *arg); - }; - - static long --invoke_test_syscall(unsigned long cmd, void *p) -+invoke_test_syscall(unsigned long cmd, const void *p) - { - long rc = ioctl(-1, cmd, p); - errstr = sprintrc(rc); -@@ -31,7 +34,7 @@ - } - - static void --test_evdev(struct evdev_check *check, void *arg) -+test_evdev(struct evdev_check *check, const void *arg) - { - long rc = invoke_test_syscall(check->cmd, check->arg_ptr); - printf("ioctl(-1, %s, ", check->cmd_str); -@@ -43,9 +46,9 @@ - } - - static void --print_input_absinfo(long rc, void *ptr, void *arg) -+print_input_absinfo(long rc, const void *ptr, const void *arg) - { -- struct input_absinfo *absinfo = ptr; -+ const struct input_absinfo *absinfo = ptr; - - if (rc < 0) { - printf("%p", absinfo); -@@ -67,9 +70,9 @@ - } - - static void --print_input_id(long rc, void *ptr, void *arg) -+print_input_id(long rc, const void *ptr, const void *arg) - { -- struct input_id *id = ptr; -+ const struct input_id *id = ptr; - - if (rc < 0) { - printf("%p", id); -@@ -84,10 +87,10 @@ - - # ifdef EVIOCGMTSLOTS - static void --print_mtslots(long rc, void *ptr, void *arg) -+print_mtslots(long rc, const void *ptr, const void *arg) - { -- int *buffer = ptr; -- const char **str = arg; -+ const int *buffer = ptr; -+ const char * const * str = arg; - int num = atoi(*(str + 1)); - - if (rc < 0) { -@@ -104,27 +107,26 @@ - # endif - - static void --print_getbit(long rc, void *ptr, void *arg) -+print_getbit(long rc, const void *ptr, const void *arg) - { -- const char **str = arg; -- int num = atoi(*str); -+ const char * const *str = arg; - -- if (rc < 0) { -+ if (rc <= 0) { - printf("%p", ptr); - return; - } - - printf("["); -- printf("%s", *(str + 1)); -- for (unsigned int i = 2; i <= (unsigned) num; i++) { -+ for (unsigned long i = 0; str[i]; i++) { - # if ! VERBOSE -- if (i > 4) { -+ if (i >= 4) { - printf(", ..."); - break; - } - # endif -- printf(", "); -- printf("%s", *(str + i)); -+ if (i) -+ printf(", "); -+ printf("%s", str[i]); - } - printf("]"); - } -@@ -170,6 +172,7 @@ - TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id); - TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo); - TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot); -+ - # ifdef EVIOCGMTSLOTS - int mtslots[] = { ABS_MT_SLOT, 1, 3 }; - /* we use the second element to indicate the number of values */ -@@ -183,36 +186,65 @@ - const char *invalid_mtslot_str[] = { invalid_str, "1", "1" }; - # endif - -+ enum { ULONG_BIT = sizeof(unsigned long) * 8 }; -+ - /* set more than 4 bits */ -- unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR }; -- /* we use the first element to indicate the number of set bits */ -- /* ev_more_str[0] is "5" so the number of set bits is 5 */ -- const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" }; -+ static const unsigned long ev_more[NUM_WORDS] = { -+ 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND -+ | 1 << EV_PWR }; -+ static const char * const ev_more_str_2[] = { -+ "EV_ABS", "EV_MSC", NULL }; -+ static const char * const ev_more_str_3[] = { -+ "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR", NULL }; - - /* set less than 4 bits */ -- unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; -- const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" }; -+ static const unsigned long ev_less[NUM_WORDS] = { -+ 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; -+ static const char * const ev_less_str_2[] = { -+ "EV_ABS", "EV_MSC", NULL }; -+ static const char * const ev_less_str_3[] = { -+ "EV_ABS", "EV_MSC", "EV_LED", NULL }; - - /* set zero bit */ -- unsigned long ev_zero[] = { 0x0 }; -- const char *ev_zero_str[] = { "0", " 0 " }; -+ static const unsigned long ev_zero[NUM_WORDS] = { 0x0 }; -+ static const char * const ev_zero_str[] = { " 0 ", NULL }; - - /* KEY_MAX is 0x2ff which is greater than retval * 8 */ -- unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 }; -- const char *key_str[] = { "2", "KEY_1", "KEY_2" }; -+ static const unsigned long key[NUM_WORDS] = { -+ 1 << KEY_1 | 1 << KEY_2, -+ [ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) }; -+ -+ static const char * const key_str_8[] = { -+ "KEY_1", "KEY_2", NULL }; -+ static const char * const key_str_16[] = { -+ "KEY_1", "KEY_2", "KEY_F12", NULL }; -+ -+ assert(sizeof(ev_more) >= (unsigned long) inject_retval); -+ assert(sizeof(ev_less) >= (unsigned long) inject_retval); -+ assert(sizeof(ev_zero) >= (unsigned long) inject_retval); -+ assert(sizeof(key) >= (unsigned long) inject_retval); - - struct { - struct evdev_check check; -- void *ptr; -+ const void *ptr; - } a[] = { - { { ARG_STR(EVIOCGID), id, print_input_id }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, -- { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str }, -- { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str }, -+ { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, -+ inject_retval * 8 <= EV_LED -+ ? (const void *) &ev_more_str_2 -+ : (const void *) &ev_more_str_3 }, -+ { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, -+ inject_retval * 8 <= EV_LED -+ ? (const void *) &ev_less_str_2 -+ : (const void *) &ev_less_str_3 }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str }, -- { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str}, -+ { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, -+ inject_retval * 8 <= KEY_F12 -+ ? (const void *) &key_str_8 -+ : (const void *) &key_str_16 }, - # ifdef EVIOCGMTSLOTS - { { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str }, - { { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str } -Index: strace-4.24/tests/ioctl_evdev-success.test -=================================================================== ---- strace-4.24.orig/tests/ioctl_evdev-success.test 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests/ioctl_evdev-success.test 2019-08-01 19:21:32.298062205 +0200 -@@ -3,11 +3,14 @@ - . "${srcdir=.}/scno_tampering.sh" - - : ${IOCTL_INJECT_START=256} --: ${IOCTL_INJECT_RETVAL=8} - - run_prog --run_strace -a16 -e trace=ioctl \ -- -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ -- ../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" --grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" --match_diff "$OUT" "$EXP" -+ -+for ret in 0 2 8 15 16; do -+ run_strace -a16 -e trace=ioctl \ -+ -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ -+ ../ioctl_evdev-success \ -+ "${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}" -+ grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" -+ match_diff "$OUT.$ret" "$EXP.$ret" -+done -Index: strace-4.24/tests-m32/ioctl_evdev-success-v.test -=================================================================== ---- strace-4.24.orig/tests-m32/ioctl_evdev-success-v.test 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests-m32/ioctl_evdev-success-v.test 2019-08-01 19:21:32.298062205 +0200 -@@ -3,11 +3,14 @@ - . "${srcdir=.}/scno_tampering.sh" - - : ${IOCTL_INJECT_START=256} --: ${IOCTL_INJECT_RETVAL=8} - - run_prog --run_strace -a16 -v -e trace=ioctl \ -- -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ -- ../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" --grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" --match_diff "$OUT" "$EXP" -+ -+for ret in 0 2 8 15 16; do -+ run_strace -a16 -v -e trace=ioctl \ -+ -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ -+ ../ioctl_evdev-success-v \ -+ "${IOCTL_INJECT_START}" "${ret}"> "$EXP.$ret" -+ grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" -+ match_diff "$OUT.$ret" "$EXP.$ret" -+done -Index: strace-4.24/tests-m32/ioctl_evdev-success.test -=================================================================== ---- strace-4.24.orig/tests-m32/ioctl_evdev-success.test 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests-m32/ioctl_evdev-success.test 2019-08-01 19:21:32.298062205 +0200 -@@ -3,11 +3,14 @@ - . "${srcdir=.}/scno_tampering.sh" - - : ${IOCTL_INJECT_START=256} --: ${IOCTL_INJECT_RETVAL=8} - - run_prog --run_strace -a16 -e trace=ioctl \ -- -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ -- ../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" --grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" --match_diff "$OUT" "$EXP" -+ -+for ret in 0 2 8 15 16; do -+ run_strace -a16 -e trace=ioctl \ -+ -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ -+ ../ioctl_evdev-success \ -+ "${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}" -+ grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" -+ match_diff "$OUT.$ret" "$EXP.$ret" -+done -Index: strace-4.24/tests-mx32/ioctl_evdev-success-v.test -=================================================================== ---- strace-4.24.orig/tests-mx32/ioctl_evdev-success-v.test 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests-mx32/ioctl_evdev-success-v.test 2019-08-01 19:21:32.298062205 +0200 -@@ -3,11 +3,14 @@ - . "${srcdir=.}/scno_tampering.sh" - - : ${IOCTL_INJECT_START=256} --: ${IOCTL_INJECT_RETVAL=8} - - run_prog --run_strace -a16 -v -e trace=ioctl \ -- -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ -- ../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" --grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" --match_diff "$OUT" "$EXP" -+ -+for ret in 0 2 8 15 16; do -+ run_strace -a16 -v -e trace=ioctl \ -+ -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ -+ ../ioctl_evdev-success-v \ -+ "${IOCTL_INJECT_START}" "${ret}"> "$EXP.$ret" -+ grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" -+ match_diff "$OUT.$ret" "$EXP.$ret" -+done -Index: strace-4.24/tests-mx32/ioctl_evdev-success.test -=================================================================== ---- strace-4.24.orig/tests-mx32/ioctl_evdev-success.test 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests-mx32/ioctl_evdev-success.test 2019-08-01 19:21:32.299062192 +0200 -@@ -3,11 +3,14 @@ - . "${srcdir=.}/scno_tampering.sh" - - : ${IOCTL_INJECT_START=256} --: ${IOCTL_INJECT_RETVAL=8} - - run_prog --run_strace -a16 -e trace=ioctl \ -- -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ -- ../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" --grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" --match_diff "$OUT" "$EXP" -+ -+for ret in 0 2 8 15 16; do -+ run_strace -a16 -e trace=ioctl \ -+ -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ -+ ../ioctl_evdev-success \ -+ "${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}" -+ grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" -+ match_diff "$OUT.$ret" "$EXP.$ret" -+done -Index: strace-4.24/tests-m32/ioctl_evdev-success.c -=================================================================== ---- strace-4.24.orig/tests-m32/ioctl_evdev-success.c 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests-m32/ioctl_evdev-success.c 2019-08-29 12:09:27.898700830 +0200 -@@ -2,6 +2,7 @@ - - #ifdef HAVE_LINUX_INPUT_H - -+# include - # include - # include - # include -@@ -9,17 +10,19 @@ - # include - # include "print_fields.h" - -+# define NUM_WORDS 4 -+ - static const char *errstr; - - struct evdev_check { - unsigned long cmd; - const char *cmd_str; -- void *arg_ptr; -- void (*print_arg)(long rc, void *ptr, void *arg); -+ const void *arg_ptr; -+ void (*print_arg)(long rc, const void *ptr, const void *arg); - }; - - static long --invoke_test_syscall(unsigned long cmd, void *p) -+invoke_test_syscall(unsigned long cmd, const void *p) - { - long rc = ioctl(-1, cmd, p); - errstr = sprintrc(rc); -@@ -31,7 +34,7 @@ - } - - static void --test_evdev(struct evdev_check *check, void *arg) -+test_evdev(struct evdev_check *check, const void *arg) - { - long rc = invoke_test_syscall(check->cmd, check->arg_ptr); - printf("ioctl(-1, %s, ", check->cmd_str); -@@ -43,9 +46,9 @@ - } - - static void --print_input_absinfo(long rc, void *ptr, void *arg) -+print_input_absinfo(long rc, const void *ptr, const void *arg) - { -- struct input_absinfo *absinfo = ptr; -+ const struct input_absinfo *absinfo = ptr; - - if (rc < 0) { - printf("%p", absinfo); -@@ -67,9 +70,9 @@ - } - - static void --print_input_id(long rc, void *ptr, void *arg) -+print_input_id(long rc, const void *ptr, const void *arg) - { -- struct input_id *id = ptr; -+ const struct input_id *id = ptr; - - if (rc < 0) { - printf("%p", id); -@@ -84,10 +87,10 @@ - - # ifdef EVIOCGMTSLOTS - static void --print_mtslots(long rc, void *ptr, void *arg) -+print_mtslots(long rc, const void *ptr, const void *arg) - { -- int *buffer = ptr; -- const char **str = arg; -+ const int *buffer = ptr; -+ const char * const * str = arg; - int num = atoi(*(str + 1)); - - if (rc < 0) { -@@ -104,27 +107,26 @@ - # endif - - static void --print_getbit(long rc, void *ptr, void *arg) -+print_getbit(long rc, const void *ptr, const void *arg) - { -- const char **str = arg; -- int num = atoi(*str); -+ const char * const *str = arg; - -- if (rc < 0) { -+ if (rc <= 0) { - printf("%p", ptr); - return; - } - - printf("["); -- printf("%s", *(str + 1)); -- for (unsigned int i = 2; i <= (unsigned) num; i++) { -+ for (unsigned long i = 0; str[i]; i++) { - # if ! VERBOSE -- if (i > 4) { -+ if (i >= 4) { - printf(", ..."); - break; - } - # endif -- printf(", "); -- printf("%s", *(str + i)); -+ if (i) -+ printf(", "); -+ printf("%s", str[i]); - } - printf("]"); - } -@@ -170,6 +172,7 @@ - TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id); - TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo); - TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot); -+ - # ifdef EVIOCGMTSLOTS - int mtslots[] = { ABS_MT_SLOT, 1, 3 }; - /* we use the second element to indicate the number of values */ -@@ -183,36 +186,65 @@ - const char *invalid_mtslot_str[] = { invalid_str, "1", "1" }; - # endif - -+ enum { ULONG_BIT = sizeof(unsigned long) * 8 }; -+ - /* set more than 4 bits */ -- unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR }; -- /* we use the first element to indicate the number of set bits */ -- /* ev_more_str[0] is "5" so the number of set bits is 5 */ -- const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" }; -+ static const unsigned long ev_more[NUM_WORDS] = { -+ 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND -+ | 1 << EV_PWR }; -+ static const char * const ev_more_str_2[] = { -+ "EV_ABS", "EV_MSC", NULL }; -+ static const char * const ev_more_str_3[] = { -+ "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR", NULL }; - - /* set less than 4 bits */ -- unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; -- const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" }; -+ static const unsigned long ev_less[NUM_WORDS] = { -+ 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; -+ static const char * const ev_less_str_2[] = { -+ "EV_ABS", "EV_MSC", NULL }; -+ static const char * const ev_less_str_3[] = { -+ "EV_ABS", "EV_MSC", "EV_LED", NULL }; - - /* set zero bit */ -- unsigned long ev_zero[] = { 0x0 }; -- const char *ev_zero_str[] = { "0", " 0 " }; -+ static const unsigned long ev_zero[NUM_WORDS] = { 0x0 }; -+ static const char * const ev_zero_str[] = { " 0 ", NULL }; - - /* KEY_MAX is 0x2ff which is greater than retval * 8 */ -- unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 }; -- const char *key_str[] = { "2", "KEY_1", "KEY_2" }; -+ static const unsigned long key[NUM_WORDS] = { -+ 1 << KEY_1 | 1 << KEY_2, -+ [ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) }; -+ -+ static const char * const key_str_8[] = { -+ "KEY_1", "KEY_2", NULL }; -+ static const char * const key_str_16[] = { -+ "KEY_1", "KEY_2", "KEY_F12", NULL }; -+ -+ assert(sizeof(ev_more) >= (unsigned long) inject_retval); -+ assert(sizeof(ev_less) >= (unsigned long) inject_retval); -+ assert(sizeof(ev_zero) >= (unsigned long) inject_retval); -+ assert(sizeof(key) >= (unsigned long) inject_retval); - - struct { - struct evdev_check check; -- void *ptr; -+ const void *ptr; - } a[] = { - { { ARG_STR(EVIOCGID), id, print_input_id }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, -- { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str }, -- { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str }, -+ { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, -+ inject_retval * 8 <= EV_LED -+ ? (const void *) &ev_more_str_2 -+ : (const void *) &ev_more_str_3 }, -+ { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, -+ inject_retval * 8 <= EV_LED -+ ? (const void *) &ev_less_str_2 -+ : (const void *) &ev_less_str_3 }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str }, -- { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str}, -+ { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, -+ inject_retval * 8 <= KEY_F12 -+ ? (const void *) &key_str_8 -+ : (const void *) &key_str_16 }, - # ifdef EVIOCGMTSLOTS - { { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str }, - { { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str } -Index: strace-4.24/tests-mx32/ioctl_evdev-success.c -=================================================================== ---- strace-4.24.orig/tests-mx32/ioctl_evdev-success.c 2019-08-01 18:40:58.009521546 +0200 -+++ strace-4.24/tests-mx32/ioctl_evdev-success.c 2019-08-29 12:09:30.350669261 +0200 -@@ -2,6 +2,7 @@ - - #ifdef HAVE_LINUX_INPUT_H - -+# include - # include - # include - # include -@@ -9,17 +10,19 @@ - # include - # include "print_fields.h" - -+# define NUM_WORDS 4 -+ - static const char *errstr; - - struct evdev_check { - unsigned long cmd; - const char *cmd_str; -- void *arg_ptr; -- void (*print_arg)(long rc, void *ptr, void *arg); -+ const void *arg_ptr; -+ void (*print_arg)(long rc, const void *ptr, const void *arg); - }; - - static long --invoke_test_syscall(unsigned long cmd, void *p) -+invoke_test_syscall(unsigned long cmd, const void *p) - { - long rc = ioctl(-1, cmd, p); - errstr = sprintrc(rc); -@@ -31,7 +34,7 @@ - } - - static void --test_evdev(struct evdev_check *check, void *arg) -+test_evdev(struct evdev_check *check, const void *arg) - { - long rc = invoke_test_syscall(check->cmd, check->arg_ptr); - printf("ioctl(-1, %s, ", check->cmd_str); -@@ -43,9 +46,9 @@ - } - - static void --print_input_absinfo(long rc, void *ptr, void *arg) -+print_input_absinfo(long rc, const void *ptr, const void *arg) - { -- struct input_absinfo *absinfo = ptr; -+ const struct input_absinfo *absinfo = ptr; - - if (rc < 0) { - printf("%p", absinfo); -@@ -67,9 +70,9 @@ - } - - static void --print_input_id(long rc, void *ptr, void *arg) -+print_input_id(long rc, const void *ptr, const void *arg) - { -- struct input_id *id = ptr; -+ const struct input_id *id = ptr; - - if (rc < 0) { - printf("%p", id); -@@ -84,10 +87,10 @@ - - # ifdef EVIOCGMTSLOTS - static void --print_mtslots(long rc, void *ptr, void *arg) -+print_mtslots(long rc, const void *ptr, const void *arg) - { -- int *buffer = ptr; -- const char **str = arg; -+ const int *buffer = ptr; -+ const char * const * str = arg; - int num = atoi(*(str + 1)); - - if (rc < 0) { -@@ -104,27 +107,26 @@ - # endif - - static void --print_getbit(long rc, void *ptr, void *arg) -+print_getbit(long rc, const void *ptr, const void *arg) - { -- const char **str = arg; -- int num = atoi(*str); -+ const char * const *str = arg; - -- if (rc < 0) { -+ if (rc <= 0) { - printf("%p", ptr); - return; - } - - printf("["); -- printf("%s", *(str + 1)); -- for (unsigned int i = 2; i <= (unsigned) num; i++) { -+ for (unsigned long i = 0; str[i]; i++) { - # if ! VERBOSE -- if (i > 4) { -+ if (i >= 4) { - printf(", ..."); - break; - } - # endif -- printf(", "); -- printf("%s", *(str + i)); -+ if (i) -+ printf(", "); -+ printf("%s", str[i]); - } - printf("]"); - } -@@ -170,6 +172,7 @@ - TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id); - TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo); - TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot); -+ - # ifdef EVIOCGMTSLOTS - int mtslots[] = { ABS_MT_SLOT, 1, 3 }; - /* we use the second element to indicate the number of values */ -@@ -183,36 +186,65 @@ - const char *invalid_mtslot_str[] = { invalid_str, "1", "1" }; - # endif - -+ enum { ULONG_BIT = sizeof(unsigned long) * 8 }; -+ - /* set more than 4 bits */ -- unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR }; -- /* we use the first element to indicate the number of set bits */ -- /* ev_more_str[0] is "5" so the number of set bits is 5 */ -- const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" }; -+ static const unsigned long ev_more[NUM_WORDS] = { -+ 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND -+ | 1 << EV_PWR }; -+ static const char * const ev_more_str_2[] = { -+ "EV_ABS", "EV_MSC", NULL }; -+ static const char * const ev_more_str_3[] = { -+ "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR", NULL }; - - /* set less than 4 bits */ -- unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; -- const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" }; -+ static const unsigned long ev_less[NUM_WORDS] = { -+ 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; -+ static const char * const ev_less_str_2[] = { -+ "EV_ABS", "EV_MSC", NULL }; -+ static const char * const ev_less_str_3[] = { -+ "EV_ABS", "EV_MSC", "EV_LED", NULL }; - - /* set zero bit */ -- unsigned long ev_zero[] = { 0x0 }; -- const char *ev_zero_str[] = { "0", " 0 " }; -+ static const unsigned long ev_zero[NUM_WORDS] = { 0x0 }; -+ static const char * const ev_zero_str[] = { " 0 ", NULL }; - - /* KEY_MAX is 0x2ff which is greater than retval * 8 */ -- unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 }; -- const char *key_str[] = { "2", "KEY_1", "KEY_2" }; -+ static const unsigned long key[NUM_WORDS] = { -+ 1 << KEY_1 | 1 << KEY_2, -+ [ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) }; -+ -+ static const char * const key_str_8[] = { -+ "KEY_1", "KEY_2", NULL }; -+ static const char * const key_str_16[] = { -+ "KEY_1", "KEY_2", "KEY_F12", NULL }; -+ -+ assert(sizeof(ev_more) >= (unsigned long) inject_retval); -+ assert(sizeof(ev_less) >= (unsigned long) inject_retval); -+ assert(sizeof(ev_zero) >= (unsigned long) inject_retval); -+ assert(sizeof(key) >= (unsigned long) inject_retval); - - struct { - struct evdev_check check; -- void *ptr; -+ const void *ptr; - } a[] = { - { { ARG_STR(EVIOCGID), id, print_input_id }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, -- { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str }, -- { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str }, -+ { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, -+ inject_retval * 8 <= EV_LED -+ ? (const void *) &ev_more_str_2 -+ : (const void *) &ev_more_str_3 }, -+ { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, -+ inject_retval * 8 <= EV_LED -+ ? (const void *) &ev_less_str_2 -+ : (const void *) &ev_less_str_3 }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str }, -- { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str}, -+ { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, -+ inject_retval * 8 <= KEY_F12 -+ ? (const void *) &key_str_8 -+ : (const void *) &key_str_16 }, - # ifdef EVIOCGMTSLOTS - { { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str }, - { { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str } diff --git a/SOURCES/0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch b/SOURCES/0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch deleted file mode 100644 index a2c85f9..0000000 --- a/SOURCES/0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 91281fec7823f1cd3df3374fbcbd14af52a3fa1b Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Wed, 14 Aug 2019 17:15:47 +0200 -Subject: [PATCH] v4l2: avoid shifting left a signed number by 31 bit - -cppcheck warns about it with the following diagnostics: - - error[shiftTooManyBitsSigned]: Shifting signed 32-bit value by 31 bits is - undefined behaviour - -* v4l2.c [!v4l2_fourcc_be] (v4l2_fourcc_be): Shift left 1U and not 1 in -order to get 0x80000000. ---- - v4l2.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/v4l2.c b/v4l2.c -index 5da457c..505e7b8 100644 ---- a/v4l2.c -+++ b/v4l2.c -@@ -47,7 +47,7 @@ typedef struct v4l2_standard struct_v4l2_standard; - - /* v4l2_fourcc_be was added by Linux commit v3.18-rc1~101^2^2~127 */ - #ifndef v4l2_fourcc_be --# define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31)) -+# define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1U << 31)) - #endif - - #define FMT_FRACT "%u/%u" --- -2.1.4 - diff --git a/SOURCES/0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch b/SOURCES/0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch deleted file mode 100644 index 9144dc1..0000000 --- a/SOURCES/0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 522ad3a0e73148dadd2480cd9cec84d9112b2e57 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Tue, 4 Sep 2018 14:48:13 +0200 -Subject: [PATCH] syscall.c: avoid infinite loop in subcalls parsing - -clang complains about it, so it might be a good reason to refactor it -into something more linear. - -* syscall.c (syscall_entering_decode): Put syscall subcall decoding -before ipc/socket subcall decoding, remove the loop. ---- - syscall.c | 19 ++++++------------- - 1 file changed, 6 insertions(+), 13 deletions(-) - -diff --git a/syscall.c b/syscall.c -index bae7343..a67d744 100644 ---- a/syscall.c -+++ b/syscall.c -@@ -579,11 +579,13 @@ syscall_entering_decode(struct tcb *tcp) - return res; - } - -+# ifdef SYS_syscall_subcall -+ if (tcp_sysent(tcp)->sen == SEN_syscall) -+ decode_syscall_subcall(tcp); -+# endif - #if defined SYS_ipc_subcall \ -- || defined SYS_socket_subcall \ -- || defined SYS_syscall_subcall -- for (;;) { -- switch (tcp_sysent(tcp)->sen) { -+ || defined SYS_socket_subcall -+ switch (tcp_sysent(tcp)->sen) { - # ifdef SYS_ipc_subcall - case SEN_ipc: - decode_ipc_subcall(tcp); -@@ -594,15 +596,6 @@ syscall_entering_decode(struct tcb *tcp) - decode_socket_subcall(tcp); - break; - # endif --# ifdef SYS_syscall_subcall -- case SEN_syscall: -- decode_syscall_subcall(tcp); -- if (tcp_sysent(tcp)->sen != SEN_syscall) -- continue; -- break; --# endif -- } -- break; - } - #endif - --- -2.1.4 - diff --git a/SOURCES/0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch b/SOURCES/0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch deleted file mode 100644 index 7531868..0000000 --- a/SOURCES/0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 9446038e9face3313373ca5f7539476789fd4660 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Tue, 18 Dec 2018 05:37:30 +0100 -Subject: [PATCH] kvm: avoid bogus vcpu_info assignment in vcpu_register - -Also reformat code a bit to make nesting a bit clearer. - -Reported by Clang. - -* kvm.c (vcpu_register): Do not assign vcpu_alloc result to vcpu_info -as this value is not used afterwards in the function. ---- - kvm.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/kvm.c b/kvm.c -index 984a75e..8bdf1cc 100644 ---- a/kvm.c -+++ b/kvm.c -@@ -76,10 +76,9 @@ vcpu_register(struct tcb *const tcp, int fd, int cpuid) - - struct vcpu_info *vcpu_info = vcpu_find(tcp, fd); - -- if (!vcpu_info) -- vcpu_info = vcpu_alloc(tcp, fd, cpuid); -- else if (vcpu_info->cpuid != cpuid) -- { -+ if (!vcpu_info) { -+ vcpu_alloc(tcp, fd, cpuid); -+ } else if (vcpu_info->cpuid != cpuid) { - vcpu_info->cpuid = cpuid; - vcpu_info->resolved = false; - } --- -2.1.4 - diff --git a/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch b/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch deleted file mode 100644 index 5bc3768..0000000 --- a/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch +++ /dev/null @@ -1,365 +0,0 @@ -From c26541c73c3b4be2977e719d77287255eb346cdf Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Thu, 17 Oct 2019 13:13:45 +0200 -Subject: [PATCH] xlat: use unsgined type for mount_flags fallback values - -Reported by cppcheck: - - strace/xlat/mount_flags.h:256: error[shiftTooManyBitsSigned]: - Shifting signed 32-bit value by 31 bits is undefined behaviour - # 254| XLAT(MS_BORN), - # 255| XLAT(MS_ACTIVE), - # 256|-> XLAT(MS_NOUSER), - # 257| XLAT_END - # 258| }; - -* xlat/mount_flags.in: Use 1U instead of 1 as a bit shifting operand. - -References: https://bugzilla.redhat.com/show_bug.cgi?id=1747524 ---- - xlat/mount_flags.in | 60 ++++++++++++++++++++++++++--------------------------- - 1 file changed, 30 insertions(+), 30 deletions(-) - -Index: strace-4.24/xlat/mount_flags.in -=================================================================== ---- strace-4.24.orig/xlat/mount_flags.in 2018-04-24 02:35:27.000000000 +0200 -+++ strace-4.24/xlat/mount_flags.in 2019-12-02 18:37:39.403710911 +0100 -@@ -1,30 +1,30 @@ --MS_RDONLY 1 --MS_NOSUID 2 --MS_NODEV 4 --MS_NOEXEC 8 --MS_SYNCHRONOUS 16 --MS_REMOUNT 32 --MS_MANDLOCK 64 --MS_DIRSYNC 128 --MS_NOATIME 1024 --MS_NODIRATIME 2048 --MS_BIND 4096 --MS_MOVE 8192 --MS_REC 16384 --MS_SILENT 32768 --MS_POSIXACL (1<<16) --MS_UNBINDABLE (1<<17) --MS_PRIVATE (1<<18) --MS_SLAVE (1<<19) --MS_SHARED (1<<20) --MS_RELATIME (1<<21) --MS_KERNMOUNT (1<<22) --MS_I_VERSION (1<<23) --MS_STRICTATIME (1<<24) --MS_LAZYTIME (1<<25) --MS_SUBMOUNT (1<<26) --MS_NOREMOTELOCK (1<<27) --MS_NOSEC (1<<28) --MS_BORN (1<<29) --MS_ACTIVE (1<<30) --MS_NOUSER (1<<31) -+MS_RDONLY (1U<<0) -+MS_NOSUID (1U<<1) -+MS_NODEV (1U<<2) -+MS_NOEXEC (1U<<3) -+MS_SYNCHRONOUS (1U<<4) -+MS_REMOUNT (1U<<5) -+MS_MANDLOCK (1U<<6) -+MS_DIRSYNC (1U<<7) -+MS_NOATIME (1U<<10) -+MS_NODIRATIME (1U<<11) -+MS_BIND (1U<<12) -+MS_MOVE (1U<<13) -+MS_REC (1U<<14) -+MS_SILENT (1U<<15) -+MS_POSIXACL (1U<<16) -+MS_UNBINDABLE (1U<<17) -+MS_PRIVATE (1U<<18) -+MS_SLAVE (1U<<19) -+MS_SHARED (1U<<20) -+MS_RELATIME (1U<<21) -+MS_KERNMOUNT (1U<<22) -+MS_I_VERSION (1U<<23) -+MS_STRICTATIME (1U<<24) -+MS_LAZYTIME (1U<<25) -+MS_SUBMOUNT (1U<<26) -+MS_NOREMOTELOCK (1U<<27) -+MS_NOSEC (1U<<28) -+MS_BORN (1U<<29) -+MS_ACTIVE (1U<<30) -+MS_NOUSER (1U<<31) -Index: strace-4.24/xlat/mount_flags.h -=================================================================== ---- strace-4.24.orig/xlat/mount_flags.h 2018-08-14 02:44:19.000000000 +0200 -+++ strace-4.24/xlat/mount_flags.h 2019-12-02 18:38:36.102900164 +0100 -@@ -5,213 +5,213 @@ - - #if defined(MS_RDONLY) || (defined(HAVE_DECL_MS_RDONLY) && HAVE_DECL_MS_RDONLY) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_RDONLY) == (1), "MS_RDONLY != 1"); -+static_assert((MS_RDONLY) == ((1U<<0)), "MS_RDONLY != (1U<<0)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_RDONLY 1 -+# define MS_RDONLY (1U<<0) - #endif - #if defined(MS_NOSUID) || (defined(HAVE_DECL_MS_NOSUID) && HAVE_DECL_MS_NOSUID) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NOSUID) == (2), "MS_NOSUID != 2"); -+static_assert((MS_NOSUID) == ((1U<<1)), "MS_NOSUID != (1U<<1)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NOSUID 2 -+# define MS_NOSUID (1U<<1) - #endif - #if defined(MS_NODEV) || (defined(HAVE_DECL_MS_NODEV) && HAVE_DECL_MS_NODEV) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NODEV) == (4), "MS_NODEV != 4"); -+static_assert((MS_NODEV) == ((1U<<2)), "MS_NODEV != (1U<<2)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NODEV 4 -+# define MS_NODEV (1U<<2) - #endif - #if defined(MS_NOEXEC) || (defined(HAVE_DECL_MS_NOEXEC) && HAVE_DECL_MS_NOEXEC) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NOEXEC) == (8), "MS_NOEXEC != 8"); -+static_assert((MS_NOEXEC) == ((1U<<3)), "MS_NOEXEC != (1U<<3)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NOEXEC 8 -+# define MS_NOEXEC (1U<<3) - #endif - #if defined(MS_SYNCHRONOUS) || (defined(HAVE_DECL_MS_SYNCHRONOUS) && HAVE_DECL_MS_SYNCHRONOUS) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_SYNCHRONOUS) == (16), "MS_SYNCHRONOUS != 16"); -+static_assert((MS_SYNCHRONOUS) == ((1U<<4)), "MS_SYNCHRONOUS != (1U<<4)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_SYNCHRONOUS 16 -+# define MS_SYNCHRONOUS (1U<<4) - #endif - #if defined(MS_REMOUNT) || (defined(HAVE_DECL_MS_REMOUNT) && HAVE_DECL_MS_REMOUNT) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_REMOUNT) == (32), "MS_REMOUNT != 32"); -+static_assert((MS_REMOUNT) == ((1U<<5)), "MS_REMOUNT != (1U<<5)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_REMOUNT 32 -+# define MS_REMOUNT (1U<<5) - #endif - #if defined(MS_MANDLOCK) || (defined(HAVE_DECL_MS_MANDLOCK) && HAVE_DECL_MS_MANDLOCK) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_MANDLOCK) == (64), "MS_MANDLOCK != 64"); -+static_assert((MS_MANDLOCK) == ((1U<<6)), "MS_MANDLOCK != (1U<<6)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_MANDLOCK 64 -+# define MS_MANDLOCK (1U<<6) - #endif - #if defined(MS_DIRSYNC) || (defined(HAVE_DECL_MS_DIRSYNC) && HAVE_DECL_MS_DIRSYNC) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_DIRSYNC) == (128), "MS_DIRSYNC != 128"); -+static_assert((MS_DIRSYNC) == ((1U<<7)), "MS_DIRSYNC != (1U<<7)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_DIRSYNC 128 -+# define MS_DIRSYNC (1U<<7) - #endif - #if defined(MS_NOATIME) || (defined(HAVE_DECL_MS_NOATIME) && HAVE_DECL_MS_NOATIME) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NOATIME) == (1024), "MS_NOATIME != 1024"); -+static_assert((MS_NOATIME) == ((1U<<10)), "MS_NOATIME != (1U<<10)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NOATIME 1024 -+# define MS_NOATIME (1U<<10) - #endif - #if defined(MS_NODIRATIME) || (defined(HAVE_DECL_MS_NODIRATIME) && HAVE_DECL_MS_NODIRATIME) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NODIRATIME) == (2048), "MS_NODIRATIME != 2048"); -+static_assert((MS_NODIRATIME) == ((1U<<11)), "MS_NODIRATIME != (1U<<11)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NODIRATIME 2048 -+# define MS_NODIRATIME (1U<<11) - #endif - #if defined(MS_BIND) || (defined(HAVE_DECL_MS_BIND) && HAVE_DECL_MS_BIND) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_BIND) == (4096), "MS_BIND != 4096"); -+static_assert((MS_BIND) == ((1U<<12)), "MS_BIND != (1U<<12)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_BIND 4096 -+# define MS_BIND (1U<<12) - #endif - #if defined(MS_MOVE) || (defined(HAVE_DECL_MS_MOVE) && HAVE_DECL_MS_MOVE) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_MOVE) == (8192), "MS_MOVE != 8192"); -+static_assert((MS_MOVE) == ((1U<<13)), "MS_MOVE != (1U<<13)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_MOVE 8192 -+# define MS_MOVE (1U<<13) - #endif - #if defined(MS_REC) || (defined(HAVE_DECL_MS_REC) && HAVE_DECL_MS_REC) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_REC) == (16384), "MS_REC != 16384"); -+static_assert((MS_REC) == ((1U<<14)), "MS_REC != (1U<<14)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_REC 16384 -+# define MS_REC (1U<<14) - #endif - #if defined(MS_SILENT) || (defined(HAVE_DECL_MS_SILENT) && HAVE_DECL_MS_SILENT) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_SILENT) == (32768), "MS_SILENT != 32768"); -+static_assert((MS_SILENT) == ((1U<<15)), "MS_SILENT != (1U<<15)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_SILENT 32768 -+# define MS_SILENT (1U<<15) - #endif - #if defined(MS_POSIXACL) || (defined(HAVE_DECL_MS_POSIXACL) && HAVE_DECL_MS_POSIXACL) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_POSIXACL) == ((1<<16)), "MS_POSIXACL != (1<<16)"); -+static_assert((MS_POSIXACL) == ((1U<<16)), "MS_POSIXACL != (1U<<16)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_POSIXACL (1<<16) -+# define MS_POSIXACL (1U<<16) - #endif - #if defined(MS_UNBINDABLE) || (defined(HAVE_DECL_MS_UNBINDABLE) && HAVE_DECL_MS_UNBINDABLE) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_UNBINDABLE) == ((1<<17)), "MS_UNBINDABLE != (1<<17)"); -+static_assert((MS_UNBINDABLE) == ((1U<<17)), "MS_UNBINDABLE != (1U<<17)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_UNBINDABLE (1<<17) -+# define MS_UNBINDABLE (1U<<17) - #endif - #if defined(MS_PRIVATE) || (defined(HAVE_DECL_MS_PRIVATE) && HAVE_DECL_MS_PRIVATE) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_PRIVATE) == ((1<<18)), "MS_PRIVATE != (1<<18)"); -+static_assert((MS_PRIVATE) == ((1U<<18)), "MS_PRIVATE != (1U<<18)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_PRIVATE (1<<18) -+# define MS_PRIVATE (1U<<18) - #endif - #if defined(MS_SLAVE) || (defined(HAVE_DECL_MS_SLAVE) && HAVE_DECL_MS_SLAVE) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_SLAVE) == ((1<<19)), "MS_SLAVE != (1<<19)"); -+static_assert((MS_SLAVE) == ((1U<<19)), "MS_SLAVE != (1U<<19)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_SLAVE (1<<19) -+# define MS_SLAVE (1U<<19) - #endif - #if defined(MS_SHARED) || (defined(HAVE_DECL_MS_SHARED) && HAVE_DECL_MS_SHARED) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_SHARED) == ((1<<20)), "MS_SHARED != (1<<20)"); -+static_assert((MS_SHARED) == ((1U<<20)), "MS_SHARED != (1U<<20)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_SHARED (1<<20) -+# define MS_SHARED (1U<<20) - #endif - #if defined(MS_RELATIME) || (defined(HAVE_DECL_MS_RELATIME) && HAVE_DECL_MS_RELATIME) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_RELATIME) == ((1<<21)), "MS_RELATIME != (1<<21)"); -+static_assert((MS_RELATIME) == ((1U<<21)), "MS_RELATIME != (1U<<21)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_RELATIME (1<<21) -+# define MS_RELATIME (1U<<21) - #endif - #if defined(MS_KERNMOUNT) || (defined(HAVE_DECL_MS_KERNMOUNT) && HAVE_DECL_MS_KERNMOUNT) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_KERNMOUNT) == ((1<<22)), "MS_KERNMOUNT != (1<<22)"); -+static_assert((MS_KERNMOUNT) == ((1U<<22)), "MS_KERNMOUNT != (1U<<22)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_KERNMOUNT (1<<22) -+# define MS_KERNMOUNT (1U<<22) - #endif - #if defined(MS_I_VERSION) || (defined(HAVE_DECL_MS_I_VERSION) && HAVE_DECL_MS_I_VERSION) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_I_VERSION) == ((1<<23)), "MS_I_VERSION != (1<<23)"); -+static_assert((MS_I_VERSION) == ((1U<<23)), "MS_I_VERSION != (1U<<23)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_I_VERSION (1<<23) -+# define MS_I_VERSION (1U<<23) - #endif - #if defined(MS_STRICTATIME) || (defined(HAVE_DECL_MS_STRICTATIME) && HAVE_DECL_MS_STRICTATIME) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_STRICTATIME) == ((1<<24)), "MS_STRICTATIME != (1<<24)"); -+static_assert((MS_STRICTATIME) == ((1U<<24)), "MS_STRICTATIME != (1U<<24)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_STRICTATIME (1<<24) -+# define MS_STRICTATIME (1U<<24) - #endif - #if defined(MS_LAZYTIME) || (defined(HAVE_DECL_MS_LAZYTIME) && HAVE_DECL_MS_LAZYTIME) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_LAZYTIME) == ((1<<25)), "MS_LAZYTIME != (1<<25)"); -+static_assert((MS_LAZYTIME) == ((1U<<25)), "MS_LAZYTIME != (1U<<25)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_LAZYTIME (1<<25) -+# define MS_LAZYTIME (1U<<25) - #endif - #if defined(MS_SUBMOUNT) || (defined(HAVE_DECL_MS_SUBMOUNT) && HAVE_DECL_MS_SUBMOUNT) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_SUBMOUNT) == ((1<<26)), "MS_SUBMOUNT != (1<<26)"); -+static_assert((MS_SUBMOUNT) == ((1U<<26)), "MS_SUBMOUNT != (1U<<26)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_SUBMOUNT (1<<26) -+# define MS_SUBMOUNT (1U<<26) - #endif - #if defined(MS_NOREMOTELOCK) || (defined(HAVE_DECL_MS_NOREMOTELOCK) && HAVE_DECL_MS_NOREMOTELOCK) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NOREMOTELOCK) == ((1<<27)), "MS_NOREMOTELOCK != (1<<27)"); -+static_assert((MS_NOREMOTELOCK) == ((1U<<27)), "MS_NOREMOTELOCK != (1U<<27)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NOREMOTELOCK (1<<27) -+# define MS_NOREMOTELOCK (1U<<27) - #endif - #if defined(MS_NOSEC) || (defined(HAVE_DECL_MS_NOSEC) && HAVE_DECL_MS_NOSEC) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NOSEC) == ((1<<28)), "MS_NOSEC != (1<<28)"); -+static_assert((MS_NOSEC) == ((1U<<28)), "MS_NOSEC != (1U<<28)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NOSEC (1<<28) -+# define MS_NOSEC (1U<<28) - #endif - #if defined(MS_BORN) || (defined(HAVE_DECL_MS_BORN) && HAVE_DECL_MS_BORN) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_BORN) == ((1<<29)), "MS_BORN != (1<<29)"); -+static_assert((MS_BORN) == ((1U<<29)), "MS_BORN != (1U<<29)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_BORN (1<<29) -+# define MS_BORN (1U<<29) - #endif - #if defined(MS_ACTIVE) || (defined(HAVE_DECL_MS_ACTIVE) && HAVE_DECL_MS_ACTIVE) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_ACTIVE) == ((1<<30)), "MS_ACTIVE != (1<<30)"); -+static_assert((MS_ACTIVE) == ((1U<<30)), "MS_ACTIVE != (1U<<30)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_ACTIVE (1<<30) -+# define MS_ACTIVE (1U<<30) - #endif - #if defined(MS_NOUSER) || (defined(HAVE_DECL_MS_NOUSER) && HAVE_DECL_MS_NOUSER) - DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE --static_assert((MS_NOUSER) == ((1<<31)), "MS_NOUSER != (1<<31)"); -+static_assert((MS_NOUSER) == ((1U<<31)), "MS_NOUSER != (1U<<31)"); - DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE - #else --# define MS_NOUSER (1<<31) -+# define MS_NOUSER (1U<<31) - #endif - - #ifndef XLAT_MACROS_ONLY diff --git a/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch b/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch deleted file mode 100644 index 17fd6cc..0000000 --- a/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 69b2c33a77fa687feb41fafdbe187013aa812384 Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Tue, 7 Jan 2020 18:54:55 +0000 -Subject: [PATCH] unwind-libdw: fix initialization of libdwfl cache - -This fixes stack trace printing for early syscalls that precede -the first syscall from memory mapping or execve families. - -* unwind-libdw.c (tcb_init): Set struct ctx.last_proc_updating -to a value different from mapping_generation so that libdwfl cache -is properly initialized before the first use. -* NEWS: Mention this fix. - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1788636 ---- -Backport changes: - - NEWS hunk has been dropped. - ---- - NEWS | 2 ++ - unwind-libdw.c | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) - -Index: strace-4.24/unwind-libdw.c -=================================================================== ---- strace-4.24.orig/unwind-libdw.c 2020-01-23 12:55:01.922338273 +0100 -+++ strace-4.24/unwind-libdw.c 2020-01-23 12:55:06.131299136 +0100 -@@ -69,7 +69,7 @@ - - struct ctx *ctx = xmalloc(sizeof(*ctx)); - ctx->dwfl = dwfl; -- ctx->last_proc_updating = 0; -+ ctx->last_proc_updating = mapping_generation - 1; - return ctx; - } - diff --git a/SOURCES/0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch b/SOURCES/0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch deleted file mode 100644 index a9add6e..0000000 --- a/SOURCES/0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 35e080ae319d25c1df82855cda3a1bb014e90ba6 Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Wed, 8 Jan 2020 00:41:58 +0000 -Subject: [PATCH] syscall: do not capture stack trace while the tracee executes - strace code - -* syscall.c (syscall_entering_trace) [ENABLE_STACKTRACE]: Do not capture -stack trace when TCB_CHECK_EXEC_SYSCALL flag is set. ---- - syscall.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/syscall.c b/syscall.c -index fadd3b5..a8fb4f1 100644 ---- a/syscall.c -+++ b/syscall.c -@@ -620,7 +620,7 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig) - if (hide_log(tcp)) { - /* - * Restrain from fault injection -- * while the trace executes strace code. -+ * while the tracee executes strace code. - */ - tcp->qual_flg &= ~QUAL_INJECT; - -@@ -655,9 +655,10 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig) - } - - #ifdef ENABLE_STACKTRACE -- if (stack_trace_enabled) { -- if (tcp_sysent(tcp)->sys_flags & STACKTRACE_CAPTURE_ON_ENTER) -- unwind_tcb_capture(tcp); -+ if (stack_trace_enabled && -+ !check_exec_syscall(tcp) && -+ tcp_sysent(tcp)->sys_flags & STACKTRACE_CAPTURE_ON_ENTER) { -+ unwind_tcb_capture(tcp); - } - #endif - --- -2.1.4 - diff --git a/SOURCES/0041-tests-add-strace-k-p-test.patch b/SOURCES/0041-tests-add-strace-k-p-test.patch deleted file mode 100644 index 3f56199..0000000 --- a/SOURCES/0041-tests-add-strace-k-p-test.patch +++ /dev/null @@ -1,761 +0,0 @@ -From 8e515c744935fe67e6a1b941f4c5414472c163b7 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Mon, 20 Jan 2020 16:19:40 +0100 -Subject: [PATCH] tests: add strace-k-p test - -Add a check of the stack unwinding for attached processes. - -* tests/stack-fcall-attach.c: New file. -* tests/strace-k-p.expected: Likewise. -* tests/strace-k-p.test: New test. -* tests/Makefile.am (EXTRA_DIST): Add strace-k-p.expected and strace-k-p.test. -(STACKTRACE_TESTS): Add strace-k-p.test -(check_PROGRAMS): Add stack-fcall-attach. -(stack_fcall_attach_SOURCES): New variable. -* tests/stack-fcall.c: Include "tests.h" and . -[!ATTACH_MODE] (ATTACH_MODE): Define to 0. -(main) [ATTACH_MODE]: Wait a bit. -* tests/strace-k.test: Add attach mode. - -Complements: v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache" ---- -Backport changes: - * "SIGURG" line has been removed from tests/strace-k-p.expected, as it requires - v4.25~22 "Print stack traces on signals" and v4.25~21 "tests: check stack - unwinding for signals". - * "chdir" usage in tests/strace-k-p.expected has been replaced with "getpid", - as it is the syscall that was used in the stack-fcall.c at the time. - * Added the respective changes to tests/Makefile.in file. - * The changes to tests/stack-fcall-attach.c, tests/strace-k-p.expected, - tests/strace-k-p.test, tests/Makefile.am, tests/stack-fcall.c, - and tests/strace-k.test have been copied over to tests-m32 and tests-mx32 - directories. - ---- - tests/Makefile.am | 8 +++++++- - tests/stack-fcall-attach.c | 2 ++ - tests/stack-fcall.c | 11 +++++++++++ - tests/strace-k-p.expected | 2 ++ - tests/strace-k-p.test | 13 +++++++++++++ - tests/strace-k.test | 17 ++++++++++++++++- - 6 files changed, 51 insertions(+), 2 deletions(-) - create mode 100644 tests/stack-fcall-attach.c - create mode 100644 tests/strace-k-p.expected - create mode 100755 tests/strace-k-p.test - -Index: strace-5.1/tests/Makefile.am -=================================================================== ---- strace-5.1.orig/tests/Makefile.am 2020-01-23 16:56:22.081268798 +0100 -+++ strace-5.1/tests/Makefile.am 2020-01-23 17:03:50.786051167 +0100 -@@ -156,6 +156,7 @@ - signal_receive \ - sleep \ - stack-fcall \ -+ stack-fcall-attach \ - stack-fcall-mangled \ - threads-execve \ - unblock_reset_raise \ -@@ -198,6 +199,9 @@ - stack_fcall_SOURCES = stack-fcall.c \ - stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c - -+stack_fcall_attach_SOURCES = stack-fcall-attach.c \ -+ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c -+ - stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ - stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ - stack-fcall-mangled-2.c stack-fcall-mangled-3.c -@@ -205,7 +209,7 @@ - include gen_tests.am - - if ENABLE_STACKTRACE --STACKTRACE_TESTS = strace-k.test -+STACKTRACE_TESTS = strace-k.test strace-k-p.test - if USE_DEMANGLE - STACKTRACE_TESTS += strace-k-demangle.test - endif -@@ -428,6 +432,8 @@ - strace-ff.expected \ - strace-k-demangle.expected \ - strace-k-demangle.test \ -+ strace-k-p.expected \ -+ strace-k-p.test \ - strace-k.expected \ - strace-k.test \ - strace-r.expected \ -Index: strace-5.1/tests/stack-fcall-attach.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests/stack-fcall-attach.c 2020-01-23 17:03:50.786051167 +0100 -@@ -0,0 +1,2 @@ -+#define ATTACH_MODE 1 -+#include "stack-fcall.c" -Index: strace-5.1/tests/stack-fcall.c -=================================================================== ---- strace-5.1.orig/tests/stack-fcall.c 2020-01-23 17:03:50.787051163 +0100 -+++ strace-5.1/tests/stack-fcall.c 2020-01-23 17:04:34.525868669 +0100 -@@ -5,10 +5,21 @@ - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -+#include "tests.h" -+#include - #include "stack-fcall.h" - -+#ifndef ATTACH_MODE -+# define ATTACH_MODE 0 -+#endif -+ - int main(void) - { -+#if ATTACH_MODE -+ /* sleep a bit to let the tracer time to catch up */ -+ sleep(1); -+#endif -+ - f0(0); - f0(1); - return 0; -Index: strace-5.1/tests/strace-k-p.expected -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests/strace-k-p.expected 2020-01-23 17:14:13.570831178 +0100 -@@ -0,0 +1,2 @@ -+^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main -+^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main -Index: strace-5.1/tests/strace-k-p.test -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests/strace-k-p.test 2020-01-23 17:03:50.787051163 +0100 -@@ -0,0 +1,13 @@ -+#!/bin/sh -+# -+# Check strace -k for attached tracees. -+# -+# Copyright (c) 2020 The strace developers. -+# All rights reserved. -+# -+# SPDX-License-Identifier: GPL-2.0-or-later -+ -+ATTACH_MODE=1 -+test_prog=../stack-fcall-attach -+ -+. "${srcdir=.}"/strace-k.test -Index: strace-5.1/tests/strace-k.test -=================================================================== ---- strace-5.1.orig/tests/strace-k.test 2020-01-23 16:56:22.081268798 +0100 -+++ strace-5.1/tests/strace-k.test 2020-01-23 17:05:26.569651525 +0100 -@@ -11,6 +11,8 @@ - - . "${srcdir=.}/init.sh" - -+: "${ATTACH_MODE=0}" -+ - # strace -k is implemented using /proc/$pid/maps - [ -f /proc/self/maps ] || - framework_skip_ '/proc/self/maps is not available' -@@ -20,7 +22,19 @@ - check_prog tr - - run_prog "${test_prog=../stack-fcall}" --run_strace -e chdir -k $args -+if [ "x${ATTACH_MODE}" = "x1" ]; then -+ ../set_ptracer_any "${test_prog}" >> "$EXP" & -+ tracee_pid=$! -+ -+ while ! [ -s "$EXP" ]; do -+ kill -0 "$tracee_pid" 2> /dev/null || -+ fail_ 'set_ptracer_any failed' -+ done -+ -+ run_strace -e chdir -k -p "$tracee_pid" -+else -+ run_strace -e chdir -k $args -+fi - - expected="$srcdir/$NAME.expected" - awk ' -Index: strace-5.1/tests/Makefile.in -=================================================================== ---- strace-5.1.orig/tests/Makefile.in 2020-01-23 16:56:22.086268802 +0100 -+++ strace-5.1/tests/Makefile.in 2020-01-23 17:07:45.456135366 +0100 -@@ -144,9 +144,9 @@ - seccomp-strict$(EXEEXT) select-P$(EXEEXT) \ - set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \ - set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \ -- stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \ -- threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \ -- unix-pair-send-recv$(EXEEXT) \ -+ stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ -+ stack-fcall-mangled$(EXEEXT) threads-execve$(EXEEXT) \ -+ unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \ - unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \ - wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT) - @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test -@@ -2604,6 +2604,12 @@ - stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS) - stack_fcall_LDADD = $(LDADD) - stack_fcall_DEPENDENCIES = libtests.a -+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \ -+ stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \ -+ stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT) -+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS) -+stack_fcall_attach_LDADD = $(LDADD) -+stack_fcall_attach_DEPENDENCIES = libtests.a - am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \ - stack-fcall-mangled-0.$(OBJEXT) \ - stack-fcall-mangled-1.$(OBJEXT) \ -@@ -3453,7 +3459,7 @@ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ -- $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ -+ $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ -@@ -3620,7 +3626,7 @@ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ -- $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ -+ $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ -@@ -3848,7 +3854,8 @@ - bases=`echo $$bases` - RECHECK_LOGS = $(TEST_LOGS) - AM_RECURSIVE_TARGETS = check recheck --@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1) -+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \ -+@ENABLE_STACKTRACE_TRUE@ $(am__append_1) - TEST_SUITE_LOG = test-suite.log - TEST_EXTENSIONS = @EXEEXT@ .test - am__test_logs1 = $(TESTS:=.log) -@@ -4634,6 +4641,9 @@ - stack_fcall_SOURCES = stack-fcall.c \ - stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c - -+stack_fcall_attach_SOURCES = stack-fcall-attach.c \ -+ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c -+ - stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ - stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ - stack-fcall-mangled-2.c stack-fcall-mangled-3.c -@@ -4863,7 +4873,7 @@ - xettimeofday.gen.test - @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = - @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \ --@ENABLE_STACKTRACE_TRUE@ $(am__append_1) -+@ENABLE_STACKTRACE_TRUE@ strace-k-p.test $(am__append_1) - DECODER_TESTS = \ - bpf-success-v.test \ - bpf-success.test \ -@@ -5074,6 +5084,8 @@ - strace-ff.expected \ - strace-k-demangle.expected \ - strace-k-demangle.test \ -+ strace-k-p.expected \ -+ strace-k-p.test \ - strace-k.expected \ - strace-k.test \ - strace-r.expected \ -@@ -7345,6 +7357,10 @@ - @rm -f stack-fcall$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS) - -+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) -+ @rm -f stack-fcall-attach$(EXEEXT) -+ $(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS) -+ - stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) - @rm -f stack-fcall-mangled$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS) -@@ -8193,6 +8209,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker -Index: strace-5.1/tests-m32/Makefile.am -=================================================================== ---- strace-5.1.orig/tests-m32/Makefile.am 2020-01-23 16:56:22.087268803 +0100 -+++ strace-5.1/tests-m32/Makefile.am 2020-01-23 17:03:50.790051150 +0100 -@@ -156,6 +156,7 @@ - signal_receive \ - sleep \ - stack-fcall \ -+ stack-fcall-attach \ - stack-fcall-mangled \ - threads-execve \ - unblock_reset_raise \ -@@ -198,6 +199,9 @@ - stack_fcall_SOURCES = stack-fcall.c \ - stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c - -+stack_fcall_attach_SOURCES = stack-fcall-attach.c \ -+ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c -+ - stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ - stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ - stack-fcall-mangled-2.c stack-fcall-mangled-3.c -@@ -205,7 +209,7 @@ - include gen_tests.am - - if ENABLE_STACKTRACE --STACKTRACE_TESTS = strace-k.test -+STACKTRACE_TESTS = strace-k.test strace-k-p.test - if USE_DEMANGLE - STACKTRACE_TESTS += strace-k-demangle.test - endif -@@ -428,6 +432,8 @@ - strace-ff.expected \ - strace-k-demangle.expected \ - strace-k-demangle.test \ -+ strace-k-p.expected \ -+ strace-k-p.test \ - strace-k.expected \ - strace-k.test \ - strace-r.expected \ -Index: strace-5.1/tests-m32/Makefile.in -=================================================================== ---- strace-5.1.orig/tests-m32/Makefile.in 2020-01-23 16:56:22.089268805 +0100 -+++ strace-5.1/tests-m32/Makefile.in 2020-01-23 18:24:15.534972421 +0100 -@@ -144,9 +144,9 @@ - seccomp-strict$(EXEEXT) select-P$(EXEEXT) \ - set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \ - set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \ -- stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \ -- threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \ -- unix-pair-send-recv$(EXEEXT) \ -+ stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ -+ stack-fcall-mangled$(EXEEXT) threads-execve$(EXEEXT) \ -+ unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \ - unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \ - wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT) - @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test -@@ -2604,6 +2604,12 @@ - stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS) - stack_fcall_LDADD = $(LDADD) - stack_fcall_DEPENDENCIES = libtests.a -+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \ -+ stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \ -+ stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT) -+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS) -+stack_fcall_attach_LDADD = $(LDADD) -+stack_fcall_attach_DEPENDENCIES = libtests.a - am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \ - stack-fcall-mangled-0.$(OBJEXT) \ - stack-fcall-mangled-1.$(OBJEXT) \ -@@ -3453,7 +3459,7 @@ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ -- $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ -+ $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ -@@ -3620,7 +3626,7 @@ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ -- $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ -+ $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ -@@ -3848,7 +3854,8 @@ - bases=`echo $$bases` - RECHECK_LOGS = $(TEST_LOGS) - AM_RECURSIVE_TARGETS = check recheck --@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1) -+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \ -+@ENABLE_STACKTRACE_TRUE@ $(am__append_1) - TEST_SUITE_LOG = test-suite.log - TEST_EXTENSIONS = @EXEEXT@ .test - am__test_logs1 = $(TESTS:=.log) -@@ -4634,6 +4641,9 @@ - stack_fcall_SOURCES = stack-fcall.c \ - stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c - -+stack_fcall_attach_SOURCES = stack-fcall-attach.c \ -+ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c -+ - stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ - stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ - stack-fcall-mangled-2.c stack-fcall-mangled-3.c -@@ -4863,7 +4873,7 @@ - xettimeofday.gen.test - @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = - @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \ --@ENABLE_STACKTRACE_TRUE@ $(am__append_1) -+@ENABLE_STACKTRACE_TRUE@ strace-k-p.test $(am__append_1) - DECODER_TESTS = \ - bpf-success-v.test \ - bpf-success.test \ -@@ -5074,6 +5084,8 @@ - strace-ff.expected \ - strace-k-demangle.expected \ - strace-k-demangle.test \ -+ strace-k-p.expected \ -+ strace-k-p.test \ - strace-k.expected \ - strace-k.test \ - strace-r.expected \ -@@ -7345,6 +7357,10 @@ - @rm -f stack-fcall$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS) - -+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) -+ @rm -f stack-fcall-attach$(EXEEXT) -+ $(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS) -+ - stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) - @rm -f stack-fcall-mangled$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS) -@@ -8193,6 +8209,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker -@@ -9777,6 +9794,7 @@ - -rm -f ./$(DEPDIR)/stack-fcall-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-2.Po - -rm -f ./$(DEPDIR)/stack-fcall-3.Po -+ -rm -f ./$(DEPDIR)/stack-fcall-attach.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po -@@ -10468,6 +10486,7 @@ - -rm -f ./$(DEPDIR)/stack-fcall-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-2.Po - -rm -f ./$(DEPDIR)/stack-fcall-3.Po -+ -rm -f ./$(DEPDIR)/stack-fcall-attach.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po -Index: strace-5.1/tests-mx32/Makefile.am -=================================================================== ---- strace-5.1.orig/tests-mx32/Makefile.am 2020-01-23 16:56:22.090268805 +0100 -+++ strace-5.1/tests-mx32/Makefile.am 2020-01-23 17:03:50.793051138 +0100 -@@ -156,6 +156,7 @@ - signal_receive \ - sleep \ - stack-fcall \ -+ stack-fcall-attach \ - stack-fcall-mangled \ - threads-execve \ - unblock_reset_raise \ -@@ -198,6 +199,9 @@ - stack_fcall_SOURCES = stack-fcall.c \ - stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c - -+stack_fcall_attach_SOURCES = stack-fcall-attach.c \ -+ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c -+ - stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ - stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ - stack-fcall-mangled-2.c stack-fcall-mangled-3.c -@@ -205,7 +209,7 @@ - include gen_tests.am - - if ENABLE_STACKTRACE --STACKTRACE_TESTS = strace-k.test -+STACKTRACE_TESTS = strace-k.test strace-k-p.test - if USE_DEMANGLE - STACKTRACE_TESTS += strace-k-demangle.test - endif -@@ -428,6 +432,8 @@ - strace-ff.expected \ - strace-k-demangle.expected \ - strace-k-demangle.test \ -+ strace-k-p.expected \ -+ strace-k-p.test \ - strace-k.expected \ - strace-k.test \ - strace-r.expected \ -Index: strace-5.1/tests-mx32/Makefile.in -=================================================================== ---- strace-5.1.orig/tests-mx32/Makefile.in 2020-01-23 16:56:22.092268807 +0100 -+++ strace-5.1/tests-mx32/Makefile.in 2020-01-23 17:13:00.583709367 +0100 -@@ -144,9 +144,9 @@ - seccomp-strict$(EXEEXT) select-P$(EXEEXT) \ - set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \ - set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \ -- stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \ -- threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \ -- unix-pair-send-recv$(EXEEXT) \ -+ stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ -+ stack-fcall-mangled$(EXEEXT) threads-execve$(EXEEXT) \ -+ unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \ - unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \ - wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT) - @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test -@@ -2604,6 +2604,12 @@ - stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS) - stack_fcall_LDADD = $(LDADD) - stack_fcall_DEPENDENCIES = libtests.a -+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \ -+ stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \ -+ stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT) -+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS) -+stack_fcall_attach_LDADD = $(LDADD) -+stack_fcall_attach_DEPENDENCIES = libtests.a - am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \ - stack-fcall-mangled-0.$(OBJEXT) \ - stack-fcall-mangled-1.$(OBJEXT) \ -@@ -3453,7 +3459,7 @@ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ -- $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ -+ $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ -@@ -3620,7 +3626,7 @@ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ -- $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ -+ $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ -@@ -4634,6 +4640,10 @@ - stack_fcall_SOURCES = stack-fcall.c \ - stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c - -+stack_fcall_attach_SOURCES = stack-fcall-attach.c \ -+ stack-fcall-0.c stack-fcall-1.c \ -+ stack-fcall-2.c stack-fcall-3.c -+ - stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ - stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ - stack-fcall-mangled-2.c stack-fcall-mangled-3.c -@@ -7345,6 +7355,10 @@ - @rm -f stack-fcall$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS) - -+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) -+ @rm -f stack-fcall$(EXEEXT) -+ $(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS) -+ - stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) - @rm -f stack-fcall-mangled$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS) -@@ -8193,6 +8207,7 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker -@@ -9777,6 +9792,7 @@ - -rm -f ./$(DEPDIR)/stack-fcall-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-2.Po - -rm -f ./$(DEPDIR)/stack-fcall-3.Po -+ -rm -f ./$(DEPDIR)/stack-fcall-attach.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po -@@ -10468,6 +10484,7 @@ - -rm -f ./$(DEPDIR)/stack-fcall-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-2.Po - -rm -f ./$(DEPDIR)/stack-fcall-3.Po -+ -rm -f ./$(DEPDIR)/stack-fcall-attach.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po - -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po -Index: strace-5.1/tests-m32/stack-fcall-attach.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests-m32/stack-fcall-attach.c 2020-01-23 17:03:50.796051125 +0100 -@@ -0,0 +1,2 @@ -+#define ATTACH_MODE 1 -+#include "stack-fcall.c" -Index: strace-5.1/tests-m32/stack-fcall.c -=================================================================== ---- strace-5.1.orig/tests-m32/stack-fcall.c 2020-01-23 17:03:50.796051125 +0100 -+++ strace-5.1/tests-m32/stack-fcall.c 2020-01-23 17:08:04.027080020 +0100 -@@ -5,10 +5,21 @@ - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -+#include "tests.h" -+#include - #include "stack-fcall.h" - -+#ifndef ATTACH_MODE -+# define ATTACH_MODE 0 -+#endif -+ - int main(void) - { -+#if ATTACH_MODE -+ /* sleep a bit to let the tracer time to catch up */ -+ sleep(1); -+#endif -+ - f0(0); - f0(1); - return 0; -Index: strace-5.1/tests-m32/strace-k-p.expected -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests-m32/strace-k-p.expected 2020-01-23 17:14:16.083835372 +0100 -@@ -0,0 +1,2 @@ -+^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main -+^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main -Index: strace-5.1/tests-m32/strace-k-p.test -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests-m32/strace-k-p.test 2020-01-23 17:03:50.796051125 +0100 -@@ -0,0 +1,13 @@ -+#!/bin/sh -+# -+# Check strace -k for attached tracees. -+# -+# Copyright (c) 2020 The strace developers. -+# All rights reserved. -+# -+# SPDX-License-Identifier: GPL-2.0-or-later -+ -+ATTACH_MODE=1 -+test_prog=../stack-fcall-attach -+ -+. "${srcdir=.}"/strace-k.test -Index: strace-5.1/tests-m32/strace-k.test -=================================================================== ---- strace-5.1.orig/tests-m32/strace-k.test 2020-01-23 17:03:50.797051121 +0100 -+++ strace-5.1/tests-m32/strace-k.test 2020-01-23 17:13:44.509782677 +0100 -@@ -11,6 +11,8 @@ - - . "${srcdir=.}/init.sh" - -+: "${ATTACH_MODE=0}" -+ - # strace -k is implemented using /proc/$pid/maps - [ -f /proc/self/maps ] || - framework_skip_ '/proc/self/maps is not available' -@@ -20,7 +22,19 @@ - check_prog tr - - run_prog "${test_prog=../stack-fcall}" --run_strace -e chdir -k $args -+if [ "x${ATTACH_MODE}" = "x1" ]; then -+ ../set_ptracer_any "${test_prog}" >> "$EXP" & -+ tracee_pid=$! -+ -+ while ! [ -s "$EXP" ]; do -+ kill -0 "$tracee_pid" 2> /dev/null || -+ fail_ 'set_ptracer_any failed' -+ done -+ -+ run_strace -e chdir -k -p "$tracee_pid" -+else -+ run_strace -e chdir -k $args -+fi - - expected="$srcdir/$NAME.expected" - awk ' -Index: strace-5.1/tests-mx32/stack-fcall-attach.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests-mx32/stack-fcall-attach.c 2020-01-23 17:03:50.797051121 +0100 -@@ -0,0 +1,2 @@ -+#define ATTACH_MODE 1 -+#include "stack-fcall.c" -Index: strace-5.1/tests-mx32/stack-fcall.c -=================================================================== ---- strace-5.1.orig/tests-mx32/stack-fcall.c 2020-01-23 17:03:50.797051121 +0100 -+++ strace-5.1/tests-mx32/stack-fcall.c 2020-01-23 17:08:06.451072796 +0100 -@@ -5,10 +5,21 @@ - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -+#include "tests.h" -+#include - #include "stack-fcall.h" - -+#ifndef ATTACH_MODE -+# define ATTACH_MODE 0 -+#endif -+ - int main(void) - { -+#if ATTACH_MODE -+ /* sleep a bit to let the tracer time to catch up */ -+ sleep(1); -+#endif -+ - f0(0); - f0(1); - return 0; -Index: strace-5.1/tests-mx32/strace-k-p.expected -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests-mx32/strace-k-p.expected 2020-01-23 17:14:17.786838214 +0100 -@@ -0,0 +1,2 @@ -+^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main -+^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main -Index: strace-5.1/tests-mx32/strace-k-p.test -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ strace-5.1/tests-mx32/strace-k-p.test 2020-01-23 17:03:50.797051121 +0100 -@@ -0,0 +1,13 @@ -+#!/bin/sh -+# -+# Check strace -k for attached tracees. -+# -+# Copyright (c) 2020 The strace developers. -+# All rights reserved. -+# -+# SPDX-License-Identifier: GPL-2.0-or-later -+ -+ATTACH_MODE=1 -+test_prog=../stack-fcall-attach -+ -+. "${srcdir=.}"/strace-k.test -Index: strace-5.1/tests-mx32/strace-k.test -=================================================================== ---- strace-5.1.orig/tests-mx32/strace-k.test 2020-01-23 17:03:50.797051121 +0100 -+++ strace-5.1/tests-mx32/strace-k.test 2020-01-23 17:13:41.793778144 +0100 -@@ -11,6 +11,8 @@ - - . "${srcdir=.}/init.sh" - -+: "${ATTACH_MODE=0}" -+ - # strace -k is implemented using /proc/$pid/maps - [ -f /proc/self/maps ] || - framework_skip_ '/proc/self/maps is not available' -@@ -20,7 +22,19 @@ - check_prog tr - - run_prog "${test_prog=../stack-fcall}" --run_strace -e chdir -k $args -+if [ "x${ATTACH_MODE}" = "x1" ]; then -+ ../set_ptracer_any "${test_prog}" >> "$EXP" & -+ tracee_pid=$! -+ -+ while ! [ -s "$EXP" ]; do -+ kill -0 "$tracee_pid" 2> /dev/null || -+ fail_ 'set_ptracer_any failed' -+ done -+ -+ run_strace -e chdir -k -p "$tracee_pid" -+else -+ run_strace -e chdir -k $args -+fi - - expected="$srcdir/$NAME.expected" - awk ' diff --git a/SOURCES/0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch b/SOURCES/0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch deleted file mode 100644 index f802107..0000000 --- a/SOURCES/0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 5a9b0f1ef83300f853e77ada03515c8542c1cfe0 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Thu, 29 Aug 2019 19:03:51 +0200 -Subject: [PATCH] sockaddr: properly decode sockaddr_hci addresses without - hci_channel - -Before Linux commit v2.6.38-rc1~476^2~14^2~3^2~43^2~9, -struct sockaddr_hci did not contain hci_channel field. - -* configure.ac (AC_CHECK_HEADERS([bluetooth/bluetooth.h])): Add check -for struct sockaddr_hci.hci_channel. -* sockaddr.c (print_sockaddr_data_bt): Decode struct sockaddr_hci -without hci_channel field. -* tests/net-sockaddr.c (check_hci): Add check for struct sockaddr_hci -decoding without hci_channel field; guard hci_channel with #ifdef -HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL. -(check_raw): Remove "len++", as 4-byte AF_BLUETOOTH socket addresses are -interpreted as struct sockaddr_hci without hci_channel field. ---- - configure.ac | 3 +++ - sockaddr.c | 16 +++++++++++++--- - tests/net-sockaddr.c | 18 ++++++++++++++---- - 3 files changed, 30 insertions(+), 7 deletions(-) - -Index: strace-5.1/configure.ac -=================================================================== ---- strace-5.1.orig/configure.ac 2019-08-29 19:10:22.380362280 +0200 -+++ strace-5.1/configure.ac 2019-08-29 19:11:11.240744864 +0200 -@@ -465,6 +465,9 @@ - ]) - - AC_CHECK_HEADERS([bluetooth/bluetooth.h], [ -+ AC_CHECK_MEMBERS([struct sockaddr_hci.hci_channel],,, -+ [#include -+ #include ]) - AC_CHECK_MEMBERS([struct sockaddr_l2.l2_bdaddr_type],,, - [#include - #include ]) -Index: strace-5.1/sockaddr.c -=================================================================== ---- strace-5.1.orig/sockaddr.c 2019-08-29 19:11:11.240744864 +0200 -+++ strace-5.1/sockaddr.c 2019-08-29 19:13:01.275354429 +0200 -@@ -599,12 +599,21 @@ - }; - - switch (addrlen) { -+ case offsetofend(struct sockaddr_hci, hci_dev): - case sizeof(struct sockaddr_hci): { - const struct sockaddr_hci *const hci = buf; -- tprintf("hci_dev=htobs(%hu), hci_channel=", -- btohs(hci->hci_dev)); -- printxval_index(hci_channels, hci->hci_channel, -- "HCI_CHANNEL_???"); -+ tprintf("hci_dev=htobs(%hu)", btohs(hci->hci_dev)); -+ -+ /* -+ * hci_channel field has been introduced -+ * Linux commit in v2.6.38-rc1~476^2~14^2~3^2~43^2~9. -+ */ -+ if (addrlen == sizeof(struct sockaddr_hci)) { -+ tprints(", hci_channel="); -+ printxval_index(hci_channels, hci->hci_channel, -+ "HCI_CHANNEL_???"); -+ } -+ - break; - } - case sizeof(struct sockaddr_sco): { -Index: strace-5.1/tests/net-sockaddr.c -=================================================================== ---- strace-5.1.orig/tests/net-sockaddr.c 2019-08-29 19:10:22.380362280 +0200 -+++ strace-5.1/tests/net-sockaddr.c 2019-08-29 19:11:11.240744864 +0200 -@@ -543,11 +543,22 @@ - TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci); - hci->hci_family = AF_BLUETOOTH; - hci->hci_dev = htobs(h_port); -+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL - hci->hci_channel = HCI_CHANNEL_RAW; -+# endif - unsigned int len = sizeof(*hci); -- int ret = connect(-1, (void *) hci, len); -+ -+ int ret = connect(-1, (void *) hci, 4); -+ printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" -+ "}, 4) = %d EBADF (%m)\n", -+ h_port, ret); -+ -+ ret = connect(-1, (void *) hci, len); - printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" -- ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n", -+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL -+ ", hci_channel=HCI_CHANNEL_RAW" -+# endif -+ "}, %u) = %d EBADF (%m)\n", - h_port, len, ret); - } - -@@ -700,9 +711,8 @@ - " = %d EBADF (%m)\n", len, ret); - - u.sa->sa_family = AF_BLUETOOTH; -- ++len; - ret = connect(-1, (void *) u.st, len); -- printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)" -+ printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)" - " = %d EBADF (%m)\n", len, ret); - } - -Index: strace-5.1/tests-m32/net-sockaddr.c -=================================================================== ---- strace-5.1.orig/tests-m32/net-sockaddr.c 2019-03-18 03:40:16.000000000 +0100 -+++ strace-5.1/tests-m32/net-sockaddr.c 2019-08-29 19:16:28.327738043 +0200 -@@ -543,11 +543,22 @@ - TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci); - hci->hci_family = AF_BLUETOOTH; - hci->hci_dev = htobs(h_port); -+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL - hci->hci_channel = HCI_CHANNEL_RAW; -+# endif - unsigned int len = sizeof(*hci); -- int ret = connect(-1, (void *) hci, len); -+ -+ int ret = connect(-1, (void *) hci, 4); -+ printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" -+ "}, 4) = %d EBADF (%m)\n", -+ h_port, ret); -+ -+ ret = connect(-1, (void *) hci, len); - printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" -- ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n", -+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL -+ ", hci_channel=HCI_CHANNEL_RAW" -+# endif -+ "}, %u) = %d EBADF (%m)\n", - h_port, len, ret); - } - -@@ -700,9 +711,8 @@ - " = %d EBADF (%m)\n", len, ret); - - u.sa->sa_family = AF_BLUETOOTH; -- ++len; - ret = connect(-1, (void *) u.st, len); -- printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)" -+ printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)" - " = %d EBADF (%m)\n", len, ret); - } - -Index: strace-5.1/tests-mx32/net-sockaddr.c -=================================================================== ---- strace-5.1.orig/tests-mx32/net-sockaddr.c 2019-03-18 03:40:16.000000000 +0100 -+++ strace-5.1/tests-mx32/net-sockaddr.c 2019-08-29 19:16:30.805706731 +0200 -@@ -543,11 +543,22 @@ - TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci); - hci->hci_family = AF_BLUETOOTH; - hci->hci_dev = htobs(h_port); -+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL - hci->hci_channel = HCI_CHANNEL_RAW; -+# endif - unsigned int len = sizeof(*hci); -- int ret = connect(-1, (void *) hci, len); -+ -+ int ret = connect(-1, (void *) hci, 4); -+ printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" -+ "}, 4) = %d EBADF (%m)\n", -+ h_port, ret); -+ -+ ret = connect(-1, (void *) hci, len); - printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" -- ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n", -+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL -+ ", hci_channel=HCI_CHANNEL_RAW" -+# endif -+ "}, %u) = %d EBADF (%m)\n", - h_port, len, ret); - } - -@@ -700,9 +711,8 @@ - " = %d EBADF (%m)\n", len, ret); - - u.sa->sa_family = AF_BLUETOOTH; -- ++len; - ret = connect(-1, (void *) u.st, len); -- printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)" -+ printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)" - " = %d EBADF (%m)\n", len, ret); - } - -Index: strace-5.1/configure -=================================================================== ---- strace-5.1.orig/configure 2019-08-30 17:41:22.748513960 +0200 -+++ strace-5.1/configure 2019-08-30 17:41:43.118251704 +0200 -@@ -12037,6 +12037,18 @@ - #define HAVE_BLUETOOTH_BLUETOOTH_H 1 - _ACEOF - -+ ac_fn_c_check_member "$LINENO" "struct sockaddr_hci" "hci_channel" "ac_cv_member_struct_sockaddr_hci_hci_channel" "#include -+ #include -+" -+if test "x$ac_cv_member_struct_sockaddr_hci_hci_channel" = xyes; then : -+ -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL 1 -+_ACEOF -+ -+ -+fi -+ - ac_fn_c_check_member "$LINENO" "struct sockaddr_l2" "l2_bdaddr_type" "ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" "#include - #include - " -Index: strace-5.1/config.h.in -=================================================================== ---- strace-5.1.orig/config.h.in 2019-05-22 15:08:39.000000000 +0200 -+++ strace-5.1/config.h.in 2019-08-30 18:32:25.431500194 +0200 -@@ -1391,6 +1391,9 @@ - /* Define to 1 if the system has the type `struct sigcontext'. */ - #undef HAVE_STRUCT_SIGCONTEXT - -+/* Define to 1 if `hci_channel' is a member of `struct sockaddr_hci'. */ -+#undef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL -+ - /* Define to 1 if `l2_bdaddr_type' is a member of `struct sockaddr_l2'. */ - #undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE - diff --git a/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch b/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch deleted file mode 100644 index a05241d..0000000 --- a/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 4377e3a1535a0ec3a42da8a1366ad6943f4efa0e Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Sun, 4 Aug 2019 08:47:00 +0000 -Subject: [PATCH] tests: fix expected output for some ipc tests - -* tests/gen_tests.in (ipc_msgbuf-Xraw, ipc_shm, ipc_shm-Xabbrev, -ipc_shm-Xverbose): Adjust -a argument. ---- -Backport changes: - * tests/gen_tests.in change is copied over to tests-m32/gen_tests.in - and tests-m32/gen_tests.in ---- - tests/gen_tests.in | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -Index: strace-4.24/tests/gen_tests.in -=================================================================== ---- strace-4.24.orig/tests/gen_tests.in 2020-01-27 18:21:22.896068950 +0100 -+++ strace-4.24/tests/gen_tests.in 2020-01-27 18:21:42.169892032 +0100 -@@ -147,16 +147,16 @@ - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 - ipc_sem-Xraw +ipc.sh -Xraw -a19 - ipc_sem-Xverbose +ipc.sh -Xverbose -a36 --ipc_shm +ipc.sh -a29 --ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 -+ipc_shm +ipc.sh -a26 -+ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 - ipc_shm-Xraw +ipc.sh -Xraw -a19 --ipc_shm-Xverbose +ipc.sh -Xverbose -a36 -+ipc_shm-Xverbose +ipc.sh -Xverbose -a34 - kcmp -a22 - kcmp-y -a22 -y -e trace=kcmp - kern_features -a16 -Index: strace-4.24/tests-m32/gen_tests.in -=================================================================== ---- strace-4.24.orig/tests-m32/gen_tests.in 2020-01-27 18:21:36.149947290 +0100 -+++ strace-4.24/tests-m32/gen_tests.in 2020-01-27 18:38:00.954898561 +0100 -@@ -147,16 +147,16 @@ - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 - ipc_sem-Xraw +ipc.sh -Xraw -a19 - ipc_sem-Xverbose +ipc.sh -Xverbose -a36 --ipc_shm +ipc.sh -a29 --ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 -+ipc_shm +ipc.sh -a26 -+ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 - ipc_shm-Xraw +ipc.sh -Xraw -a19 --ipc_shm-Xverbose +ipc.sh -Xverbose -a36 -+ipc_shm-Xverbose +ipc.sh -Xverbose -a34 - kcmp -a22 - kcmp-y -a22 -y -e trace=kcmp - kern_features -a16 -Index: strace-4.24/tests-mx32/gen_tests.in -=================================================================== ---- strace-4.24.orig/tests-mx32/gen_tests.in 2020-01-27 18:21:37.445935394 +0100 -+++ strace-4.24/tests-mx32/gen_tests.in 2020-01-27 18:37:59.481911731 +0100 -@@ -147,16 +147,16 @@ - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 - ipc_sem-Xraw +ipc.sh -Xraw -a19 - ipc_sem-Xverbose +ipc.sh -Xverbose -a36 --ipc_shm +ipc.sh -a29 --ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 -+ipc_shm +ipc.sh -a26 -+ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 - ipc_shm-Xraw +ipc.sh -Xraw -a19 --ipc_shm-Xverbose +ipc.sh -Xverbose -a36 -+ipc_shm-Xverbose +ipc.sh -Xverbose -a34 - kcmp -a22 - kcmp-y -a22 -y -e trace=kcmp - kern_features -a16 diff --git a/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch b/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch deleted file mode 100644 index 3ce20d2..0000000 --- a/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a75c7c4bcb6b48680275de3e99e17e0ebec811ec Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Thu, 7 Nov 2019 19:58:36 +0000 -Subject: [PATCH] tests: fix -a argument in ipc_msgbuf-Xraw test - -* tests/gen_tests.in (ipc_msgbuf-Xraw): Change -a argument from 20 to 19. ---- -Backport change: - * tests/gen_tests.in change has been copied over to tests-m32/gen_tests.in - and tests-mx32/gen_tests.in. ---- - tests/gen_tests.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: strace-4.24/tests/gen_tests.in -=================================================================== ---- strace-4.24.orig/tests/gen_tests.in 2020-01-27 18:21:42.169892032 +0100 -+++ strace-4.24/tests/gen_tests.in 2020-01-27 18:38:14.935773561 +0100 -@@ -147,7 +147,7 @@ - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 -Index: strace-4.24/tests-m32/gen_tests.in -=================================================================== ---- strace-4.24.orig/tests-m32/gen_tests.in 2020-01-27 18:38:00.954898561 +0100 -+++ strace-4.24/tests-m32/gen_tests.in 2020-01-27 18:38:23.407697816 +0100 -@@ -147,7 +147,7 @@ - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 -Index: strace-4.24/tests-mx32/gen_tests.in -=================================================================== ---- strace-4.24.orig/tests-mx32/gen_tests.in 2020-01-27 18:37:59.481911731 +0100 -+++ strace-4.24/tests-mx32/gen_tests.in 2020-01-27 18:38:24.645686747 +0100 -@@ -147,7 +147,7 @@ - ipc_msg-Xraw +ipc.sh -Xraw -a16 - ipc_msg-Xverbose +ipc.sh -Xverbose -a34 - ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev --ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20 -+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19 - ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose - ipc_sem +ipc.sh -a29 - ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 diff --git a/SOURCES/0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch b/SOURCES/0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch new file mode 100644 index 0000000..5040cd6 --- /dev/null +++ b/SOURCES/0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch @@ -0,0 +1,44 @@ +From ff85f882bbd8a399e036b8465520d1ff0867f4f1 Mon Sep 17 00:00:00 2001 +From: Chris Packham +Date: Mon, 15 Jun 2020 22:01:25 +1200 +Subject: [PATCH 113/115] io_uring: Remove struct io_cqring_offsets compile + time asserts + +The generated types/check-io_uring.c already checks the kernel's struct +io_cqring_offsets for compatibility with the strace definition so +there's no need for manual checks. + +* io_uring.c [HAVE_STRUCT_IO_CQRING_OFFSETS]: Remove static_asserts. +--- + io_uring.c | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/io_uring.c b/io_uring.c +index ac1807b..fd83313 100644 +--- a/io_uring.c ++++ b/io_uring.c +@@ -17,21 +17,6 @@ + #include "xlat/uring_enter_flags.h" + #include "xlat/uring_register_opcodes.h" + +-#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS +-# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV +-static_assert(offsetof(struct_io_cqring_offsets, resv) +- >= offsetof(struct io_cqring_offsets, resv), +- "struct io_cqring_offsets.resv offset mismatch" +- ", please update the decoder"); +-static_assert(sizeof_field(struct_io_cqring_offsets, resv) +- <= sizeof_field(struct io_cqring_offsets, resv), +- "struct io_cqring_offsets.resv size mismatch" +- ", please update the decoder"); +-# else /* !HAVE_STRUCT_IO_CQRING_OFFSETS_RESV */ +-static_assert(0, "struct io_cqring_offsets.resv is missing" +- ", please update the decoder"); +-# endif +-#endif /* HAVE_STRUCT_IO_CQRING_OFFSETS */ + #ifdef HAVE_STRUCT_IO_URING_PARAMS + # ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV + static_assert(offsetof(struct_io_uring_params, resv) +-- +2.1.4 + diff --git a/SOURCES/0114-io_uring-Add-io_cqring_offset-flags.patch b/SOURCES/0114-io_uring-Add-io_cqring_offset-flags.patch new file mode 100644 index 0000000..fc37a3f --- /dev/null +++ b/SOURCES/0114-io_uring-Add-io_cqring_offset-flags.patch @@ -0,0 +1,383 @@ +From c51b292b237214ccfcae5a84085f8d0a7e85c8ba Mon Sep 17 00:00:00 2001 +From: Chris Packham +Date: Mon, 15 Jun 2020 22:01:26 +1200 +Subject: [PATCH 114/115] io_uring: Add io_cqring_offset flags + +Add support for displaying struct io_cqring_offsets.flags introduced +by Linux kernel commits v5.8-rc1~190^2~22 and v5.8-rc1~190^2~21. + +* types/io_uring.h (struct_io_cqring_offsets): Replace resv array +with flags, resv1, and resv2 fields. +* xlat/uring_cqring_flags.in: New file. +* configure.ac (AC_CHECK_MEMBERS): Check struct io_cqring_offsets.flags. +* io_uring.c: Include "xlat/uring_cqring_flags.h". +(SYS_FUNC(io_uring_setup)): Replace printing of the resv array +of struct io_cqring_offsets with flags, resv1, and resv2 fields. +* tests/io_uring_setup.c: Check it. + +Co-authored-by: Dmitry V. Levin +Resolves: https://github.com/strace/strace/issues/138 +--- + configure.ac | 1 + + io_uring.c | 11 +++++++---- + tests/io_uring_setup.c | 31 ++++++++++++++++++++++++++----- + types/io_uring.h | 4 +++- + xlat/uring_cqring_flags.in | 1 + + 5 files changed, 38 insertions(+), 10 deletions(-) + create mode 100644 xlat/uring_cqring_flags.in + +Index: strace-5.7/configure.ac +=================================================================== +--- strace-5.7.orig/configure.ac 2020-11-09 04:39:07.197892960 +0100 ++++ strace-5.7/configure.ac 2020-11-09 04:39:14.943826575 +0100 +@@ -481,6 +481,7 @@ + + AC_CHECK_HEADERS([linux/io_uring.h], [ + AC_CHECK_MEMBERS(m4_normalize([ ++ struct io_cqring_offsets.flags, + struct io_uring_params.features, + struct io_uring_params.wq_fd, + struct io_uring_params.resv +Index: strace-5.7/io_uring.c +=================================================================== +--- strace-5.7.orig/io_uring.c 2020-11-09 04:39:07.197892960 +0100 ++++ strace-5.7/io_uring.c 2020-11-09 04:39:14.943826575 +0100 +@@ -17,6 +17,7 @@ + #include "xlat/uring_setup_flags.h" + #include "xlat/uring_enter_flags.h" + #include "xlat/uring_register_opcodes.h" ++#include "xlat/uring_cqring_flags.h" + + #ifdef HAVE_STRUCT_IO_URING_PARAMS + # ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV +@@ -88,10 +89,12 @@ + PRINT_FIELD_U(", ", params.cq_off, ring_entries); + PRINT_FIELD_U(", ", params.cq_off, overflow); + PRINT_FIELD_U(", ", params.cq_off, cqes); +- if (!IS_ARRAY_ZERO(params.cq_off.resv)) { +- PRINT_FIELD_ARRAY(", ", params.cq_off, resv, tcp, +- print_xint64_array_member); +- } ++ PRINT_FIELD_FLAGS(", ", params.cq_off, flags, ++ uring_cqring_flags, "IORING_CQ_???"); ++ if (params.cq_off.resv1) ++ PRINT_FIELD_X(", ", params.cq_off, resv1); ++ if (params.cq_off.resv2) ++ PRINT_FIELD_X(", ", params.cq_off, resv2); + tprints("}"); + } + tprints("}"); +Index: strace-5.7/tests/io_uring_setup.c +=================================================================== +--- strace-5.7.orig/tests/io_uring_setup.c 2020-11-09 04:39:07.197892960 +0100 ++++ strace-5.7/tests/io_uring_setup.c 2020-11-09 04:39:14.943826575 +0100 +@@ -27,6 +27,7 @@ + # include "xlat.h" + + # include "xlat/uring_setup_features.h" ++# include "xlat/uring_cqring_flags.h" + + # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + # ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD +@@ -144,20 +145,40 @@ + params->sq_off.resv2); + + printf("}, cq_off={head=%u, tail=%u, ring_mask=%u" +- ", ring_entries=%u, overflow=%u, cqes=%u", ++ ", ring_entries=%u, overflow=%u, cqes=%u, flags=", + params->cq_off.head, + params->cq_off.tail, + params->cq_off.ring_mask, + params->cq_off.ring_entries, + params->cq_off.overflow, + params->cq_off.cqes); +- if (params->cq_off.resv[0] || params->cq_off.resv[1]) { +- printf(", resv=[%#llx, %#llx]", ++#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS ++ printflags(uring_cqring_flags, ++ params->cq_off.flags, ++ "IORING_CQ_???"); ++ 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.resv[0], ++ params->cq_off.resv2); ++#else ++ union { ++ struct { ++ uint32_t flags; ++ uint32_t resv1; ++ } s; ++ uint64_t v; ++ } u = { .v = params->cq_off.resv[0] }; ++ printflags(uring_cqring_flags, u.s.flags, ++ "IORING_CQ_???"); ++ if (u.s.resv1) ++ printf(", resv1=%#x", u.s.resv1); ++ if (params->cq_off.resv[1]) ++ printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv[1]); +- } ++#endif + + printf("}}) = %ld\n", rc); + } +Index: strace-5.7/types/io_uring.h +=================================================================== +--- strace-5.7.orig/types/io_uring.h 2020-11-09 04:39:07.198892952 +0100 ++++ strace-5.7/types/io_uring.h 2020-11-09 04:39:14.944826567 +0100 +@@ -31,7 +31,9 @@ + uint32_t ring_entries; + uint32_t overflow; + uint32_t cqes; +- uint64_t resv[2]; ++ /** Added by v5.8-rc1~190^2~22 */ uint32_t flags; ++ /** Added by v5.8-rc1~190^2~22 */ uint32_t resv1; ++ /** Added by v5.8-rc1~190^2~22 */ uint64_t resv2; + } struct_io_cqring_offsets; + + typedef struct { +Index: strace-5.7/xlat/uring_cqring_flags.in +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ strace-5.7/xlat/uring_cqring_flags.in 2020-11-09 04:39:14.944826567 +0100 +@@ -0,0 +1 @@ ++IORING_CQ_EVENTFD_DISABLED 1U +Index: strace-5.7/Makefile.in +=================================================================== +--- strace-5.7.orig/Makefile.in 2020-11-09 04:39:07.201892926 +0100 ++++ strace-5.7/Makefile.in 2020-11-09 04:42:54.519945367 +0100 +@@ -1506,10 +1506,10 @@ + xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in \ + xlat/umount_flags.in xlat/unix_diag_attrs.in \ + xlat/unix_diag_show.in xlat/unshare_flags.in \ +- xlat/uring_enter_flags.in xlat/uring_op_flags.in \ +- xlat/uring_ops.in xlat/uring_register_opcodes.in \ +- xlat/uring_setup_features.in xlat/uring_setup_flags.in \ +- xlat/usagewho.in xlat/v4l2_buf_flags.in \ ++ xlat/uring_cqring_flags.in xlat/uring_enter_flags.in \ ++ xlat/uring_op_flags.in xlat/uring_ops.in \ ++ xlat/uring_register_opcodes.in xlat/uring_setup_features.in \ ++ xlat/uring_setup_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in \ + xlat/v4l2_buf_flags_masks.in xlat/v4l2_buf_flags_ts_src.in \ + xlat/v4l2_buf_flags_ts_type.in xlat/v4l2_buf_types.in \ + xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in \ +@@ -1755,10 +1755,10 @@ + xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h \ + xlat/umount_flags.h xlat/unix_diag_attrs.h \ + xlat/unix_diag_show.h xlat/unshare_flags.h \ +- xlat/uring_enter_flags.h xlat/uring_op_flags.h \ +- xlat/uring_ops.h xlat/uring_register_opcodes.h \ +- xlat/uring_setup_features.h xlat/uring_setup_flags.h \ +- xlat/usagewho.h xlat/v4l2_buf_flags.h \ ++ xlat/uring_cqring_flags.h xlat/uring_enter_flags.h \ ++ xlat/uring_op_flags.h xlat/uring_ops.h \ ++ xlat/uring_register_opcodes.h xlat/uring_setup_features.h \ ++ xlat/uring_setup_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h \ + xlat/v4l2_buf_flags_masks.h xlat/v4l2_buf_flags_ts_src.h \ + xlat/v4l2_buf_flags_ts_type.h xlat/v4l2_buf_types.h \ + xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h \ +@@ -9974,6 +9974,8 @@ + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ + $(top_srcdir)/xlat/unshare_flags.h: $(top_srcdir)/xlat/unshare_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ ++$(top_srcdir)/xlat/uring_cqring_flags.h: $(top_srcdir)/xlat/uring_cqring_flags.in $(top_srcdir)/xlat/gen.sh ++ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ + $(top_srcdir)/xlat/uring_enter_flags.h: $(top_srcdir)/xlat/uring_enter_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ + $(top_srcdir)/xlat/uring_op_flags.h: $(top_srcdir)/xlat/uring_op_flags.in $(top_srcdir)/xlat/gen.sh +Index: strace-5.7/configure +=================================================================== +--- strace-5.7.orig/configure 2020-11-09 04:39:07.205892892 +0100 ++++ strace-5.7/configure 2020-11-09 05:07:10.675485410 +0100 +@@ -12580,7 +12580,17 @@ + #define HAVE_LINUX_IO_URING_H 1 + _ACEOF + +- ac_fn_c_check_member "$LINENO" "struct io_uring_params" "features" "ac_cv_member_struct_io_uring_params_features" "#include ++ ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "flags" "ac_cv_member_struct_io_cqring_offsets_flags" "#include ++" ++if test "x$ac_cv_member_struct_io_cqring_offsets_flags" = xyes; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS 1 ++_ACEOF ++ ++ ++fi ++ac_fn_c_check_member "$LINENO" "struct io_uring_params" "features" "ac_cv_member_struct_io_uring_params_features" "#include + " + if test "x$ac_cv_member_struct_io_uring_params_features" = xyes; then : + +Index: strace-5.7/tests-m32/io_uring_setup.c +=================================================================== +--- strace-5.7.orig/tests-m32/io_uring_setup.c 2020-11-09 04:39:07.206892883 +0100 ++++ strace-5.7/tests-m32/io_uring_setup.c 2020-11-09 04:39:14.951826507 +0100 +@@ -27,6 +27,7 @@ + # include "xlat.h" + + # include "xlat/uring_setup_features.h" ++# include "xlat/uring_cqring_flags.h" + + # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + # ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD +@@ -144,20 +145,40 @@ + params->sq_off.resv2); + + printf("}, cq_off={head=%u, tail=%u, ring_mask=%u" +- ", ring_entries=%u, overflow=%u, cqes=%u", ++ ", ring_entries=%u, overflow=%u, cqes=%u, flags=", + params->cq_off.head, + params->cq_off.tail, + params->cq_off.ring_mask, + params->cq_off.ring_entries, + params->cq_off.overflow, + params->cq_off.cqes); +- if (params->cq_off.resv[0] || params->cq_off.resv[1]) { +- printf(", resv=[%#llx, %#llx]", ++#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS ++ printflags(uring_cqring_flags, ++ params->cq_off.flags, ++ "IORING_CQ_???"); ++ 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.resv[0], ++ params->cq_off.resv2); ++#else ++ union { ++ struct { ++ uint32_t flags; ++ uint32_t resv1; ++ } s; ++ uint64_t v; ++ } u = { .v = params->cq_off.resv[0] }; ++ printflags(uring_cqring_flags, u.s.flags, ++ "IORING_CQ_???"); ++ if (u.s.resv1) ++ printf(", resv1=%#x", u.s.resv1); ++ if (params->cq_off.resv[1]) ++ printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv[1]); +- } ++#endif + + printf("}}) = %ld\n", rc); + } +Index: strace-5.7/tests-mx32/io_uring_setup.c +=================================================================== +--- strace-5.7.orig/tests-mx32/io_uring_setup.c 2020-11-09 04:39:07.206892883 +0100 ++++ strace-5.7/tests-mx32/io_uring_setup.c 2020-11-09 04:39:14.951826507 +0100 +@@ -27,6 +27,7 @@ + # include "xlat.h" + + # include "xlat/uring_setup_features.h" ++# include "xlat/uring_cqring_flags.h" + + # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + # ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD +@@ -144,20 +145,40 @@ + params->sq_off.resv2); + + printf("}, cq_off={head=%u, tail=%u, ring_mask=%u" +- ", ring_entries=%u, overflow=%u, cqes=%u", ++ ", ring_entries=%u, overflow=%u, cqes=%u, flags=", + params->cq_off.head, + params->cq_off.tail, + params->cq_off.ring_mask, + params->cq_off.ring_entries, + params->cq_off.overflow, + params->cq_off.cqes); +- if (params->cq_off.resv[0] || params->cq_off.resv[1]) { +- printf(", resv=[%#llx, %#llx]", ++#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS ++ printflags(uring_cqring_flags, ++ params->cq_off.flags, ++ "IORING_CQ_???"); ++ 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.resv[0], ++ params->cq_off.resv2); ++#else ++ union { ++ struct { ++ uint32_t flags; ++ uint32_t resv1; ++ } s; ++ uint64_t v; ++ } u = { .v = params->cq_off.resv[0] }; ++ printflags(uring_cqring_flags, u.s.flags, ++ "IORING_CQ_???"); ++ if (u.s.resv1) ++ printf(", resv1=%#x", u.s.resv1); ++ if (params->cq_off.resv[1]) ++ printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv[1]); +- } ++#endif + + printf("}}) = %ld\n", rc); + } +Index: strace-5.7/xlat/uring_cqring_flags.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ strace-5.7/xlat/uring_cqring_flags.h 2020-11-09 05:07:27.046345327 +0100 +@@ -0,0 +1,48 @@ ++/* Generated by ./xlat/gen.sh from ./xlat/uring_cqring_flags.in; do not edit. */ ++ ++#include "gcc_compat.h" ++#include "static_assert.h" ++ ++#if defined(IORING_CQ_EVENTFD_DISABLED) || (defined(HAVE_DECL_IORING_CQ_EVENTFD_DISABLED) && HAVE_DECL_IORING_CQ_EVENTFD_DISABLED) ++DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE ++static_assert((IORING_CQ_EVENTFD_DISABLED) == (1U), "IORING_CQ_EVENTFD_DISABLED != 1U"); ++DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE ++#else ++# define IORING_CQ_EVENTFD_DISABLED 1U ++#endif ++ ++#ifndef XLAT_MACROS_ONLY ++ ++# ifdef IN_MPERS ++ ++# error static const struct xlat uring_cqring_flags in mpers mode ++ ++# else ++ ++static const struct xlat_data uring_cqring_flags_xdata[] = { ++ XLAT(IORING_CQ_EVENTFD_DISABLED), ++ #define XLAT_VAL_0 ((unsigned) (IORING_CQ_EVENTFD_DISABLED)) ++ #define XLAT_STR_0 STRINGIFY(IORING_CQ_EVENTFD_DISABLED) ++}; ++static ++const struct xlat uring_cqring_flags[1] = { { ++ .data = uring_cqring_flags_xdata, ++ .size = ARRAY_SIZE(uring_cqring_flags_xdata), ++ .type = XT_NORMAL, ++ .flags_mask = 0 ++# ifdef XLAT_VAL_0 ++ | XLAT_VAL_0 ++# endif ++ , ++ .flags_strsz = 0 ++# ifdef XLAT_STR_0 ++ + sizeof(XLAT_STR_0) ++# endif ++ , ++} }; ++ ++# undef XLAT_STR_0 ++# undef XLAT_VAL_0 ++# endif /* !IN_MPERS */ ++ ++#endif /* !XLAT_MACROS_ONLY */ diff --git a/SOURCES/0115-xlat-update-IORING_-constants.patch b/SOURCES/0115-xlat-update-IORING_-constants.patch new file mode 100644 index 0000000..34b14d1 --- /dev/null +++ b/SOURCES/0115-xlat-update-IORING_-constants.patch @@ -0,0 +1,217 @@ +From dd6b70f5d4db14b432f424071d262e87fa944c96 Mon Sep 17 00:00:00 2001 +From: "Dmitry V. Levin" +Date: Sun, 28 Jun 2020 08:00:00 +0000 +Subject: [PATCH 115/115] xlat: update IORING_* constants + +* xlat/uring_ops.in (IORING_OP_TEE): New constant introduced by Linux +kernel commit v5.8-rc1~190^2~14. +* tests/io_uring_register.c: Update expected output. +--- + tests/io_uring_register.c | 12 ++++++------ + xlat/uring_ops.in | 1 + + 2 files changed, 7 insertions(+), 6 deletions(-) + +Index: strace-5.7/tests/io_uring_register.c +=================================================================== +--- strace-5.7.orig/tests/io_uring_register.c 2020-11-09 04:44:38.311057254 +0100 ++++ strace-5.7/tests/io_uring_register.c 2020-11-09 04:44:40.445038991 +0100 +@@ -225,12 +225,12 @@ + probe->ops[0].flags = 0; + probe->ops[0].resv2 = 0xbeefface; + +- probe->ops[1].op = 32; ++ probe->ops[1].op = 33; + probe->ops[1].resv = 0; + probe->ops[1].flags = IO_URING_OP_SUPPORTED; + probe->ops[1].resv2 = 0xdeadc0de; + +- probe->ops[2].op = 33; ++ probe->ops[2].op = 34; + probe->ops[2].resv = 0xaf; + probe->ops[2].flags = 0xbeef; + probe->ops[2].resv2 = 0; +@@ -245,22 +245,22 @@ + ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu" + ", resv2=[0, %#x, 0], ops=[" + "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, " +- "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED" ++ "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED" + ", resv2=0xdeadc0de}, " +- "{op=33 /* IORING_OP_??? */, resv=0xaf" ++ "{op=34 /* IORING_OP_??? */, resv=0xaf" + ", flags=IO_URING_OP_SUPPORTED|0xbeee}, " + "{op=254 /* IORING_OP_??? */" + ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n", + fd_null, path_null, probe->ops_len, probe->resv2[1], errstr); + +- probe->last_op = 33; ++ probe->last_op = 34; + probe->resv2[1] = 0; + fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1), + 0x40, 0x80); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" +- ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[", ++ ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[", + fd_null, path_null, probe->ops_len); + for (size_t i = 0; i < DEFAULT_STRLEN; i++) { + printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx" +Index: strace-5.7/xlat/uring_ops.in +=================================================================== +--- strace-5.7.orig/xlat/uring_ops.in 2020-11-09 04:44:38.311057254 +0100 ++++ strace-5.7/xlat/uring_ops.in 2020-11-09 04:44:40.445038991 +0100 +@@ -32,3 +32,4 @@ + IORING_OP_SPLICE 30 + IORING_OP_PROVIDE_BUFFERS 31 + IORING_OP_REMOVE_BUFFERS 32 ++IORING_OP_TEE 33 +Index: strace-5.7/tests-m32/io_uring_register.c +=================================================================== +--- strace-5.7.orig/tests-m32/io_uring_register.c 2020-11-09 04:44:38.312057246 +0100 ++++ strace-5.7/tests-m32/io_uring_register.c 2020-11-09 04:44:40.445038991 +0100 +@@ -225,12 +225,12 @@ + probe->ops[0].flags = 0; + probe->ops[0].resv2 = 0xbeefface; + +- probe->ops[1].op = 32; ++ probe->ops[1].op = 33; + probe->ops[1].resv = 0; + probe->ops[1].flags = IO_URING_OP_SUPPORTED; + probe->ops[1].resv2 = 0xdeadc0de; + +- probe->ops[2].op = 33; ++ probe->ops[2].op = 34; + probe->ops[2].resv = 0xaf; + probe->ops[2].flags = 0xbeef; + probe->ops[2].resv2 = 0; +@@ -245,22 +245,22 @@ + ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu" + ", resv2=[0, %#x, 0], ops=[" + "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, " +- "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED" ++ "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED" + ", resv2=0xdeadc0de}, " +- "{op=33 /* IORING_OP_??? */, resv=0xaf" ++ "{op=34 /* IORING_OP_??? */, resv=0xaf" + ", flags=IO_URING_OP_SUPPORTED|0xbeee}, " + "{op=254 /* IORING_OP_??? */" + ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n", + fd_null, path_null, probe->ops_len, probe->resv2[1], errstr); + +- probe->last_op = 33; ++ probe->last_op = 34; + probe->resv2[1] = 0; + fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1), + 0x40, 0x80); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" +- ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[", ++ ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[", + fd_null, path_null, probe->ops_len); + for (size_t i = 0; i < DEFAULT_STRLEN; i++) { + printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx" +Index: strace-5.7/tests-mx32/io_uring_register.c +=================================================================== +--- strace-5.7.orig/tests-mx32/io_uring_register.c 2020-11-09 04:44:38.312057246 +0100 ++++ strace-5.7/tests-mx32/io_uring_register.c 2020-11-09 04:44:40.446038982 +0100 +@@ -225,12 +225,12 @@ + probe->ops[0].flags = 0; + probe->ops[0].resv2 = 0xbeefface; + +- probe->ops[1].op = 32; ++ probe->ops[1].op = 33; + probe->ops[1].resv = 0; + probe->ops[1].flags = IO_URING_OP_SUPPORTED; + probe->ops[1].resv2 = 0xdeadc0de; + +- probe->ops[2].op = 33; ++ probe->ops[2].op = 34; + probe->ops[2].resv = 0xaf; + probe->ops[2].flags = 0xbeef; + probe->ops[2].resv2 = 0; +@@ -245,22 +245,22 @@ + ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu" + ", resv2=[0, %#x, 0], ops=[" + "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, " +- "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED" ++ "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED" + ", resv2=0xdeadc0de}, " +- "{op=33 /* IORING_OP_??? */, resv=0xaf" ++ "{op=34 /* IORING_OP_??? */, resv=0xaf" + ", flags=IO_URING_OP_SUPPORTED|0xbeee}, " + "{op=254 /* IORING_OP_??? */" + ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n", + fd_null, path_null, probe->ops_len, probe->resv2[1], errstr); + +- probe->last_op = 33; ++ probe->last_op = 34; + probe->resv2[1] = 0; + fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1), + 0x40, 0x80); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" +- ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[", ++ ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[", + fd_null, path_null, probe->ops_len); + for (size_t i = 0; i < DEFAULT_STRLEN; i++) { + printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx" +Index: strace-5.7/xlat/uring_ops.h +=================================================================== +--- strace-5.7.orig/xlat/uring_ops.h 2020-11-09 04:44:38.313057237 +0100 ++++ strace-5.7/xlat/uring_ops.h 2020-11-09 04:47:01.835829135 +0100 +@@ -234,6 +234,13 @@ + #else + # define IORING_OP_REMOVE_BUFFERS 32 + #endif ++#if defined(IORING_OP_TEE) || (defined(HAVE_DECL_IORING_OP_TEE) && HAVE_DECL_IORING_OP_TEE) ++DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE ++static_assert((IORING_OP_TEE) == (33), "IORING_OP_TEE != 33"); ++DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE ++#else ++# define IORING_OP_TEE 33 ++#endif + + #ifndef XLAT_MACROS_ONLY + +@@ -343,6 +350,9 @@ + [IORING_OP_REMOVE_BUFFERS] = XLAT(IORING_OP_REMOVE_BUFFERS), + #define XLAT_VAL_32 ((unsigned) (IORING_OP_REMOVE_BUFFERS)) + #define XLAT_STR_32 STRINGIFY(IORING_OP_REMOVE_BUFFERS) ++ [IORING_OP_TEE] = XLAT(IORING_OP_TEE), ++ #define XLAT_VAL_33 ((unsigned) (IORING_OP_TEE)) ++ #define XLAT_STR_33 STRINGIFY(IORING_OP_TEE) + }; + static + const struct xlat uring_ops[1] = { { +@@ -449,6 +459,9 @@ + # ifdef XLAT_VAL_32 + | XLAT_VAL_32 + # endif ++# ifdef XLAT_VAL_33 ++ | XLAT_VAL_33 ++# endif + , + .flags_strsz = 0 + # ifdef XLAT_STR_0 +@@ -550,6 +563,9 @@ + # ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) + # endif ++# ifdef XLAT_STR_33 ++ + sizeof(XLAT_STR_33) ++# endif + , + } }; + +@@ -619,6 +635,8 @@ + # undef XLAT_VAL_31 + # undef XLAT_STR_32 + # undef XLAT_VAL_32 ++# undef XLAT_STR_33 ++# undef XLAT_VAL_33 + # endif /* !IN_MPERS */ + + #endif /* !XLAT_MACROS_ONLY */ diff --git a/SOURCES/0118-types-skip-field-lines-that-start-with-comments.patch b/SOURCES/0118-types-skip-field-lines-that-start-with-comments.patch new file mode 100644 index 0000000..b9a37cd --- /dev/null +++ b/SOURCES/0118-types-skip-field-lines-that-start-with-comments.patch @@ -0,0 +1,84 @@ +From b0a361c0a9095b396ff7100203c767ec9ffd2cfa Mon Sep 17 00:00:00 2001 +From: "Dmitry V. Levin" +Date: Tue, 16 Jun 2020 08:00:00 +0000 +Subject: [PATCH] types: skip field lines that start with comments + +This allows to exclude certain fields from type checks by placing +comments at the beginning of the corresponding lines. + +* types/find_last_type_fields.awk: Skip lines starting with spaces +followed by "/". +--- + types/find_last_type_fields.awk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: strace-5.7/types/find_last_type_fields.awk +=================================================================== +--- strace-5.7.orig/types/find_last_type_fields.awk 2020-01-21 19:02:38.000000000 +0100 ++++ strace-5.7/types/find_last_type_fields.awk 2020-11-09 04:47:06.976785148 +0100 +@@ -17,7 +17,7 @@ + print a[1] "." last_field + next + } +- if (match($0, /^[[:space:]]+[^];:[]+[[:space:]]+([^][:space:];:[]+)(\[[^];:[]*\])?;.*$/, a)) { ++ if (match($0, /^[[:space:]]+[^];[:space:]:\/[][^];:[]*[[:space:]]+([^][:space:];:[]+)(\[[^];:[]*\])?;.*$/, a)) { + last_field = a[1] + next + } +Index: strace-5.7/types/check-io_uring.c +=================================================================== +--- strace-5.7.orig/types/check-io_uring.c 2020-11-09 04:47:06.977785139 +0100 ++++ strace-5.7/types/check-io_uring.c 2020-11-09 04:49:10.033732186 +0100 +@@ -14,13 +14,13 @@ + #endif /* HAVE_STRUCT_IO_SQRING_OFFSETS */ + + #ifdef HAVE_STRUCT_IO_CQRING_OFFSETS +-# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV ++# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_CQES + static_assert(sizeof(struct io_cqring_offsets) == sizeof(struct_io_cqring_offsets), + "struct io_cqring_offsets size mismatch, please update the decoder or fix the kernel"); + # else +-static_assert(sizeof(struct io_cqring_offsets) <= offsetof(struct_io_cqring_offsets, resv), ++static_assert(sizeof(struct io_cqring_offsets) <= offsetof(struct_io_cqring_offsets, cqes), + "struct io_cqring_offsets size mismatch, please update the decoder or fix the kernel"); +-# endif /* HAVE_STRUCT_IO_CQRING_OFFSETS_RESV */ ++# endif /* HAVE_STRUCT_IO_CQRING_OFFSETS_CQES */ + #endif /* HAVE_STRUCT_IO_CQRING_OFFSETS */ + + #ifdef HAVE_STRUCT_IO_URING_PARAMS +Index: strace-5.7/config.h.in +=================================================================== +--- strace-5.7.orig/config.h.in 2020-11-09 04:47:06.980785114 +0100 ++++ strace-5.7/config.h.in 2020-11-09 04:50:11.871203054 +0100 +@@ -2596,8 +2596,8 @@ + /* Define to 1 if the system has the type `struct io_cqring_offsets'. */ + #undef HAVE_STRUCT_IO_CQRING_OFFSETS + +-/* Define to 1 if `resv' is a member of `struct io_cqring_offsets'. */ +-#undef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV ++/* Define to 1 if `cqes' is a member of `struct io_cqring_offsets'. */ ++#undef HAVE_STRUCT_IO_CQRING_OFFSETS_CQES + + /* Define to 1 if the system has the type `struct io_sqring_offsets'. */ + #undef HAVE_STRUCT_IO_SQRING_OFFSETS +Index: strace-5.7/configure +=================================================================== +--- strace-5.7.orig/configure 2020-11-09 04:47:06.988785045 +0100 ++++ strace-5.7/configure 2020-11-09 04:51:12.500684263 +0100 +@@ -13475,13 +13475,13 @@ + #define HAVE_STRUCT_IO_CQRING_OFFSETS 1 + _ACEOF + +-ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "resv" "ac_cv_member_struct_io_cqring_offsets_resv" "$ac_includes_default ++ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "cqes" "ac_cv_member_struct_io_cqring_offsets_cqes" "$ac_includes_default + #include + " +-if test "x$ac_cv_member_struct_io_cqring_offsets_resv" = xyes; then : ++if test "x$ac_cv_member_struct_io_cqring_offsets_cqes" = xyes; then : + + cat >>confdefs.h <<_ACEOF +-#define HAVE_STRUCT_IO_CQRING_OFFSETS_RESV 1 ++#define HAVE_STRUCT_IO_CQRING_OFFSETS_CQES 1 + _ACEOF + + diff --git a/SOURCES/0201-limit-qual_fault-scope-on-aarch64.patch b/SOURCES/0201-limit-qual_fault-scope-on-aarch64.patch deleted file mode 100644 index 49c2e90..0000000 --- a/SOURCES/0201-limit-qual_fault-scope-on-aarch64.patch +++ /dev/null @@ -1,42 +0,0 @@ -Limit the scope of qual_fault.tests on aarch64 as otherwise it takes -unacceptable amount of time on available builders (more than an hour). -Index: strace-4.24/tests/qual_fault.test -=================================================================== ---- strace-4.24.orig/tests/qual_fault.test 2019-06-13 17:37:10.708269613 +0200 -+++ strace-4.24/tests/qual_fault.test 2019-06-13 17:41:29.358829506 +0200 -@@ -75,18 +75,32 @@ - done - } - --for err in '' ENOSYS 22 einval; do -+ -+case "$STRACE_ARCH" in -+ aarch64) -+ NUMBERS1='2' -+ NUMBERS2='3' -+ ERRS='EnoSys 22' -+ ;; -+ *) -+ ERRS='ENOSYS 22 einval' -+ NUMBERS1='1 2 3 5 7 11' -+ NUMBERS2='1 2 3 5 7 11' -+ ;; -+esac -+ -+for err in '' $(echo $ERRS); do - for fault in writev desc,51; do - check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir - check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir -efault=none -- for F in 1 2 3 5 7 11; do -+ for F in $(echo $NUMBERS1); do - check_fault_injection \ - writev $fault "$err" $F '' 1 - check_fault_injection \ - writev $fault "$err" $F + 1 -- for S in 1 2 3 5 7 11; do -+ for S in $(echo $NUMBERS2); do - check_fault_injection \ - writev $fault "$err" $F $S 1 - check_fault_injection \ diff --git a/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch b/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch new file mode 100644 index 0000000..a1e42f3 --- /dev/null +++ b/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch @@ -0,0 +1,60 @@ +Limit the scope of qual_fault.tests on aarch64 as otherwise it takes +unacceptable amount of time on available builders (more than an hour). +Index: strace-5.7/tests/qual_fault.test +=================================================================== +--- strace-5.7.orig/tests/qual_fault.test 2020-06-02 10:41:25.870177356 +0200 ++++ strace-5.7/tests/qual_fault.test 2020-06-02 10:48:33.284302800 +0200 +@@ -83,19 +83,35 @@ + done + } + +-for err in '' ENOSYS 22 einval; do ++ ++case "$STRACE_ARCH" in ++ aarch64) ++ ERRS='EnoSys 22' ++ NUMBERS1='2' ++ NUMBERS2='3' ++ NUMBERS3='5' ++ ;; ++ *) ++ ERRS='ENOSYS 22 einval' ++ NUMBERS1='1 2 3 5 7 11' ++ NUMBERS2='1 2 3 5 7 11' ++ NUMBERS3='1 2 3 5 7 11' ++ ;; ++esac ++ ++for err in '' $(echo $ERRS); do + for fault in writev desc,51; do + check_fault_injection \ + writev $fault "$err" '' '' '' 1 -efault=chdir + check_fault_injection \ + writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none +- for F in 1 2 3 5 7 11; do ++ for F in $(echo $NUMBERS1); do + check_fault_injection \ + writev $fault "$err" $F '' '' 1 + check_fault_injection \ + writev $fault "$err" $F '' + 1 + +- for L in 1 2 3 5 7 11; do ++ for L in $(echo $NUMBERS2); do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ +@@ -104,12 +119,12 @@ + writev $fault "$err" $F $L + 1 + done + +- for S in 1 2 3 5 7 11; do ++ for S in $(echo $NUMBERS2); do + check_fault_injection \ + writev $fault "$err" $F '' $S 1 + check_fault_injection \ + writev $fault "$err" $F '' $S 4 +- for L in 1 2 3 5 7 11; do ++ for L in $(echo $NUMBERS3); do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ diff --git a/SOURCES/2003-undef-ARRAY_SIZE.patch b/SOURCES/2003-undef-ARRAY_SIZE.patch new file mode 100644 index 0000000..e4e87bb --- /dev/null +++ b/SOURCES/2003-undef-ARRAY_SIZE.patch @@ -0,0 +1,17 @@ +Index: strace-5.7/unwind.c +=================================================================== +--- strace-5.7.orig/unwind.c 2018-12-10 01:00:00.000000000 +0100 ++++ strace-5.7/unwind.c 2020-06-02 11:13:42.777871147 +0200 +@@ -9,6 +9,12 @@ + #include "unwind.h" + + #ifdef USE_DEMANGLE ++/* ++ * demangle.h defines ARRAY_SIZE without proper guard, and its definition ++ * is "good enough" for us. ++ */ ++#undef ARRAY_SIZE ++ + # if defined HAVE_DEMANGLE_H + # include + # elif defined HAVE_LIBIBERTY_DEMANGLE_H diff --git a/SPECS/strace.spec b/SPECS/strace.spec index eb2a476..ef2fb9d 100644 --- a/SPECS/strace.spec +++ b/SPECS/strace.spec @@ -1,6 +1,6 @@ Summary: Tracks and displays system calls associated with a running process Name: strace -Version: 5.1 +Version: 5.7 Release: 1%{?dist} # The test suite is GPLv2+, all the rest is LGPLv2.1+. License: LGPL-2.1+ and GPL-2.0+ @@ -13,10 +13,10 @@ BuildRequires: pkgconfig(bluez) BuildRequires: elfutils-devel binutils-devel ## Reported by covscan -# v5.2-3-g7ada13f "evdev: avoid bit vector decoding on non-successful and 0 return codes" -Patch30: 0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch -# v5.2-4-g96194ed "evdev: fix array size calculation in decode_bitset_" -Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch +## v5.2-3-g7ada13f "evdev: avoid bit vector decoding on non-successful and 0 return codes" +#Patch30: 0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch +## v5.2-4-g96194ed "evdev: fix array size calculation in decode_bitset_" +#Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch ### Pre-requisite for "tests: test evdev bitset decoding more thoroughly" ## v4.25~89 "tests: check decoding of successful evdev ioctl" @@ -24,8 +24,8 @@ Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch ## Test for patches "evdev: avoid bit vector decoding on non-successful and 0 ## return codes" and "evdev: fix array size calculation in decode_bitset_" -# v5.2-5-gcdd8206 "tests: test evdev bitset decoding more thoroughly" -Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch +## v5.2-5-gcdd8206 "tests: test evdev bitset decoding more thoroughly" +#Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch ### https://bugzilla.redhat.com/1747475 https://bugzilla.redhat.com/1747514 ## v4.26~65 "s390x: beautify sthyi data tail prints" @@ -33,14 +33,14 @@ Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch ## Reported by covscan (https://bugzilla.redhat.com/1747524 ## https://bugzilla.redhat.com/1747526 https://bugzilla.redhat.com/1747530) -# v5.2-84-g91281fec "v4l2: avoid shifting left a signed number by 31 bit" -Patch35: 0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch -# v5.2~21 "syscall.c: avoid infinite loop in subcalls parsing" -Patch36: 0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch -# v5.2~19 "kvm: avoid bogus vcpu_info assignment in vcpu_register" -Patch37: 0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch -# v5.4~97 "xlat: use unsgined type for mount_flags fallback values" -Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch +## v5.2-84-g91281fec "v4l2: avoid shifting left a signed number by 31 bit" +#Patch35: 0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch +## v5.2~21 "syscall.c: avoid infinite loop in subcalls parsing" +#Patch36: 0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch +## v5.2~19 "kvm: avoid bogus vcpu_info assignment in vcpu_register" +#Patch37: 0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch +## v5.4~97 "xlat: use unsgined type for mount_flags fallback values" +#Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch ## Missing stack traces on attach (https://bugzilla.redhat.com/1788636) ## RHEL 7: https://bugzilla.redhat.com/1790052 @@ -48,24 +48,24 @@ Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch ## RHEL 6 DTS: https://bugzilla.redhat.com/1790058 ## RHEL 7 DTS: https://bugzilla.redhat.com/1790057 ## RHEL 8 DTS: https://bugzilla.redhat.com/1790054 -# v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache" -Patch39: 0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch -# v5.4-27-g35e080a "syscall: do not capture stack trace while the tracee executes strace code" -Patch40: 0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch -# v5.4-63-g8e515c7 "tests: add strace-k-p test" -Patch41: 0041-tests-add-strace-k-p-test.patch +## v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache" +#Patch39: 0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch +## v5.4-27-g35e080a "syscall: do not capture stack trace while the tracee executes strace code" +#Patch40: 0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch +## v5.4-63-g8e515c7 "tests: add strace-k-p test" +#Patch41: 0041-tests-add-strace-k-p-test.patch ## https://bugzilla.redhat.com/1746885 -# v5.2-92-gc108f0b "sockaddr: properly decode sockaddr_hci addresses without hci_channel" -Patch42: 0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch +## v5.2-92-gc108f0b "sockaddr: properly decode sockaddr_hci addresses without hci_channel" +#Patch42: 0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch ## Some ipc tests from strace internal testsuite occasionally fail ## https://bugzilla.redhat.com/1795251 https://bugzilla.redhat.com/1795261 ## https://bugzilla.redhat.com/1794490 https://bugzilla.redhat.com/1795273 -# v5.3~102 "tests: fix expected output for some ipc tests" -Patch43: 0043-tests-fix-expected-output-for-some-ipc-tests.patch -# v5.4~49 "tests: fix -a argument in ipc_msgbuf-Xraw test" -Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch +## v5.3~102 "tests: fix expected output for some ipc tests" +#Patch43: 0043-tests-fix-expected-output-for-some-ipc-tests.patch +## v5.4~49 "tests: fix -a argument in ipc_msgbuf-Xraw test" +#Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch ### Update bpf decoder, as bpf-obj_get_info_by_fd-prog-v.gen.test has started ### to fail after BPF rebase in RHEL 8.2 kernel. @@ -86,20 +86,94 @@ Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch ## v5.1~6 "tests: robustify bpf-obj_get_info_by_fd test against future kernels" #Patch52: 0052-tests-robustify-bpf-obj_get_info_by_fd-test-against-.patch +## Patches 53-86 were on DTS 9 for +## "some devtoolset-9-strace internal tests fail on rhel-alt-7.6" +## https://bugzilla.redhat.com/1758201 + +## Update io_uring(2) decoder (https://bugzilla.redhat.com/1853011) +## v5.5~65 "io_uring: do not depend on kernel header definitions" +#Patch87: 0087-io_uring-do-not-depend-on-kernel-header-definitions.patch +## v5.5~64 "io_uring: de-indent the switch case statements" +#Patch88: 0088-io_uring-de-indent-the-switch-case-statements.patch +## v5.3~15 "Add support for printing local arrays to print_array" +#Patch89: 0089-Add-support-for-printing-local-arrays-to-print_array.patch +## v5.5~63 "Rework interface for printing local arrays" +#Patch90: 0090-Rework-interface-for-printing-local-arrays.patch +## v5.5~62 "io_uring: decode io_uring_params.resv with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY" +#Patch91: 0091-io_uring-decode-io_uring_params.resv-with-IS_ARRAY_Z.patch +## v5.5~61 "io_uring: print io_sqring_offsets and io_cqring_offsets reserved fields" +#Patch92: 0092-io_uring-print-io_sqring_offsets-and-io_cqring_offse.patch +## v5.5~60 "io_uring: add support for IORING_REGISTER_EVENTFD and IORING_UNREGISTER_EVENTFD" +#Patch93: 0093-io_uring-add-support-for-IORING_REGISTER_EVENTFD-and.patch +## v5.5~59 "io_uring: implement decoding of struct io_uring_params.features" +#Patch94: 0094-io_uring-implement-decoding-of-struct-io_uring_param.patch +## v5.5~58 "xlat: add IORING_SETUP_CQSIZE to uring_setup_flags" +#Patch95: 0095-xlat-add-IORING_SETUP_CQSIZE-to-uring_setup_flags.patch +## v5.5~42 "io_uring: check struct io_* types automatically" +#Patch96: 0096-io_uring-check-struct-io_-types-automatically.patch +## v5.5~41 "io_uring: add support for IORING_REGISTER_FILES_UPDATE" +#Patch97: 0097-io_uring-add-support-for-IORING_REGISTER_FILES_UPDAT.patch +## v5.5~27 "xlat: update uring_setup_features constants" +#Patch98: 0098-xlat-update-uring_setup_features-constants.patch +## v5.5~26 "xlat: add IORING_SETUP_CLAMP to uring_setup_flags" +#Patch99: 0099-xlat-add-IORING_SETUP_CLAMP-to-uring_setup_flags.patch +## v5.5~25 "io_uring: add support of wq_fd field decoding to io_uring_setup" +#Patch100: 0100-io_uring-add-support-of-wq_fd-field-decoding-to-io_u.patch +## v5.6~190 "tests/io_uring_register: properly handle big endian architectures" +#Patch101: 0101-tests-io_uring_register-properly-handle-big-endian-a.patch +## v5.6~157 "io_uring: decode IORING_REGISTER_EVENTFD_ASYNC io_uring_reginster command" +#Patch102: 0102-io_uring-decode-IORING_REGISTER_EVENTFD_ASYNC-io_uri.patch +## v5.6~95 "io_uring: de-indent some code in io_uring_setup decoder" +#Patch103: 0103-io_uring-de-indent-some-code-in-io_uring_setup-decod.patch +## v5.3~29 "defs.h: introduce {opt,dispatch}_{word,klong}size" +#Patch104: 0104-defs.h-introduce-opt-dispatch-_-word-klong-size.patch +## v5.3~9 "Handle xlat verbosity in evdev bitset printing" +#Patch105: 0105-Handle-xlat-verbosity-in-evdev-bitset-printing.patch +## v5.6~94 "io_uring: support IORING_REGISTER_PROBE io_uring_register command" +#Patch106: 0106-io_uring-support-IORING_REGISTER_PROBE-io_uring_regi.patch +## v5.6~93 "io_uring: add support for IORING_{UN,}REGISTER_PERSONALITY commands" +#Patch107: 0107-io_uring-add-support-for-IORING_-UN-REGISTER_PERSONA.patch +## v5.6~17 "tests: fix clang compilation warning" +#Patch108: 0108-tests-fix-clang-compilation-warning.patch +## v5.6~10 "tests: workaround clang compilation warning" +#Patch109: 0109-tests-workaround-clang-compilation-warning.patch +## v5.7~87 "xlat: add IORING_FEAT_FAST_POLL to uring_setup_features" +#Patch110: 0110-xlat-add-IORING_FEAT_FAST_POLL-to-uring_setup_featur.patch +## v5.7~85 "xlat: update uring_ops" +#Patch111: 0111-xlat-update-uring_ops.patch +## v5.7~68 "tests: correct error message in io_uring_register test" +#Patch112: 0112-tests-correct-error-message-in-io_uring_register-tes.patch +# v5.8~58 "io_uring: Remove struct io_cqring_offsets compile time asserts" +Patch113: 0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch +# v5.8~57 "io_uring: Add io_cqring_offset flags" +Patch114: 0114-io_uring-Add-io_cqring_offset-flags.patch +# v5.8~47 "xlat: update IORING_* constants" +Patch115: 0115-xlat-update-IORING_-constants.patch +## v5.5~71 "macros.h: introduce sizeof_field macro" +#Patch116: 0116-macros.h-introduce-sizeof_field-macro.patch +## v5.5~49 "types: new infrastructure for automatic checking of structure types" +#Patch117: 0117-types-new-infrastructure-for-automatic-checking-of-s.patch +# v5.8~59 "types: skip field lines that start with comments" +Patch118: 0118-types-skip-field-lines-that-start-with-comments.patch + + ### Wire up rseq and kexec_file_load in order to avoid kexec_file_load ### test failure on aarch64. Addresses https://bugzilla.redhat.com/1676045 ### ("strace: FTBFS in Fedora rawhide/f30"). ## v5.0~62 "Wire up rseq syscall on architectures that use generic unistd.h" -#Patch100: 0100-Wire-up-rseq-syscall-on-architectures-that-use-gener.patch +#Patch1000: 1000-Wire-up-rseq-syscall-on-architectures-that-use-gener.patch ## v5.0~61 "Wire up kexec_file_load syscall on architectures that use generic unistd.h" -#Patch101: 0101-Wire-up-kexec_file_load-syscall-on-architectures-tha.patch +#Patch1001: 1001-Wire-up-kexec_file_load-syscall-on-architectures-tha.patch ### RHEL7-only: headers on some builders do not provide O_TMPFILE -#Patch200: 0200-strace-provide-O_TMPFILE-fallback-definition.patch +#Patch2000: 2000-strace-provide-O_TMPFILE-fallback-definition.patch ## RHEL-only: aarch64 brew builders are extremely slow on qual_fault.test -Patch201: 0201-limit-qual_fault-scope-on-aarch64.patch +Patch2001: 2001-limit-qual_fault-scope-on-aarch64.patch ### RHEL8.2-only: disable ksysent test due to missing rebase -#Patch202: 0202-disable-ksysent-on-8.2.patch +#Patch2002: 2002-disable-ksysent-on-8.2.patch +## RHEL-only: avoid ARRAY_SIZE macro re-definition in libiberty.h +Patch2003: 2003-undef-ARRAY_SIZE.patch + # We no longer need to build a separate strace32 binary, but we don't want # to break existing strace32 users' workflows. @@ -109,7 +183,8 @@ Patch201: 0201-limit-qual_fault-scope-on-aarch64.patch %define _isa_compat %{?__isa_name:(%{__isa_name}-32)}%{!?__isa:%{nil}} %define evr %{?epoch:%{epoch}:}%{version}-%{release} Provides: strace32 = %{evr} -Obsoletes: strace32 < %{version} strace32%{_isa_compat} < %{version} +# strace32 was a real package before strace-4.24 in RHEL +Obsoletes: strace32 < 4.24 %endif %description @@ -125,21 +200,21 @@ received by a process. %prep %setup -q -%patch30 -p1 -%patch31 -p1 +#%patch30 -p1 +#%patch31 -p1 #%patch32 -p1 -%patch33 -p1 +#%patch33 -p1 #%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 +#%patch35 -p1 +#%patch36 -p1 +#%patch37 -p1 +#%patch38 -p1 +#%patch39 -p1 +#%patch40 -p1 +#%patch41 -p1 +#%patch42 -p1 +#%patch43 -p1 +#%patch44 -p1 #%patch45 -p1 #%patch46 -p1 #%patch47 -p1 @@ -148,13 +223,48 @@ received by a process. #%patch50 -p1 #%patch51 -p1 #%patch52 -p1 - +#%patch87 -p1 +#%patch88 -p1 +#%patch89 -p1 +#%patch90 -p1 +#%patch91 -p1 +#%patch92 -p1 +#%patch93 -p1 +#%patch94 -p1 +#%patch95 -p1 +#%patch96 -p1 +#%patch97 -p1 +#%patch98 -p1 +#%patch99 -p1 #%patch100 -p1 #%patch101 -p1 - -#%patch200 -p1 -%patch201 -p1 -#%patch202 -p1 +#%patch102 -p1 +#%patch103 -p1 +#%patch104 -p1 +#%patch105 -p1 +#%patch106 -p1 +#%patch107 -p1 +#%patch108 -p1 +#%patch109 -p1 +#%patch110 -p1 +#%patch111 -p1 +#%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 +#%patch116 -p1 +#%patch117 -p1 +%patch118 -p1 + +#%patch1000 -p1 +#%patch1001 -p1 + +#%patch2000 -p1 +%patch2001 -p1 +#%patch2002 -p1 +%patch2003 -p1 + +chmod a+x tests/*.test echo -n %version-%release > .tarball-version echo -n 2020 > .year @@ -231,6 +341,13 @@ echo 'END OF TEST SUITE INFORMATION' %{_mandir}/man1/* %changelog +* Mon Nov 09 2020 Eugene Syromiatnikov - 5.7-1 +- Rebase to v5.7; drop upstream patches on top of 5.1 (#1873229). + +* Mon Aug 24 2020 Eugene Syromiatnikov - 5.1-2 +- Update io_uring(2) decoder (#1853011). +- Fix "Obsoletes:" tag on s390x (#1852960). + * Thu Jan 30 2020 Eugene Syromiatnikov - 5.1-1 - Rebase to strace 5.1 (#1777847).