qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: qemu-devel@nongnu.org
Cc: aurelien@aurel32.net, anthony@codemonkey.ws
Subject: [Qemu-devel] [PULL 22/29] configure: Allow x32 as a host
Date: Mon,  2 Sep 2013 09:29:07 -0700	[thread overview]
Message-ID: <1378139354-28602-23-git-send-email-rth@twiddle.net> (raw)
In-Reply-To: <1378139354-28602-1-git-send-email-rth@twiddle.net>

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 configure | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/configure b/configure
index 0a55c20..af6b048 100755
--- a/configure
+++ b/configure
@@ -362,7 +362,11 @@ if test ! -z "$cpu" ; then
 elif check_define __i386__ ; then
   cpu="i386"
 elif check_define __x86_64__ ; then
-  cpu="x86_64"
+  if check_define __ILP32__ ; then
+    cpu="x32"
+  else
+    cpu="x86_64"
+  fi
 elif check_define __sparc__ ; then
   if check_define __arch64__ ; then
     cpu="sparc64"
@@ -399,7 +403,7 @@ ARCH=
 # Normalise host CPU name and set ARCH.
 # Note that this case should only have supported host CPUs, not guests.
 case "$cpu" in
-  ia64|ppc|ppc64|s390|s390x|sparc64)
+  ia64|ppc|ppc64|s390|s390x|sparc64|x32)
     cpu="$cpu"
   ;;
   i386|i486|i586|i686|i86pc|BePC)
@@ -550,7 +554,7 @@ Haiku)
   kvm="yes"
   vhost_net="yes"
   vhost_scsi="yes"
-  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
+  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" -o "$cpu" = "x32" ] ; then
     audio_possible_drivers="$audio_possible_drivers fmod"
   fi
   QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES"
@@ -977,6 +981,11 @@ case "$cpu" in
            LDFLAGS="-m64 $LDFLAGS"
            cc_i386='$(CC) -m32'
            ;;
+    x32)
+           CPU_CFLAGS="-mx32"
+           LDFLAGS="-mx32 $LDFLAGS"
+           cc_i386='$(CC) -m32'
+           ;;
     # No special flags required for other host CPUs
 esac
 
@@ -1251,7 +1260,7 @@ fi
 
 if test "$pie" = ""; then
   case "$cpu-$targetos" in
-    i386-Linux|x86_64-Linux|i386-OpenBSD|x86_64-OpenBSD)
+    i386-Linux|x86_64-Linux|x32-Linux|i386-OpenBSD|x86_64-OpenBSD)
       ;;
     *)
       pie="no"
@@ -3506,7 +3515,7 @@ fi
 if test "$pie" = "no" ; then
   textseg_addr=
   case "$cpu" in
-    arm | hppa | i386 | m68k | ppc | ppc64 | s390* | sparc | sparc64 | x86_64)
+    arm | hppa | i386 | m68k | ppc | ppc64 | s390* | sparc | sparc64 | x86_64 | x32)
       textseg_addr=0x60000000
       ;;
     mips)
@@ -3681,7 +3690,7 @@ echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
 echo "ARCH=$ARCH" >> $config_host_mak
 
 case "$cpu" in
-  arm|i386|x86_64|ppc|aarch64)
+  arm|i386|x86_64|x32|ppc|aarch64)
     # The TCG interpreter currently does not support ld/st optimization.
     if test "$tcg_interpreter" = "no" ; then
         echo "CONFIG_QEMU_LDST_OPTIMIZATION=y" >> $config_host_mak
@@ -4116,7 +4125,7 @@ elif test "$ARCH" = "sparc64" ; then
   QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/sparc $QEMU_INCLUDES"
 elif test "$ARCH" = "s390x" ; then
   QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/s390 $QEMU_INCLUDES"
-elif test "$ARCH" = "x86_64" ; then
+elif test "$ARCH" = "x86_64" -o "$ARCH" = "x32" ; then
   QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/i386 $QEMU_INCLUDES"
 else
   QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/\$(ARCH) $QEMU_INCLUDES"
@@ -4178,7 +4187,7 @@ fi
 if test "$linux" = "yes" ; then
   mkdir -p linux-headers
   case "$cpu" in
-  i386|x86_64)
+  i386|x86_64|x32)
     linux_arch=x86
     ;;
   ppcemb|ppc|ppc64)
@@ -4444,7 +4453,7 @@ for i in $ARCH $TARGET_BASE_ARCH ; do
     echo "CONFIG_HPPA_DIS=y"  >> $config_target_mak
     echo "CONFIG_HPPA_DIS=y"  >> config-all-disas.mak
   ;;
-  i386|x86_64)
+  i386|x86_64|x32)
     echo "CONFIG_I386_DIS=y"  >> $config_target_mak
     echo "CONFIG_I386_DIS=y"  >> config-all-disas.mak
   ;;
-- 
1.8.1.4

  parent reply	other threads:[~2013-09-02 16:30 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-02 16:28 [Qemu-devel] [PULL 00/29] Three tcg patch sets Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 01/29] tcg: Add muluh and mulsh opcodes Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 02/29] tcg-mips: Implement mulsh, muluh Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 03/29] tcg-ppc64: Implement muluh, mulsh Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 04/29] tcg: Constant fold div, rem Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 05/29] qtest: Fix FMT_timeval vs time_t Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 06/29] tcg: Change flush_icache_range arguments to uintptr_t Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 07/29] tcg: Change tcg_qemu_tb_exec return " Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 08/29] tcg: Fix next_tb type in cpu_exec Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 09/29] tcg: Allow TCG_TARGET_REG_BITS to be specified independantly Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 10/29] tcg: Define TCG_TYPE_PTR properly Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 11/29] tcg: Define TCG_ptr properly Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 12/29] tcg: Change frame pointer offsets to intptr_t Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 13/29] tcg: Change memory " Richard Henderson
2013-09-02 16:28 ` [Qemu-devel] [PULL 14/29] tcg: Change relocation " Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 15/29] tcg: Use uintptr_t in TCGHelperInfo Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 16/29] tcg: Change tcg_gen_exit_tb argument to uintptr_t Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 17/29] tcg: Change tcg_out_ld/st offset to intptr_t Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 18/29] tcg: Use appropriate types in tcg_reg_alloc_call Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 19/29] tcg: Fix jit debug for x32 Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 20/29] tcg-i386: Use intptr_t appropriately Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 21/29] tcg-i386: Adjust tcg_out_tlb_load for x32 Richard Henderson
2013-09-02 16:29 ` Richard Henderson [this message]
2013-09-02 16:29 ` [Qemu-devel] [PULL 23/29] exec: Reorganize the GETRA/GETPC macros Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 24/29] tcg-i386: Don't perform GETPC adjustment in TCG code Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 25/29] exec: Rename USUFFIX to LSUFFIX Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 26/29] target: Include softmmu_exec.h where forgotten Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 27/29] exec: Split softmmu_defs.h Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 28/29] tcg: Introduce zero and sign-extended versions of load helpers Richard Henderson
2013-09-02 16:29 ` [Qemu-devel] [PULL 29/29] tcg-i386: Make use of zero-extended memory helper routines Richard Henderson
2013-09-03  6:13 ` [Qemu-devel] [PULL 00/29] Three tcg patch sets Aurelien Jarno

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=1378139354-28602-23-git-send-email-rth@twiddle.net \
    --to=rth@twiddle.net \
    --cc=anthony@codemonkey.ws \
    --cc=aurelien@aurel32.net \
    --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).