qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [Bug 1052857] Re: qemu-user compiled static for ppc fails


From: Samuel Seay
Subject: [Qemu-devel] [Bug 1052857] Re: qemu-user compiled static for ppc fails
Date: Tue, 01 Jan 2013 06:56:07 -0000

I ran into this issue also and did a bit of investigating. This is only
an issue when ran on a 64bit host. The actual problem line is

err |= __put_user(h2g(ka->_sa_handler), &sc->handler);

inside of linux_user/signal.c. What I am unsure of is when the h2g()
macro, the cause of the assert, is valid to be used. In this case, under
64bit, GUEST_BASE has a value (32bit it is 0) but ka->_sa_handler has a
low value. Assuming that the low value is a direct result of being a
guest address and not a host address then the h2g() shouldn't be called.

I removed the macro from that line which kept the assert from appearing
but qemu still died after running 'ls'. I am attempting to fix this bug
but I have limited understanding of qemu itself so no promises of me
doing a fix, let alone a proper fix.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1052857

Title:
  qemu-user compiled static for ppc fails

Status in QEMU:
  New

Bug description:
  On debian I used debootstrap to set up a powerpc chroot. If I then
  copy in a statically linked qemu-user ppc binary it will work for some
  commands in the chroot and fail for others. Steps to reproduce:

  host$ mkdir powerpc
  host$ sudo debootstrap --arch=powerpc --foreign wheezy powerpc 
http://ftp.debian.org/debian
  host$ sudo cp /usr/bin/qemu-ppc-static powerpc/usr/bin/
  host$  LANG=C sudo chroot powerpc /usr/bin/qemu-ppc-static /bin/bash
  I have no address@hidden:/# pwd
  /
  I have no address@hidden:/# cd home/
  I have no address@hidden:/home# ls
  qemu-ppc-static: /tmp/buildd/qemu-1.1.2+dfsg/linux-user/signal.c:4341: 
setup_frame: Assertion `({ unsigned long __guest = (unsigned 
long)(ka->_sa_handler) - guest_base; (__guest < (1ul << 32)) && (!reserved_va 
|| (__guest < reserved_va)); })' failed.

  I have also built this from the git HEAD sources (hash
  6b80f7db8a7f84d21e46d01e30c8497733bb23a0) and I get the same result.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1052857/+subscriptions



reply via email to

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