diff mbox

[v2] configure: Default to 'cc', not 'gcc'

Message ID 1354894753-22302-1-git-send-email-peter.maydell@linaro.org
State Accepted
Commit e49d021e574c3ee8e443bcc84d1fb7dfb4c87c42
Headers show

Commit Message

Peter Maydell Dec. 7, 2012, 3:39 p.m. UTC
Default to 'cc' as our compiler, rather than 'gcc'. We used to have
to insist on gcc when we still kept the CPU env in a fixed global
register, but this is no longer necessary and we will now compile OK
on clang as well as gcc.  Using 'cc' should generally result in us
using the most standard and maintained system compiler for the
platform.  (For instance on newer MacOS X 'gcc' exists but is an
elderly compiler provided mostly for legacy reasons, and 'cc'
(which is clang) is definitely the better choice.) On Linux there
will generally be no user-visible change since cc will be gcc.

This changeover necessitates a slight reworking of how we set the
'cc' variable, because GNU cross toolchains generally provide a
'${cross_prefix}gcc' but not a '${cross_prefix}cc'.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
MacOS X is the main aim here but BSDs would probably also prefer
to default to 'cc'. Previous macos-specific version of this patch:
http://patchwork.ozlabs.org/patch/199685/

 configure |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

Comments

Blue Swirl Dec. 8, 2012, 8:03 p.m. UTC | #1
Thanks, applied.

On Fri, Dec 7, 2012 at 3:39 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Default to 'cc' as our compiler, rather than 'gcc'. We used to have
> to insist on gcc when we still kept the CPU env in a fixed global
> register, but this is no longer necessary and we will now compile OK
> on clang as well as gcc.  Using 'cc' should generally result in us
> using the most standard and maintained system compiler for the
> platform.  (For instance on newer MacOS X 'gcc' exists but is an
> elderly compiler provided mostly for legacy reasons, and 'cc'
> (which is clang) is definitely the better choice.) On Linux there
> will generally be no user-visible change since cc will be gcc.
>
> This changeover necessitates a slight reworking of how we set the
> 'cc' variable, because GNU cross toolchains generally provide a
> '${cross_prefix}gcc' but not a '${cross_prefix}cc'.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> MacOS X is the main aim here but BSDs would probably also prefer
> to default to 'cc'. Previous macos-specific version of this patch:
> http://patchwork.ozlabs.org/patch/199685/
>
>  configure |   13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index 994f731..88c8f15 100755
> --- a/configure
> +++ b/configure
> @@ -116,7 +116,7 @@ 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"
> +host_cc="cc"
>  libs_softmmu=""
>  libs_tools=""
>  audio_pt_int=""
> @@ -250,7 +250,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
>
>
diff mbox

Patch

diff --git a/configure b/configure
index 994f731..88c8f15 100755
--- a/configure
+++ b/configure
@@ -116,7 +116,7 @@  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"
+host_cc="cc"
 libs_softmmu=""
 libs_tools=""
 audio_pt_int=""
@@ -250,7 +250,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}"