diff mbox series

[v2,04/43] configure: move i386_cc to cross_cc_i386

Message ID 20180419135901.30035-5-alex.bennee@linaro.org
State New
Headers show
Series fix building of tests/tcg | expand

Commit Message

Alex Bennée April 19, 2018, 1:58 p.m. UTC
Also dont assume x86_64 compiler can build i386 binaries.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


---
v2
  - drop using system x86_64 compiler for i386 compiles
---
 configure | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

-- 
2.17.0

Comments

Richard Henderson April 19, 2018, 8:59 p.m. UTC | #1
On 04/19/2018 03:58 AM, Alex Bennée wrote:
> -cc_i386=i386-pc-linux-gnu-gcc

>  libs_qga=""

>  debug_info="yes"

>  stack_protector=""

> @@ -457,6 +456,8 @@ docker="no"

>  cross_cc_aarch64="aarch64-linux-gnu-gcc"

>  cross_cc_arm="arm-linux-gnueabihf-gcc"

>  cross_cc_powerpc="powerpc-linux-gnu-gcc"

> +cross_cc_i386="i386-pc-linux-gnu-gcc"

> +cross_cc_cflags_i386=""

...
>  

>  enabled_cross_compilers=""

>  

> @@ -687,12 +688,10 @@ case "$cpu" in

>    i386|i486|i586|i686|i86pc|BePC)

>      cpu="i386"

>      supported_cpu="yes"

> -    cross_cc_i386=gcc

>    ;;

>    x86_64|amd64)

>      cpu="x86_64"

>      supported_cpu="yes"

> -    cross_cc_x86_64=gcc

>    ;;

>    armv*b|armv*l|arm)

>      cpu="arm"

> @@ -1435,7 +1434,6 @@ case "$cpu" in

>      i386)

>             CPU_CFLAGS="-m32"

>             LDFLAGS="-m32 $LDFLAGS"

> -           cc_i386='$(CC) -m32'


Why is the i386 case not handled like...

>             ;;

>      x86_64)

>             # ??? Only extremely old AMD cpus do not have cmpxchg16b.

> @@ -1443,12 +1441,14 @@ case "$cpu" in

>             # runtime and generate the fallback to serial emulation.

>             CPU_CFLAGS="-m64 -mcx16"

>             LDFLAGS="-m64 $LDFLAGS"

> -           cc_i386='$(CC) -m32'

> +           cross_cc_x86_64=$cc

> +           cross_cc_cflags_x86_64=$CPU_CFLAGS


... the x86_64 case?

Also, does cross_cc_cflags_foo really have value over including the flags
directly in the cross_cc_foo variable?


r~
diff mbox series

Patch

diff --git a/configure b/configure
index 0dca341f2a..038fb9db7b 100755
--- a/configure
+++ b/configure
@@ -284,7 +284,6 @@  libs_softmmu=""
 libs_tools=""
 audio_pt_int=""
 audio_win_int=""
-cc_i386=i386-pc-linux-gnu-gcc
 libs_qga=""
 debug_info="yes"
 stack_protector=""
@@ -457,6 +456,8 @@  docker="no"
 cross_cc_aarch64="aarch64-linux-gnu-gcc"
 cross_cc_arm="arm-linux-gnueabihf-gcc"
 cross_cc_powerpc="powerpc-linux-gnu-gcc"
+cross_cc_i386="i386-pc-linux-gnu-gcc"
+cross_cc_cflags_i386=""
 
 enabled_cross_compilers=""
 
@@ -687,12 +688,10 @@  case "$cpu" in
   i386|i486|i586|i686|i86pc|BePC)
     cpu="i386"
     supported_cpu="yes"
-    cross_cc_i386=gcc
   ;;
   x86_64|amd64)
     cpu="x86_64"
     supported_cpu="yes"
-    cross_cc_x86_64=gcc
   ;;
   armv*b|armv*l|arm)
     cpu="arm"
@@ -1435,7 +1434,6 @@  case "$cpu" in
     i386)
            CPU_CFLAGS="-m32"
            LDFLAGS="-m32 $LDFLAGS"
-           cc_i386='$(CC) -m32'
            ;;
     x86_64)
            # ??? Only extremely old AMD cpus do not have cmpxchg16b.
@@ -1443,12 +1441,14 @@  case "$cpu" in
            # runtime and generate the fallback to serial emulation.
            CPU_CFLAGS="-m64 -mcx16"
            LDFLAGS="-m64 $LDFLAGS"
-           cc_i386='$(CC) -m32'
+           cross_cc_x86_64=$cc
+           cross_cc_cflags_x86_64=$CPU_CFLAGS
            ;;
     x32)
            CPU_CFLAGS="-mx32"
            LDFLAGS="-mx32 $LDFLAGS"
-           cc_i386='$(CC) -m32'
+           cross_cc_i386=$cc
+           cross_cc_cflags_i386="-m32"
            ;;
     # No special flags required for other host CPUs
 esac
@@ -6675,7 +6675,6 @@  echo "CC=$cc" >> $config_host_mak
 if $iasl -h > /dev/null 2>&1; then
   echo "IASL=$iasl" >> $config_host_mak
 fi
-echo "CC_I386=$cc_i386" >> $config_host_mak
 echo "HOST_CC=$host_cc" >> $config_host_mak
 echo "CXX=$cxx" >> $config_host_mak
 echo "OBJCC=$objcc" >> $config_host_mak
@@ -6794,6 +6793,7 @@  case "$target" in
 esac
 
 target_compiler=""
+target_compiler_cflags=""
 
 mkdir -p $target_dir
 echo "# Automatically generated by configure - do not modify" > $config_target_mak
@@ -6810,10 +6810,13 @@  TARGET_ABI_DIR=""
 case "$target_name" in
   i386)
     gdb_xml_files="i386-32bit.xml i386-32bit-core.xml i386-32bit-sse.xml"
+    target_compiler=$cross_cc_i386
+    target_compiler_cflags=$cross_cc_cflags_i386
   ;;
   x86_64)
     TARGET_BASE_ARCH=i386
     gdb_xml_files="i386-64bit.xml i386-64bit-core.xml i386-64bit-sse.xml"
+    target_compiler=$cross_cc_x86_64
   ;;
   alpha)
     mttcg="yes"
@@ -6958,7 +6961,7 @@  int main(void) {
 }
 EOF
 
-    if ! do_compiler $target_compiler -o $TMPE $TMPC -static ; then
+    if ! do_compiler $target_compiler $target_compiler_cflags -o $TMPE $TMPC -static ; then
         target_compiler=""
     else
         enabled_cross_compilers="${enabled_cross_compilers} ${target_compiler}"
@@ -7042,8 +7045,13 @@  fi
 
 if test -n "$target_compiler"; then
   echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
+
+  if test -n "$target_compiler_cflags"; then
+      echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak
+  fi
 fi
 
+
 # generate QEMU_CFLAGS/LDFLAGS for targets
 
 cflags=""