configure: Distinguish ppc64 and ppc64le hosts
We cannot use the ppc64le host compiler to build ppc64(be) guest code. Clean up confusion between cross_cc_powerpc and cross_cc_ppc; make use of the cflags variable as well. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20190501223819.8584-2-richard.henderson@linaro.org> [dwg: Dropped hunk relating to ppc64abi32, it doesn't test properly] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
c10aaaab0f
commit
f8378accda
31
configure
vendored
31
configure
vendored
@ -198,7 +198,7 @@ supported_kvm_target() {
|
||||
i386:i386 | i386:x86_64 | i386:x32 | \
|
||||
x86_64:i386 | x86_64:x86_64 | x86_64:x32 | \
|
||||
mips:mips | mipsel:mips | \
|
||||
ppc:ppc | ppc64:ppc | ppc:ppc64 | ppc64:ppc64 | \
|
||||
ppc:ppc | ppc64:ppc | ppc:ppc64 | ppc64:ppc64 | ppc64:ppc64le | \
|
||||
s390x:s390x)
|
||||
return 0
|
||||
;;
|
||||
@ -502,8 +502,11 @@ cross_cc_arm="arm-linux-gnueabihf-gcc"
|
||||
cross_cc_cflags_armeb="-mbig-endian"
|
||||
cross_cc_i386="i386-pc-linux-gnu-gcc"
|
||||
cross_cc_cflags_i386=""
|
||||
cross_cc_powerpc="powerpc-linux-gnu-gcc"
|
||||
cross_cc_powerpc="powerpc-linux-gnu-gcc"
|
||||
cross_cc_ppc="powerpc-linux-gnu-gcc"
|
||||
cross_cc_cflags_ppc="-m32"
|
||||
cross_cc_ppc64="powerpc-linux-gnu-gcc"
|
||||
cross_cc_cflags_ppc64="-m64"
|
||||
cross_cc_ppc64le="powerpc64le-linux-gnu-gcc"
|
||||
|
||||
enabled_cross_compilers=""
|
||||
|
||||
@ -700,7 +703,11 @@ elif check_define __sparc__ ; then
|
||||
fi
|
||||
elif check_define _ARCH_PPC ; then
|
||||
if check_define _ARCH_PPC64 ; then
|
||||
if check_define _LITTLE_ENDIAN ; then
|
||||
cpu="ppc64le"
|
||||
else
|
||||
cpu="ppc64"
|
||||
fi
|
||||
else
|
||||
cpu="ppc"
|
||||
fi
|
||||
@ -731,10 +738,14 @@ ARCH=
|
||||
# Note that this case should only have supported host CPUs, not guests.
|
||||
case "$cpu" in
|
||||
ppc|ppc64|s390|s390x|sparc64|x32|riscv32|riscv64)
|
||||
cpu="$cpu"
|
||||
supported_cpu="yes"
|
||||
eval "cross_cc_${cpu}=\$host_cc"
|
||||
;;
|
||||
ppc64le)
|
||||
ARCH="ppc64"
|
||||
supported_cpu="yes"
|
||||
cross_cc_ppc64le=$host_cc
|
||||
;;
|
||||
i386|i486|i586|i686|i86pc|BePC)
|
||||
cpu="i386"
|
||||
supported_cpu="yes"
|
||||
@ -1538,8 +1549,8 @@ case "$cpu" in
|
||||
ppc)
|
||||
CPU_CFLAGS="-m32"
|
||||
LDFLAGS="-m32 $LDFLAGS"
|
||||
cross_cc_powerpc=$cc
|
||||
cross_cc_cflags_powerpc=$CPU_CFLAGS
|
||||
cross_cc_ppc=$cc
|
||||
cross_cc_cflags_ppc="$CPU_CFLAGS"
|
||||
;;
|
||||
ppc64)
|
||||
CPU_CFLAGS="-m64"
|
||||
@ -6191,7 +6202,7 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "$cpu" = "ppc64" && test "$targetos" != "Darwin" ; then
|
||||
if test "$ARCH" = "ppc64" && test "$targetos" != "Darwin" ; then
|
||||
roms="$roms spapr-rtas"
|
||||
fi
|
||||
|
||||
@ -7378,7 +7389,7 @@ if test "$linux" = "yes" ; then
|
||||
i386|x86_64|x32)
|
||||
linux_arch=x86
|
||||
;;
|
||||
ppc|ppc64)
|
||||
ppc|ppc64|ppc64le)
|
||||
linux_arch=powerpc
|
||||
;;
|
||||
s390x)
|
||||
@ -7539,7 +7550,8 @@ case "$target_name" in
|
||||
;;
|
||||
ppc)
|
||||
gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
|
||||
target_compiler=$cross_cc_powerpc
|
||||
target_compiler=$cross_cc_ppc
|
||||
target_compiler_cflags="$cross_cc_cflags_ppc"
|
||||
;;
|
||||
ppc64)
|
||||
TARGET_BASE_ARCH=ppc
|
||||
@ -7547,6 +7559,7 @@ case "$target_name" in
|
||||
mttcg=yes
|
||||
gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml"
|
||||
target_compiler=$cross_cc_ppc64
|
||||
target_compiler_cflags="$cross_cc_cflags_ppc64"
|
||||
;;
|
||||
ppc64le)
|
||||
TARGET_ARCH=ppc64
|
||||
|
Loading…
Reference in New Issue
Block a user