From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <laurent@vivier.eu>,
Riku Voipio <riku.voipio@iki.fi>,
Richard Henderson <richard.henderson@linaro.org>
Subject: [Qemu-devel] [PULL 2/9] linux-user: Add ELF_PLATFORM for arm
Date: Thu, 7 Mar 2019 11:06:49 +0100 [thread overview]
Message-ID: <20190307100656.14044-3-laurent@vivier.eu> (raw)
In-Reply-To: <20190307100656.14044-1-laurent@vivier.eu>
From: Richard Henderson <richard.henderson@linaro.org>
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 <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20190212074840.13542-2-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
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
--
2.20.1
next prev parent reply other threads:[~2019-03-07 10:07 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-07 10:06 [Qemu-devel] [PULL 0/9] Linux user for 4.0 patches Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 1/9] linux-user: fix recvmsg emulation Laurent Vivier
2019-03-07 10:06 ` Laurent Vivier [this message]
2019-03-07 10:06 ` [Qemu-devel] [PULL 3/9] linux-user: Fix ELF_PLATFORM for aarch64_be-linux-user Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 4/9] linux-user: fix emulation of accept4/getpeername/getsockname/recvfrom syscalls Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 5/9] Fix breakpoint support in Nios II user-mode emulation Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 6/9] linux-user: don't short-circuit read with zero length Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 7/9] linux-user: fix "may be used uninitialized" warnings Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 8/9] linux-user: Nicer strace output of chroot() syscall Laurent Vivier
2019-03-07 10:06 ` [Qemu-devel] [PULL 9/9] linux-user: add new netlink types Laurent Vivier
2019-03-08 11:04 ` [Qemu-devel] [PULL 0/9] Linux user for 4.0 patches Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190307100656.14044-3-laurent@vivier.eu \
--to=laurent@vivier.eu \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.