qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: qemu-ppc can't run static uClibc binaries.


From: Rob Landley
Subject: Re: [Qemu-devel] Re: qemu-ppc can't run static uClibc binaries.
Date: Wed, 17 Feb 2010 10:36:32 -0600
User-agent: KMail/1.11.2 (Linux/2.6.28-17-generic; KDE/4.2.2; x86_64; ; )

On Wednesday 17 February 2010 03:24:58 Artyom Tarasenko wrote:
> > I've also got a bunch of "sort of working, but not well enough to run
> > builds natively under" targets on top of that (arm big endian, sh4,
> > sparc...)
>
> What's not well enough on sparc?

More than one thing, unfortunately.  (Symptoms I can give you, causes I'm iffy 
on.)

1) the uClibc 0.9.32.2 dynamic linker isn't working on 32-bit sparc.  (I 
believe it's a uClibc issue, not specifically qemu problem.  But then since I 
don't own real sparc hardware, I dunno.)

2) Not all of the system calls work (again, probably a uClibc issue).

3) I'm not sure my toolchain configuration is quite matching the instruction 
set qemu-system-sparc is emulating by default, I get occasional illegal 
instruction errors (but not reliably).  (Are #1 and #2 related to this?  
Dunno.)

If I statically link everything I can at least get to a command prompt, but 
only with init=/bin/sh.  (If I try to run it through the boot script, it dies 
with various errors from "cannot allocate memory" to "Illegal insruction".)

If you're curious you can play around with the prebuilt binary at 
http://impactlinux.com/fwl/downloads/binaries/system-image-sparc.tar.bz2 but 
you'll have to boot it like this to bypass the boot script:

  KERNEL_EXTRA="init=/bin/ash" ./run-emulator.sh

Then to see it misbehave:

  # mount -t tmpfs /tmp /tmp
  # cd /tmp
  /tmp # ls
  ls: can't open '.': Cannot allocate memory
  /tmp # mount -t proc /proc /proc
  /tmp # ls -l /proc
  Illegal instruction

The toolchain is configured with "sparc-unknown-linux" which you'd think would 
be generic sparc, but apparently not...

If you prefer to build it from source, you can download 
http://impactlinux.com/fwl/downloads/firmware-0.9.10.tar.bz2 and run 
"./build.sh sparc", then look in the "build" directory when it's done.  I'd 
happily explain how the build scripts work and what config options they're 
passing to the the toolchain and kernel and such, but this isn't the list for 
that.  (http://impactlinux.com/fwl has a link to the FWL mailing list if 
you're interested.)

I'd be thrilled to get some help on it actually, not a sparc expert...

Thanks,

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds




reply via email to

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