-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Labels
Description
What steps will reproduce the problem? On a darwin system regenerating ztypes_darwin_{386,amd64}.go will not correctly What is the expected output? [dave@indy ~/go/src/pkg/syscall]$ uname FreeBSD [dave@indy ~/go/src/pkg/syscall]$ godefs -gsyscall -f-m32 types_freebsd.c 2>/dev/null | grep -A 8 Msghdr\ struct type Msghdr struct { Name *byte; Namelen uint32; Iov *Iovec; Iovlen int32; Control *byte; Controllen uint32; Flags int32; } odessa(~/go/src/pkg/syscall) % uname Linux odessa(~/go/src/pkg/syscall) % godefs -gsyscall -f-m32 types_linux.c 2>/dev/null | grep -A 8 Msghdr\ struct type Msghdr struct { Name *byte; Namelen uint32; Iov *Iovec; Iovlen uint32; Control *byte; Controllen uint32; Flags int32; } What do you see instead? lucky(~/go/src/pkg/syscall) % uname Darwin lucky(~/go/src/pkg/syscall) % godefs -gsyscall -f-m32 types_darwin.c 2>/dev/null | grep -A 8 Msghdr\ struct type Msghdr struct { Name *byte; Namelen uint32; Iov uint32; Iovlen int32; Control *byte; Controllen uint32; Flags int32; } Iov is no longer defined as *Iovec, but uint32 (or uint64 under -m64) Which compiler are you using (5g, 6g, 8g, gccgo)? godefs Which operating system are you using? Works on linux and freebsd, does not work on darwin Which revision are you using? (hg identify) c88661a2d028+ tip Please provide any additional information below. Linux is the only GOOS that uses syscall.Msghdr, darwin and freebsd do not have support for syscall.Recvmsg, so this is not a big problem at the moment, but it's a timebomb for the day when someone adds those syscalls.