]> granicus.if.org Git - strace/blobdiff - README-linux
file.c: fix 32-bit stat decoding on 64-bit architectures
[strace] / README-linux
index 0cb10d1366e33eba576052a4621b35a6dce3a5ed..62df2585163cc9068129dab5ac5fd310b9d91a23 100644 (file)
@@ -3,18 +3,29 @@ 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 very recent kernel headers. Strace needs those to get
-the proper data structures used by the kernel, since these can be
-different from the structures that the C library uses. Currently
-you will need a 2.2.7 or newer kernel.
+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.
 
-There are two ways to do this:
-* you can link /usr/include/linux and /usr/include/asm to the corresponding
-  directories in your kernel source-tree.
+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.
 
-* you can tell make where your kernel sources are. For example if you have your
-  kernelsource in /usr/src/linux, you should invoke make like this:
+There are three ways to compile strace with other kernel headers:
+* Specify the location in CFLAGS when running configure
 
-     make CFLAGS=-I/usr/src/linux/include
+     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.