<pre class="notranslate">On Linux,

$ GOOS=windows GOARCH=386 ./make.bash
...
/home/bradfitz/go/src/libmach/windows.c:49: error: conflicting types for 'pread'
/usr/include/bits/unistd.h:88: note: previous definition of 'pread' was here
/home/bradfitz/go/src/libmach/windows.c:56: error: conflicting types for 'pwrite'
/usr/include/unistd.h:388: note: previous declaration of 'pwrite' was here
go tool dist: FAILED: gcc -Wall -Wno-sign-compare -Wno-missing-braces -Wno-parentheses
-Wno-unknown-pragmas -Wno-switch -Wno-comment -Werror -fno-common -ggdb -O2 -c -m64 -I
/home/bradfitz/go/include -I /home/bradfitz/go/src/libmach -o $WORK/windows.o
/home/bradfitz/go/src/libmach/windows.c</pre>
<pre class="notranslate">This was brought up by jgr on IRC. I can't come up with an explanation for this
behavior. Apologies if there's a mistake in the code.

This code: <a href="http://play.golang.org/p/U4elciYqmL" rel="nofollow">http://play.golang.org/p/U4elciYqmL</a>
triggers the deadlock detector on playground, hangs on Linux (go tip 5439c77d4acb).
Exporting "msg" as "Msg" makes it work. `type Reply struct{}` makes
it work.

I don't see how different message contents would trigger deadlock/hang. I expected to
just see a "main.Reply{}" output for the non-exported case.</pre>