https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81393
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That is better, syscall_linux_s390.go already compiles, but syscall_linux_s390x.go still doesn't: ../../../libgo/go/syscall/syscall_linux_s390x.go:28:3: error: incompatible type for field 3 in struct construction (cannot use type uint32 as type uint64) uint32(uintptr(unsafe.Pointer(regs))), ^ ../../../libgo/go/syscall/syscall_linux_s390x.go:37:3: error: incompatible type for field 3 in struct construction (cannot use type uint32 as type uint64) uint32(uintptr(unsafe.Pointer(regs))), ^ Those s390x two occurrences of uint32(uintptr(unsafe.Pointer(regs))) really should be uint64(uintptr(unsafe.Pointer(regs))). Let me test that now.