+++ Ramana Radhakrishnan [2014-02-24 09:08 +0000]:
From: linaro-toolchain-bounces@lists.linaro.org [mailto:linaro-
toolchain-bounces@lists.linaro.org] On Behalf Of Wookey Sent: 23 February 2014 20:43 To: Rob Savoye Cc: Linaro ToolChain Subject: Re: [Weekly] 17-21 FEB 2013
+++ Rob Savoye [2014-02-23 08:05 -0700]:
On 02/23/2014 03:09 AM, Alex Bennée wrote:
Is this a problem with the emulated shared libraries not loading
(qemu
itself should be static)? Wookey did find a problem when built on
older
distros as the kernel version (CONFIG_UNAME) passed to the emulated system cause libc to get confused as older kernels don't support
aarch64!
Ah... It works fine on Ubuntu saucy, but not on Ubuntu precise,
which
is what the build farm machine run. Is there a workaround short of upgrading all the TCWG build machines ?
Debian is carrying a patch that forces the kernel version to be
reported
to libc as 3.8.
Is this a kernel patch or q qemu patch ?
There is an ubuntu qemu patch which reports later uname on aarch64 (below). But it turns out that if you build qemu_without_ the configure option --enable-uname-release then the ubuntu patch is no longer needed as qemu itself now DTRT (reporting an appropriate minimum uname version on a per-arch basis).
Can you not achieve the same thing with the -r option on the command line ?
i.e. qemu-aarch64 -r 3.7.0 ?
Also achievable by :
set_board_info sim,options " -r 3.7.0"
in your boards file.
Where does a 'boards' file go/come from?
Yes, or setting QEMU_UNAME on the command line, but I don't see how those work well with the binfmt settings that simply give a binary to run when the kernel spots the relevant binary magic. There is no provision for options or env vars, and the whole thing is clearly going to work much better if the binary just DTRT.
Wookey