When building for MacOS X, default the C compiler to 'cc' (usually clang) rather than 'gcc'. This avoids the Apple 'gcc', which is generally an elderly llvm-gcc provided mostly for legacy purposes, in favour of the best supported compiler available on the platform.
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> --- I now seem to be getting failures to compile due to weak refs on clang as well, but defaulting to cc seems like a good long term plan anyway. I've mostly been building and testing with --cc=clang so this isn't a sudden compiler switch from my point of view. I'm ambivalent about whether this should go in 1.3 or not, given it doesn't actually fix the weakref issues. configure | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/configure b/configure index f847ee2..ec9932b 100755 --- a/configure +++ b/configure @@ -116,7 +116,13 @@ audio_drv_list="" audio_card_list="ac97 es1370 sb16 hda" audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus hda" block_drv_whitelist="" -host_cc="gcc" +if test "$(uname -s)" = "Darwin"; then + # On MacOS X the standard supported system compiler is 'cc' (usually clang), + # and 'gcc' is a legacy llvm-gcc which is rather elderly and best avoided. + host_cc="cc" +else + host_cc="gcc" +fi libs_softmmu="" libs_tools="" audio_pt_int="" @@ -250,7 +256,16 @@ done # Using uname is really, really broken. Once we have the right set of checks # we can eliminate its usage altogether. -cc="${CC-${cross_prefix}gcc}" +# Preferred compiler: +# ${CC} (if set) +# ${cross_prefix}gcc (if cross-prefix specified) +# system compiler +if test -z "${CC}${cross_prefix}"; then + cc="$host_cc" +else + cc="${CC-${cross_prefix}gcc}" +fi + ar="${AR-${cross_prefix}ar}" objcopy="${OBJCOPY-${cross_prefix}objcopy}" ld="${LD-${cross_prefix}ld}" -- 1.7.9.5