On Wednesday 27 September 2006 19:27, K. Richard Pixley wrote:
> Paul Brook wrote:
> >> Do you know why 2.6.16 would be required?  (I'll see if I can't
> >> find/build a 2.6.16 system on which to try it today.)
> >
> > Because arm-linux didn't get EABI support until 2.6.16 (though our
> > toolchains may accept 2.6.14). glibc has santity checks stop applications
> > even trying to run on kernels that are too old.
> >
> > As I mentioned qemu lie about the kernel version. See -r
> > and --enable-uname-release.
>
> I'm confused.  My host kernel, (hosted on an x86 ubuntu box), is:
>
> [EMAIL PROTECTED]> uname -r
> 2.6.12-10-686-smp
>
> And my understanding is that there is no kernel when running qemu-user
> because qemu is emulating the kernel calls.
>
> What am I missing?  Or where does the kernel version come into play?

glibc startup code checks the kernel version. If the reported version is 
earlier than the version it was compiled for it will terminate.
When building glibc you specify a kernel version, and glibc will leave out 
backwards compatibility code for older kernels. The runtime check is a sanity 
check. It's generally better for the application to die immediately than fail 
subtly later on.

Of course when using qemu the syscalls thatqemu emulates tend to be more 
important than the host kernel version.  By default qemu will report the same 
version as the host kernel. However you can tell it to report a different 
version.

Paul


_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to