Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
linux-user/i386/target_elf.h | 22 +++++++++++++++++++
linux-user/x86_64/target_elf.h | 4 ++++
linux-user/elfload.c | 39 ----------------------------------
3 files changed, 26 insertions(+), 39 deletions(-)
diff --git a/linux-user/i386/target_elf.h b/linux-user/i386/target_elf.h
index aaf7b229c0..9acac275b8 100644
--- a/linux-user/i386/target_elf.h
+++ b/linux-user/i386/target_elf.h
@@ -8,6 +8,11 @@
#ifndef I386_TARGET_ELF_H
#define I386_TARGET_ELF_H
+#define ELF_CLASS ELFCLASS32
+#define ELF_ARCH EM_386
+#define EXSTACK_DEFAULT true
+#define VDSO_HEADER "vdso.c.inc"
+
#define HAVE_ELF_HWCAP 1
#define HAVE_ELF_PLATFORM 1
@@ -19,4 +24,21 @@
*/
#define ELF_NREG 17
+/*
+ * This is used to ensure we don't load something for the wrong architecture.
+ */
+#define elf_check_arch(x) ((x) == EM_386 || (x) == EM_486)
+
+/*
+ * i386 is the only target which supplies AT_SYSINFO for the vdso.
+ * All others only supply AT_SYSINFO_EHDR.
+ */
+#define DLINFO_ARCH_ITEMS (vdso_info != NULL)
+#define ARCH_DLINFO \
+ do { \
+ if (vdso_info) { \
+ NEW_AUX_ENT(AT_SYSINFO, vdso_info->entry); \
+ } \
+ } while (0)
+
#endif
diff --git a/linux-user/x86_64/target_elf.h b/linux-user/x86_64/target_elf.h
index 8c4bd9a3d8..d924314679 100644
--- a/linux-user/x86_64/target_elf.h
+++ b/linux-user/x86_64/target_elf.h
@@ -8,6 +8,10 @@
#ifndef X86_64_TARGET_ELF_H
#define X86_64_TARGET_ELF_H
+#define ELF_CLASS ELFCLASS64
+#define ELF_ARCH EM_X86_64
+#define VDSO_HEADER "vdso.c.inc"
+
#define HAVE_ELF_HWCAP 1
#define HAVE_ELF_PLATFORM 1
#define HAVE_GUEST_COMMPAGE 1
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 44fe1322dd..a017c2162c 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -130,45 +130,6 @@ typedef abi_uint target_gid_t;
#endif
typedef abi_int target_pid_t;
-#ifdef TARGET_I386
-
-#ifdef TARGET_X86_64
-#define ELF_CLASS ELFCLASS64
-#define ELF_ARCH EM_X86_64
-
-#else
-
-/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(x) ( ((x) == EM_386) || ((x) == EM_486) )
-
-/*
- * These are used to set parameters in the core dumps.
- */
-#define ELF_CLASS ELFCLASS32
-#define ELF_ARCH EM_386
-
-#define EXSTACK_DEFAULT true
-
-/*
- * i386 is the only target which supplies AT_SYSINFO for the vdso.
- * All others only supply AT_SYSINFO_EHDR.
- */
-#define DLINFO_ARCH_ITEMS (vdso_info != NULL)
-#define ARCH_DLINFO \
- do { \
- if (vdso_info) { \
- NEW_AUX_ENT(AT_SYSINFO, vdso_info->entry); \
- } \
- } while (0)
-
-#endif /* TARGET_X86_64 */
-
-#define VDSO_HEADER "vdso.c.inc"
-
-#endif /* TARGET_I386 */
-
#ifdef TARGET_ARM
#ifndef TARGET_AARCH64
--
2.43.0