Rob Landley wrote:
> Static binaries that run under the Linux kernel don't run under qemu-ppc.  
> For 
> example, the prebuilt busybox binaries here:
>
>   http://busybox.net/downloads/binaries/1.16.0/busybox-powerpc
>
> Don't run under qemu-ppc, but runs just fine under qemu-system-ppc with the 
> image at:
>
>   http://impactlinux.com/fwl/downloads/binaries/system-image-powerpc.tar.bz2
>
> The reason is that the "powerpc spec" that qemu was written to is for AIX, 
> not 
> for Linux, and thus the register layout qemu application emulation provides 
> for powerpc doesn't match what the kernel is actually doing.
>
> For dynamically linked executables, the dynamic linker reorganizes the 
> register contents to match the AIX spec from IBM, but statically linked 
> binaries get what the kernel provides directly.  Thus binaries statically 
> linked against uClibc won't run under qemu-ppc, but run under qemu-system-ppc 
> just fine.
>
> I tracked down this problem in 2007:
>
>   http://landley.net/notes-2007.html#28-03-2007
>
> And reported it on the list at the time:
>
>   http://lists.gnu.org/archive/html/qemu-devel/2007-03/msg00713.html
>   http://lists.gnu.org/archive/html/qemu-devel/2007-03/msg00720.html
>   http://lists.gnu.org/archive/html/qemu-devel/2007-04/msg00315.html
>
> However, the then-maintainer of powerpc believed nobody else ever had the 
> right to touch "her code":
>
>   http://lists.gnu.org/archive/html/qemu-devel/2007-04/msg00198.html
>
> And I was unable to convince her that insisting reality change to match a 
> spec 
> which wasn't even for the right platform was not a useful approach.  Thus the 
> binary in the first link still won't run under qemu-ppc three years later, 
> despite running fine under a real Linux kernel.
>   

Patches are always welcome. The only thing you might want to make sure
is that dynamically linked binaries also still continue to work :-).


Alex


Reply via email to