summary refs log tree commit diff stats
path: root/gitlab/issues/target_arm/host_x86
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-05-21 21:21:26 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-05-21 21:21:26 +0200
commit4b927bc37359dec23f67d3427fc982945f24f404 (patch)
tree245449ef9146942dc7fffd0235b48b7e70a00bf2 /gitlab/issues/target_arm/host_x86
parentaa8bd79cec7bf6790ddb01d156c2ef2201abbaab (diff)
downloademulator-bug-study-4b927bc37359dec23f67d3427fc982945f24f404.tar.gz
emulator-bug-study-4b927bc37359dec23f67d3427fc982945f24f404.zip
add gitlab issues in toml format
Diffstat (limited to 'gitlab/issues/target_arm/host_x86')
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_TCG/1581.toml22
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_TCG/1592.toml24
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_TCG/1642.toml30
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_missing/1325.toml89
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_missing/1858.toml20
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_missing/1890.toml33
-rw-r--r--gitlab/issues/target_arm/host_x86/accel_missing/2146.toml122
7 files changed, 340 insertions, 0 deletions
diff --git a/gitlab/issues/target_arm/host_x86/accel_TCG/1581.toml b/gitlab/issues/target_arm/host_x86/accel_TCG/1581.toml
new file mode 100644
index 00000000..05ded13b
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_TCG/1581.toml
@@ -0,0 +1,22 @@
+id = 1581
+title = "QEMU TCG crashes when running on windows"
+state = "closed"
+created_at = "2023-04-06T02:34:59.134Z"
+closed_at = "2023-04-11T09:20:30.558Z"
+labels = ["Closed::Fixed", "accel: TCG", "host: x86", "hostos: Windows", "kind::Bug", "target: arm"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1581"
+host-os = "Windows 10 22H2"
+host-arch = "x86"
+qemu-version = "v8.0.0-rc2"
+guest-os = "linux buildroot"
+guest-arch = "arm64"
+description = """QEMU crashes immediately after startup and shows an assertion failure:
+
+ERROR:C:/msys64/home/xxx/qemu/tcg/i386/tcg-target.c.inc:1085:tcg_out_addi_ptr: assertion failed: (64 == 32)
+
+Bail out! ERROR:C:/msys64/home/xxx/qemu/tcg/i386/tcg-target.c.inc:1085:tcg_out_addi_ptr: assertion failed: (64 ==
+ 32)"""
+reproduce = """NA"""
+additional = """1. This problem only occurs when the host system is windows, and the same QEMU configuration does not have this problem when the host system is Linux.
+2. This problem is related to the -smp parameter of QEMU. If the smp parameter is 1, this problem will not occur.
+3. This problem does not exist in the QEMU version 7.2."""
diff --git a/gitlab/issues/target_arm/host_x86/accel_TCG/1592.toml b/gitlab/issues/target_arm/host_x86/accel_TCG/1592.toml
new file mode 100644
index 00000000..ce2d0c43
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_TCG/1592.toml
@@ -0,0 +1,24 @@
+id = 1592
+title = "QEMU v8.0.0 crashes when running in TCG mode on windows OS"
+state = "closed"
+created_at = "2023-04-12T01:40:09.942Z"
+closed_at = "2023-05-17T06:20:02.268Z"
+labels = ["Closed::Fixed", "accel: TCG", "host: x86", "hostos: Windows", "target: arm"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1592"
+host-os = "Windows 10 22H2"
+host-arch = "x86_64"
+qemu-version = "v8.0.0"
+guest-os = "linux buildroot"
+guest-arch = "arm64"
+description = """This bug is a follow-up to issue #1581. 
+After the patch 7d9e1ee424b06a43708be02474e6714962cfee92 is merged, QEMU segfaults at startup.
+And the location where the segfault occurs here(from coredump):
+```
+atomic_common.c.inc:60
+CMPXCHG_HELPER(cmpxchgo_le, Int128)
+```"""
+reproduce = """NA"""
+additional = """1. This problem only occurs when the host system is windows, and the same QEMU configuration does not have this problem when the host system is Linux.
+2. This problem is related to the -smp parameter of QEMU. If the smp parameter is 1, this problem will not occur.
+3. This problem does not exist in the QEMU version 7.2.
+4. What is even more confusing is that if you use gdb to load qemu and run it, this issue cannot be reproduced."""
diff --git a/gitlab/issues/target_arm/host_x86/accel_TCG/1642.toml b/gitlab/issues/target_arm/host_x86/accel_TCG/1642.toml
new file mode 100644
index 00000000..6b6010e7
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_TCG/1642.toml
@@ -0,0 +1,30 @@
+id = 1642
+title = "Qemu aarch64 tcg crashes when emulating an STXP instruction but only on a Windows host"
+state = "closed"
+created_at = "2023-05-10T16:55:29.637Z"
+closed_at = "2023-05-17T06:20:02.276Z"
+labels = ["Closed::Fixed", "accel: TCG", "host: x86", "hostos: Windows", "kind::Bug", "target: arm"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1642"
+host-os = "Windows 10 22H2"
+host-arch = "x86"
+qemu-version = "8.0.0"
+guest-os = "Windows Server 2022"
+guest-arch = "arm64"
+description = """Qemu segfaults when trying to emulate an STXP instruction, but only when running natively on a windows host (msys2 build). This is not the same as https://gitlab.com/qemu-project/qemu/-/issues/1581.
+
+I've managed to git-bisect it to this change: https://github.com/qemu/qemu/commit/546789c7df8866c55cae8d3195e8e58328a35d51
+Sadly i cannot investigate it further and contribute a fix, but it seems like a problem with one of the I128 arguments to `helper_atomic_cmpxchgo_le `
+
+UPD: Issue is also in master (as of `caa9cbd566877b34e9abcc04d936116fc5e0ab28`)"""
+reproduce = """N/A"""
+additional = """```
+Thread 9 received signal SIGSEGV, Segmentation fault.
+0x00007ff67efc32dc in helper_atomic_cmpxchgo_le (env=0x24796b08c10, addr=18446684150325987376, oldv=46236672343829145701101521005152, newv=2595395441251766838621186119693696, oi=3650) at ../accel/tcg/atomic_common.c.inc:60
+60      CMPXCHG_HELPER(cmpxchgo_le, Int128)
+(gdb) bt
+#0  0x00007ff67efc32dc in helper_atomic_cmpxchgo_le (env=0x24796b08c10,
+    addr=18446684150325987376, oldv=46236672343829145701101521005152,
+    newv=2595395441251766838621186119693696, oi=3650) at ../accel/tcg/atomic_common.c.inc:60
+#1  0x00000247a124f73d in ?? ()
+
+```"""
diff --git a/gitlab/issues/target_arm/host_x86/accel_missing/1325.toml b/gitlab/issues/target_arm/host_x86/accel_missing/1325.toml
new file mode 100644
index 00000000..50d80e0a
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_missing/1325.toml
@@ -0,0 +1,89 @@
+id = 1325
+title = "c++: internal compiler error: Segmentation fault signal terminated program cc1plus when running in qemu-aarch64-static chroot on x86_64"
+state = "opened"
+created_at = "2022-11-20T02:07:43.120Z"
+closed_at = "n/a"
+labels = ["host: x86", "linux-user", "target: arm"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1325"
+host-os = "Arch Linux"
+host-arch = "x86_64"
+qemu-version = "7.1.0 and 7.2.0-rc0 (reports as 7.1.90)"
+guest-os = "Arch Linux ARM"
+guest-arch = "aarch64"
+description = """After a moment of compiling the `src/emoji/Provider.cpp` file, `cc1plus` (I assume the compiler program itself) throws a segfault when running in the emulated chroot environment. The error is shown below.
+```
+qemu: uncaught target signal 11 (Segmentation fault) - core dumped
+c++: internal compiler error: Segmentation fault signal terminated program cc1plus
+Please submit a full bug report, with preprocessed source (by using -freport-bug).
+See <https://github.com/archlinuxarm/PKGBUILDs/issues> for instructions.
+```
+
+This does not happen if you enter the chroot environment on a real ARM device (like a Raspberry PI 3 or 4 or PinePhone). The ARM device does not need to have `qemu-user-static`, nor `qemu-user-static-binfmt` installed because it does not need to emulate an aarch64 CPU."""
+reproduce = """There are two ways to replicate this. Either use (1) my preconfigured ARM chroot or (2) setup the chroot environment yourself. These instructions assume you are running on Arch Linux (x86_64).
+1. You can use my aarch64 chroot environment provided. (This is the easy way)
+  - 1) Clone the repo I provided and then change into that directory. 
+```bash
+git clone https://github.com/i3Craig/Temp-aarch64-chroot-for-nheko-compile-issues-in-qemu.git
+cd Temp-aarch64-chroot-for-nheko-compile-issues-in-qemu
+```
+  - 2) On your PC, install `qemu-user-static` and `qemu-user-static-binfmt` and `arch-install-scripts`. This will allow us to `chroot` into the Arch Linux ARM image (technically `chroot` will work since we don't need to use `pacman` for anything with this method, so you could skip `arch-install-scripts` if you prefer). `sudo pacman -S qemu-user-static qemu-user-static-binfmt arch-install-scripts`.
+  - 3) I put the chroot environment in a state where you can simply run the following command to build the one file that fails. Run the following command.
+   ```bash
+sudo chroot chroot/  /usr/bin/c++ -DFMT_SHARED -DGSTREAMER_AVAILABLE -DNHEKO_DBUS_SYS -DQAPPLICATION_CLASS=QApplication -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_QUICKCONTROLS2_LIB -DQT_QUICKWIDGETS_LIB -DQT_QUICK_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -DXCB_AVAILABLE -Dnheko_EXPORTS -I/home/builder/packages/nheko/src/build -I/home/builder/packages/nheko/src/nheko-0.10.2 -I/home/builder/packages/nheko/src/build/nheko_autogen/include -I/home/builder/packages/nheko/src/nheko-0.10.2/src -I/home/builder/packages/nheko/src/nheko-0.10.2/includes -I/home/builder/packages/nheko/src/nheko-0.10.2/third_party/blurhash -I/home/builder/packages/nheko/src/nheko-0.10.2/third_party/cpp-httplib-0.5.12 -I/home/builder/packages/nheko/src/nheko-0.10.2/third_party/SingleApplication-3.3.2 -isystem /usr/include/qt -isystem /usr/include/qt/QtDBus -isystem /usr/include/qt/QtCore -isystem /usr/lib/qt/mkspecs/linux-g++ -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtSvg -isystem /usr/include/qt/QtConcurrent -isystem /usr/include/qt/QtMultimedia -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtQml -isystem /usr/include/qt/QtQuickControls2 -isystem /usr/include/qt/QtQuick -isystem /usr/include/qt/QtQmlModels -isystem /usr/include/qt/QtQuickWidgets -isystem /usr/include/gstreamer-1.0 -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -isystem /usr/include/sysprof-4 -isystem /usr/include/orc-0.4 -isystem /usr/include/libmount -isystem /usr/include/blkid -march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Wextra -pedantic -fsized-deallocation -fdiagnostics-color=always -Wunreachable-code -Wno-attributes -fPIE -fPIC -DSPDLOG_SHARED_LIB -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -pthread -std=gnu++17 -Winvalid-pch -include /home/builder/packages/nheko/src/build/CMakeFiles/nheko.dir/cmake_pch.hxx -MD -MT /home/builder/packages/nheko/src/build/CMakeFiles/nheko.dir/src/emoji/Provider.cpp.o -MF /home/builder/packages/nheko/src/build/CMakeFiles/nheko.dir/src/emoji/Provider.cpp.o.d -o /home/builder/packages/nheko/src/build/CMakeFiles/nheko.dir/src/emoji/Provider.cpp.o -c /home/builder/packages/nheko/src/nheko-0.10.2/src/emoji/Provider.cpp
+   ```
+- 4) The above command will fail with a segfault error. If you copy your `chroot` over to a real ARM device (like an Raspberry PI 3 or 4 or PinePhone) and run the compile command from step (3), it will be successful. This suggests that everything is setup correctly, but there is a bug in QEMU that causes the c++ compiler to fail.
+
+2. You can download an Arch Linux ARM image from archlinuxarm.org and chroot into that. Then attempt to build the `nheko` AUR package. (This way requires extra work, but you can use this if you don't trust my chroot archive).
+  - 1) Download Arch Linux ARM to your X86_64 PC. The Raspberry PI 3/4 image should work. `http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz`. Signatures are available on archlinuxarm.org.
+  - 2) Extract the tar archive: `mkdir chroot; sudo tar -xf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C chroot` (this will extract to the `chroot` folder in your current working directory.
+  - 3) On your PC, install `qemu-user-static` and `qemu-user-static-binfmt` and `arch-install-scripts`. This will allow us to `chroot` into the Arch Linux ARM image (using the `arch-chroot` because we will need to install packages with pacman in the chroot environment). `sudo pacman -S qemu-user-static qemu-user-static-binfmt arch-install-scripts`.
+  - 4) Now, we can bindmount the `chroot` directory to itself so `arch-chroot` is happy. `sudo mount --bind chroot/ chroot/`
+  - 5) Enter the chroot: `sudo arch-chroot chroot/`
+  - 6) At this point, we need to get our build environment setup. Let's start by installing `git`, `base-devel`, `screen` and `vim`. `pacman -S git base-devel screen vim`. I use screen to have one terminal for the root user to install stuff and one for the `builder` user that we will create for building packages as `makepkg` does not particularly like to run as root.
+  - 7) Add the builder user and create its home folder: `useradd builder; mkdir /home/builder; chown builder:builder /home/builder`.
+  - 8) You could maybe use an AUR helper to build the following packages, but they don't have the 'aarch64' flag, so they will throw an error when you try to compile them. Thus, I use `makepkg` manually with the `--ignorearch` flag to ignore the architecture of the chroot environment (they are fully compatible with aarch64, just not marked as such). Thus, run `su -l builder` to switch to the builder user, `mkdir packages` to create the packages folder, and then clone the following AUR packages into this folder and build them: `coeurl  lmdbxx  mtxclient  nheko  tweeny`. These are dependencies for `nheko`. The process is `git clone https://aur.archlinux.org/<PACKAGENAME>.git`, then `cd PACKAGENAME`, then `makepkg --ignorearch`, then (as the root user in the chroot environment - can use sudo if you set it up) `pacman -U PACKAGENAME.PACKAGEVERSION.pkg.tar.xz` (you can type the package name and then use tab to autocomplete the exact package name). They will all compile just fine and install correctly.
+  - 9) Now, do the same for the AUR package `nheko`. Notice that it will start to compile, but the error shown above will be printed on the screen after a while. If you copy your `chroot` over to a real ARM device (like an Raspberry PI 3 or 4 or PinePhone) and `arch-chroot` into it and attempt the compile again, it will be successful. This suggests that everything is setup correctly, but there is a bug in qemu that causes the c++ compiler to fail. This is known to break in nheko version `0.10.2-1`. You can get to this by running `git checkout d83124fbffe86d7f875bf8e56834ae98cc21160c` after you clone the `nheko` AUR build script. This is the current latest version as of writing this, but this may change in the future and the bug may no longer show up. If it doesn't, run that `git checkout` command."""
+additional = """After using the `-strace` option in `qemu-aarch64-static` (which has to be copied from the host system to the chroot for this to work: `sudo cp /usr/bin/qemu-aarch64-static chroot/usr/bin/qemu-aarch64-static`), I determined that `c++` was running `/usr/lib/gcc/aarch64-unknown-linux-gnu/12.1.0/cc1plus`, which segfaulted. Note: have to run `sudo arch-chroot chroot/ /usr/bin/qemu-aarch64-static -strace <PUT LONG C++ COMPILE COMMAND HERE>`.
+After manually running the `cc1plus` command with the `-strace` option outlined above, I get the following strace, which doesn't seem particularly interesting.
+```
+1 brk(0x000000000320a000) = 0x000000000320a000
+1 brk(0x000000000324a000) = 0x000000000324a000
+1 brk(0x00000000032ca000) = 0x00000000032ca000
+1 brk(0x00000000033ca000) = 0x00000000033ca000
+1 brk(0x00000000035ca000) = 0x00000000035ca000
+1 brk(0x00000000031ca000) = 0x00000000031ca000
+1 mmap(NULL,131072,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x0000005520bc3000
+1 brk(0x000000000320a000) = 0x000000000320a000
+1 brk(0x000000000324a000) = 0x000000000324a000
+1 brk(0x00000000032ca000) = 0x00000000032ca000
+1 brk(0x00000000033ca000) = 0x00000000033ca000
+1 brk(0x00000000035ca000) = 0x00000000035ca000
+1 mmap(NULL,4198400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x0000005520be3000
+1 brk(0x00000000031ca000) = 0x00000000031ca000
+1 munmap(0x0000005520be3000,4198400) = 0
+1 brk(0x000000000320a000) = 0x000000000320a000
+1 brk(0x000000000324a000) = 0x000000000324a000
+1 brk(0x00000000032ca000) = 0x00000000032ca000
+1 brk(0x00000000033ca000) = 0x00000000033ca000
+1 brk(0x00000000035ca000) = 0x00000000035ca000
+1 brk(0x00000000039ca000) = 0x00000000039ca000
+1 brk(0x00000000031ca000) = 0x00000000031ca000
+1 mmap(NULL,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x0000005520fe4000
+1 mmap(NULL,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x00000055211e4000
+1 mmap(NULL,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x00000055213e4000
+1 mmap(NULL,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x00000055215e4000
+1 brk(0x00000000031eb000) = 0x00000000031eb000
+1 mmap(NULL,131072,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x00000055217e4000
+1 brk(0x0000000003214000) = 0x0000000003214000
+1 brk(0x0000000003274000) = 0x0000000003274000
+1 brk(0x0000000003295000) = 0x0000000003295000
+1 brk(0x0000000003318000) = 0x0000000003318000
+1 brk(0x0000000003339000) = 0x0000000003339000
+1 brk(0x000000000335a000) = 0x000000000335a000
+--- SIGSEGV {si_signo=SIGSEGV, si_code=2, si_addr=0x0000005500000ff0} ---
+--- SIGSEGV {si_signo=SIGSEGV, si_code=2, si_addr=0x0000005500000ff0} ---
+qemu: uncaught target signal 11 (Segmentation fault) - core dumped
+```
+
+
+I haven't encountered this bug when compiling any other programs, which is good. However, it mea"""
diff --git a/gitlab/issues/target_arm/host_x86/accel_missing/1858.toml b/gitlab/issues/target_arm/host_x86/accel_missing/1858.toml
new file mode 100644
index 00000000..95aeff4c
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_missing/1858.toml
@@ -0,0 +1,20 @@
+id = 1858
+title = "Block device read operation misses one byte(8 bit) per chip per SPI transaction"
+state = "opened"
+created_at = "2023-09-02T00:49:40.216Z"
+closed_at = "n/a"
+labels = ["host: x86", "hostos: Linux", "target: arm", "workflow::Needs Info"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1858"
+host-os = "RHEL7"
+host-arch = "x86"
+qemu-version = "5.0.50"
+guest-os = "Windriver vxWorks"
+guest-arch = "ARM"
+description = """Block device Micron m25qu02gcbb (hw/block/m25p80.c) is emulated by the two -drive files. For block device read operation, device driver from Windriver vxWorks issues SPI commands. For read SPI command( 0x6b ) from device driver, there is a data length to be read is specified. For each SPI command call, m25p80_transfer8(SSISlave *ss, uint32_t tx) from hw/block/m25p80.c is called and read byte is returned to guest OS. It is observed that for more than one sequential SPI read commmands, first byte from the next read block is not returned back to guest OS. Traces within m25p80.c shows that all the data bytes are read however, first byte from the next read block is missing at guest OS.
+ 
+drive file content: 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8
+SPI read command is set to read 4 bytes in one transaction, two transactions are needed from guest OS to read the entire  data.
+trace_m25p80_read_byte() shows that all bytes are read at m25p80_transfer8() call.
+At guest OS following is received: 0x0 0x1 0x2 0x3 0x5 0x6 0x7 0x8 (Missing first byte of the second transaction, 0x4)"""
+reproduce = "n/a"
+additional = """Windriver is a proprietary OS so I can't attach the .bin files. However, any other guest OS should be able to demostrate this behavior. guest OS device driver is reading without errors on an actual Micron QSPI device."""
diff --git a/gitlab/issues/target_arm/host_x86/accel_missing/1890.toml b/gitlab/issues/target_arm/host_x86/accel_missing/1890.toml
new file mode 100644
index 00000000..f1914ca4
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_missing/1890.toml
@@ -0,0 +1,33 @@
+id = 1890
+title = "qemu-arm 8.1.0 Error mapping file: Operation not permitted"
+state = "opened"
+created_at = "2023-09-14T12:47:15.480Z"
+closed_at = "n/a"
+labels = ["host: x86", "linux-user", "target: arm"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1890"
+host-os = "ubuntu 22.04"
+host-arch = "x86"
+qemu-version = "version 8.1.0 (v8.1.0)"
+guest-os = "bare matel"
+guest-arch = "arm"
+description = """failed to execute the cortex-m binary hello_world, and says:
+qemu-arm: /home/user/work/tests/c/hello_world: Error mapping file: Operation not permitted"""
+reproduce = """1.
+```
+cat > hello_new.c <<EOF
+#include <stdio.h>
+int main()
+{printf("hello world"); return 0;}
+EOF
+```
+2.
+```
+arm-none-eabi-gcc -mcpu=cortex-m55 -g hello_world.c -o hello_world -specs=rdimon.specs
+```
+3.
+```
+qemu-arm -cpu cortex-m55 hello_world
+qemu-arm: /home/user/work/tests/c/hello_world: Error mapping file: Operation not permitted
+```"""
+additional = """1, version 8.0.4 version is okay\\
+2, arm-none-eabi-gcc version is 10.3.1 20210824 (release)"""
diff --git a/gitlab/issues/target_arm/host_x86/accel_missing/2146.toml b/gitlab/issues/target_arm/host_x86/accel_missing/2146.toml
new file mode 100644
index 00000000..b133c708
--- /dev/null
+++ b/gitlab/issues/target_arm/host_x86/accel_missing/2146.toml
@@ -0,0 +1,122 @@
+id = 2146
+title = "qemu-system-aarch64 Segfaults"
+state = "opened"
+created_at = "2024-02-01T19:52:50.052Z"
+closed_at = "n/a"
+labels = ["host: x86", "target: arm", "workflow::Needs Info"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/2146"
+host-os = "Linux Mint 21.3 Cinnamon"
+host-arch = "x86_64"
+qemu-version = "8.2.50 (v8.2.0-924-gbd2e12310b), 8.2.1, 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.16)"
+guest-os = "Debian GNU/Linux 12"
+guest-arch = "aarch64"
+description = """Never finishes the script below always segfaults after a few hours
+in seemingly random functions."""
+reproduce = """This is what i did with qemu version 8.2.1
+inside test directory:
+1. wget https://download.qemu.org/qemu-8.2.1.tar.xz
+2. tar xvJf qemu-8.2.1.tar.xz
+3. cd qemu-8.2.1
+4. ./configure --target-list="aarch64-linux-user, aarch64-softmmu" --enable-slirp (crashes with and without --enable-debug)
+5. make -j$(nproc)
+6. ln -sf "$PWD/build/qemu-system-aarch64" "../qemu-system-aarch64"
+7. cd ..
+
+Now the VM
+1. wget -O installer-linux https://deb.debian.org/debian/dists/bookworm/main/installer-arm64/current/images/netboot/debian-installer/arm64/linux
+2. wget -O installer-initrd.gz https://deb.debian.org/debian/dists/bookworm/main/installer-arm64/current/images/netboot/debian-installer/arm64/initrd.gz
+3. qemu-img create -f qcow2 hda.qcow2 15G
+4. ./qemu-system-aarch64 -M virt -m 6G -cpu cortex-a72 \\
+      -kernel installer-linux \\
+      -initrd installer-initrd.gz \\
+      -drive if=none,file=hda.qcow2,format=qcow2,id=hd \\
+      -device virtio-blk-pci,drive=hd \\
+      -netdev user,id=mynet \\
+      -device virtio-net-pci,netdev=mynet \\
+      -nographic -no-reboot \\
+      -accel tcg,thread=multi \\
+      -smp 8
+5. Install minimal debian inside the VM
+6. sudo virt-copy-out -a hda.qcow2 /boot/vmlinuz-6.1.0-17-arm64 /boot/initrd.img-6.1.0-17-arm64 .
+7. ./qemu-system-aarch64 -M virt -m 6G -cpu cortex-a72 \\
+      -kernel vmlinuz-6.1.0-17-arm64 \\
+      -initrd initrd.img-6.1.0-17-arm64 \\
+      -append 'root=/dev/vda2' \\
+      -drive if=none,file=hda.qcow2,format=qcow2,id=hd \\
+      -device virtio-blk-pci,drive=hd \\
+      -netdev user,id=mynet,hostfwd=tcp::10022-:22 \\
+      -device virtio-net-pci,netdev=mynet \\
+      -nographic \\
+      -accel tcg,thread=multi \\
+      -smp 8
+8. Now run this script inside some directory inside the VM(you might need to install gcc first)
+
+#!/bin/bash
+
+wget --no-clobber https://sourceware.org/pub/binutils/releases/binutils-2.41.tar.xz   
+wget --no-clobber https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.0.tar.xz   
+wget --no-clobber https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz    
+wget --no-clobber https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz    
+wget --no-clobber https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz   
+
+BUG_TARGET="$(uname -m)-bug-linux-gnu"
+
+tar -xf binutils-2.41.tar.xz   
+cd binutils-2.41   
+mkdir -vp build   
+cd build   
+../configure --prefix=$PWD        \\
+             --with-sysroot=$PWD  \\
+             --target=$BUG_TARGET \\
+             --disable-nls        \\
+             --enable-gprofng=no  \\
+             --disable-werror     \\
+             --disable-gdb
+make --jobs $(nproc)   
+cd ../..   
+rm -rf binutils   
+
+tar -xf gcc-13.2.0.tar.xz   
+cd gcc-13.2.0   
+tar -xf ../mpfr-4.2.0.tar.xz   
+tar -xf ../gmp-6.3.0.tar.xz   
+tar -xf ../mpc-1.3.1.tar.gz   
+mv mpfr-4.2.0 mpfr   
+mv gmp-6.3.0 gmp   
+mv mpc-1.3.1 mpc   
+mkdir -vp build   
+cd build   
+../configure --prefix=$PWD             \\
+             --with-sysroot=$PWD       \\
+             --target=$BUG_TARGET      \\
+             --with-glibc-version=2.38 \\
+             --with-newlib             \\
+             --without-headers         \\
+             --enable-default-pie      \\
+             --enable-default-ssp      \\
+             --disable-nls             \\
+             --disable-shared          \\
+             --disable-multilib        \\
+             --disable-threads         \\
+             --disable-libatomic       \\
+             --disable-libgomp         \\
+             --disable-libquadmath     \\
+             --disable-libssp          \\
+             --disable-libvtv          \\
+             --disable-libstdcxx       \\
+             --enable-languages=c,c++
+make --jobs $(nproc)   
+cd ../..   
+rm -rf gcc"""
+additional = """I tried all the versions listed above, 6.2 usually segfaults in binutils while the other two run further.
+
+Example:
+```
+Program terminated with signal SIGSEGV, Segmentation fault.
+#0  0x000055555615dd37 in tlb_index (cpu=<Cannot access memory at address 0x7fffefffe1c8>,
+    mmu_idx=<Cannot access memory at address 0x7fffefffe1c0>,
+    addr=<Cannot access memory at address 0x7fffefffe1b8>)
+    at qemu-8.2.1/include/exec/cpu_ldst.h:367
+367\t    uintptr_t size_mask = cpu->neg.tlb.f[mmu_idx].mask >> CPU_TLB_ENTRY_BITS;
+[Current thread is 1 (LWP 857562)]
+```"""