blob: d36eafb10604467377e2ca5f840ff3cd39b3da40 [file] [log] [blame]
Strace has been ported by Branko Lankester <branko@hacktic.nl>
to run on Linux systems. Since then it has been greatly modified
by various other people.
If you want to compile strace on a Linux system please make sure that
you use recent kernel headers. Strace needs those to get the proper data
structures and constatns used by the kernel, since these can be
different from the structures that the C library uses. Currently you
will need at least a 2.2.7 or newer kernel.
To complicate things a bit further strace might not compile if you are
using development kernels. These tend to have headers that conflict with
the headers from libc which makes it impossible to use them.
There are three ways to compile strace with other kernel headers:
* Specify the location in CFLAGS when running configure
CFLAGS=-I/usr/src/linux/include ./configure
* you can tell make where your kernel sources are. For example if you
have your kernelsource in /usr/src/linux, you can invoke make like
this:
make CFLAGS="\$CFLAGS -I/usr/src/linux/include"
(the extra \$CFLAGS is there to make sure we don't override any CFLAGS
settings that configure has found).
* you can link /usr/include/linux and /usr/include/asm to the
corresponding directories in your kernel source-tree.
OpenSSI:
--------
If you want to compile strace with support for the OpenSSI clustering
software the easy way is to use the CPPFLAGS to point configure to your
ci source code:
CPPFLAGS="-I path-to-ci/kernel/include" ./configure
Note that I don't know how to strace across rfork.
- John Hughes <john@calva.com>