[dev.cc] runtime: fix linux build

TBR=austin
CC=golang-codereviews
https://golang.org/cl/176760044
diff --git a/src/runtime/defs_linux_386.go b/src/runtime/defs_linux_386.go
index be5e5b3..a468f60 100644
--- a/src/runtime/defs_linux_386.go
+++ b/src/runtime/defs_linux_386.go
@@ -134,6 +134,10 @@
 	ts.tv_sec = x
 }
 
+func (ts *timespec) set_nsec(x int32) {
+	ts.tv_nsec = x
+}
+
 type timeval struct {
 	tv_sec  int32
 	tv_usec int32
diff --git a/src/runtime/defs_linux_amd64.go b/src/runtime/defs_linux_amd64.go
index 386926f..7a1caea 100644
--- a/src/runtime/defs_linux_amd64.go
+++ b/src/runtime/defs_linux_amd64.go
@@ -96,6 +96,10 @@
 	ts.tv_sec = int64(x)
 }
 
+func (ts *timespec) set_nsec(x int32) {
+	ts.tv_nsec = int64(x)
+}
+
 type timeval struct {
 	tv_sec  int64
 	tv_usec int64
diff --git a/src/runtime/defs_linux_arm.go b/src/runtime/defs_linux_arm.go
index 1e7c679..7f83002 100644
--- a/src/runtime/defs_linux_arm.go
+++ b/src/runtime/defs_linux_arm.go
@@ -88,6 +88,10 @@
 	ts.tv_sec = x
 }
 
+func (ts *timespec) set_nsec(x int32) {
+	ts.tv_nsec = x
+}
+
 type sigaltstackt struct {
 	ss_sp    *byte
 	ss_flags int32
diff --git a/src/runtime/os1_linux.go b/src/runtime/os1_linux.go
index 7b096533..0d24c5e 100644
--- a/src/runtime/os1_linux.go
+++ b/src/runtime/os1_linux.go
@@ -48,8 +48,8 @@
 	// is not, even timediv is too heavy, and we really need to use just an
 	// ordinary machine instruction.
 	if ptrSize == 8 {
-		ts.set_sec(ns / 1000000000)
-		ts.set_nsec(ns % 1000000000)
+		ts.set_sec(int32(ns / 1000000000))
+		ts.set_nsec(int32(ns % 1000000000))
 	} else {
 		ts.tv_nsec = 0
 		ts.set_sec(timediv(ns, 1000000000, (*int32)(unsafe.Pointer(&ts.tv_nsec))))