From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52745) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UD8OZ-0000wf-GM for qemu-devel@nongnu.org; Wed, 06 Mar 2013 02:04:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UD8OU-0003h0-Nz for qemu-devel@nongnu.org; Wed, 06 Mar 2013 02:04:11 -0500 Received: from afflict.kos.to ([92.243.29.197]:33085) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UD8OU-0003gk-Gx for qemu-devel@nongnu.org; Wed, 06 Mar 2013 02:04:06 -0500 Date: Wed, 6 Mar 2013 09:04:04 +0200 From: Riku Voipio Message-ID: <20130306070404.GA2609@afflict.kos.to> References: <1362535280-5068-1-git-send-email-agraf@suse.de> <1362535280-5068-8-git-send-email-agraf@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1362535280-5068-8-git-send-email-agraf@suse.de> Subject: Re: [Qemu-devel] [PATCH 07/12] linux-user: AArch64 requires at least 3.8.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: Peter Maydell , Riku Voipio , qemu-devel qemu-devel Hi, Cool work and thanks for early sharing. On Wed, Mar 06, 2013 at 03:01:15AM +0100, Alexander Graf wrote: > Glibc 1.17 checks for the host kernel version on startup. Unfortunately, > it also checks whether the host kernel version is recent enough for the > target to run at all. > > Since AArch64 support only got introduced in 3.8.0, that means that glibc > refuses to run on any older kernel version than that. > > To allow for execution of linux-user guests even on older host kernels, > let's always fake the kernel version to 3.8.0 on AArch64 guests. We already allow setting uname version at command line (-r) and with ./configure . A better place to hardcode this would be linux-user/main.c where qemu_uname_release is set. Or even just setting CONFIG_UNAME_RELEASE to the aarch64 config-target.mak Riku > Signed-off-by: Alexander Graf > --- > linux-user/syscall.c | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 19630ea..38c0711 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -313,7 +313,12 @@ static int sys_uname(struct new_utsname *buf) > memset(buf, 0, sizeof(*buf)); > COPY_UTSNAME_FIELD(buf->sysname, uts_buf.sysname); > COPY_UTSNAME_FIELD(buf->nodename, uts_buf.nodename); > +#ifdef TARGET_ARM64 > + /* glibc refuses to run on older kernels */ > + COPY_UTSNAME_FIELD(buf->release, "3.8.0"); > +#else > COPY_UTSNAME_FIELD(buf->release, uts_buf.release); > +#endif > COPY_UTSNAME_FIELD(buf->version, uts_buf.version); > COPY_UTSNAME_FIELD(buf->machine, uts_buf.machine); > #ifdef _GNU_SOURCE > -- > 1.6.0.2