From 57cbcfc414f9033a78993a478249fc56ab791213 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 19 Nov 2021 22:32:46 -0500 Subject: [PATCH] Resolves: rhbz2025054 (adapt to more strict python3 in c9s buildroot) --- rhbz1972803.patch | 24 -- rhbz1972805.patch | 52 --- rhbz1972828.patch | 29 -- rhbz1982908.patch | 222 ---------- rhbz1985124.patch | 854 --------------------------------------- rhbz2025054python3.patch | 95 +++++ systemtap.spec | 4 + 7 files changed, 99 insertions(+), 1181 deletions(-) delete mode 100644 rhbz1972803.patch delete mode 100644 rhbz1972805.patch delete mode 100644 rhbz1972828.patch delete mode 100644 rhbz1982908.patch delete mode 100644 rhbz1985124.patch create mode 100644 rhbz2025054python3.patch diff --git a/rhbz1972803.patch b/rhbz1972803.patch deleted file mode 100644 index 48dd753..0000000 --- a/rhbz1972803.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit eaf63df6a429956bdc03f2ecd8fc2b6fa50321a8 -Author: Frank Ch. Eigler -Date: Wed Jun 23 20:16:52 2021 -0400 - - ppc64 runtime: FULL_REGS() gone - - Adapt to kernel commit 8dc7f0229b78, which dropped the titular macro - from ppc64 ptrace.h header. - -diff --git a/runtime/linux/regs.c b/runtime/linux/regs.c -index 26423164b..5c3a86c62 100644 ---- a/runtime/linux/regs.c -+++ b/runtime/linux/regs.c -@@ -182,6 +182,10 @@ static void _stp_print_regs(struct pt_regs * regs) - } - - _stp_printf("%016lX ", regs->gpr[i]); -+/* since kernel commit 8dc7f0229 */ -+#ifndef FULL_REGS -+#define FULL_REGS(r) true -+#endif - if (i == 13 && !FULL_REGS(regs)) - break; - } diff --git a/rhbz1972805.patch b/rhbz1972805.patch deleted file mode 100644 index 4c95f78..0000000 --- a/rhbz1972805.patch +++ /dev/null @@ -1,52 +0,0 @@ -commit 5409ddea1a007384b9c71a78e8dd2cbca1fc5424 -Author: Frank Ch. Eigler -Date: Thu Jul 1 14:41:06 2021 -0400 - - rhbz1972805: add basic syscall-in-ptregs support for s390x - - Akin to commit 7be7af0fda36 for ARM, add basic syscalls via - tracepoints / CONTEXT->sregs support for s390x. The argno=6 case is - funny because for syscalls they travel in registers, whereas normally - they hop onto the stack. - -diff --git a/tapset/s390/registers.stp b/tapset/s390/registers.stp -index b3986cdd9..cbe7e8483 100644 ---- a/tapset/s390/registers.stp -+++ b/tapset/s390/registers.stp -@@ -136,7 +136,10 @@ function uarch_bytes:long() { - function _stp_get_register_by_offset:long (offset:long) %{ /* pure */ - long value; - struct pt_regs *regs; -- regs = (CONTEXT->user_mode_p ? CONTEXT->uregs : CONTEXT->kregs); -+ if (CONTEXT->sregs) -+ regs = CONTEXT->sregs; -+ else -+ regs = (CONTEXT->user_mode_p ? CONTEXT->uregs : CONTEXT->kregs); - if (!regs) { - CONTEXT->last_error = "No registers available in this context"; - return; -@@ -169,9 +172,10 @@ function _stp_sign_extend32:long (value:long) { - } - - function _stp_register:long (name:string, sign_extend:long) { -- assert(registers_valid(), "cannot access CPU registers in this context") -+ # don't assert this: will get *regs state checked in _stp_get_register_by_offset, and better -+ # assert(registers_valid(), "cannot access CPU registers in this context") - offset = _reg_offsets[name] -- assert(offset != 0 || (name in _reg_offsets), "Unknown register: " . name) -+ assert(offset != 0 || (name in _reg_offsets), "Unknown register: " . name) - value = _stp_get_register_by_offset(offset) - if (probing_32bit_app()) { - if (sign_extend) -@@ -235,8 +239,10 @@ function _stp_arg2:long (argnum:long, sign_extend:long, truncate:long, - val = u_register("r5") - else if (argnum == 5) - val = u_register("r6") -+ else if (argnum == 6 && %{ CONTEXT->sregs != NULL %} ) // linux syscall arg6 goes into r7 -+ val = u_register("r7") - else if (argnum >= 6) -- val = _stp_get_kernel_stack_param(argnum - 6) -+ val = _stp_get_kernel_stack_param(argnum - 6); - - if ((truncate || @__compat_task) && !force64) { - /* High bits may be garbage. */ diff --git a/rhbz1972828.patch b/rhbz1972828.patch deleted file mode 100644 index 9598ac8..0000000 --- a/rhbz1972828.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit 515a6a2d63cdf16c5bc599f0d29283289219d9a4 -Author: Frank Ch. Eigler -Date: Thu Jun 24 13:30:38 2021 -0400 - - rhbz1972828: tapsets: iommu tracepoints - - Disable detection of intel-iommu tracepoint family on non-x86 - platforms, because the 5.13ish kernel headers for this tracepoint - include references to functions like clcache_flush_range which don't - exist on all non-x86. - -diff --git a/tapsets.cxx b/tapsets.cxx -index a5e41129f..20e0cb68f 100644 ---- a/tapsets.cxx -+++ b/tapsets.cxx -@@ -11930,6 +11930,13 @@ static vector tracepoint_extra_decls (systemtap_session& s, - they_live.push_back ("#include "); - } - -+ if (header.find("intel_iommu") != string::npos && s.architecture != "x86_64" && s.architecture != "i386") -+ { -+ // need asm/cacheflush.h for clflush_cache_range() used in that header, -+ // but this function does not exist on e.g. ppc -+ they_live.push_back ("#error nope"); -+ } -+ - if (header.find("wbt") != string::npos) - { - // blk-wbt.h gets included as "../../../block/blk-wbt.h", so we diff --git a/rhbz1982908.patch b/rhbz1982908.patch deleted file mode 100644 index f7bc9f1..0000000 --- a/rhbz1982908.patch +++ /dev/null @@ -1,222 +0,0 @@ -commit 04b43f48f1091bdc4bfdbabae86745547e539f8c -Author: Frank Ch. Eigler -Date: Mon Jul 26 15:49:15 2021 -0400 - - releng: ditch custom pie/ssp CFLAGS engine in configure.ac - - Just inherit the desired c*flags from autoconf via environment - variables from the distro spec files. This lets us automatically - benefit from centralized hardening flags on some distros. OTOH - distros without that now will need to add such settings to the build - scripts that invoke this configure script. - -diff --git a/configure b/configure -index 3830ca898..55ff87330 100755 ---- a/configure -+++ b/configure -@@ -904,8 +904,6 @@ with_libiconv_prefix - with_libintl_prefix - enable_prologues - enable_sdt_probes --enable_ssp --enable_pie - with_debuginfod - enable_sqlite - enable_translator -@@ -1609,8 +1607,6 @@ Optional Features: - --disable-rpath do not hardcode runtime library paths - --enable-prologues make -P prologue-searching default - --disable-sdt-probes disable process.mark probes in stap, staprun, stapio -- --disable-ssp disable gcc stack-protector -- --enable-pie enable position-independent-executable - --enable-sqlite build with sqlite support - --disable-translator build only runtime utilities - --enable-crash[=DIRECTORY] -@@ -10269,82 +10265,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi - --# Check whether --enable-ssp was given. --if test "${enable_ssp+set}" = set; then : -- enableval=$enable_ssp; --fi -- --if test "x$enable_ssp" != xno; then : -- -- save_CFLAGS="$CFLAGS" -- save_CXXFLAGS="$CXXFLAGS" -- CXXFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CXXFLAGS" -- CFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CFLAGS" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --int something (); --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiling with gcc -fstack-protector-all et al." >&5 --$as_echo "$as_me: Compiling with gcc -fstack-protector-all et al." >&6;} -- CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CFLAGS" -- CXXFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CXXFLAGS" --else -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiler does not support -fstack-protector-all et al." >&5 --$as_echo "$as_me: Compiler does not support -fstack-protector-all et al." >&6;} -- CFLAGS="$save_CFLAGS" -- CXXFLAGS="$save_CXXFLAGS" --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi -- -- -- -- --# Compiling with fPIE by default (but see PR 9922) --# Check whether --enable-pie was given. --if test "${enable_pie+set}" = set; then : -- enableval=$enable_pie; --fi -- --if test "x$enable_pie" != xno; then : -- -- PIECFLAGS='-fPIE' -- PIECXXFLAGS='-fPIE' -- PIELDFLAGS='-pie -Wl,-z,relro -Wl,-z,now' -- save_CFLAGS="$CFLAGS" -- save_CXXFLAGS="$CXXFLAGS" -- save_LDFLAGS="$LDFLAGS" -- CFLAGS="$CFLAGS $PIECFLAGS" -- CXXFLAGS="$CXXFLAGS $PIECXXFLAGS" -- LDFLAGS="$LDFLAGS $PIELDFLAGS" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --void main () {} --_ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiling with gcc pie et al." >&5 --$as_echo "$as_me: Compiling with gcc pie et al." >&6;} -- --else -- -- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiler does not support -pie et al." >&5 --$as_echo "$as_me: Compiler does not support -pie et al." >&6;} -- PIECFLAGS="" -- PIECXXFLAGS="" -- PIELDFLAGS="" -- --fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -- CFLAGS="$save_CFLAGS" -- CXXFLAGS="$save_CXXFLAGS" -- LDFLAGS="$save_LDFLAGS" -- --fi - - - -diff --git a/configure.ac b/configure.ac -index d4fd9e1b0..a88c20bff 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -190,60 +190,8 @@ AS_IF([test "x$HAVE_CXX11" != x1],[ - AC_LANG_POP(C++) - ]) - --AC_ARG_ENABLE([ssp], -- [AS_HELP_STRING([--disable-ssp], [disable gcc stack-protector])]) --AS_IF([test "x$enable_ssp" != xno],[ -- save_CFLAGS="$CFLAGS" -- save_CXXFLAGS="$CXXFLAGS" -- CXXFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CXXFLAGS" -- CFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CFLAGS" -- AC_COMPILE_IFELSE([AC_LANG_SOURCE([int something ();])], [ -- AC_MSG_NOTICE([Compiling with gcc -fstack-protector-all et al.]) -- CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CFLAGS" -- CXXFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CXXFLAGS"],[ -- AC_MSG_NOTICE([Compiler does not support -fstack-protector-all et al.]) -- CFLAGS="$save_CFLAGS" -- CXXFLAGS="$save_CXXFLAGS"])]) -- -- --dnl Link with gold if possible --dnl but: https://bugzilla.redhat.com/show_bug.cgi?id=636603 --dnl --dnl AC_PATH_PROG(GOLD, [ld.gold], [no]) --dnl if test "x$GOLD" != "xno" --dnl then --dnl mkdir -p Bdir --dnl ln -sf $GOLD Bdir/ld --dnl LDFLAGS="$LDFLAGS -B`pwd`/Bdir/" --dnl AC_MSG_NOTICE([using ld.gold to link]) --dnl fi -- -- --# Compiling with fPIE by default (but see PR 9922) --AC_ARG_ENABLE([pie], -- [AS_HELP_STRING([--enable-pie], [enable position-independent-executable])]) --AS_IF([test "x$enable_pie" != xno],[ -- PIECFLAGS='-fPIE' -- PIECXXFLAGS='-fPIE' -- PIELDFLAGS='-pie -Wl,-z,relro -Wl,-z,now' -- save_CFLAGS="$CFLAGS" -- save_CXXFLAGS="$CXXFLAGS" -- save_LDFLAGS="$LDFLAGS" -- CFLAGS="$CFLAGS $PIECFLAGS" -- CXXFLAGS="$CXXFLAGS $PIECXXFLAGS" -- LDFLAGS="$LDFLAGS $PIELDFLAGS" -- AC_LINK_IFELSE([AC_LANG_SOURCE([void main () {}])], [ -- AC_MSG_NOTICE([Compiling with gcc pie et al.]) -- ], [ -- AC_MSG_NOTICE([Compiler does not support -pie et al.]) -- PIECFLAGS="" -- PIECXXFLAGS="" -- PIELDFLAGS="" -- ]) -- CFLAGS="$save_CFLAGS" -- CXXFLAGS="$save_CXXFLAGS" -- LDFLAGS="$save_LDFLAGS" --]) -+dnl Carry forward some empty PIE*FLAGS so we don't have to modify -+dnl all the Makefile.am's just now. - AC_SUBST(PIELDFLAGS) - AC_SUBST(PIECFLAGS) - AC_SUBST(PIECXXFLAGS) -diff --git a/systemtap.spec b/systemtap.spec -index e5224e902..a2458b4b5 100644 ---- a/systemtap.spec -+++ b/systemtap.spec -@@ -11,7 +11,6 @@ - %endif - %{!?with_rpm: %global with_rpm 1} - %{!?elfutils_version: %global elfutils_version 0.179} --%{!?pie_supported: %global pie_supported 1} - %{!?with_boost: %global with_boost 0} - %ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 - %{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7} -@@ -589,14 +588,6 @@ systemtap-runtime-virthost machine to execute systemtap scripts. - %global docs_config --enable-docs=prebuilt - %endif - --# Enable pie as configure defaults to disabling it --%if %{pie_supported} --%global pie_config --enable-pie --%else --%global pie_config --disable-pie --%endif -- -- - %if %{with_java} - %global java_config --with-java=%{_jvmdir}/java - %else -@@ -646,8 +637,8 @@ systemtap-runtime-virthost machine to execute systemtap scripts. - # We don't ship compileworthy python code, just oddball samples - %global py_auto_byte_compile 0 - --%configure %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{pie_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}" --make %{?_smp_mflags} -+%configure %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}" -+make %{?_smp_mflags} V=1 - - - %install diff --git a/rhbz1985124.patch b/rhbz1985124.patch deleted file mode 100644 index 081bdf3..0000000 --- a/rhbz1985124.patch +++ /dev/null @@ -1,854 +0,0 @@ -commit 7c2751e37f97e95d77898d68b7c08cbf1be7f7d9 -Author: Sultan Alsawaf -Date: Mon Jul 12 15:31:36 2021 -0500 - - task_finder_vma: add autoconf check for hlist_add_tail_rcu() - - The 3.10 version check for hlist_add_tail_rcu() only works for RHEL - kernels. Kernels older than 4.7 that lack the hlist_add_tail_rcu() backport - won't compile (such as Debian kernels). Add an autoconf stub to know for - certain if hlist_add_tail_rcu() is present. - -diff --git a/buildrun.cxx b/buildrun.cxx -index ba3daa0a0..0c244db72 100644 ---- a/buildrun.cxx -+++ b/buildrun.cxx -@@ -520,6 +520,8 @@ compile_pass (systemtap_session& s) - "STAPCONF_ATOMIC_FETCH_ADD_UNLESS", NULL); - output_autoconf(s, o, cs, "autoconf-lockdown-debugfs.c", "STAPCONF_LOCKDOWN_DEBUGFS", NULL); - output_autoconf(s, o, cs, "autoconf-lockdown-kernel.c", "STAPCONF_LOCKDOWN_KERNEL", NULL); -+ output_autoconf(s, o, cs, "autoconf-hlist_add_tail_rcu.c", -+ "STAPCONF_HLIST_ADD_TAIL_RCU", NULL); - - // used by runtime/linux/netfilter.c - output_exportconf(s, o2, "nf_register_hook", "STAPCONF_NF_REGISTER_HOOK"); -diff --git a/runtime/linux/autoconf-hlist_add_tail_rcu.c b/runtime/linux/autoconf-hlist_add_tail_rcu.c -new file mode 100644 -index 000000000..2c4660837 ---- /dev/null -+++ b/runtime/linux/autoconf-hlist_add_tail_rcu.c -@@ -0,0 +1,6 @@ -+#include -+ -+void foo(struct hlist_node *n, struct hlist_head *h) -+{ -+ hlist_add_tail_rcu(n, h); -+} - -commit ef5a8b9eda402e4e96c4e3ce01e7ff95d3e10470 -Author: Du Zhe -Date: Tue Jul 13 19:11:55 2021 -0400 - - runtime: fix unintended compile error with autoconf-x86-uniregs.c - - Adding a #include restores this test on the gentoo - linux-5.10.47-gentoo kernel. - -diff --git a/runtime/linux/autoconf-x86-uniregs.c b/runtime/linux/autoconf-x86-uniregs.c -index 25729c220..232c18670 100644 ---- a/runtime/linux/autoconf-x86-uniregs.c -+++ b/runtime/linux/autoconf-x86-uniregs.c -@@ -1,3 +1,4 @@ -+#include - #include - - #if defined (__i386__) || defined (__x86_64__) - -commit 968173f7fb97675de94c8ca47e6b6898b1117a1d -Author: Frank Ch. Eigler -Date: Tue Jul 13 19:34:50 2021 -0400 - - runtime: linux 5.14 compat: - - Linux commit f39650de687e3 moved some kernel decls around. - -diff --git a/buildrun.cxx b/buildrun.cxx -index 0c244db72..a1332a687 100644 ---- a/buildrun.cxx -+++ b/buildrun.cxx -@@ -383,7 +383,8 @@ compile_pass (systemtap_session& s) - output_exportconf(s, o2, "cpu_khz", "STAPCONF_CPU_KHZ"); - output_exportconf(s, o2, "__module_text_address", "STAPCONF_MODULE_TEXT_ADDRESS"); - output_exportconf(s, o2, "add_timer_on", "STAPCONF_ADD_TIMER_ON"); -- -+ output_autoconf(s, o, cs, "autoconf-514-panic.c", "STAPCONF_514_PANIC", NULL); -+ - output_dual_exportconf(s, o2, "probe_kernel_read", "probe_kernel_write", "STAPCONF_PROBE_KERNEL"); - output_autoconf(s, o, cs, "autoconf-hw_breakpoint_context.c", - "STAPCONF_HW_BREAKPOINT_CONTEXT", NULL); -diff --git a/runtime/linux/autoconf-514-panic.c b/runtime/linux/autoconf-514-panic.c -new file mode 100644 -index 000000000..57b1a0026 ---- /dev/null -+++ b/runtime/linux/autoconf-514-panic.c -@@ -0,0 +1,3 @@ -+#include -+ -+void* c = & panic_notifier_list; -diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c -index 32ef99da6..9b9d6cbe2 100644 ---- a/runtime/transport/transport.c -+++ b/runtime/transport/transport.c -@@ -24,6 +24,9 @@ - #ifdef STAPCONF_LOCKDOWN_DEBUGFS - #include - #endif -+#ifdef STAPCONF_514_PANIC -+#include -+#endif - #include "../uidgid_compatibility.h" - - static int _stp_exit_flag = 0; - -commit a29f65d5750f6379afeca99c5d641598ff638517 -Author: Stan Cox -Date: Sun Jul 18 21:32:51 2021 -0400 - - PR28079: Adapt to kernel 5.14 task_struct.__state change - - Use signal_wake_up_state for the 5.14 kernel which changed volatile long state to unsigned int __state. - -diff --git a/buildrun.cxx b/buildrun.cxx -index a1332a687..ae27ddea4 100644 ---- a/buildrun.cxx -+++ b/buildrun.cxx -@@ -523,6 +523,7 @@ compile_pass (systemtap_session& s) - output_autoconf(s, o, cs, "autoconf-lockdown-kernel.c", "STAPCONF_LOCKDOWN_KERNEL", NULL); - output_autoconf(s, o, cs, "autoconf-hlist_add_tail_rcu.c", - "STAPCONF_HLIST_ADD_TAIL_RCU", NULL); -+ output_autoconf(s, o, cs, "autoconf-task-state.c", "STAPCONF_TASK_STATE", NULL); - - // used by runtime/linux/netfilter.c - output_exportconf(s, o2, "nf_register_hook", "STAPCONF_NF_REGISTER_HOOK"); -diff --git a/runtime/linux/autoconf-task-state.c b/runtime/linux/autoconf-task-state.c -new file mode 100644 -index 000000000..27a1d7c13 ---- /dev/null -+++ b/runtime/linux/autoconf-task-state.c -@@ -0,0 +1,18 @@ -+/* -+ * Is this a kernel prior to the following kernel commit: -+ * -+ * commit 2f064a59a11ff9bc22e52e9678bc601404c7cb34 -+ * Author: Peter Zijlstra -+ * Date: 2021-06-11 10:28:17 +0200 -+ * -+ * sched: Change task_struct::state -+ * Change the type and name of task_struct::state. Drop the volatile and -+ * shrink it to an 'unsigned int'. Rename it in order to find all uses -+ * such that we can use READ_ONCE/WRITE_ONCE as appropriate. -+ */ -+ -+#include -+ -+unsigned int bar (struct task_struct *foo) { -+ return (foo->state = 0); -+} -diff --git a/runtime/stp_utrace.c b/runtime/stp_utrace.c -index ff8c5549d..d63e6366c 100644 ---- a/runtime/stp_utrace.c -+++ b/runtime/stp_utrace.c -@@ -33,9 +33,12 @@ - #if defined(__set_task_state) - #define __stp_set_task_state(tsk, state_value) \ - __set_task_state((tsk), (state_value)) --#else -+#elif defined(STAPCONF_TASK_STATE) - #define __stp_set_task_state(tsk, state_value) \ - do { (tsk)->state = (state_value); } while (0) -+#else -+#define __stp_set_task_state(tsk, state_value) \ -+ signal_wake_up_state((tsk), (state_value)) - #endif - - // For now, disable the task_work_queue on non-RT kernels. -@@ -1263,7 +1266,7 @@ static void utrace_wakeup(struct task_struct *target, struct utrace *utrace) - spin_lock_irq(&target->sighand->siglock); - if (target->signal->flags & SIGNAL_STOP_STOPPED || - target->signal->group_stop_count) -- target->state = TASK_STOPPED; -+ __stp_set_task_state(target, TASK_STOPPED); - else - stp_wake_up_state(target, __TASK_TRACED); - spin_unlock_irq(&target->sighand->siglock); - -commit ffb0a38ea0ded9561233ffcb2d9b52a46ddf70ed -Author: Frank Ch. Eigler -Date: Thu Jul 22 19:16:12 2021 -0400 - - runtime: adapt to -Werror=implicit-fallthrough=5 - - Linux kbuild commit d936eb23874 sets $subject CFLAGS, so to play - catch-up, we also need to use gcc attribute(fallthrough) to label such - spots in switch() statements in our runtime / tapset. Tested on - linux5.14 gcc11 rawhide and linux3.10 gcc4 rhel7. - -diff --git a/runtime/linux/runtime.h b/runtime/linux/runtime.h -index 035f0bd97..e57d10a8a 100644 ---- a/runtime/linux/runtime.h -+++ b/runtime/linux/runtime.h -@@ -65,6 +65,22 @@ - static void *kallsyms_copy_to_kernel_nofault; - #endif - -+ -+/* A fallthrough; macro to let the runtime survive -Wimplicit-fallthrough=5 */ -+/* from */ -+#ifndef fallthrough -+#if __GNUC__ < 5 -+# define fallthrough do {} while (0) /* fallthrough */ -+#else -+#if __has_attribute(__fallthrough__) -+# define fallthrough __attribute__((__fallthrough__)) -+#else -+# define fallthrough do {} while (0) /* fallthrough */ -+#endif -+#endif -+#endif -+ -+ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) - #include - #endif -diff --git a/runtime/map-gen.c b/runtime/map-gen.c -index aeeab38bf..47317d61f 100644 ---- a/runtime/map-gen.c -+++ b/runtime/map-gen.c -@@ -112,9 +112,9 @@ - k1 = 0; \ - switch(mylen & 3) { \ - case 3: k1 ^= tail[2] << 16; \ -- /* fallthrough */ \ -+ fallthrough; \ - case 2: k1 ^= tail[1] << 8; \ -- /* fallthrough */ \ -+ fallthrough; \ - case 1: k1 ^= tail[0]; \ - k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1; \ - } \ -diff --git a/runtime/syscall.h b/runtime/syscall.h -index 6b4b3071a..f5b473b04 100644 ---- a/runtime/syscall.h -+++ b/runtime/syscall.h -@@ -351,23 +351,23 @@ _stp_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, - case 0: - if (!n--) break; - *args++ = regs->bx; -- /* fallthrough */ -+ fallthrough; - case 1: - if (!n--) break; - *args++ = regs->cx; -- /* fallthrough */ -+ fallthrough; - case 2: - if (!n--) break; - *args++ = regs->dx; -- /* fallthrough */ -+ fallthrough; - case 3: - if (!n--) break; - *args++ = regs->si; -- /* fallthrough */ -+ fallthrough; - case 4: - if (!n--) break; - *args++ = regs->di; -- /* fallthrough */ -+ fallthrough; - case 5: - if (!n--) break; - *args++ = regs->bp; -@@ -375,23 +375,23 @@ _stp_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, - case 0: - if (!n--) break; - *args++ = regs->rbx; -- /* fallthrough */ -+ fallthrough; - case 1: - if (!n--) break; - *args++ = regs->rcx; -- /* fallthrough */ -+ fallthrough; - case 2: - if (!n--) break; - *args++ = regs->rdx; -- /* fallthrough */ -+ fallthrough; - case 3: - if (!n--) break; - *args++ = regs->rsi; -- /* fallthrough */ -+ fallthrough; - case 4: - if (!n--) break; - *args++ = regs->rdi; -- /* fallthrough */ -+ fallthrough; - case 5: - if (!n--) break; - *args++ = regs->rbp; -@@ -405,23 +405,23 @@ _stp_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, - case 0: - if (!n--) break; - *args++ = regs->di; -- /* fallthrough */ -+ fallthrough; - case 1: - if (!n--) break; - *args++ = regs->si; -- /* fallthrough */ -+ fallthrough; - case 2: - if (!n--) break; - *args++ = regs->dx; -- /* fallthrough */ -+ fallthrough; - case 3: - if (!n--) break; - *args++ = regs->r10; -- /* fallthrough */ -+ fallthrough; - case 4: - if (!n--) break; - *args++ = regs->r8; -- /* fallthrough */ -+ fallthrough; - case 5: - if (!n--) break; - *args++ = regs->r9; -@@ -429,23 +429,23 @@ _stp_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, - case 0: - if (!n--) break; - *args++ = regs->rdi; -- /* fallthrough */ -+ fallthrough; - case 1: - if (!n--) break; - *args++ = regs->rsi; -- /* fallthrough */ -+ fallthrough; - case 2: - if (!n--) break; - *args++ = regs->rdx; -- /* fallthrough */ -+ fallthrough; - case 3: - if (!n--) break; - *args++ = regs->r10; -- /* fallthrough */ -+ fallthrough; - case 4: - if (!n--) break; - *args++ = regs->r8; -- /* fallthrough */ -+ fallthrough; - case 5: - if (!n--) break; - *args++ = regs->r9; -@@ -575,30 +575,30 @@ static inline void _stp_syscall_get_arguments(struct task_struct *task, - case 6: - if (!n--) break; - *args++ = regs->r13; -- /* fallthrough */ -+ fallthrough; - case 5: - if (!n--) break; - *args++ = regs->r15; -- /* fallthrough */ -+ fallthrough; - case 4: - if (!n--) break; - *args++ = regs->r14; -- /* fallthrough */ -+ fallthrough; - case 3: - if (!n--) break; - *args++ = regs->r10; -- /* fallthrough */ -+ fallthrough; - case 2: - if (!n--) break; - *args++ = regs->r9; -- /* fallthrough */ -+ fallthrough; - case 1: - if (!n--) break; - *args++ = regs->r11; -- /* fallthrough */ -+ fallthrough; - case 0: - if (!n--) break; -- /* fallthrough */ -+ fallthrough; - default: - BUG(); - break; -@@ -630,23 +630,23 @@ _stp_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, - case 0: - if (!n--) break; - *args++ = regs->orig_gpr2 & mask; -- /* fallthrough */ -+ fallthrough; - case 1: - if (!n--) break; - *args++ = regs->gprs[3] & mask; -- /* fallthrough */ -+ fallthrough; - case 2: - if (!n--) break; - *args++ = regs->gprs[4] & mask; -- /* fallthrough */ -+ fallthrough; - case 3: - if (!n--) break; - *args++ = regs->gprs[5] & mask; -- /* fallthrough */ -+ fallthrough; - case 4: - if (!n--) break; - *args++ = regs->gprs[6] & mask; -- /* fallthrough */ -+ fallthrough; - case 5: - if (!n--) break; - *args++ = regs->args[0] & mask; -diff --git a/runtime/unwind.c b/runtime/unwind.c -index dba16a724..6916d2e96 100644 ---- a/runtime/unwind.c -+++ b/runtime/unwind.c -@@ -527,7 +527,7 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, - REG_STATE.cfa.reg = value; - dbug_unwind(1, "DW_CFA_def_cfa reg=%ld\n", REG_STATE.cfa.reg); - } -- /* fallthrough */ -+ fallthrough; - case DW_CFA_def_cfa_offset: - if (REG_STATE.cfa_is_expr != 0) { - _stp_warn("Unexpected DW_CFA_def_cfa_offset\n"); -@@ -549,7 +549,7 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, - value, DWARF_REG_MAP(value)); - REG_STATE.cfa.reg = value; - } -- /* fallthrough */ -+ fallthrough; - case DW_CFA_def_cfa_offset_sf: - if (REG_STATE.cfa_is_expr != 0) { - _stp_warn("Unexpected DW_CFA_def_cfa_offset_sf\n"); -@@ -922,7 +922,7 @@ static int compute_expr(const u8 *expr, struct unwind_frame_info *frame, - case DW_OP_bra: - if (POP == 0) - break; -- /* Fall through. */ -+ fallthrough; - case DW_OP_skip: - NEED(sizeof(u.s16)); - memcpy(&u.s16, expr, sizeof(u.s16)); -diff --git a/runtime/unwind/unwind.h b/runtime/unwind/unwind.h -index a9586a338..5c68a5f03 100644 ---- a/runtime/unwind/unwind.h -+++ b/runtime/unwind/unwind.h -@@ -154,13 +154,13 @@ static unsigned long read_ptr_sect(const u8 **pLoc, const void *end, - value = _stp_get_unaligned(ptr.p32u++); - break; - } -- /* fallthrough */ -+ fallthrough; - case DW_EH_PE_data8: - BUILD_BUG_ON(sizeof(u64) != sizeof(value)); - #else - BUILD_BUG_ON(sizeof(u32) != sizeof(value)); - #endif -- /* fallthrough */ -+ fallthrough; - case DW_EH_PE_absptr: - if (compat_task) - { -diff --git a/runtime/vsprintf.c b/runtime/vsprintf.c -index 417d9f7f3..cd31a938b 100644 ---- a/runtime/vsprintf.c -+++ b/runtime/vsprintf.c -@@ -641,7 +641,7 @@ _stp_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) - - case 'X': - flags |= STP_LARGE; -- /* fallthru */ -+ fallthrough; - case 'x': - base = 16; - break; -@@ -649,7 +649,7 @@ _stp_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) - case 'd': - case 'i': - flags |= STP_SIGN; -- /* fallthru */ -+ fallthrough; - case 'u': - break; - -@@ -835,7 +835,7 @@ _stp_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) - - case 'X': - flags |= STP_LARGE; -- /* fallthru */ -+ fallthrough; - case 'x': - base = 16; - break; -@@ -843,7 +843,7 @@ _stp_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) - case 'd': - case 'i': - flags |= STP_SIGN; -- /* fallthru */ -+ fallthrough; - case 'u': - break; - -diff --git a/tapset/linux/aux_syscalls.stp b/tapset/linux/aux_syscalls.stp -index ad8a89898..09fb9ff41 100644 ---- a/tapset/linux/aux_syscalls.stp -+++ b/tapset/linux/aux_syscalls.stp -@@ -156,11 +156,11 @@ sigset_from_compat(sigset_t *set, compat_sigset_t *compat) - { - switch (_NSIG_WORDS) { - case 4: set->sig[3] = compat->sig[6] | (((long)compat->sig[7]) << 32 ); -- /*fallthrough*/ -+ fallthrough; - case 3: set->sig[2] = compat->sig[4] | (((long)compat->sig[5]) << 32 ); -- /*fallthrough*/ -+ fallthrough; - case 2: set->sig[1] = compat->sig[2] | (((long)compat->sig[3]) << 32 ); -- /*fallthrough*/ -+ fallthrough; - case 1: set->sig[0] = compat->sig[0] | (((long)compat->sig[1]) << 32 ); - } - } -@@ -3627,13 +3627,13 @@ function _struct_sigaction32_u:string(uaddr:long) - { - case 4: act.sa_mask.sig[3] = act32.sa_mask.sig[6] - | (((long)act32.sa_mask.sig[7]) << 32); -- /* fallthrough */ -+ fallthrough; - case 3: act.sa_mask.sig[2] = act32.sa_mask.sig[4] - | (((long)act32.sa_mask.sig[5]) << 32); -- /* fallthrough */ -+ fallthrough; - case 2: act.sa_mask.sig[1] = act32.sa_mask.sig[2] - | (((long)act32.sa_mask.sig[3]) << 32); -- /* fallthrough */ -+ fallthrough; - case 1: act.sa_mask.sig[0] = act32.sa_mask.sig[0] - | (((long)act32.sa_mask.sig[1]) << 32); - } - -commit ea00c10704bfc64b908ef96e4b9574dadeae2b03 -Author: Frank Ch. Eigler -Date: Sun Jul 25 22:09:18 2021 -0400 - - PR28140: kernel 5.14-rc adaptation, jump_label_patch - - Linux commit ab3257042c2 makes it necessary for us to stop overriding - CONFIG_STACK_VALIDATION= (originally a workaround for a 2016 rawhide - bug). This fixes the tracepoints.stp test case. - -diff --git a/buildrun.cxx b/buildrun.cxx -index ae27ddea4..6a6725db6 100644 ---- a/buildrun.cxx -+++ b/buildrun.cxx -@@ -120,7 +120,13 @@ make_any_make_cmd(systemtap_session& s, const string& dir, const string& target) - "CONFIG_DEBUG_INFO_BTF_MODULES=", - - // RHBZ1321628: suppress stack validation; expected to be temporary -- "CONFIG_STACK_VALIDATION=", -+ // "CONFIG_STACK_VALIDATION=", -+ -+ // PR28140 ... as of kernel 5.14-rc*, this is actively -+ // dangerous, because it skips the full objtool processing -+ // chain, and the resulting tracepoint call sites in the ko are -+ // not properly instrumented. See also Linux commit -+ // ab3257042c2. - }; - - // PR10280: suppress symbol versioning to restrict to exact kernel version - -commit e66f3a83b49b5c0a35074cf0f4b378e51c241a81 -Author: Frank Ch. Eigler -Date: Sun Jul 25 22:35:59 2021 -0400 - - runtime: adapt to -Werror=implicit-fallthrough=5, dyninst runtime - - The runtime/dyninst/runtime.h also needs a fallthrough macro def'n. - -diff --git a/runtime/dyninst/runtime.h b/runtime/dyninst/runtime.h -index 9e61ef50b..6f028e27d 100644 ---- a/runtime/dyninst/runtime.h -+++ b/runtime/dyninst/runtime.h -@@ -389,4 +389,20 @@ static void stp_dyninst_dtor(void) - _stp_copy_destroy(); - } - -+ -+/* A fallthrough; macro to let the runtime survive -Wimplicit-fallthrough=5 */ -+/* from */ -+#ifndef fallthrough -+#if __GNUC__ < 5 -+# define fallthrough do {} while (0) /* fallthrough */ -+#else -+#if __has_attribute(__fallthrough__) -+# define fallthrough __attribute__((__fallthrough__)) -+#else -+# define fallthrough do {} while (0) /* fallthrough */ -+#endif -+#endif -+#endif -+ -+ - #endif /* _STAPDYN_RUNTIME_H_ */ - -commit b47d03c20aeab5276b67adbe367889c7762c4a92 -Author: Frank Ch. Eigler -Date: Sun Jul 18 21:32:51 2021 -0400 - - PR28079: Adapt to kernel 5.14 task_struct.__state change - - In tapset, use @choose_defined() for old & new field names. - -diff --git a/tapset/linux/task.stp b/tapset/linux/task.stp -index b542b610e..40dc3e2e0 100644 ---- a/tapset/linux/task.stp -+++ b/tapset/linux/task.stp -@@ -186,7 +186,7 @@ function task_parent:long(task:long) - */ - function task_state:long (task:long) - { -- return @task(task)->state -+ return @choose_defined(@task(task)->state,@task(task)->__state) - } - - /** - -commit 559fd51fe90ef096c4389f90604ec808869b58a6 -Author: Frank Ch. Eigler -Date: Fri Aug 6 12:16:21 2021 -0400 - - testsuite: time-limit auxiliary child processes - - The testsuite has been observed to intermittently hang on 5.13+ - generation kernels. This is caused by some test binaries (especially - recv*.c) suffering a segv and terminating, but their forked child - process pals still hanging around (indefinitely). This patch adds an - alarm(30) to each such test, so the children will burn twice as - bright, but half as long, or something. - -diff --git a/testsuite/systemtap.syscall/connect.c b/testsuite/systemtap.syscall/connect.c -index a9350025d..f2239dd80 100644 ---- a/testsuite/systemtap.syscall/connect.c -+++ b/testsuite/systemtap.syscall/connect.c -@@ -73,7 +73,8 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -- do_child(); -+ alarm(30); -+ do_child(); - break; - case -1: /* fall through */ - default: /* parent */ -diff --git a/testsuite/systemtap.syscall/futex.c b/testsuite/systemtap.syscall/futex.c -index 4740e1c82..fe740a146 100644 ---- a/testsuite/systemtap.syscall/futex.c -+++ b/testsuite/systemtap.syscall/futex.c -@@ -38,7 +38,8 @@ int main() - - pid = fork(); - if (pid == 0) { /* child */ -- do_child(); -+ alarm(30); -+ do_child(); - exit(0); - } - -diff --git a/testsuite/systemtap.syscall/process_vm.c b/testsuite/systemtap.syscall/process_vm.c -index 4c4ffe4a9..b776354ac 100644 ---- a/testsuite/systemtap.syscall/process_vm.c -+++ b/testsuite/systemtap.syscall/process_vm.c -@@ -31,7 +31,8 @@ int main() - - pid = fork(); - if (pid == 0) { /* child */ -- do_child(); -+ alarm(30); -+ do_child(); - return 0; - } - -diff --git a/testsuite/systemtap.syscall/ptrace.c b/testsuite/systemtap.syscall/ptrace.c -index 533414799..8d8418d34 100644 ---- a/testsuite/systemtap.syscall/ptrace.c -+++ b/testsuite/systemtap.syscall/ptrace.c -@@ -93,6 +93,7 @@ int main() - child_pid = fork(); - if (child_pid == 0) { - /* Child */ -+ alarm(30); - do_child(); - exit(0); - } -diff --git a/testsuite/systemtap.syscall/recv.c b/testsuite/systemtap.syscall/recv.c -index 9635b269e..b5ccf08d6 100644 ---- a/testsuite/systemtap.syscall/recv.c -+++ b/testsuite/systemtap.syscall/recv.c -@@ -76,6 +76,7 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/recvfrom.c b/testsuite/systemtap.syscall/recvfrom.c -index eeb567c78..0b5d20c20 100644 ---- a/testsuite/systemtap.syscall/recvfrom.c -+++ b/testsuite/systemtap.syscall/recvfrom.c -@@ -77,6 +77,7 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/recvmmsg.c b/testsuite/systemtap.syscall/recvmmsg.c -index 0b925d0d7..edf12e388 100644 ---- a/testsuite/systemtap.syscall/recvmmsg.c -+++ b/testsuite/systemtap.syscall/recvmmsg.c -@@ -123,6 +123,7 @@ start_server(struct sockaddr_in *ssin, struct sockaddr_un *ssun) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/recvmsg.c b/testsuite/systemtap.syscall/recvmsg.c -index 1d32e7482..7f72ae573 100644 ---- a/testsuite/systemtap.syscall/recvmsg.c -+++ b/testsuite/systemtap.syscall/recvmsg.c -@@ -122,6 +122,7 @@ start_server(struct sockaddr_in *ssin, struct sockaddr_un *ssun) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/send.c b/testsuite/systemtap.syscall/send.c -index 12bcf12a2..970f9347c 100644 ---- a/testsuite/systemtap.syscall/send.c -+++ b/testsuite/systemtap.syscall/send.c -@@ -75,6 +75,7 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/sendmmsg.c b/testsuite/systemtap.syscall/sendmmsg.c -index 3b0a74959..95ce65470 100644 ---- a/testsuite/systemtap.syscall/sendmmsg.c -+++ b/testsuite/systemtap.syscall/sendmmsg.c -@@ -87,6 +87,7 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/sendmsg.c b/testsuite/systemtap.syscall/sendmsg.c -index 6bcb4e358..db07eb7b4 100644 ---- a/testsuite/systemtap.syscall/sendmsg.c -+++ b/testsuite/systemtap.syscall/sendmsg.c -@@ -75,6 +75,7 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ -diff --git a/testsuite/systemtap.syscall/sendto.c b/testsuite/systemtap.syscall/sendto.c -index 44a8a5c0a..c3441bc22 100644 ---- a/testsuite/systemtap.syscall/sendto.c -+++ b/testsuite/systemtap.syscall/sendto.c -@@ -75,6 +75,7 @@ start_server(struct sockaddr_in *sin0) - - switch (pid = fork()) { - case 0: /* child */ -+ alarm(30); - do_child(); - break; - case -1: /* fall through */ - -commit 0581a6560a4922a92cef70348303012682a8a436 -Author: Junlong Li -Date: Fri Aug 6 14:24:12 2021 -0400 - - PR28184: Adapt to kernel rename __fcheck_files to files_lookup_fd_raw - - The 5.11 kernel renamed __fcheck_files to files_lookup_fd_raw - -diff --git a/runtime/linux/autoconf-files_lookup_fd_raw.c b/runtime/linux/autoconf-files_lookup_fd_raw.c -new file mode 100644 -index 000000000..9e98aa064 ---- /dev/null -+++ b/runtime/linux/autoconf-files_lookup_fd_raw.c -@@ -0,0 +1,9 @@ -+#include -+#include -+ -+void -+foo(void) -+{ -+ struct file *filp = files_lookup_fd_raw(NULL, 0); -+ (void) filp; -+} - -commit f2c1477678ecc2b03b55e21c31747004e2c78717 -Author: Junlong Li -Date: Fri Aug 6 17:41:53 2021 -0400 - - PR28184: Adapt to kernel rename __fcheck_files to files_lookup_fd_raw - - The 5.11 kernel renamed __fcheck_files to files_lookup_fd_raw - -diff --git a/buildrun.cxx b/buildrun.cxx -index 6a6725db6..a7090c448 100644 ---- a/buildrun.cxx -+++ b/buildrun.cxx -@@ -529,6 +529,8 @@ compile_pass (systemtap_session& s) - output_autoconf(s, o, cs, "autoconf-lockdown-kernel.c", "STAPCONF_LOCKDOWN_KERNEL", NULL); - output_autoconf(s, o, cs, "autoconf-hlist_add_tail_rcu.c", - "STAPCONF_HLIST_ADD_TAIL_RCU", NULL); -+ output_autoconf(s, o, cs, "autoconf-files_lookup_fd_raw.c", -+ "STAPCONF_FILES_LOOKUP_FD_RAW", NULL); - output_autoconf(s, o, cs, "autoconf-task-state.c", "STAPCONF_TASK_STATE", NULL); - - // used by runtime/linux/netfilter.c -diff --git a/tapset/linux/task.stp b/tapset/linux/task.stp -index 40dc3e2e0..d47462513 100644 ---- a/tapset/linux/task.stp -+++ b/tapset/linux/task.stp -@@ -706,7 +706,11 @@ function task_fd_lookup:long(task:long, fd:long) - (void)kderef_buffer(NULL, files, sizeof(struct files_struct)); - - spin_lock(&files->file_lock); -+#ifdef STAPCONF_FILES_LOOKUP_FD_RAW -+ file = files_lookup_fd_raw(files, fd); -+#else - file = fcheck_files(files, fd); -+#endif - spin_unlock(&files->file_lock); - } - diff --git a/rhbz2025054python3.patch b/rhbz2025054python3.patch new file mode 100644 index 0000000..7f5f40c --- /dev/null +++ b/rhbz2025054python3.patch @@ -0,0 +1,95 @@ +commit 241f53050f441808e673d19b42008779f555f484 (HEAD) +Author: Frank Ch. Eigler +Date: Fri Nov 19 22:22:45 2021 -0500 + + configury: let python3 be python3 + + Our baroque heuristics for identifying python2/3 under their various + historical aliases is showing its age. On some modern distros, + /usr/bin/python is to be positively NOT used. Fixing configure.ac + $PYTHON3 search to only look for python3, and not even consider + $PYTHON_UNKNOWN. At some point we'll want to simplify further, and + get rid of python2 remnants. + +diff --git a/configure b/configure +index 6d0d53992636..962323156181 100755 +--- a/configure ++++ b/configure +@@ -9350,49 +9350,7 @@ fi + as_fn_append ac_configure_args " python='$PYTHON' pyexecdir='$pyexecdir'" + + # Now let's try to find python version 3. +-if test "x$PYTHON_UNKNOWN" != "xno" -a "x$ac_cv_python_unknown_version" = "x3"; then +- # Extract the first word of "python", so it can be a program name with args. +-set dummy python; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_PYTHON3+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PYTHON3 in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PYTHON3="$PYTHON3" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_PYTHON3="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-PYTHON3=$ac_cv_path_PYTHON3 +-if test -n "$PYTHON3"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON3" >&5 +-$as_echo "$PYTHON3" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-else +- for ac_prog in python3 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 ++for ac_prog in python3 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +@@ -9438,7 +9396,6 @@ fi + done + test -n "$PYTHON3" || PYTHON3=":" + +-fi + python3_basename=$(basename "$PYTHON3") + + cat >>confdefs.h <<_ACEOF +diff --git a/configure.ac b/configure.ac +index b0a823604ca3..d1b1247637bb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -88,12 +88,8 @@ fi + AS_VAR_APPEND([ac_configure_args], [" python='$PYTHON' pyexecdir='$pyexecdir'"]) + + # Now let's try to find python version 3. +-if test "x$PYTHON_UNKNOWN" != "xno" -a "x$ac_cv_python_unknown_version" = "x3"; then +- AC_PATH_PROG([PYTHON3], [python]) +-else +- AC_PATH_PROGS([PYTHON3], +- [python3 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0], [:]) +-fi ++AC_PATH_PROGS([PYTHON3], ++ [python3 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0], [:]) + python3_basename=$(basename "$PYTHON3") + AC_DEFINE_UNQUOTED([PYTHON3_BASENAME], "${python3_basename}", + [Base name of the python3 interpreter binary.]) diff --git a/systemtap.spec b/systemtap.spec index a60756d..9a06579 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -126,6 +126,8 @@ License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz +Patch1: rhbz2025054python3.patch + # Build* BuildRequires: make BuildRequires: gcc-c++ @@ -546,6 +548,8 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %prep %setup -q +%patch1 -p1 + %build # Enable/disable the dyninst pure-userspace backend