diff options
Diffstat (limited to 'packages/ltrace/0.5.3/0007-fix-missing-ptrace-defines.patch')
-rw-r--r-- | packages/ltrace/0.5.3/0007-fix-missing-ptrace-defines.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/packages/ltrace/0.5.3/0007-fix-missing-ptrace-defines.patch b/packages/ltrace/0.5.3/0007-fix-missing-ptrace-defines.patch new file mode 100644 index 0000000..f4e31d9 --- /dev/null +++ b/packages/ltrace/0.5.3/0007-fix-missing-ptrace-defines.patch @@ -0,0 +1,85 @@ +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> + +--- + sysdeps/linux-gnu/events.c | 3 +-- + sysdeps/linux-gnu/ppc/plt.c | 1 + + sysdeps/linux-gnu/trace.c | 3 +-- + sysdeps/linux-gnu/trace.h | 32 ++++++++++++++++++++++++++++++++ + 4 files changed, 35 insertions(+), 4 deletions(-) + +--- a/sysdeps/linux-gnu/events.c ++++ b/sysdeps/linux-gnu/events.c +@@ -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; + +--- a/sysdeps/linux-gnu/trace.c ++++ b/sysdeps/linux-gnu/trace.c +@@ -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. */ +--- /dev/null ++++ b/sysdeps/linux-gnu/trace.h +@@ -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__ */ +--- a/sysdeps/linux-gnu/ppc/plt.c ++++ b/sysdeps/linux-gnu/ppc/plt.c +@@ -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) { |