summaryrefslogtreecommitdiff
path: root/libgo/go/syscall/sockcmsg_unix.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2019-01-18 19:04:36 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-01-18 19:04:36 +0000
commit4f4a855d82a889cebcfca150a7a43909bcb6a346 (patch)
treef12bae0781920fa34669fe30b6f4615a86d9fb80 /libgo/go/syscall/sockcmsg_unix.go
parent225220d668dafb8262db7012bced688acbe63b33 (diff)
libgo: update to Go1.12beta2
Reviewed-on: https://go-review.googlesource.com/c/158019 gotools/: * Makefile.am (go_cmd_vet_files): Update for Go1.12beta2 release. (GOTOOLS_TEST_TIMEOUT): Increase to 600. (check-runtime): Export LD_LIBRARY_PATH before computing GOARCH and GOOS. (check-vet): Copy golang.org/x/tools into check-vet-dir. * Makefile.in: Regenerate. gcc/testsuite/: * go.go-torture/execute/names-1.go: Stop using debug/xcoff, which is no longer externally visible. From-SVN: r268084
Diffstat (limited to 'libgo/go/syscall/sockcmsg_unix.go')
-rw-r--r--libgo/go/syscall/sockcmsg_unix.go25
1 files changed, 15 insertions, 10 deletions
diff --git a/libgo/go/syscall/sockcmsg_unix.go b/libgo/go/syscall/sockcmsg_unix.go
index c01602f718a..53082a2d5b6 100644
--- a/libgo/go/syscall/sockcmsg_unix.go
+++ b/libgo/go/syscall/sockcmsg_unix.go
@@ -16,17 +16,22 @@ import (
// Round the length of a raw sockaddr up to align it properly.
func cmsgAlignOf(salen int) int {
salign := int(sizeofPtr)
- // NOTE: It seems like 64-bit Darwin, DragonFly BSD and
- // Solaris kernels still require 32-bit aligned access to
- // network subsystem.
- if darwin64Bit || dragonfly64Bit || solaris64Bit {
- salign = 4
- }
- // NOTE: Solaris always uses 32-bit alignment,
- // cf. _CMSG_DATA_ALIGNMENT in <sys/socket.h>.
- if runtime.GOOS == "solaris" {
- salign = 4
+
+ switch runtime.GOOS {
+ case "darwin", "dragonfly", "solaris":
+ // NOTE: It seems like 64-bit Darwin, DragonFly BSD and
+ // Solaris kernels still require 32-bit aligned access to
+ // network subsystem.
+ if sizeofPtr == 8 {
+ salign = 4
+ }
+ case "openbsd":
+ // OpenBSD armv7 requires 64-bit alignment.
+ if runtime.GOARCH == "arm" {
+ salign = 8
+ }
}
+
return (salen + salign - 1) & ^(salign - 1)
}