From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Subject: [Qemu-devel] [PULL 29/48] linux-user: elfload: Provide default for elf_check_arch
Date: Tue, 22 Sep 2015 17:05:52 +0200 [thread overview]
Message-ID: <1442934371-12567-30-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1442934371-12567-1-git-send-email-pbonzini@redhat.com>
From: Peter Crosthwaite <crosthwaite.peter@gmail.com>
For many arch's this macro is defined as the predicatable behaviour
of checking the argument for eqaulity against ELF_ARCH. Provide a
default define as such, so only archs with special handling (usually
allowing multiple EM values) need to provide a def.
Arches that do any of:
1: provide this def exactly the same way as the new default
(alpha, x86_64)
2: check against ELF_MACHINE while defining ELF_ARCH == ELF_MACHINE
(arm, aarch64)
3: check against EM_FOO directly while defining ELF_ARCH == EM_FOO
(unicore32, sparc32, ppc32, mips, openrisc, sh4, cris, m86k)
have their elf_check_arch removed as the default will provide the
correct behaviour.
Reviewed-by: Richard Henderson <rth@twiddle.net>
Acked-By: Riku Voipio <riku.voipio@linaro.org>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
linux-user/elfload.c | 28 ++++------------------------
1 file changed, 4 insertions(+), 24 deletions(-)
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 4ed8c5e..0ecc1b2 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -145,7 +145,6 @@ static uint32_t get_elf_hwcap(void)
#ifdef TARGET_X86_64
#define ELF_START_MMAP 0x2aaaaab000ULL
-#define elf_check_arch(x) ( ((x) == ELF_ARCH) )
#define ELF_CLASS ELFCLASS64
#define ELF_ARCH EM_X86_64
@@ -273,8 +272,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUX86State *en
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ((x) == ELF_MACHINE)
-
#define ELF_ARCH ELF_MACHINE
#define ELF_CLASS ELFCLASS32
@@ -481,8 +478,6 @@ static uint32_t get_elf_hwcap2(void)
/* 64 bit ARM definitions */
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ((x) == ELF_MACHINE)
-
#define ELF_ARCH ELF_MACHINE
#define ELF_CLASS ELFCLASS64
#define ELF_PLATFORM "aarch64"
@@ -556,8 +551,6 @@ static uint32_t get_elf_hwcap(void)
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ((x) == EM_UNICORE32)
-
#define ELF_CLASS ELFCLASS32
#define ELF_DATA ELFDATA2LSB
#define ELF_ARCH EM_UNICORE32
@@ -666,7 +659,6 @@ static inline void init_thread(struct target_pt_regs *regs,
#define ELF_START_MMAP 0x80000000
#define ELF_HWCAP (HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | HWCAP_SPARC_SWAP \
| HWCAP_SPARC_MULDIV)
-#define elf_check_arch(x) ( (x) == EM_SPARC )
#define ELF_CLASS ELFCLASS32
#define ELF_ARCH EM_SPARC
@@ -696,8 +688,6 @@ static inline void init_thread(struct target_pt_regs *regs,
#else
-#define elf_check_arch(x) ( (x) == EM_PPC )
-
#define ELF_CLASS ELFCLASS32
#endif
@@ -875,8 +865,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUPPCState *en
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ( (x) == EM_MIPS )
-
#ifdef TARGET_MIPS64
#define ELF_CLASS ELFCLASS64
#else
@@ -985,8 +973,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUMBState *env
#define ELF_START_MMAP 0x08000000
-#define elf_check_arch(x) ((x) == EM_OPENRISC)
-
#define ELF_ARCH EM_OPENRISC
#define ELF_CLASS ELFCLASS32
#define ELF_DATA ELFDATA2MSB
@@ -1026,8 +1012,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs,
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ( (x) == EM_SH )
-
#define ELF_CLASS ELFCLASS32
#define ELF_ARCH EM_SH
@@ -1110,8 +1094,6 @@ static uint32_t get_elf_hwcap(void)
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ( (x) == EM_CRIS )
-
#define ELF_CLASS ELFCLASS32
#define ELF_ARCH EM_CRIS
@@ -1129,8 +1111,6 @@ static inline void init_thread(struct target_pt_regs *regs,
#define ELF_START_MMAP 0x80000000
-#define elf_check_arch(x) ( (x) == EM_68K )
-
#define ELF_CLASS ELFCLASS32
#define ELF_ARCH EM_68K
@@ -1182,8 +1162,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUM68KState *e
#define ELF_START_MMAP (0x30000000000ULL)
-#define elf_check_arch(x) ( (x) == ELF_ARCH )
-
#define ELF_CLASS ELFCLASS64
#define ELF_ARCH EM_ALPHA
@@ -1203,8 +1181,6 @@ static inline void init_thread(struct target_pt_regs *regs,
#define ELF_START_MMAP (0x20000000000ULL)
-#define elf_check_arch(x) ( (x) == ELF_ARCH )
-
#define ELF_CLASS ELFCLASS64
#define ELF_DATA ELFDATA2MSB
#define ELF_ARCH EM_S390
@@ -1249,6 +1225,10 @@ static inline void init_thread(struct target_pt_regs *regs,
#define ELF_MACHINE ELF_ARCH
#endif
+#ifndef elf_check_arch
+#define elf_check_arch(x) ((x) == ELF_ARCH)
+#endif
+
#ifndef ELF_HWCAP
#define ELF_HWCAP 0
#endif
--
2.5.0
next prev parent reply other threads:[~2015-09-22 15:07 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-22 15:05 [Qemu-devel] [PULL 00/48] Misc patches for 2015-09-22 Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 01/48] nbd: convert to use the QAPI SocketAddress object Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 02/48] qemu-nbd: " Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 03/48] utils: rename strtosz to use qemu prefix Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 04/48] tests: add some qemu_strtosz() tests Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 05/48] checkpatch: do not recommend qemu_strtok over strtok Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 06/48] scsi-generic: let guests recognize readonly=on on passthrough devices Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 07/48] Makefile: fix build when VPATH is outside GIT tree Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 08/48] vhost-scsi: include linux/vhost.h Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 09/48] get_maintainer.pl: \C is deprecated Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 10/48] MAINTAINERS: there is no PPC64 TCG backend anymore Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 11/48] MAINTAINERS: Add disassemblers to the various backends Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 12/48] MAINTAINERS: Add more s390 files Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 13/48] MAINTAINERS: add IPack section Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 14/48] MAINTAINERS: add more devices to the PC section Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 15/48] MAINTAINERS: add more devices to the PCI section Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 16/48] MAINTAINERS: add maintainer for character device front-ends Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 17/48] ioapic: coalesce level interrupts Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 18/48] ioapic: fix contents of arbitration register Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 19/48] apic_internal.h: make some apic_get_* functions externally visible Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 20/48] apic_internal.h: rename ESR_ILLEGAL_ADDRESS to APIC_ESR_ILLEGAL_ADDRESS Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 21/48] apic_internal.h: added more constants Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 22/48] apic_internal.h: fix formatting and drop unused consts Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 23/48] monitor: make monitor_fprintf and mon_get_cpu externally visible Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 24/48] hmp: added local apic dump state Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 25/48] ioapic_internal.h: added more constants Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 26/48] hmp: added io apic dump state Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 27/48] hmp: implemented io apic dump state for TCG Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 28/48] linux_user: elfload: Default ELF_MACHINE to ELF_ARCH Paolo Bonzini
2015-09-22 15:05 ` Paolo Bonzini [this message]
2015-09-22 15:05 ` [Qemu-devel] [PULL 30/48] elf_ops: Fix coding style for EM alias case statement Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 31/48] elf: Update EM_MOXIE definition Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 32/48] arm: Remove ELF_MACHINE from cpu.h Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 33/48] mb: " Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 34/48] m68k: " Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 35/48] cris: " Paolo Bonzini
2015-09-22 15:05 ` [Qemu-devel] [PULL 36/48] moxie: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 37/48] unicore: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 38/48] lm32: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 39/48] or32: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 40/48] tricore: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 41/48] xtensa: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 42/48] sh4: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 43/48] s390: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 44/48] sparc: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 45/48] mips: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 46/48] alpha: " Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 47/48] i386: Rename ELF_MACHINE to be x86 specific Paolo Bonzini
2015-09-22 15:06 ` [Qemu-devel] [PULL 48/48] ppc: Rename ELF_MACHINE to be PPC specific Paolo Bonzini
2015-09-22 19:41 ` [Qemu-devel] [PULL 00/48] Misc patches for 2015-09-22 Peter Maydell
2015-09-22 20:12 ` Paolo Bonzini
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=1442934371-12567-30-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=crosthwaite.peter@gmail.com \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).