blob: cdda54a62047791deda6f985c11b2c61842843b5 (
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
x86: 0.937
graphic: 0.880
vnc: 0.852
semantic: 0.835
architecture: 0.825
ppc: 0.793
user-level: 0.791
files: 0.790
performance: 0.781
PID: 0.761
permissions: 0.760
network: 0.743
device: 0.740
risc-v: 0.731
socket: 0.720
kernel: 0.696
debug: 0.693
TCG: 0.664
VMM: 0.655
boot: 0.637
peripherals: 0.621
hypervisor: 0.583
virtual: 0.582
register: 0.575
arm: 0.567
i386: 0.482
assembly: 0.444
mistranslation: 0.439
KVM: 0.311
--------------------
x86: 0.968
virtual: 0.376
TCG: 0.186
hypervisor: 0.114
debug: 0.066
PID: 0.060
files: 0.059
VMM: 0.048
register: 0.038
user-level: 0.028
kernel: 0.026
performance: 0.024
architecture: 0.019
device: 0.017
risc-v: 0.015
vnc: 0.011
semantic: 0.011
network: 0.011
socket: 0.010
peripherals: 0.006
assembly: 0.005
boot: 0.004
ppc: 0.004
graphic: 0.003
arm: 0.002
permissions: 0.002
KVM: 0.001
mistranslation: 0.001
i386: 0.000
qemu-aarch64 results in segmentation fault while running a test binary compiled for QNX
Description of problem:
We have cross compiled a simple hello world program for QNX SDP 7.1.0 on Ubuntu Focal x86_64. Running the binary using qemu-aarch64 results in segmentation fault error.
```
$ qemu-aarch64 -L /home/vsts/qnx710/target/qnx7/aarch64le ./hello-world
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)
```
We also tried Ubuntu Jammy which has qemu-aarch64 v6.2.0 but got the same error.
Can you tell us how we can emulate the binary using QEMU emulator that is built for QNX on x86_64 platform? Any help would be much appreciated.
Steps to reproduce:
1. Download QNX SDP from QNX software center https://www.qnx.com/download/group.html?programid=29178.
2. Write a simple hello world program.
```
#include <stdio.h>
int main(void) {
return printf("Hello World!");
}
```
3. Source QNX SDP to set some environment variables.
`$ source ./qnx710/qnxsdp-env.sh`
4. Compile using the QNX compiler.
`$ qcc -Vgcc_ntoaarch64le -o hello-world hello-world.c`
5. Running the binary as it is results to:
```
$ ./hello-world
aarch64-binfmt-P: Could not open '/usr/lib/ldqnx-64.so.2': No such file or directory
```
5. Running using QEMU emulator results to segmentation fault.
```
$ qemu-aarch64 -L /home/vsts/qnx710/target/qnx7/aarch64le ./hello-world
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)
```
|