You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2 What operating system and processor architecture are you using?
Host:
Linux(CentOS7) go version go1.4.2 linux/amd64
NetBSD/amd64 7.0 go version go1.5.1 netbsd/amd64
NetBSD/amd64 7.0 go version go1.4.3 netbsd/amd64
This problem occurs on all host environments.
Target:
NetBSD/evbarm 7.0 (EABI, PAGE_SIZE=4K kernel)
3 What did you do?
Simple test program
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
$ GOOS=netbsd GOARCH=arm go build .hello.go
$ file hello
hello: ELF 32-bit LSB executable, ARM, version 1 (NetBSD), statically linked, for NetBSD 5.99, not stripped
4 What did you expect to see?
$ ./hello
Hello World
5 What did you see instead?
When run on NetBSD/arm
$ ./hello
(no response, send KILL signal from another tty)
[1] Killed ./hello
$ gdb ./hello
(gdb) r
Starting program: /tmp/hello
Program received signal SIGSEGV, Segmentation fault.
0x000383c4 in runtime.newosproc ()
at /usr/lib/golang/src/runtime/os_netbsd.c:228
The reason of this is because the EABI support is insufficient.
Previous changes (at Mar 2014) are only in syscall packages: 30d6093
However runtime package is also a need to be changed.
Go1.5: src/runtime/defs1_netbsd_arm.go
Go1.4: src/runtime/defs_netbsd_arm.h
I think some types need padding bytes - timespec, timeval, mcontextt, ucontextt, keventt,
In addition, ELF header is also required EABI flag as same as Linux / FreeBSD.
Thanks, the patch looks good to me, please send a CL
after Go 1.6 is released and the tree opens again.
(around Feb. 1st)
Or let me know if you prefer others to submit the Gerrit
CL.
I'd like to see if the defs.go file could be automatically
generated by `go tool cgo -godefs` from
runtime/defs_netbsd{,_arm}.go
And btw, we will need a builder for netbsd/arm. Do you
know someone who is willing to host one?
1 What version of Go are you using (go version)?
Go 1.4 and Go 1.5 (maybe Go 1.3, too)
2 What operating system and processor architecture are you using?
Linux(CentOS7) go version go1.4.2 linux/amd64
NetBSD/amd64 7.0 go version go1.5.1 netbsd/amd64
NetBSD/amd64 7.0 go version go1.4.3 netbsd/amd64
This problem occurs on all host environments.
3 What did you do?
Simple test program
4 What did you expect to see?
5 What did you see instead?
When run on NetBSD/arm
The reason of this is because the EABI support is insufficient.
Previous changes (at Mar 2014) are only in syscall packages:
30d6093
However runtime package is also a need to be changed.
Go1.5: src/runtime/defs1_netbsd_arm.go
Go1.4: src/runtime/defs_netbsd_arm.h
I think some types need padding bytes - timespec, timeval, mcontextt, ucontextt, keventt,
In addition, ELF header is also required EABI flag as same as Linux / FreeBSD.
I attached these patch for go1.5.
go_netbsd_earm_diff.txt
The text was updated successfully, but these errors were encountered: