aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2023-04-18 16:58:11 +0100
committerPeter Maydell <peter.maydell@linaro.org>2023-04-18 16:58:11 +0100
commita688c0c6ef6a4b71841664a3403bfe92a3b2bd7b (patch)
tree21c96cf455256b98932189ca16e627b7e68d576d
parent7dbd6f8a27e30fe14adb3d5869097cddf24038d6 (diff)
configure: Honour cross-prefix when finding ObjC compilerobjcc-cross
Currently when configure picks an ObjectiveC compiler it doesn't pay attention to the cross-prefix. This isn't a big deal in practice, because we only use ObjC on macos and you can't cross-compile to macos. But it's a bit inconsistent. Rearrange the handling of objcc in configure so that we do the same thing that we do with cc and cxx. This means that the logic for picking the ObjC compiler goes from: if --objcc is specified, use that otherwise if clang is available, use that otherwise use $cc to: if --objcc is specified, use that otherwise if --cross-prefix is specified, use ${cross_prefix}clang otherwise if clang is available, use that otherwise use $cc Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rwxr-xr-xconfigure26
1 files changed, 18 insertions, 8 deletions
diff --git a/configure b/configure
index 800b5850f4..646048db70 100755
--- a/configure
+++ b/configure
@@ -316,6 +316,8 @@ for opt do
;;
--cxx=*) CXX="$optarg"
;;
+ --objcc=*) objcc="$optarg"
+ ;;
--cpu=*) cpu="$optarg"
;;
--extra-cflags=*)
@@ -361,6 +363,21 @@ else
cxx="${CXX-${cross_prefix}g++}"
fi
+# Preferred ObjC compiler:
+# $objcc (if set, i.e. via --objcc option)
+# ${cross_prefix}clang (if cross-prefix specified)
+# clang (if available)
+# $cc
+if test -z "${objcc}${cross_prefix}"; then
+ if has clang; then
+ objcc=clang
+ else
+ objcc="$cc"
+ fi
+else
+ objcc="${objcc-${cross_prefix}clang}"
+fi
+
ar="${AR-${cross_prefix}ar}"
as="${AS-${cross_prefix}as}"
ccas="${CCAS-$cc}"
@@ -647,13 +664,6 @@ do
fi
done
-# Default objcc to clang if available, otherwise use CC
-if has clang; then
- objcc=clang
-else
- objcc="$cc"
-fi
-
if test "$mingw32" = "yes" ; then
EXESUF=".exe"
# MinGW needs -mthreads for TLS and macro _MT.
@@ -713,7 +723,7 @@ for opt do
;;
--cxx=*)
;;
- --objcc=*) objcc="$optarg"
+ --objcc=*)
;;
--make=*) make="$optarg"
;;