Replicate signal names from syscall in os/signal.

R=rsc
CC=golang-dev
https://golang.org/cl/183142
diff --git a/.hgignore b/.hgignore
index c739a20..7e039d1 100644
--- a/.hgignore
+++ b/.hgignore
@@ -20,6 +20,7 @@
 src/cmd/gc/opnames.h
 src/pkg/Make.deps
 src/pkg/exp/ogle/ogle
+src/pkg/os/signal/unix.go
 src/pkg/runtime/cgo2c
 src/pkg/runtime/*/asm.h
 src/pkg/runtime/runtime.acid.*
diff --git a/src/pkg/os/signal/Makefile b/src/pkg/os/signal/Makefile
index a1f04b6..5a24546 100644
--- a/src/pkg/os/signal/Makefile
+++ b/src/pkg/os/signal/Makefile
@@ -7,5 +7,11 @@
 TARG=os/signal
 GOFILES=\
 	signal.go\
+	unix.go\
+
+CLEANFILES+=unix.go
 
 include ../../../Make.pkg
+
+unix.go: ../../syscall/zerrors_$(GOOS)_$(GOARCH).go
+	./mkunix.sh $< > $@ || rm -f $@
diff --git a/src/pkg/os/signal/mkunix.sh b/src/pkg/os/signal/mkunix.sh
new file mode 100755
index 0000000..e1ea660
--- /dev/null
+++ b/src/pkg/os/signal/mkunix.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+# Copyright 2010 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+echo '// ./mkunix.sh' "$1"
+echo '// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT'
+echo
+
+cat <<EOH
+package signal
+
+import (
+  "syscall"
+)
+
+var _ = syscall.Syscall  // in case there are zero signals
+
+const (
+EOH
+
+sed -n 's/^[ 	]*\(SIG[A-Z0-9][A-Z0-9]*\).*/  \1 = UnixSignal(syscall.\1)/p' "$1"
+
+echo ")"
diff --git a/src/pkg/os/signal/signal_test.go b/src/pkg/os/signal/signal_test.go
index 27336cc..f2679f1 100644
--- a/src/pkg/os/signal/signal_test.go
+++ b/src/pkg/os/signal/signal_test.go
@@ -13,7 +13,7 @@
 	// Send this process a SIGHUP.
 	syscall.Syscall(syscall.SYS_KILL, uintptr(syscall.Getpid()), syscall.SIGHUP, 0)
 
-	if sig := (<-Incoming).(UnixSignal); sig != 1 {
-		t.Errorf("signal was %v, want %v", sig, 1)
+	if sig := (<-Incoming).(UnixSignal); sig != SIGHUP {
+		t.Errorf("signal was %v, want %v", sig, SIGHUP)
 	}
 }