diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2013-04-17 16:26:39 +0200 |
---|---|---|
committer | Edgar E. Iglesias <edgar.iglesias@gmail.com> | 2013-04-18 14:12:31 +0200 |
commit | 1ddd592fd3b00227a61d5cd890c51b51847a415b (patch) | |
tree | c381d0de55867bfae1d09132679678512b7131c2 | |
parent | 86cd7b2d486b6c80df41f48dffbdcc055a85faa1 (diff) | |
download | qemu-1ddd592fd3b00227a61d5cd890c51b51847a415b.zip |
elfload: use abi_short/ushort instead of target_short/ushort
The alignment is a characteristic of the ABI, not the CPU.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | include/exec/cpu-defs.h | 2 | ||||
-rw-r--r-- | include/exec/user/abitypes.h | 7 | ||||
-rw-r--r-- | linux-user/elfload.c | 6 |
4 files changed, 10 insertions, 7 deletions
@@ -4153,7 +4153,6 @@ bflt="no" target_nptl="no" interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"` gdb_xml_files="" -target_short_alignment=2 target_int_alignment=4 target_long_alignment=4 target_llong_alignment=8 @@ -4295,7 +4294,6 @@ case "$cpu" in ;; esac -echo "TARGET_SHORT_ALIGNMENT=$target_short_alignment" >> $config_target_mak echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h index 0ae967ae20..d376f0f506 100644 --- a/include/exec/cpu-defs.h +++ b/include/exec/cpu-defs.h @@ -36,8 +36,6 @@ #define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8) -typedef int16_t target_short __attribute__ ((aligned(TARGET_SHORT_ALIGNMENT))); -typedef uint16_t target_ushort __attribute__((aligned(TARGET_SHORT_ALIGNMENT))); typedef int32_t target_int __attribute__((aligned(TARGET_INT_ALIGNMENT))); typedef uint32_t target_uint __attribute__((aligned(TARGET_INT_ALIGNMENT))); typedef int64_t target_llong __attribute__((aligned(TARGET_LLONG_ALIGNMENT))); diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h index fe7f6624f9..abaa028ce7 100644 --- a/include/exec/user/abitypes.h +++ b/include/exec/user/abitypes.h @@ -2,6 +2,13 @@ #define QEMU_TYPES_H #include "cpu.h" +#ifndef ABI_SHORT_ALIGNMENT +#define ABI_SHORT_ALIGNMENT 2 +#endif + +typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT))); +typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT))); + #ifdef TARGET_ABI32 typedef uint32_t abi_ulong; typedef int32_t abi_long; diff --git a/linux-user/elfload.c b/linux-user/elfload.c index bc2e9f139f..5eca934c33 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -110,8 +110,8 @@ typedef abi_ulong target_elf_greg_t; #endif #ifdef USE_UID16 -typedef target_ushort target_uid_t; -typedef target_ushort target_gid_t; +typedef abi_ushort target_uid_t; +typedef abi_ushort target_gid_t; #else typedef target_uint target_uid_t; typedef target_uint target_gid_t; @@ -2116,7 +2116,7 @@ struct target_elf_siginfo { struct target_elf_prstatus { struct target_elf_siginfo pr_info; /* Info associated with signal */ - target_short pr_cursig; /* Current signal */ + abi_short pr_cursig; /* Current signal */ abi_ulong pr_sigpend; /* XXX */ abi_ulong pr_sighold; /* XXX */ target_pid_t pr_pid; |