Provided by: systemtap-doc_5.0-2ubuntu1_amd64 bug

NAME

       error::pass4 - systemtap pass-4 errors

DESCRIPTION

       Errors that occur during pass 4 (compilation) have generally only a few causes:

       kernel or OS version changes
              The  systemtap  runtime and embedded-C fragments in the tapset library are designed to be portable
              across a wide range of OS versions.  However, incompatibilities can occur  when  some  OS  changes
              occur,  such  as  kernel  modifications  that  change  functions,  types,  or macros referenced by
              systemtap.   Upstream  (git://sourceware.org/git/systemtap.git)  builds  of  systemtap  are  often
              quickly  updated  to include relevant fixes, so try getting or making an updated build.  Reworded:
              build systemtap from git for use with very young kernels.   If  the  issue  persists,  report  the
              problem to the systemtap developers.

       buggy embedded-C code
              Embedded-C code in your own guru-mode script cannot be checked by systemtap, and is passed through
              verbatim to the compiler.  Errors in such snippets of code may be found during the pass-4 compiler
              invocation, though may be hard to identify by the compiler errors.

       incompatible embedded-C code
              The  interface standards between systemtap-generated code and embedded-C code occasionally change.
              For example, before version 1.8, arguments were passed using macros THIS->foo and THIS->__retvalue
              but from version 1.8 onward, using STAP_ARG_foo and STAP_RETVALUE.  Adjust your embedded-C code to
              current standards, or use the stap --compatible=VERSION option to make systemtap use  a  different
              one.

       compiler bugs and mysteries
              Messages such as "internal compiler error" suggest compiler problems.  These should be reported to
              the compiler developers in the form of a preprocessed .i file, plus the compiler command line.  To
              gather relevant information, run

              stap -k --vp 0003 -p4 ....

              Systemtap  will  report the saved temporary directory, and the compiler command line it attempted.
              Go to the directory to find he main  generated  file  stap_NNNNN_src.c.   Force  the  compiler  to
              produce a preprocessed file with:

              make -C /lib/modules/`uname -r`/build M=`pwd` stap_NNNNN_src.i

              (note the .i suffix), and the compiler command line should be in the file .stap_NNNNN_src.i.cmd.

SEE ALSO

       stap(1),
       error::reporting(7stap)

                                                                                             ERROR::PASS4(7stap)