From patchwork Thu Mar 7 10:06:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1052770 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=vivier.eu Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44FRHj4FSTz9sB3 for ; Thu, 7 Mar 2019 21:11:45 +1100 (AEDT) Received: from localhost ([127.0.0.1]:48530 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1q07-0007Nv-DJ for incoming@patchwork.ozlabs.org; Thu, 07 Mar 2019 05:11:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43969) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1pvn-00042G-HA for qemu-devel@nongnu.org; Thu, 07 Mar 2019 05:07:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h1pvm-0007TI-FI for qemu-devel@nongnu.org; Thu, 07 Mar 2019 05:07:15 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:35715) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h1pvm-0007Sg-1J for qemu-devel@nongnu.org; Thu, 07 Mar 2019 05:07:14 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M2fHt-1h5wvg00jf-0049Q9; Thu, 07 Mar 2019 11:07:03 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 7 Mar 2019 11:06:49 +0100 Message-Id: <20190307100656.14044-3-laurent@vivier.eu> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190307100656.14044-1-laurent@vivier.eu> References: <20190307100656.14044-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:3i/30+LDH/usUlUQpYcrD+AGwJLl6Jhz/TFt0xKXr5voG0bBCsR 6MWgrgXz3HBKQbGM3ET/yaIqEivCu55yXX0oewVEl0Z73JpB29RM6itZocj5U7F50+SqLHB nFs/oFbySH9U1pUEq+ihUVgxzo1USwJDZYUQGLY+uMWGZdEbUfIUwksfD2B8537uEDrgfEA mwMiTnmPPRr+m0Hz8rztg== X-UI-Out-Filterresults: notjunk:1; V03:K0:+AF4BrFprm4=:UZm80pjJYKdKx8KoPnRG70 TcxAlP6CbFbwcF8zVXQrcVKzXAn2yHnOds6++xcoJxUiiUcmDHUIEC0mrrqn1Ek4Eh2cL7tlF X6y6cxmArR3yEXzE+OaqteMbTmT8yd34perl+G6Si4o37xuE/Ui+LF8Y+v6z+HGjLPu0SV2vm yUxWJUPlCFgz2D5qnbiHn89cEOvYSopcwdQ1EqQ2S2GJuDvZUnNCgpG6eDnWl3p6V6JTvgdT6 kSPOwURXVogxH8+/4g9WndKZelSjzfCU2LuBjIVdfSeacO3/wJoNj2HU1++oevmSRLZbdKoUW 5/BMKarOz1vN/JNuDR/M04aw44jH48YLHEwuGRHHB/IAMDyLnzvEmuKPFlYI+PUG5bgV21A4e lDLpkl1crBbErIVCz1CAboSnzyVl8L19zkeqChApgNUUcc2Gemfy4KDs279tSrc3/YPZkwcFE wkBm/tsMuooScfCAQqP/bMqsWX2RSx23AMQMUeygstWIwnBBpf3vNdkSRukUlK/yYDCpDUK9a EG80HQIY62d0fZ+3gQhmsqBwKwyJi76PSPbmkRU31Yan7lT9JmvmhisllsURFIo+wdvCfUlsA /jy0tU1iWblsBBu2/vkOZnk0h6HzsyOm55GNWv1geZHUWkryiTHh82ntHE8UZHIHQlw0XuXGW sTRQQBYqpKcOPMiXbYcTkE5ZDQFAC9tjAJnMWAJNdhV2CFR3Q77borLoEeGdRxDeuB1AQfp78 W97kMzzTFzur4lgQJn9ZswXvDMxH82gdgu38xg== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 217.72.192.73 Subject: [Qemu-devel] [PULL 2/9] linux-user: Add ELF_PLATFORM for arm X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Riku Voipio , Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson The 32-bit kernel has strings for v4, v5, v6, v7, v7m. The 64-bit kernel, in compat mode, has strings for v8. Fixes: https://bugs.launchpad.net/bugs/1813034 Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier Message-Id: <20190212074840.13542-2-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/elfload.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 6e8762b40dea..940a97a2f2e9 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -500,6 +500,37 @@ static uint32_t get_elf_hwcap2(void) #undef GET_FEATURE #undef GET_FEATURE_ID +#define ELF_PLATFORM get_elf_platform() + +static const char *get_elf_platform(void) +{ + CPUARMState *env = thread_cpu->env_ptr; + +#ifdef TARGET_WORDS_BIGENDIAN +# define END "b" +#else +# define END "l" +#endif + + if (arm_feature(env, ARM_FEATURE_V8)) { + return "v8" END; + } else if (arm_feature(env, ARM_FEATURE_V7)) { + if (arm_feature(env, ARM_FEATURE_M)) { + return "v7m" END; + } else { + return "v7" END; + } + } else if (arm_feature(env, ARM_FEATURE_V6)) { + return "v6" END; + } else if (arm_feature(env, ARM_FEATURE_V5)) { + return "v5" END; + } else { + return "v4" END; + } + +#undef END +} + #else /* 64 bit ARM definitions */ #define ELF_START_MMAP 0x80000000