386 system call fixes:
  * use 64-bit file system calls (Linux, Darwin)
  * use 32-bit [sic] uid/gid calls (Linux)
  * fix sockets on Linux

Darwin/386 works again.

Linux/386 is better but must never have worked;
there are still bugs surrounding the creation of new
threads in the runtime package.

R=austin
DELTA=1332  (673 added, 614 deleted, 45 changed)
OCL=30327
CL=30380
diff --git a/src/pkg/syscall/syscall_darwin.go b/src/pkg/syscall/syscall_darwin.go
index 011fc7a..8ea78c6 100644
--- a/src/pkg/syscall/syscall_darwin.go
+++ b/src/pkg/syscall/syscall_darwin.go
@@ -154,13 +154,6 @@
 	return;
 }
 
-// TODO(rsc): How does 386 return an int64 newoffset?
-//sys	lseek(fd int, offset int64, whence int) (newoffset uintptr, errno int)
-func Seek(fd int, offset int64, whence int) (newoffset int64, errno int) {
-	n, e := lseek(fd, offset, whence);
-	return int64(n), e;
-}
-
 func Sleep(ns int64) (errno int) {
 	tv := NsecToTimeval(ns);
 	return Select(0, nil, nil, nil, &tv);
@@ -427,6 +420,7 @@
 //sys	Rename(from string, to string) (errno int)
 //sys	Revoke(path string) (errno int)
 //sys	Rmdir(path string) (errno int)
+//sys	Seek(fd int, offset int64, whence int) (newoffset int64, errno int) = SYS_LSEEK
 //sys	Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (errno int)
 //sys	Setegid(egid int) (errno int)
 //sys	Seteuid(euid int) (errno int)