qemu-devel
[Top][All Lists]
Advanced

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

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


From: Peter Maydell
Subject: Re: [Qemu-devel] running 64 bit user mode program on 32 bit host machine
Date: Mon, 20 Apr 2015 15:17:10 +0100

On 20 April 2015 at 14:34, Yongbok Kim <address@hidden> 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 <address@hidden>

thanks
-- PMM



reply via email to

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