diff options
Diffstat (limited to 'libgo/runtime/go-varargs.c')
-rw-r--r-- | libgo/runtime/go-varargs.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c index 2b186ef..f9270a9 100644 --- a/libgo/runtime/go-varargs.c +++ b/libgo/runtime/go-varargs.c @@ -18,6 +18,9 @@ #ifdef HAVE_SYS_SYSCALL_H #include <sys/syscall.h> #endif +#ifdef HAVE_SYS_PTRACE_H +#include <sys/ptrace.h> +#endif /* The syscall package calls C functions. The Go compiler can not represent a C varargs functions. On some systems it's important @@ -110,3 +113,16 @@ __go_syscall6(uintptr_t flag, uintptr_t a1, uintptr_t a2, uintptr_t a3, } #endif + +#ifdef HAVE_SYS_PTRACE_H + +// Despite documented appearances, this is actually implemented as +// a variadic function within glibc. + +long +__go_ptrace(int request, pid_t pid, uintptr_t addr, uintptr_t data) +{ + return ptrace (request, pid, addr, data); +} + +#endif |