patches/ltrace/0.5.3/160-fix-missing-ptrace-defines.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:38:18 2010 +0200 (2010-09-12)
changeset 2120 48de021b3a9e
child 2132 47eeda1e5872
permissions -rw-r--r--
arch/mips: add experimental mips64 samples

Both toolchains were tested to successfully:
- _build_ busybox, giving respectively an n32 and an n64 binary
although it has not been run-tested.
- build linux-2.6.36-rc3 for Loongson, giving an n64 vmlinux
(which is expected, due to the way the kernel is built),
and the kernel properly boots!

Credits are due to Julien MOUTHINO (julm on freenode#uClibc) for
testing that the kernel boots on his hardware! Cheers! ;-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 This patch tries to fix the issue when PTRACE_EVENT_FORK is not found in the standard
     2 system headers.  The begininngs of this was already in place in trace.c, this patch
     3 only takes that idea and puts it in a shared include file for trace.c *and* events.c.
     4 The latter of which otherwise fails to build on Arm.
     5 
     6 	Joachim Nilsson <jocke@vmlinux.org>
     7 
     8 diff -ruN ltrace-0.5.3.orig/sysdeps/linux-gnu/events.c ltrace-0.5.3/sysdeps/linux-gnu/events.c
     9 --- ltrace-0.5.3.orig/sysdeps/linux-gnu/events.c	2009-07-25 17:13:02.000000000 +0200
    10 +++ ltrace-0.5.3/sysdeps/linux-gnu/events.c	2010-01-03 14:33:46.000000000 +0100
    11 @@ -7,9 +7,8 @@
    12  #include <errno.h>
    13  #include <signal.h>
    14  #include <string.h>
    15 -#include <sys/ptrace.h>
    16  
    17 -#include "common.h"
    18 +#include "trace.h"
    19  
    20  static Event event;
    21  
    22 diff -ruN ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.c ltrace-0.5.3/sysdeps/linux-gnu/trace.c
    23 --- ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.c	2009-07-25 17:13:02.000000000 +0200
    24 +++ ltrace-0.5.3/sysdeps/linux-gnu/trace.c	2010-01-03 14:33:38.000000000 +0100
    25 @@ -5,10 +5,9 @@
    26  #include <unistd.h>
    27  #include <sys/types.h>
    28  #include <sys/wait.h>
    29 -#include "ptrace.h"
    30  #include <asm/unistd.h>
    31  
    32 -#include "common.h"
    33 +#include "trace.h"
    34  
    35  /* If the system headers did not provide the constants, hard-code the normal
    36     values.  */
    37 diff -ruN ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.h ltrace-0.5.3/sysdeps/linux-gnu/trace.h
    38 --- ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.h	1970-01-01 01:00:00.000000000 +0100
    39 +++ ltrace-0.5.3/sysdeps/linux-gnu/trace.h	2010-01-03 14:33:26.000000000 +0100
    40 @@ -0,0 +1,32 @@
    41 +/* If the system headers did not provide the constants, hard-code the normal values. */
    42 +#ifndef __SYSDEPS_TRACE_H__
    43 +#define __SYSDEPS_TRACE_H__
    44 +
    45 +#include "ptrace.h"
    46 +#include "common.h"
    47 +
    48 +#ifndef PTRACE_EVENT_FORK
    49 +#warning  PTRACE_EVENT_FORK not found... redefining.
    50 +#define PTRACE_OLDSETOPTIONS    21
    51 +#define PTRACE_SETOPTIONS       0x4200
    52 +#define PTRACE_GETEVENTMSG      0x4201
    53 +
    54 +/* options set using PTRACE_SETOPTIONS */
    55 +#define PTRACE_O_TRACESYSGOOD   0x00000001
    56 +#define PTRACE_O_TRACEFORK      0x00000002
    57 +#define PTRACE_O_TRACEVFORK     0x00000004
    58 +#define PTRACE_O_TRACECLONE     0x00000008
    59 +#define PTRACE_O_TRACEEXEC      0x00000010
    60 +#define PTRACE_O_TRACEVFORKDONE 0x00000020
    61 +#define PTRACE_O_TRACEEXIT      0x00000040
    62 +
    63 +/* Wait extended result codes for the above trace options.  */
    64 +#define PTRACE_EVENT_FORK       1
    65 +#define PTRACE_EVENT_VFORK      2
    66 +#define PTRACE_EVENT_CLONE      3
    67 +#define PTRACE_EVENT_EXEC       4
    68 +#define PTRACE_EVENT_VFORK_DONE 5
    69 +#define PTRACE_EVENT_EXIT       6
    70 +
    71 +#endif /* PTRACE_EVENT_FORK */
    72 +#endif /* __SYSDEPS_TRACE_H__ */