--- Begin Message ---
(continued)
patch7.diff: src/libgo/go/syscall/wait.c
Set WCONTINUED to zero if not defined (same fix as for lto in gcc-4.9)
patch8.diff: src/libgo/mksysinfo.sh
Add special treatment of EWOULDBLOCK, SYS_FCNTL and st_dev since they
are either not defined or defined differently for the script to catch
them.
patch9.diff: src/libgo/runtime/netpoll.goc
Rename errno to errno1 since errno clashes with <errno.h> included in
that file on Hurd.
--- a/src/libgo/go/syscall/wait.c
+++ b/src/libgo/go/syscall/wait.c
@@ -8,6 +8,9 @@
OS-independent. */
#include <stdint.h>
+#ifndef WCONTINUED
+#define WCONTINUED 0
+#endif
#include <sys/wait.h>
#include "runtime.h"
--- a/src/libgo/mksysinfo.sh
+++ b/src/libgo/mksysinfo.sh
@@ -210,6 +210,11 @@
egrep '#define E[A-Z0-9_]+ ' | \
sed -e 's/^#define \(E[A-Z0-9_]*\) .*$/const \1 = Errno(_\1)/' >> ${OUT}
+# Special treatment of EWOULDBLOCK for GNU/Hurd
+# /usr/include/bits/errno.h: #define EWOULDBLOCK EAGAIN
+egrep '^const EWOULDBLOCK = Errno(_EWOULDBLOCK)' ${OUT} | \
+ sed -i.bak -e 's/_EWOULDBLOCK/_EAGAIN/' ${OUT}
+
# The O_xxx flags.
egrep '^const _(O|F|FD)_' gen-sysinfo.go | \
sed -e 's/^\(const \)_\([^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
@@ -225,6 +230,11 @@
echo "const F_DUPFD_CLOEXEC = 0" >> ${OUT}
fi
+# Special treatment of SYS_FCNTL for GNU/Hurd
+if ! grep '^const SYS_FCNTL' ${OUT} >/dev/null 2>&1; then
+ echo "const SYS_FCNTL = 0" >> ${OUT}
+fi
+
# These flags can be lost on i386 GNU/Linux when using
# -D_FILE_OFFSET_BITS=64, because we see "#define F_SETLK F_SETLK64"
# before we see the definition of F_SETLK64.
@@ -528,6 +538,8 @@
# The stat type.
# Prefer largefile variant if available.
+# Special treatment of st_dev for GNU/Hurd
+# /usr/include/i386-gnu/bits/stat.h: #define st_dev st_fsid
stat=`grep '^type _stat64 ' gen-sysinfo.go || true`
if test "$stat" != ""; then
grep '^type _stat64 ' gen-sysinfo.go
@@ -536,6 +548,7 @@
fi | sed -e 's/type _stat64/type Stat_t/' \
-e 's/type _stat/type Stat_t/' \
-e 's/st_dev/Dev/' \
+ -e 's/st_fsid/Dev/' \
-e 's/st_ino/Ino/g' \
-e 's/st_nlink/Nlink/' \
-e 's/st_mode/Mode/' \
--- a/src/libgo/runtime/netpoll.goc.orig 2013-11-07 01:23:21.000000000 +0100
+++ b/src/libgo/runtime/netpoll.goc 2014-03-28 09:07:15.000000000 +0100
@@ -68,7 +68,7 @@
runtime_netpollinit();
}
-func runtime_pollOpen(fd uintptr) (pd *PollDesc, errno int) {
+func runtime_pollOpen(fd uintptr) (pd *PollDesc, errno1 int) {
pd = allocPollDesc();
runtime_lock(pd);
if(pd->wg != nil && pd->wg != READY)
@@ -84,7 +84,7 @@
pd->wd = 0;
runtime_unlock(pd);
- errno = runtime_netpollopen(fd, pd);
+ errno1 = runtime_netpollopen(fd, pd);
}
func runtime_pollClose(pd *PollDesc) {
--- End Message ---