[Bug go/56171] syscall FAILs on Solaris
ro at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Feb 14 10:11:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56171
--- Comment #9 from Rainer Orth <ro at gcc dot gnu.org> 2013-02-14 10:11:11 UTC ---
Created attachment 29448
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29448
proposed patch for __xnet_ socket functions
This works fine in the 32-bit case, but for 64-bit (both sparc and x86) needed
one further adjustment: the 64-bit tests were failing like this:
amd64:
--- FAIL: TestPassFD (0.09 seconds)
:0: child process ReadAll: "", <nil>; want "Hello from child process!\n"
FAIL
FAIL: syscall
sparcv9:
--- FAIL: TestPassFD (0.28 seconds)
passfd_test.go:102: child process ReadAll: "", <nil>; want "Hello from
child process!\n"
FAIL
FAIL: syscall
(Btw., need to check why filename and line number aren't detected on x86...)
It turned out that as on Darwin, we always need 32-bit alignment. The attached
patch does just that and allows the syscall to pass on both 32- and 64-bit
Solaris/SPARC and x86.
Rainer
2013-02-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR go/5617
* go/syscall/sockcmsg_unix.go: Import "runtime".
(cmsgAlignOf): Enforce 32-bit alignment on Solaris.
* go/syscall/socket.go (bind, connect, socket, socketpair)
(getsockopt, sendto, recvmsg, sendmsg): Move ...
* go/syscall/socket_posix.go: ... here.
New file.
* go/syscall/socket_xnet.go: New file.
* Makefile.am (syscall_socket_os_file): New variable.
(go_base_syscall_files): Use it.
* Makefile.in: Regenerate.
More information about the Gcc-bugs
mailing list