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 --- 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 #include #include -#include -#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 #include #include -#include "ptrace.h" #include -#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 #include "common.h" +#include "ptrace.h" GElf_Addr arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) {