diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-08 13:28:15 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-08 13:28:28 +0200 |
| commit | 5aa276efcbd67f4300ca1a7f809c6e00aadb03da (patch) | |
| tree | 9b8f0e074014cda8d42f5a97a95bc25082d8b764 /results/classifier/zero-shot-user-mode/output/syscall/2157 | |
| parent | 1a3c4faf4e0a25ed0b86e8739d5319a634cb9112 (diff) | |
| download | qemu-analysis-5aa276efcbd67f4300ca1a7f809c6e00aadb03da.tar.gz qemu-analysis-5aa276efcbd67f4300ca1a7f809c6e00aadb03da.zip | |
restructure results
Diffstat (limited to 'results/classifier/zero-shot-user-mode/output/syscall/2157')
| -rw-r--r-- | results/classifier/zero-shot-user-mode/output/syscall/2157 | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/results/classifier/zero-shot-user-mode/output/syscall/2157 b/results/classifier/zero-shot-user-mode/output/syscall/2157 deleted file mode 100644 index 41c585dd5..000000000 --- a/results/classifier/zero-shot-user-mode/output/syscall/2157 +++ /dev/null @@ -1,49 +0,0 @@ -syscall: 0.496 -instruction: 0.323 -runtime: 0.181 - - - -qemu-user fails to run 32-bit x86 binaries on hosts with a page size > 4KB -Description of problem: -`qemu-i386` refuses to run 32-bit x86 binaries on hosts with a page size > 4KB -(such as LoongArch, ppc64le, arm64 with 3 level page tables). -Steps to reproduce: -1. Compile x86 binary which makes a single exit(0) syscall: - ``` - cat > exit0.S << EOF - #include <sys/syscall.h> - .text - .global _start - _start: - movl $__NR_exit, %eax - movl $0, %ebx - int $0x80 - EOF - i586-linux-gnu-gcc -nostdlib -static -no-pie -o exit0 exit0.S - ``` - Alternatively one might compile it on a x86 host: - ``` - gcc -m32 -nostdlib -static -no-pie -o exit0 exit0.S - ``` - and transfer the `exit0` binary to ppc64/LoongArch/arm64 system - - 2. Run the `exit0` binary with `qemu-i386` - ``` - qemu-i386-static ./exit0 - ``` - - # -Additional information: -`.text` segment of (32-bit) x86 binaries is typically aligned at 4KB: -``` -Program Headers: - Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align - LOAD 0x000000 0x08048000 0x08048000 0x00100 0x00100 R 0x1000 - LOAD 0x001000 0x08049000 0x08049000 0x0000c 0x0000c R E 0x1000 - NOTE 0x0000b4 0x080480b4 0x080480b4 0x0004c 0x0004c R 0x4 - GNU_PROPERTY 0x0000d8 0x080480d8 0x080480d8 0x00028 0x00028 R 0x4 -``` - -Thus on a host with a page size being 64 KB (ppc64, arm64 with 3 level page tables) or 16 KB (LoongArch) -alignment requirements in [pbg_dynamic](https://gitlab.com/qemu-project/qemu/-/blob/master/linux-user/elfload.c?ref_type=heads#L3020) can not be satisfied. |