blob: be09616dc8651915b2126479ffb3947006fc9062 (
plain) (
blame)
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
|
instruction: 0.491
runtime: 0.354
syscall: 0.155
Arm64 fails to run a binary which runs OK on real hardware
This binary:
http://oirase.annexia.org/tmp/test.gz
runs OK on real aarch64 hardware. It is a statically linked Linux binary which (if successful) will print "hello, world" and exit cleanly.
On qemu-arm64 userspace emulator it doesn't print anything and loops forever using 100% CPU.
----
The following section is only if you wish to compile this binary from source, otherwise you can ignore it.
First compile OCaml from:
https://github.com/ocaml/ocaml
(note you have to compile it on aarch64 or in qemu, it's not possible to cross-compile). You will have to apply the one-line patch from:
https://sympa.inria.fr/sympa/arc/caml-list/2013-12/msg00179.html
./configure
make -j1 world.opt
Then do:
echo 'print_endline "hello, world"' > test.ml
./boot/ocamlrun ./ocamlopt -I stdlib stdlib.cmxa test.ml -o test
./test
|