id = 1755 title = "qemu-arm fails to execute a cortex-M binary (page_set_flags: Assertion 'last <= GUEST_ADDR_MAX' failed.)" state = "closed" created_at = "2023-07-10T15:31:29.693Z" closed_at = "2023-07-16T16:48:48.392Z" labels = [] url = "https://gitlab.com/qemu-project/qemu/-/issues/1755" host-os = "Ubuntu 22.04" host-arch = "x86" qemu-version = "qemu-arm version 8.0.50 (v8.0.0-2316-gd145c0da22)" guest-os = "n/a" guest-arch = "arm" description = """I've noticed that qemu-arm (so linux-user mode) fails to execute a binary targeting cortex-M. This used to work until commit "Make the commpage executable".""" reproduce = """1. Compile a simple hello.c for arm-eabi. If you don't have such a toolchain, you can download one from https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads For instance https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz (for an x86_64 linux host) 2.# compile for cortex-m3: 3. arm-none-eabi-gcc hello.c -o hello.exe.m3 -mcpu=cortex-m3 -specs=rdimon.specs 4.qemu-arm -cpu cortex-m3 hello.exe.m3 .....user-exec.c:492: page_set_flags: Assertion 'last <= GUEST_ADDR_MAX' failed. 5. # compile for cortex-a9: 6. arm-none-eabi-gcc hello.c -o hello.exe.a9 -mcpu=cortex-a9 -specs=rdimon.specs 7. qemu-arm -cpu cortex-a9 hello.exe.a9 Hello""" additional = "n/a"