xemu/linux-user
Peter Maydell f3ed1f5d47 linux-user: Handle images where lowest vaddr is not page aligned
Fix a bug in the linux-user ELF loader code where it was not correctly
handling images where the lowest vaddr to be loaded was not page aligned.
The problem was that the code to probe for a suitable guest base address
was changing the 'loaddr' variable (by rounding it to a page boundary),
which meant that the load bias would then be incorrectly calculated
unless loaddr happened to already be page-aligned.

Binaries generated by gcc with the default linker script do start with
a loadable segment at a page-aligned vaddr, so were unaffected. This
bug was noticed with a binary created by the Google Go toolchain for ARM.

We fix the bug by refactoring the "probe for guest base" code out into
its own self-contained function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
2011-06-21 20:29:01 +03:00
..
alpha linux-user: untie syscalls from UID16 2011-04-26 10:15:41 +03:00
arm linux-user/arm/nwfpe: rename REG_PC to ARM_REG_PC 2011-04-25 22:15:31 +02:00
cris Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
i386 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
m68k Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
microblaze Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
mips linux-user: fix mips and ppc to use UID16 2010-12-03 15:10:08 +02:00
mips64 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
mipsn32 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
ppc linux-user: fix mips and ppc to use UID16 2010-12-03 15:10:08 +02:00
s390x s390x: s390x-linux-user support 2011-05-20 17:35:12 +02:00
sh4 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
sparc Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
sparc64 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
unicore32 unicore32: add necessry headers in linux-user/unicore32 for unicore32 support 2011-04-12 18:48:43 +00:00
x86_64 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cpu-uname.c linux-user: adapt uname machine to emulated CPU 2010-02-06 17:19:43 +01:00
cpu-uname.h linux-user: adapt uname machine to emulated CPU 2010-02-06 17:19:43 +01:00
elfload.c linux-user: Handle images where lowest vaddr is not page aligned 2011-06-21 20:29:01 +03:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
flatload.c linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
ioctls.h linux-user: add ioctl(SIOCGIWNAME, ...) support. 2011-04-26 10:15:41 +03:00
linux_loop.h Fix build failure with old kernel headers (loop.h is incompatible with 2008-05-23 16:06:43 +00:00
linuxload.c Remove dead code for ARM semihosting commandline handling 2011-01-07 18:20:57 +02:00
m68k-sim.c linux-user: Fix typo m86k -> m68k 2010-10-05 13:53:56 -05:00
main.c Command line support for altering the log file location 2011-06-15 16:51:24 +00:00
mmap.c Fix typo in comment (truely -> truly) 2011-05-08 10:02:18 +01:00
qemu-types.h linux-user: Move abi_* typedefs into qemu-types.h 2008-12-08 18:12:04 +00:00
qemu.h Fix typos in comments (neccessary -> necessary) 2011-05-08 10:02:18 +01:00
signal.c Don't translate pointer when in restore_sigcontext 2011-06-20 17:00:18 +03:00
socket.h Various linux-user structures and definitions fixes for PowerPC targets. 2007-12-10 08:24:59 +00:00
strace.c linux-user: Fix compilation for "old" linux versions 2011-05-02 10:00:01 +03:00
strace.list linux-user: improve traces 2011-04-26 10:15:40 +03:00
syscall_defs.h s390x: s390x-linux-user support 2011-05-20 17:35:12 +02:00
syscall_types.h linux-user: Implement FS_IOC_FIEMAP ioctl 2011-01-07 17:20:58 +02:00
syscall.c s390x: s390x-linux-user support 2011-05-20 17:35:12 +02:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
uaccess.c Fix missing strnlen problems 2009-07-01 18:24:44 +00:00
vm86.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00