summary refs log tree commit diff stats
path: root/results/classifier/105/graphic/1623020
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/105/graphic/1623020')
-rw-r--r--results/classifier/105/graphic/162302087
1 files changed, 87 insertions, 0 deletions
diff --git a/results/classifier/105/graphic/1623020 b/results/classifier/105/graphic/1623020
new file mode 100644
index 000000000..0587e0a3a
--- /dev/null
+++ b/results/classifier/105/graphic/1623020
@@ -0,0 +1,87 @@
+graphic: 0.882
+semantic: 0.862
+instruction: 0.824
+device: 0.822
+other: 0.816
+socket: 0.810
+vnc: 0.777
+network: 0.777
+mistranslation: 0.771
+KVM: 0.757
+assembly: 0.737
+boot: 0.691
+
+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".
+
+Unfortunately trying to emulate a 64-bit binary on a 32-bit host with QEMU's linux-user emulator will in general not work. (This is because we don't really emulate the guest CPU's MMU in linux-user mode, so we effectively require the guest page size and the host page size to be the same, which they aren't in this case.)
+
+
+I see, I'll close the ticket then.
+
+Do you have any recommandation on how I could achieve this? It is actually a 64-bit CPU (armv8 from Raspberry Pi 3) but it's running on a 32-bit OS / kernel.
+
+On 13 September 2016 at 15:56, Bilal Amarni <email address hidden> wrote:
+> I see, I'll close the ticket then.
+>
+> Do you have any recommandation on how I could achieve this? It is
+> actually a 64-bit CPU (armv8 from Raspberry Pi 3) but it's running on a
+> 32-bit OS / kernel.
+
+Your choices are to run a 64-bit kernel (which can still support
+a mostly 32-bit userspace), or run a 32-bit guest binary, I'm afraid.
+
+