* [Qemu-devel] running 64 bit user mode program on 32 bit host machine
@ 2015-04-20 13:34 Yongbok Kim
2015-04-20 14:17 ` Peter Maydell
0 siblings, 1 reply; 2+ messages in thread
From: Yongbok Kim @ 2015-04-20 13:34 UTC (permalink / raw)
To: qemu-devel@nongnu.org; +Cc: Riku Voipio, Leon Alrae, Richard Henderson
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!
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] running 64 bit user mode program on 32 bit host machine
2015-04-20 13:34 [Qemu-devel] running 64 bit user mode program on 32 bit host machine Yongbok Kim
@ 2015-04-20 14:17 ` Peter Maydell
0 siblings, 0 replies; 2+ messages in thread
From: Peter Maydell @ 2015-04-20 14:17 UTC (permalink / raw)
To: Yongbok Kim
Cc: Riku Voipio, Leon Alrae, qemu-devel@nongnu.org, Richard Henderson
On 20 April 2015 at 14:34, Yongbok Kim <yongbok.kim@imgtec.com> wrote:
> 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))
I think this is a correct change. If you want to resubmit it
as a properly formatted patch with your signed-off-by you
can add my
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-04-20 14:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-20 13:34 [Qemu-devel] running 64 bit user mode program on 32 bit host machine Yongbok Kim
2015-04-20 14:17 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).