24.03.2013 14:59, Peter Maydell wrote: > On 24 March 2013 10:43, Michael Tokarev <m...@tls.msk.ru> wrote: >> $ ./x86_64-linux-user/qemu-x86_64 bash64 >> qemu: uncaught target signal 11 (Segmentation fault) - core dumped >> Segmentation Fault > > Are 64 bit linux-user guests on 32 bit hosts supposed to work? > I would expect them to be at best pretty unreliable.
What's the reason we build these binaries in that case? What about qemu-x86_64 on other 32bit arches (arm)? Is there a list of combinations (host/target) which are supposed to work and which don't, somewhere? >> $ gdb x86_64-linux-user/qemu-x86_64 >> (gdb) ru bash64 >> Program received signal SIGSEGV, Segmentation fault. >> disas_insn (s=s@entry=0xffffcf98, pc_start=18446744073699066880) >> at target-i386/translate.c:4107 >> 4107 b = ldub_code(s->pc); >> (gdb) p *s >> $1 = {override = -1, prefix = 1484501952, aflag = 1, dflag = 1484503884, >> pc = 18446744073699066880, is_jmp = 0, cs_base = 0, pe = 1, code32 = 1, > > PC is FFFFFFFFFF600400 so either we've messed it up already or this > is just "64 bit address space doesn't fit in a 32 bit one". >> Some binaries works - for example, gzip (it prints "qemu: Unsupported >> syscall: >> 202" on the way which is a different issue). > > Yes. That is just the usual "x86 linux-user isn't really supported": > 202 is TARGET_NR_futex, which works on other target archs but > won't on x86 until somebody actually fixes support for threaded > guests in x86 to at least the level it is for other targets. Maybe we should stop building x86 linux-user completely? Thanks, /mjt