mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-21 05:43:09 +00:00
98bc4decde
Signed-off-by: Alexey Neyman <stilor@att.net>
86 lines
2.5 KiB
Diff
86 lines
2.5 KiB
Diff
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) {
|