-64c25b2365f7125a32b3146618b627f26a78c1fc
+fa66bd11bbe58943e273cfa74356771c996f5b24
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
 
 
        // Enable tracing if requested.
        if sys.Ptrace {
-               err1 = raw_ptrace(_PTRACE_TRACEME, 0, nil, nil)
+               err1 = raw_ptrace(_PTRACE_TRACEME, 0, 0, 0)
                if err1 != 0 {
                        goto childerror
                }
 
        // Do this right before exec so that we don't unnecessarily trace the runtime
        // setting up after the fork. See issue #21428.
        if sys.Ptrace {
-               err1 = raw_ptrace(_PTRACE_TRACEME, 0, nil, nil)
+               err1 = raw_ptrace(_PTRACE_TRACEME, 0, 0, 0)
                if err1 != 0 {
                        goto childerror
                }
 
 func (w WaitStatus) StopSignal() int { return 0 }
 func (w WaitStatus) TrapCause() int  { return 0 }
 
-func raw_ptrace(request int, pid int, addr *byte, data *byte) Errno {
+func raw_ptrace(request int, pid int, addr uintptr, data uintptr) Errno {
        return ENOSYS
 }
 
 //sys  ptrace64(request int, id int64, addr int64, data int, buff uintptr) (err error)
 //ptrace64(request _C_int, id int64, addr int64, data _C_int, buff *byte) _C_int
 
-func raw_ptrace(request int, pid int, addr *byte, data *byte) Errno {
+func raw_ptrace(request int, pid int, addr uintptr, data uintptr) Errno {
        if request == _PTRACE_TRACEME {
                // Convert to AIX ptrace call.
                err := ptrace64(_PT_TRACE_ME, 0, 0, 0, 0)
 
        return Utimes("/proc/self/fd/"+itoa(fd), tv)
 }
 
-//sys  ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
-//__go_ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long
-
 //sys  accept4(fd int, sa *RawSockaddrAny, len *Socklen_t, flags int) (nfd int, err error)
 //accept4(fd _C_int, sa *RawSockaddrAny, len *Socklen_t, flags _C_int) _C_int
 
 
 package syscall
 
 // Dummy function
-func raw_ptrace(request int, pid int, addr *byte, data *byte) Errno {
+func raw_ptrace(request int, pid int, addr uintptr, data uintptr) Errno {
        return ENOSYS
 }
 
 
 
 package syscall
 
-//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (err Errno)
+//sysnb raw_ptrace(request int, pid int, addr uintptr, data uintptr) (err Errno)
 //ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long
 
        "unsafe"
 )
 
-//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (err Errno)
+//sys  ptrace(request int, pid int, addr uintptr, data uintptr) (err Errno)
+//__go_ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long
+
+//sysnb raw_ptrace(request int, pid int, addr uintptr, data uintptr) (err Errno)
 //__go_ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long
 
 func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) {
 
 //sysnb        Uname(buf *Utsname) (err error)
 //_nuname(buf *Utsname) _C_int
 
-//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (err Errno)
+//sysnb raw_ptrace(request int, pid int, addr uintptr, data uintptr) (err Errno)
 //ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long
 
 package syscall
 
 // 64-bit ptrace(3C) doesn't exist
-func raw_ptrace(request int, pid int, addr *byte, data *byte) Errno {
+func raw_ptrace(request int, pid int, addr uintptr, data uintptr) Errno {
        return ENOSYS
 }
 
 
 package syscall
 
-//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (err Errno)
+//sysnb raw_ptrace(request int, pid int, addr uintptr, data uintptr) (err Errno)
 //ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long
 
 package syscall
 
 // 64-bit ptrace(3C) doesn't exist
-func raw_ptrace(request int, pid int, addr *byte, data *byte) Errno {
+func raw_ptrace(request int, pid int, addr uintptr, data uintptr) Errno {
        return ENOSYS
 }
 
 
 #endif
 
-// AIX ptrace is really different from Linux ptrace. Let syscall
-// package handles it.
-#if defined(HAVE_SYS_PTRACE_H) && !defined(_AIX)
+
+#if defined(HAVE_SYS_PTRACE_H) && defined(__linux__)
 
 // Despite documented appearances, this is actually implemented as
-// a variadic function within glibc.
+// a variadic function within glibc on Linux.
 
 long
 __go_ptrace(int request, pid_t pid, void *addr, void *data)