-
Bug
-
Resolution: Done
-
Undefined
-
None
-
rhel-10.0
-
None
-
No
-
Important
-
rhel-sst-pt-perf-debug
-
ssg_platform_tools
-
None
-
False
-
-
None
-
None
-
None
-
None
-
-
All
-
None
systemtap doesn't work in RHEL10 because it inludes header asm/unaligned.h from the kernel which was moved to linux/unaligned.h in the recent kernel.
What were you trying to do that didn't work?
stap -v simple_probe.stp -c 'perl -e "print \"hello world
\";"'
What is the impact of this issue to you?
Please provide the package NVR for which the bug is seen:
systemtap-5.1-10.el10
How reproducible is this bug?:
Always
Steps to reproduce
- see above
Expected results
systemtap working
Actual results
Pass 1: parsed user script and 487 library scripts using 137940virt/106336res/13700shr/91728data kb, in 140usr/30sys/168real ms.
Pass 2: analyzed script: 2 probes, 10 functions, 2 embeds, 2 globals using 140264virt/112056res/17212shr/94052data kb, in 10usr/0sys/12real ms.
Pass 3: translated to C into "/tmp/stapPrVluN/stap_05112edb4b5d700e31a51cdbb4e8729f_5124_src.c" using 152864virt/122204res/17464shr/106652data kb, in 120usr/70sys/196real ms.
In file included from /usr/share/systemtap/runtime/linux/runtime.h:360,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stapPrVluN/stap_05112edb4b5d700e31a51cdbb4e8729f_5124_src.c:21:
/usr/share/systemtap/runtime/sym.c:21:10: fatal error: asm/unaligned.h: No such file or directory
21 | #include <asm/unaligned.h>
^~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [scripts/Makefile.build:229: /tmp/stapPrVluN/stap_05112edb4b5d700e31a51cdbb4e8729f_5124_src.o] Error 1 make[1]: *** [Makefile:1982: /tmp/stapPrVluN] Error 2 WARNING: kbuild exited with status: 2 Pass 4: compiled C into "stap_05112edb4b5d700e31a51cdbb4e8729f_5124.ko" in 24410usr/2090sys/26785real ms. Pass 4: compilation failed. [man error::pass4] Kernel version 6.11.0 is outside tested range 2.6.32 ... 6.9-rc0 |
After patching /usr/share/systemtap/runtime/sym.c to include unalinged.h and uaccess.h from linux/ instread of asm/, complilation of the probes fail as follows:
Pass 1: parsed user script and 487 library scripts using 137940virt/106412res/13776shr/91728data kb, in 130usr/50sys/176real ms.
Pass 2: analyzed script: 2 probes, 10 functions, 2 embeds, 2 globals using 140264virt/112064res/17220shr/94052data kb, in 10usr/0sys/14real ms.
Pass 3: translated to C into "/tmp/stapO1iYpj/stap_5666ddc9566079540cd41c38571d0144_5124_src.c" using 152864virt/121148res/17496shr/106652data kb, in 130usr/90sys/215real ms.
In file included from /tmp/stapO1iYpj/stap_5666ddc9566079540cd41c38571d0144_5124_src.c:1408:
/usr/share/systemtap/runtime/linux/uprobes-inode.c:50:17: error: ‘uprobe_unregister’ undeclared here (not in a function); did you mean ‘uprobe_register’?
50 | typedef typeof(&uprobe_unregister) uprobe_unregister_fn;
^~~~~~~~~~~~~~~~~ | |
uprobe_register /usr/share/systemtap/runtime/linux/uprobes-inode.c: In function ‘stapiu_register’: /usr/share/systemtap/runtime/linux/uprobes-inode.c:290:52: error: passing argument 3 of ‘uprobe_register’ makes integer from pointer without a cast [-Wint-conversion] 290 |
ret = uprobe_register (inst->inode, c->offset, &inst->kconsumer); |
^~~~~~~~~~~~~~~~ | |
struct uprobe_consumer * In file included 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/stapO1iYpj/stap_5666ddc9566079540cd41c38571d0144_5124_src.c:12: ./include/linux/uprobes.h:116:82: note: expected ‘loff_t’ {aka ‘long long int’} but argument is of type ‘struct uprobe_consumer *’ |
extern struct uprobe *uprobe_register(struct inode *inode, loff_t offset, loff_t ref_ctr_offset, struct uprobe_consumer *uc); |
~~~~~~^~~~~~~~~~~~~ /usr/share/systemtap/runtime/linux/uprobes-inode.c:290:11: error: too few arguments to function ‘uprobe_register’ 290 |
ret = uprobe_register (inst->inode, c->offset, &inst->kconsumer); |
^~~~~~~~~~~~~~~ ./include/linux/uprobes.h:116:23: note: declared here 116 |
extern struct uprobe *uprobe_register(struct inode *inode, loff_t offset, loff_t ref_ctr_offset, struct uprobe_consumer *uc); |
^~~~~~~~~~~~~~~ In file included from /usr/share/systemtap/runtime/runtime.h:26, from /tmp/stapO1iYpj/stap_5666ddc9566079540cd41c38571d0144_5124_src.c:21: /usr/share/systemtap/runtime/linux/uprobes-inode.c: In function ‘stapiu_unregister’: /usr/share/systemtap/runtime/linux/uprobes-inode.c:54:19: error: invalid type argument of unary ‘*’ (have ‘int’) 54 |
void_ibt_wrapper((* (uprobe_unregister_fn)kallsyms_uprobe_unregister)((a),(b),(c))) |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/share/systemtap/runtime/linux/runtime.h:324:4: note: in definition of macro ‘void_ibt_wrapper’ 324 |
(function); \ |
^~~~~~~~ /usr/share/systemtap/runtime/linux/uprobes-inode.c:315:10: note: in expansion of macro ‘uprobe_unregister’ 315 |
(void) uprobe_unregister (inst->inode, c->offset, &inst->kconsumer); |
^~~~~~~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:229: /tmp/stapO1iYpj/stap_5666ddc9566079540cd41c38571d0144_5124_src.o] Error 1 make[1]: *** [Makefile:1982: /tmp/stapO1iYpj] Error 2 WARNING: kbuild exited with status: 2 Pass 4: compiled C into "stap_5666ddc9566079540cd41c38571d0144_5124.ko" in 24890usr/2150sys/27332real ms. Pass 4: compilation failed. [man error::pass4] Kernel version 6.11.0 is outside tested range 2.6.32 ... 6.9-rc0 |
- duplicates
-
RHEL-64042 Routine Rebase of systemtap for RHEL10.0
- Release Pending