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
new file mode 100644
index 0000000..5bc3768
--- /dev/null
+++ b/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
@@ -0,0 +1,365 @@
+From c26541c73c3b4be2977e719d77287255eb346cdf Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+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
new file mode 100644
index 0000000..17fd6cc
--- /dev/null
+++ b/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch
@@ -0,0 +1,36 @@
+From 69b2c33a77fa687feb41fafdbe187013aa812384 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+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/0041-tests-add-strace-k-p-test.patch b/SOURCES/0041-tests-add-strace-k-p-test.patch
new file mode 100644
index 0000000..a9c924c
--- /dev/null
+++ b/SOURCES/0041-tests-add-strace-k-p-test.patch
@@ -0,0 +1,724 @@
+From 8e515c744935fe67e6a1b941f4c5414472c163b7 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+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 <unistd.h>.
+[!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-4.24/tests/Makefile.am
+===================================================================
+--- strace-4.24.orig/tests/Makefile.am	2020-01-23 14:58:43.424959638 +0100
++++ strace-4.24/tests/Makefile.am	2020-01-23 14:58:43.440959144 +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
+@@ -423,6 +427,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-4.24/tests/stack-fcall-attach.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests/stack-fcall-attach.c	2020-01-23 14:58:43.441959113 +0100
+@@ -0,0 +1,2 @@
++#define ATTACH_MODE 1
++#include "stack-fcall.c"
+Index: strace-4.24/tests/stack-fcall.c
+===================================================================
+--- strace-4.24.orig/tests/stack-fcall.c	2020-01-23 14:58:09.934993679 +0100
++++ strace-4.24/tests/stack-fcall.c	2020-01-23 14:58:43.441959113 +0100
+@@ -1,7 +1,18 @@
++#include "tests.h"
++#include <unistd.h>
+ #include "stack-fcall.h"
+ 
++#ifndef ATTACH_MODE
++# define ATTACH_MODE 0
++#endif
++
+ int main(int argc, char **argv)
+ {
++#if ATTACH_MODE
++	/* sleep a bit to let the tracer time to catch up */
++	sleep(1);
++#endif
++
+ 	f0(argc);
+ 	return 0;
+ }
+Index: strace-4.24/tests/strace-k-p.expected
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests/strace-k-p.expected	2020-01-23 16:23:03.932457826 +0100
+@@ -0,0 +1 @@
++(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
+Index: strace-4.24/tests/strace-k-p.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests/strace-k-p.test	2020-01-23 14:58:43.441959113 +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-4.24/tests/strace-k.test
+===================================================================
+--- strace-4.24.orig/tests/strace-k.test	2020-01-23 14:58:43.001972698 +0100
++++ strace-4.24/tests/strace-k.test	2020-01-23 14:58:43.441959113 +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 getpid -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 getpid -k -p "$tracee_pid"
++else
++	run_strace -e getpid -k $args
++fi
+ 
+ expected="$srcdir/$NAME.expected"
+ sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+Index: strace-4.24/tests/Makefile.in
+===================================================================
+--- strace-4.24.orig/tests/Makefile.in	2020-01-23 14:58:43.425959607 +0100
++++ strace-4.24/tests/Makefile.in	2020-01-23 14:57:57.710371128 +0100
+@@ -178,9 +178,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
+@@ -2427,6 +2427,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) \
+@@ -2851,7 +2857,7 @@
+ 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
+ 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
+ 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
++	sockopt-sol_netlink.c splice.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 \
+@@ -2999,7 +3005,7 @@
+ 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
+ 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
+ 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
++	sockopt-sol_netlink.c splice.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 \
+@@ -3226,7 +3232,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)
+@@ -3960,6 +3967,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
+@@ -4163,7 +4173,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 \
+@@ -4366,6 +4376,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 \
+@@ -6454,6 +6466,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)
+@@ -7244,6 +7260,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@
+Index: strace-4.24/tests-m32/Makefile.am
+===================================================================
+--- strace-4.24.orig/tests-m32/Makefile.am	2020-01-23 14:58:43.422959699 +0100
++++ strace-4.24/tests-m32/Makefile.am	2020-01-23 14:58:43.442959082 +0100
+@@ -173,6 +173,7 @@
+ 	signal_receive \
+ 	sleep \
+ 	stack-fcall \
++	stack-fcall-attach \
+ 	stack-fcall-mangled \
+ 	threads-execve \
+ 	unblock_reset_raise \
+@@ -214,6 +215,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
+@@ -221,7 +225,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
+@@ -434,6 +438,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-4.24/tests-m32/Makefile.in
+===================================================================
+--- strace-4.24.orig/tests-m32/Makefile.in	2020-01-23 14:58:43.424959638 +0100
++++ strace-4.24/tests-m32/Makefile.in	2020-01-23 17:52:08.510416337 +0100
+@@ -177,9 +177,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
+@@ -2418,6 +2418,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) \
+@@ -2841,7 +2847,7 @@
+ 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
+ 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
+ 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
++	sockopt-sol_netlink.c splice.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 \
+@@ -2988,7 +2994,7 @@
+ 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
+ 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
+ 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
++	sockopt-sol_netlink.c splice.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 \
+@@ -3215,7 +3221,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)
+@@ -3949,6 +3956,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
+@@ -4152,7 +4162,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 \
+@@ -4353,6 +4363,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 \
+@@ -6433,6 +6445,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)
+@@ -7221,6 +7237,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@
+Index: strace-4.24/tests-mx32/Makefile.am
+===================================================================
+--- strace-4.24.orig/tests-mx32/Makefile.am	2020-01-23 14:58:43.424959638 +0100
++++ strace-4.24/tests-mx32/Makefile.am	2020-01-23 14:58:43.443959051 +0100
+@@ -173,6 +173,7 @@
+ 	signal_receive \
+ 	sleep \
+ 	stack-fcall \
++	stack-fcall-attach \
+ 	stack-fcall-mangled \
+ 	threads-execve \
+ 	unblock_reset_raise \
+@@ -214,6 +215,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
+@@ -221,7 +225,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
+@@ -434,6 +438,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-4.24/tests-mx32/Makefile.in
+===================================================================
+--- strace-4.24.orig/tests-mx32/Makefile.in	2020-01-23 14:58:43.424959638 +0100
++++ strace-4.24/tests-mx32/Makefile.in	2020-01-23 14:58:08.177047958 +0100
+@@ -177,9 +177,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
+@@ -2841,7 +2841,7 @@
+ 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
+ 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
+ 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
++	sockopt-sol_netlink.c splice.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 \
+@@ -2988,7 +2988,7 @@
+ 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
+ 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
+ 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
++	sockopt-sol_netlink.c splice.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 \
+Index: strace-4.24/tests-m32/stack-fcall-attach.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests-m32/stack-fcall-attach.c	2020-01-23 15:42:03.377780293 +0100
+@@ -0,0 +1,2 @@
++#define ATTACH_MODE 1
++#include "stack-fcall.c"
+Index: strace-4.24/tests-m32/stack-fcall.c
+===================================================================
+--- strace-4.24.orig/tests-m32/stack-fcall.c	2017-12-29 16:20:21.000000000 +0100
++++ strace-4.24/tests-m32/stack-fcall.c	2020-01-23 15:42:03.381780261 +0100
+@@ -1,7 +1,18 @@
++#include "tests.h"
++#include <unistd.h>
+ #include "stack-fcall.h"
+ 
++#ifndef ATTACH_MODE
++# define ATTACH_MODE 0
++#endif
++
+ int main(int argc, char **argv)
+ {
++#if ATTACH_MODE
++	/* sleep a bit to let the tracer time to catch up */
++	sleep(1);
++#endif
++
+ 	f0(argc);
+ 	return 0;
+ }
+Index: strace-4.24/tests-m32/strace-k-p.expected
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests-m32/strace-k-p.expected	2020-01-23 16:22:56.367298204 +0100
+@@ -0,0 +1 @@
++(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
+Index: strace-4.24/tests-m32/strace-k-p.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests-m32/strace-k-p.test	2020-01-23 15:42:03.383780246 +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-4.24/tests-m32/strace-k.test
+===================================================================
+--- strace-4.24.orig/tests-m32/strace-k.test	2018-06-14 13:00:00.000000000 +0200
++++ strace-4.24/tests-m32/strace-k.test	2020-01-23 15:42:03.385780230 +0100
+@@ -7,30 +7,12 @@
+ # Copyright (c) 2014-2018 The strace developers.
+ # All rights reserved.
+ #
+-# Redistribution and use in source and binary forms, with or without
+-# modification, are permitted provided that the following conditions
+-# are met:
+-# 1. Redistributions of source code must retain the above copyright
+-#    notice, this list of conditions and the following disclaimer.
+-# 2. Redistributions in binary form must reproduce the above copyright
+-#    notice, this list of conditions and the following disclaimer in the
+-#    documentation and/or other materials provided with the distribution.
+-# 3. The name of the author may not be used to endorse or promote products
+-#    derived from this software without specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++# SPDX-License-Identifier: GPL-2.0-or-later
+ 
+ . "${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'
+@@ -40,7 +22,19 @@
+ check_prog tr
+ 
+ run_prog "${test_prog=../stack-fcall}"
+-run_strace -e getpid -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 getpid -k -p "$tracee_pid"
++else
++	run_strace -e getpid -k $args
++fi
+ 
+ expected="$srcdir/$NAME.expected"
+ sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+Index: strace-4.24/tests-mx32/stack-fcall-attach.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests-mx32/stack-fcall-attach.c	2020-01-23 15:42:10.783722024 +0100
+@@ -0,0 +1,2 @@
++#define ATTACH_MODE 1
++#include "stack-fcall.c"
+Index: strace-4.24/tests-mx32/stack-fcall.c
+===================================================================
+--- strace-4.24.orig/tests-mx32/stack-fcall.c	2017-12-29 16:20:21.000000000 +0100
++++ strace-4.24/tests-mx32/stack-fcall.c	2020-01-23 15:42:10.797721914 +0100
+@@ -1,7 +1,18 @@
++#include "tests.h"
++#include <unistd.h>
+ #include "stack-fcall.h"
+ 
++#ifndef ATTACH_MODE
++# define ATTACH_MODE 0
++#endif
++
+ int main(int argc, char **argv)
+ {
++#if ATTACH_MODE
++	/* sleep a bit to let the tracer time to catch up */
++	sleep(1);
++#endif
++
+ 	f0(argc);
+ 	return 0;
+ }
+Index: strace-4.24/tests-mx32/strace-k-p.expected
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests-mx32/strace-k-p.expected	2020-01-23 16:22:53.346234461 +0100
+@@ -0,0 +1 @@
++(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
+Index: strace-4.24/tests-mx32/strace-k-p.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-4.24/tests-mx32/strace-k-p.test	2020-01-23 15:42:10.803721866 +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-4.24/tests-mx32/strace-k.test
+===================================================================
+--- strace-4.24.orig/tests-mx32/strace-k.test	2018-06-14 13:00:00.000000000 +0200
++++ strace-4.24/tests-mx32/strace-k.test	2020-01-23 15:42:10.810721811 +0100
+@@ -7,30 +7,12 @@
+ # Copyright (c) 2014-2018 The strace developers.
+ # All rights reserved.
+ #
+-# Redistribution and use in source and binary forms, with or without
+-# modification, are permitted provided that the following conditions
+-# are met:
+-# 1. Redistributions of source code must retain the above copyright
+-#    notice, this list of conditions and the following disclaimer.
+-# 2. Redistributions in binary form must reproduce the above copyright
+-#    notice, this list of conditions and the following disclaimer in the
+-#    documentation and/or other materials provided with the distribution.
+-# 3. The name of the author may not be used to endorse or promote products
+-#    derived from this software without specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++# SPDX-License-Identifier: GPL-2.0-or-later
+ 
+ . "${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'
+@@ -40,7 +22,19 @@
+ check_prog tr
+ 
+ run_prog "${test_prog=../stack-fcall}"
+-run_strace -e getpid -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 getpid -k -p "$tracee_pid"
++else
++	run_strace -e getpid -k $args
++fi
+ 
+ expected="$srcdir/$NAME.expected"
+ sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
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
new file mode 100644
index 0000000..a05241d
--- /dev/null
+++ b/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch
@@ -0,0 +1,90 @@
+From 4377e3a1535a0ec3a42da8a1366ad6943f4efa0e Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+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
new file mode 100644
index 0000000..3ce20d2
--- /dev/null
+++ b/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
@@ -0,0 +1,53 @@
+From a75c7c4bcb6b48680275de3e99e17e0ebec811ec Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+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/SPECS/strace.spec b/SPECS/strace.spec
index d1dfa0c..1a80a1f 100644
--- a/SPECS/strace.spec
+++ b/SPECS/strace.spec
@@ -1,7 +1,7 @@
 Summary: Tracks and displays system calls associated with a running process
 Name: strace
 Version: 4.24
-Release: 4%{?dist}
+Release: 6%{?dist}
 # The test suite is GPLv2+, all the rest is LGPLv2.1+.
 License: LGPL-2.1+ and GPL-2.0+
 Group: Development/Debuggers
@@ -124,6 +124,27 @@ Patch35: 0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch
 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
+## RHEL 8: https://bugzilla.redhat.com/1790053
+## 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-63-g8e515c7 "tests: add strace-k-p test"
+Patch41: 0041-tests-add-strace-k-p-test.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
 
 ## RHEL-only: headers on some builders do not provide O_TMPFILE
 Patch200: 0200-strace-provide-O_TMPFILE-fallback-definition.patch
@@ -208,6 +229,11 @@ binary supports tracing of 32-bit processes as well.
 %patch35 -p1
 %patch36 -p1
 %patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch41 -p1
+%patch43 -p1
+%patch44 -p1
 
 %patch200 -p1
 %patch201 -p1
@@ -319,6 +345,18 @@ rm -rf %{buildroot}
 %endif
 
 %changelog
+* Thu Apr 16 2020 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-6
+- Fix expected alignment for IPC tests (#1795261):
+  4377e3a1 "tests: fix expected output for some ipc tests", and
+  a75c7c4b "tests: fix -a argument in ipc_msgbuf-Xraw test".
+
+* Thu Apr 16 2020 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-5
+- Fix printing stack traces for early syscalls on process attach (#1790052):
+  69b2c33a "unwind-libdw: fix initialization of libdwfl cache" and
+  8e515c74 "tests: add strace-k-p test".
+- Add commit v5.4~97 "xlat: use unsgined type for mount_flags fallback values"
+  (A leftover for #1747524).
+
 * Fri Aug 30 2019 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-4
 - Include upstream patches that fix issues reported by covscan:
   91281fec "v4l2: avoid shifting left a signed number by 31 bit",