From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58560) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uc6w2-0007y3-TK for qemu-devel@nongnu.org; Tue, 14 May 2013 00:34:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uc6w0-0008QQ-Hg for qemu-devel@nongnu.org; Tue, 14 May 2013 00:33:58 -0400 Received: from mail-pb0-x234.google.com ([2607:f8b0:400e:c01::234]:52593) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uc6w0-0008QD-C3 for qemu-devel@nongnu.org; Tue, 14 May 2013 00:33:56 -0400 Received: by mail-pb0-f52.google.com with SMTP id xa7so80421pbc.11 for ; Mon, 13 May 2013 21:33:55 -0700 (PDT) From: John Rigby Date: Mon, 13 May 2013 22:33:00 -0600 Message-Id: <1368505980-17151-13-git-send-email-john.rigby@linaro.org> In-Reply-To: <1368505980-17151-1-git-send-email-john.rigby@linaro.org> References: <1368505980-17151-1-git-send-email-john.rigby@linaro.org> Subject: [Qemu-devel] [PATCH v4 12/12] linux-user: AArch64 requires at least 3.8.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: 'Peter Maydell , John Rigby , Riku Voipio , 'Alexander Graf From: Alexander Graf 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. Signed-off-by: Alexander Graf Signed-off-by: John Rigby --- Changes in v4: - Go back to original way of doing this as I lack the config-fu to do it via changes in configure linux-user/syscall.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 3345508..171424e 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -316,7 +316,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_AARCH64 + /* 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.8.2.2