linux-user elf loader issue all versions up to 4.0 (I didn't test others) file affected linux-user/elfload.c function load_elf_image if (phdr[i].p_type == PT_LOAD) { - abi_ulong a = phdr[i].p_vaddr - phdr[i].p_offset; + abi_ulong a = phdr[i].p_vaddr ; // - phdr[i].p_offset; if (a < loaddr) { loaddr = a; To the best of my understanding of the elf format p_offset is not a virtual offset. In fact, when I load statically compiled applications, the load fails because the libc before main is trying to access phdr in the executable image but that memory is not mapped -- this is caused by the wrong loaddr above.