1ERROR::PASS4(7stap) ERROR::PASS4(7stap)
2
3
4
6 error::pass4 - systemtap pass-4 errors
7
8
9
11 Errors that occur during pass 4 (compilation) have generally only a few
12 causes:
13
14
15 kernel or OS version changes
16 The systemtap runtime and embedded-C fragments in the tapset
17 library are designed to be portable across a wide range of OS
18 versions. However, incompatibilities can occur when some OS
19 changes occur, such as kernel modifications that change func‐
20 tions, types, or macros referenced by systemtap. Upstream
21 (git://sourceware.org/git/systemtap.git) builds of systemtap are
22 often quickly updated to include relevant fixes, so try getting
23 or making an updated build. Reworded: build systemtap from git
24 for use with very young kernels. If the issue persists, report
25 the problem to the systemtap developers.
26
27
28 buggy embedded-C code
29 Embedded-C code in your own guru-mode script cannot be checked
30 by systemtap, and is passed through verbatim to the compiler.
31 Errors in such snippets of code may be found during the pass-4
32 compiler invocation, though may be hard to identify by the com‐
33 piler errors.
34
35
36 incompatible embedded-C code
37 The interface standards between systemtap-generated code and
38 embedded-C code occasionally change. For example, before ver‐
39 sion 1.8, arguments were passed using macros THIS->foo and
40 THIS->__retvalue but from version 1.8 onward, using STAP_ARG_foo
41 and STAP_RETVALUE. Adjust your embedded-C code to current stan‐
42 dards, or use the stap --compatible=VERSION option to make sys‐
43 temtap use a different one.
44
45
46 compiler bugs and mysteries
47 Messages such as "internal compiler error" suggest compiler
48 problems. These should be reported to the compiler developers
49 in the form of a preprocessed .i file, plus the compiler command
50 line. To gather relevant information, run
51
52 stap -k --vp 0003 -p4 ....
53
54 Systemtap will report the saved temporary directory, and the
55 compiler command line it attempted. Go to the directory to find
56 he main generated file stap_NNNNN_src.c. Force the compiler to
57 produce a preprocessed file with:
58
59 make -C /lib/modules/`uname -r`/build M=`pwd` stap_NNNNN_src.i
60
61 (note the .i suffix), and the compiler command line should be in
62 the file .stap_NNNNN_src.i.cmd.
63
64
66 stap(1),
67 error::reporting(7stap)
68
69
70
71 ERROR::PASS4(7stap)