66 lines
2.2 KiB
Diff
66 lines
2.2 KiB
Diff
--- libr/include/r_io.h.orig 2018-10-16 12:16:27.291564958 +0200
|
|
+++ libr/include/r_io.h 2018-10-16 12:34:33.867642425 +0200
|
|
@@ -26,7 +26,7 @@
|
|
#include <sys/ptrace.h>
|
|
#endif
|
|
|
|
-#if defined(__APPLE__) || __sun || __FreeBSD__ || __OpenBSD__
|
|
+#ifndef __GLIBC__
|
|
typedef int r_ptrace_request_t;
|
|
typedef int r_ptrace_data_t;
|
|
#else
|
|
|
|
|
|
--- shlr/ptrace-wrap/include/ptrace_wrap.h.orig 2018-10-18 12:55:38.018615324 +0200
|
|
+++ shlr/ptrace-wrap/include/ptrace_wrap.h 2018-10-18 12:57:01.590996880 +0200
|
|
@@ -22,6 +22,12 @@
|
|
#include <semaphore.h>
|
|
#include <sys/ptrace.h>
|
|
|
|
+#ifdef __GLIBC__
|
|
+typedef enum __ptrace_request __ptrace_request;
|
|
+#else
|
|
+typedef int __ptrace_request;
|
|
+#endif
|
|
+
|
|
typedef enum {
|
|
PTRACE_WRAP_REQUEST_TYPE_STOP,
|
|
PTRACE_WRAP_REQUEST_TYPE_PTRACE,
|
|
@@ -32,7 +38,7 @@
|
|
ptrace_wrap_request_type type;
|
|
union {
|
|
struct {
|
|
- enum __ptrace_request request;
|
|
+ __ptrace_request request;
|
|
pid_t pid;
|
|
void *addr;
|
|
void *data;
|
|
@@ -59,7 +65,7 @@
|
|
|
|
int ptrace_wrap_instance_start(ptrace_wrap_instance *inst);
|
|
void ptrace_wrap_instance_stop(ptrace_wrap_instance *inst);
|
|
-long ptrace_wrap(ptrace_wrap_instance *inst, enum __ptrace_request request, pid_t pid, void *addr, void *data);
|
|
+long ptrace_wrap(ptrace_wrap_instance *inst, __ptrace_request request, pid_t pid, void *addr, void *data);
|
|
pid_t ptrace_wrap_fork(ptrace_wrap_instance *inst, void (*child_callback)(void *), void *child_callback_user);
|
|
|
|
#endif //PTRACE_WRAP_H
|
|
|
|
|
|
--- shlr/ptrace-wrap/src/ptrace_wrap.c.orig 2018-10-18 04:45:01.740833116 +0200
|
|
+++ shlr/ptrace-wrap/src/ptrace_wrap.c 2018-10-18 04:45:15.476897266 +0200
|
|
@@ -92,7 +92,7 @@
|
|
return NULL;
|
|
}
|
|
|
|
-long ptrace_wrap(ptrace_wrap_instance *inst, enum __ptrace_request request, pid_t pid, void *addr, void *data) {
|
|
+long ptrace_wrap(ptrace_wrap_instance *inst, __ptrace_request request, pid_t pid, void *addr, void *data) {
|
|
int _errno = 0;
|
|
inst->request.type = PTRACE_WRAP_REQUEST_TYPE_PTRACE;
|
|
inst->request.ptrace.request = request;
|
|
@@ -116,4 +116,4 @@
|
|
sem_wait (&inst->result_sem);
|
|
errno = _errno;
|
|
return inst->fork_result;
|
|
-}
|
|
\ No newline at end of file
|
|
+}
|