This patch tries to fix the issue when PTRACE_EVENT_FORK is not found in the standard
system headers.  The begininngs of this was already in place in trace.c, this patch
only takes that idea and puts it in a shared include file for trace.c *and* events.c.
The latter of which otherwise fails to build on Arm.

	Joachim Nilsson <jocke@vmlinux.org>

diff -ruN ltrace-0.5.3.orig/sysdeps/linux-gnu/events.c ltrace-0.5.3/sysdeps/linux-gnu/events.c
--- ltrace-0.5.3.orig/sysdeps/linux-gnu/events.c	2009-07-25 17:13:02.000000000 +0200
+++ ltrace-0.5.3/sysdeps/linux-gnu/events.c	2010-01-03 14:33:46.000000000 +0100
@@ -7,9 +7,8 @@
 #include <errno.h>
 #include <signal.h>
 #include <string.h>
-#include <sys/ptrace.h>
 
-#include "common.h"
+#include "trace.h"
 
 static Event event;
 
diff -ruN ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.c ltrace-0.5.3/sysdeps/linux-gnu/trace.c
--- ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.c	2009-07-25 17:13:02.000000000 +0200
+++ ltrace-0.5.3/sysdeps/linux-gnu/trace.c	2010-01-03 14:33:38.000000000 +0100
@@ -5,10 +5,9 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/wait.h>
-#include "ptrace.h"
 #include <asm/unistd.h>
 
-#include "common.h"
+#include "trace.h"
 
 /* If the system headers did not provide the constants, hard-code the normal
    values.  */
diff -ruN ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.h ltrace-0.5.3/sysdeps/linux-gnu/trace.h
--- ltrace-0.5.3.orig/sysdeps/linux-gnu/trace.h	1970-01-01 01:00:00.000000000 +0100
+++ ltrace-0.5.3/sysdeps/linux-gnu/trace.h	2010-01-03 14:33:26.000000000 +0100
@@ -0,0 +1,32 @@
+/* If the system headers did not provide the constants, hard-code the normal values. */
+#ifndef __SYSDEPS_TRACE_H__
+#define __SYSDEPS_TRACE_H__
+
+#include "ptrace.h"
+#include "common.h"
+
+#ifndef PTRACE_EVENT_FORK
+#warning  PTRACE_EVENT_FORK not found... redefining.
+#define PTRACE_OLDSETOPTIONS    21
+#define PTRACE_SETOPTIONS       0x4200
+#define PTRACE_GETEVENTMSG      0x4201
+
+/* options set using PTRACE_SETOPTIONS */
+#define PTRACE_O_TRACESYSGOOD   0x00000001
+#define PTRACE_O_TRACEFORK      0x00000002
+#define PTRACE_O_TRACEVFORK     0x00000004
+#define PTRACE_O_TRACECLONE     0x00000008
+#define PTRACE_O_TRACEEXEC      0x00000010
+#define PTRACE_O_TRACEVFORKDONE 0x00000020
+#define PTRACE_O_TRACEEXIT      0x00000040
+
+/* Wait extended result codes for the above trace options.  */
+#define PTRACE_EVENT_FORK       1
+#define PTRACE_EVENT_VFORK      2
+#define PTRACE_EVENT_CLONE      3
+#define PTRACE_EVENT_EXEC       4
+#define PTRACE_EVENT_VFORK_DONE 5
+#define PTRACE_EVENT_EXIT       6
+
+#endif /* PTRACE_EVENT_FORK */
+#endif /* __SYSDEPS_TRACE_H__ */
--- ltrace-0.5.3.orig/sysdeps/linux-gnu/ppc/plt.c	2009-07-25 09:13:02.000000000 -0600
+++ ltrace-0.5.3/sysdeps/linux-gnu/ppc/plt.c	2010-09-28 18:30:07.091618190 -0600
@@ -1,5 +1,6 @@
 #include <gelf.h>
 #include "common.h"
+#include "ptrace.h"
 
 GElf_Addr
 arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) {
