[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 2/9] linux-user: Add ELF_PLATFORM for arm
From: |
Laurent Vivier |
Subject: |
[Qemu-devel] [PULL 2/9] linux-user: Add ELF_PLATFORM for arm |
Date: |
Thu, 7 Mar 2019 11:06:49 +0100 |
From: Richard Henderson <address@hidden>
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 <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
---
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
- [Qemu-devel] [PULL 0/9] Linux user for 4.0 patches, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 4/9] linux-user: fix emulation of accept4/getpeername/getsockname/recvfrom syscalls, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 2/9] linux-user: Add ELF_PLATFORM for arm,
Laurent Vivier <=
- [Qemu-devel] [PULL 3/9] linux-user: Fix ELF_PLATFORM for aarch64_be-linux-user, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 6/9] linux-user: don't short-circuit read with zero length, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 7/9] linux-user: fix "may be used uninitialized" warnings, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 8/9] linux-user: Nicer strace output of chroot() syscall, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 5/9] Fix breakpoint support in Nios II user-mode emulation., Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 1/9] linux-user: fix recvmsg emulation, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 9/9] linux-user: add new netlink types, Laurent Vivier, 2019/03/07
- Re: [Qemu-devel] [PULL 0/9] Linux user for 4.0 patches, Peter Maydell, 2019/03/08