blob: 0fcbee47992aec73859038cd9046014c2186ea7f (
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
36
|
aarch64 virt cortex-a53 libc printf (with argument) hello world strange behavior
Description of problem:
My hello world get lost after
`0x0000000040000370 <+48>: str q0, [sp, #80]`
in
```
0x1f8: udf #0
0x1fc: udf #0
=> 0x200: udf #0
0x204: udf #0
0x208: udf #0
0x20c: udf #0
0x210: udf #0
0x214: udf #0
```
By bisecting, I got the last commit OK : v8.2.0-2033-g49fa457ca5
```
$ qemu-system-aarch64 -M virt,secure=on,gic-version=3 -cpu cortex-a53 -kernel aarch64-none-elf-a.elf -serial stdio -display none
printf with an integer : 42
```
But after v8.2.0-2034-g59754f85ed https://gitlab.com/qemu-project/qemu/-/commit/59754f85ed35cbd5f4bf2663ca2136c78d5b2413 (for example with latest v9.0.0-265-gfd87be1dad), it doesn't work anymore.
Steps to reproduce:
1. Build qemu-system-aarch64 with ``./configure --prefix=$PREFIX --target-list=aarch64-softmmu --disable-user --disable-linux-user --disable-bsd-user --enable-kvm --enable-tcg --disable-gnutls --disable-nettle --disable-gtk --disable-iconv --disable-curses --disable-curl --disable-vnc --disable-vnc-jpeg --disable-attr --disable-libusb --disable-opengl --disable-tpm --disable-bzip2 && make -j$(nproc) && make install``
2. Run my hello world : ``qemu-system-aarch64 -M virt,secure=on,gic-version=3 -cpu cortex-a53 -kernel aarch64-none-elf-a.elf -serial stdio -display none``
Additional information:
I provide here the hello world (elf + map). Of course the problem might be that it (qemu and/or hello world) was not built correctly and that everything was working by chance before v8.2.0-2033-g49fa457ca5
[aarch64-none-elf-a.elf](/uploads/daf7f37aec260c56d4be5fd90554dce3/aarch64-none-elf-a.elf)
[aarch64-none-elf-a.map](/uploads/5564cee13a214e7eb8d6d4bf79f09682/aarch64-none-elf-a.map)
Depending on the investigation, I can provide what's needed to rebuild it.
|