Changes in the linux 6.10 naming of function task_work_cancel to task_work_cancel_func causes systemtap to fail to compile kernel instrumentation. Upstream systemtap git commit a64dc4e2e0195ca80c6509df511a42459b40e9af addresses this issue. Reproducible: Always Steps to Reproduce: 1. sudo dnf install "systemtap*" 2. sudo stap-prep 3. sudo stap --example helloworld.stp Actual Results: In file included from ./include/linux/percpu.h:5, from ./arch/x86/include/asm/msr.h:15, from ./arch/x86/include/asm/tsc.h:10, from ./arch/x86/include/asm/timex.h:6, from ./include/linux/timex.h:67, from ./include/linux/time32.h:13, from ./include/linux/time.h:60, from ./include/linux/jiffies.h:10, from ./include/linux/ktime.h:25, from ./include/linux/timer.h:6, from ./include/linux/workqueue.h:9, from ./include/linux/srcu.h:21, from ./include/linux/notifier.h:16, from ./arch/x86/include/asm/uprobes.h:13, from ./include/linux/uprobes.h:49, from ./include/linux/mm_types.h:16, from ./include/linux/mmzone.h:22, from ./include/linux/gfp.h:7, from /usr/share/systemtap/runtime/linux/runtime_defines.h:1, from /usr/share/systemtap/runtime/runtime_defines.h:8, from /tmp/stap7o0rhr/stap_8c8240a849cea0022e6eb29b6c42bdec_1028_src.c:12: ./include/linux/alloc_tag.h:212:2: error: expected identifier or ‘(’ before ‘{’ token 212 | ({ \ | ^ ./include/linux/vmalloc.h:147:33: note: in expansion of macro ‘alloc_hooks’ 147 | #define vzalloc(...) alloc_hooks(vzalloc_noprof(__VA_ARGS__)) | ^~~~~~~~~~~ /usr/share/systemtap/runtime/linux/alloc.c:408:14: note: in expansion of macro ‘vzalloc’ 408 | static void *vzalloc(unsigned long size) | ^~~~~~~ ./include/linux/alloc_tag.h:212:2: error: expected identifier or ‘(’ before ‘{’ token 212 | ({ \ | ^ ./include/linux/vmalloc.h:153:33: note: in expansion of macro ‘alloc_hooks’ 153 | #define vmalloc_node(...) alloc_hooks(vmalloc_node_noprof(__VA_ARGS__)) | ^~~~~~~~~~~ /usr/share/systemtap/runtime/linux/alloc.c:443:14: note: in expansion of macro ‘vmalloc_node’ 443 | static void *vmalloc_node(unsigned long size, int node __attribute__((unused))) | ^~~~~~~~~~~~ ./include/linux/alloc_tag.h:212:2: error: expected identifier or ‘(’ before ‘{’ token 212 | ({ \ | ^ ./include/linux/vmalloc.h:156:33: note: in expansion of macro ‘alloc_hooks’ 156 | #define vzalloc_node(...) alloc_hooks(vzalloc_node_noprof(__VA_ARGS__)) | ^~~~~~~~~~~ /usr/share/systemtap/runtime/linux/alloc.c:450:14: note: in expansion of macro ‘vzalloc_node’ 450 | static void *vzalloc_node(unsigned long size, int node) | ^~~~~~~~~~~~ In file included from /usr/share/systemtap/runtime/runtime.h:26, from /tmp/stap7o0rhr/stap_8c8240a849cea0022e6eb29b6c42bdec_1028_src.c:21: /usr/share/systemtap/runtime/stp_task_work.c: In function ‘stp_task_work_cancel’: /usr/share/systemtap/runtime/stp_task_work.c:13:123: error: passing argument 2 of ‘(bool (*)(struct task_struct *, struct callback_head *))kallsyms_task_work_cancel’ from incompatible pointer type [-Wincompatible-pointer-types] 13 | k_head *, (* (task_work_cancel_fn)kallsyms_task_work_cancel)((a), (b))) | ^~~ | | | task_work_func_t {aka void (*)(struct callback_head *)} /usr/share/systemtap/runtime/linux/runtime.h:317:21: note: in definition of macro ‘ibt_wrapper’ 317 | rettype retval = (function); \ | ^~~~~~~~ /usr/share/systemtap/runtime/stp_task_work.c:107:17: note: in expansion of macro ‘task_work_cancel’ 107 | twork = task_work_cancel(task, func); | ^~~~~~~~~~~~~~~~ /usr/share/systemtap/runtime/stp_task_work.c:13:123: note: expected ‘struct callback_head *’ but argument is of type ‘task_work_func_t’ {aka ‘void (*)(struct callback_head *)’} 13 | k_head *, (* (task_work_cancel_fn)kallsyms_task_work_cancel)((a), (b))) | ^~~ /usr/share/systemtap/runtime/linux/runtime.h:317:21: note: in definition of macro ‘ibt_wrapper’ 317 | rettype retval = (function); \ | ^~~~~~~~ /usr/share/systemtap/runtime/stp_task_work.c:107:17: note: in expansion of macro ‘task_work_cancel’ 107 | twork = task_work_cancel(task, func); | ^~~~~~~~~~~~~~~~ /usr/share/systemtap/runtime/linux/runtime.h:317:20: error: incompatible types when initializing type ‘struct callback_head *’ using type ‘bool’ {aka ‘_Bool’} 317 | rettype retval = (function); \ | ^ /usr/share/systemtap/runtime/stp_task_work.c:13:31: note: in expansion of macro ‘ibt_wrapper’ 13 | #define task_work_cancel(a,b) ibt_wrapper(struct callback_head *, (* (task_work_cancel_fn)kallsyms_task_work_cancel)((a), (b))) | ^~~~~~~~~~~ /usr/share/systemtap/runtime/stp_task_work.c:107:17: note: in expansion of macro ‘task_work_cancel’ 107 | twork = task_work_cancel(task, func); | ^~~~~~~~~~~~~~~~ In file included from /usr/share/systemtap/runtime/linux/runtime.h:207: /usr/share/systemtap/runtime/transport/relay_v2.c: In function ‘__stp_relay_wakeup_timer’: /usr/share/systemtap/runtime/linux/debug.h:47:36: error: suggest braces around empty body in an ‘else’ statement [-Werror=empty-body] 47 | #define dbug_trans(level, args...) ; | ^ /usr/share/systemtap/runtime/transport/relay_v2.c:195:17: note: in expansion of macro ‘dbug_trans’ 195 | dbug_trans(0, "relay_v2 wakeup timer expiry\n"); | ^~~~~~~~~~ /usr/share/systemtap/runtime/transport/symbols.c: In function ‘_stp_set_stext’: /usr/share/systemtap/runtime/linux/debug.h:103:34: error: suggest braces around empty body in an ‘else’ statement [-Werror=empty-body] 103 | #define dbug_sym(level, args...) ; | ^ /usr/share/systemtap/runtime/transport/symbols.c:44:17: note: in expansion of macro ‘dbug_sym’ 44 | dbug_sym(1, "found kernel _stext load address: 0x%lx\n", | ^~~~~~~~ /tmp/stap7o0rhr/stap_8c8240a849cea0022e6eb29b6c42bdec_1028_src.c: At top level: /tmp/stap7o0rhr/stap_8c8240a849cea0022e6eb29b6c42bdec_1028_src.c:105:1: error: ‘static’ is not at beginning of declaration [-Werror=old-style-declaration] 105 | } static stap_probes[]; | ^ cc1: all warnings being treated as errors make[1]: *** [scripts/Makefile.build:244: /tmp/stap7o0rhr/stap_8c8240a849cea0022e6eb29b6c42bdec_1028_src.o] Error 1 make: *** [Makefile:1946: /tmp/stap7o0rhr] Error 2 WARNING: kbuild exited with status: 2 Pass 4: compilation failed. [man error::pass4] Kernel version 6.10.3 is outside tested range 2.6.32 ... 6.9-rc0 Expected Results: $ sudo stap --example helloworld.stp hello world The current upstream systemtap git repo works with the f40 (and f39) 6.10 kernels. $ sudo ../install/bin/stap --example helloworld.stp hello world
A dummy message to check that mirroring is working.
FEDORA-2024-e33854a64b (systemtap-5.2~pre17250223gd07e4284-1.fc41) has been submitted as an update to Fedora 41. https://bodhi.fedoraproject.org/updates/FEDORA-2024-e33854a64b
FEDORA-2024-b4e453e470 (systemtap-5.2~pre17250223gd07e4284-1.fc40) has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-b4e453e470
FEDORA-2024-053e9322ab (systemtap-5.2~pre17250223gd07e4284-1.fc39) has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-053e9322ab
FEDORA-2024-b4e453e470 has been pushed to the Fedora 40 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-b4e453e470` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-b4e453e470 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2024-053e9322ab has been pushed to the Fedora 39 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-053e9322ab` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-053e9322ab See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2024-e33854a64b has been pushed to the Fedora 41 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-e33854a64b` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-e33854a64b See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
Verified with kernel-6.10.6-100.fc39 and systemtap-5.2~pre17250223gd07e4284-1.fc39 .
Verified also with kernel-6.10.6-200.fc40 and systemtap-5.2~pre17250223gd07e4284-1.fc40 .
FEDORA-2024-053e9322ab (systemtap-5.2~pre17250223gd07e4284-1.fc39) has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2024-b4e453e470 (systemtap-5.2~pre17250223gd07e4284-1.fc40) has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2024-e33854a64b (systemtap-5.2~pre17250223gd07e4284-1.fc41) has been pushed to the Fedora 41 stable repository. If problem still persists, please make note of it in this bug report.