1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
emulate amd64 binary on arm7 host
I'm trying to run a Go program compiled for amd64 on a Raspberry Pi. Here is an example :
===
// main.go
package main
func main() {
println("hello world")
}
===
Then here is the output I'm getting :
===
> GOARCH=amd64 go build main.go
> ../qemu/build/x86_64-linux-user/qemu-x86_64 -strace ./main
29213 arch_prctl(4098,4823880,0,0,0,0) = 0
29213 write(2,0,4622922)fatal error: = 13
29213 write(2,0,4622132)bad timediv = 11
29213 write(2,0,4620094)
= 1
29213 write(2,0,4635135)runtime: panic before malloc heap initialized
= 46
29213 select(0,0,0,0,1082131776,0) = -1 errno=14 (Bad address)
29213 select(0,0,0,0,1082131776,0) = -1 errno=14 (Bad address)
29213 write(2,0,4623731)
runtime stack:
= 16
29213 write(2,0,4622922)fatal error: = 13
29213 write(2,0,4634607)gentraceback before goexitPC initialization = 43
29213 write(2,0,4620094)
= 1
29213 write(2,0,4635135)runtime: panic before malloc heap initialized
= 46
29213 write(2,0,4624923)panic during panic
= 19
29213 write(2,0,4623731)
runtime stack:
= 16
29213 write(2,0,4622922)fatal error: = 13
29213 write(2,0,4634607)gentraceback before goexitPC initialization = 43
29213 write(2,0,4620094)
= 1
29213 write(2,0,4635135)runtime: panic before malloc heap initialized
= 46
29213 write(2,0,4627441)stack trace unavailable
= 24
29213 exit_group(4)
===
I'm running the latest qemu (commit 7263da78045dc91cc207f350911efe4259e99b3c), which was compiled with "../configure --target-list=x86_64-linux-user --static".
The go version is 1.7.1, and the system "Linux raspberrypi 4.4.11-v7+ #888 SMP Mon May 23 20:10:33 BST 2016 armv7l GNU/Linux".
|