qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] running 64 bit user mode program on 32 bit host machine


From: Yongbok Kim
Subject: [Qemu-devel] running 64 bit user mode program on 32 bit host machine
Date: Mon, 20 Apr 2015 14:34:13 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

Hi All,

I have faced a problem to run a simple 64 bit Linux user mode application on
32 bit Linux host machines.
I did some investigation and found out that the TARGET_ELF_PAGESTART macro in
the linux-user/elfload.c is causing the problem.
However I am not sure if this is the right solution as I am not familiar with
the area.
Perhaps the macro should take care of target’s bits width rather than just use
unsigned long.
Would you please confirm the change or suggest better solution?

Regards,
Yongbok


$ ../masterbin/mips64-linux-user/qemu-mips64 -cpu MIPS64R6-generic ./hello_linux.elf
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)


$ git diff
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 399c021..d99a43b 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -1227,7 +1227,7 @@ struct exec

 /* Necessary parameters */
 #define TARGET_ELF_EXEC_PAGESIZE TARGET_PAGE_SIZE
-#define TARGET_ELF_PAGESTART(_v) ((_v) & ~(unsigned long)(TARGET_ELF_EXEC_PAGESIZE-1)) +#define TARGET_ELF_PAGESTART(_v) ((_v) & ~(abi_ulong)(TARGET_ELF_EXEC_PAGESIZE-1))
 #define TARGET_ELF_PAGEOFFSET(_v) ((_v) & (TARGET_ELF_EXEC_PAGESIZE-1))

 #define DLINFO_ITEMS 14
(END)



WITH the change:
$ ../masterbin/mips64-linux-user/qemu-mips64 -cpu MIPS64R6-generic ./hello_linux.elf
Hello World!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]