On 13.10.2017 12:28, Daniel P. Berrange wrote:
> The system compiler in OpenBSD is gcc 4.2.1 which is too
> old for our needs. If doing 'pkg_add gcc' you can get a
> much newer version (4.9.4 in OpenBSD 6.1) which works with
> QEMU. This installs binaries with two naming schemes:
> 
>   $ pkg_info  -L gcc | grep bin
>   /usr/local/bin/ecpp
>   /usr/local/bin/egcc
>   /usr/local/bin/egcc-ar
>   /usr/local/bin/egcc-nm
>   /usr/local/bin/egcc-ranlib
>   /usr/local/bin/egcov
>   /usr/local/bin/x86_64-unknown-openbsd6.0-egcc
>   /usr/local/bin/x86_64-unknown-openbsd6.0-egcc-ar
>   /usr/local/bin/x86_64-unknown-openbsd6.0-egcc-nm
>   /usr/local/bin/x86_64-unknown-openbsd6.0-egcc-ranlib
>   /usr/local/bin/x86_64-unknown-openbsd6.0-gcc-4.9.3
> 
> We pick the short name this it won't change across OpenBSD
> releases.
> 
> This means users don't need to manually pass custom --cc
> and --cxx args to configure to avoid immediate failure.
> 
> Signed-off-by: Daniel P. Berrange <berra...@redhat.com>
> ---
>  configure | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 06f18ea9af..fcb7523933 100755
> --- a/configure
> +++ b/configure
> @@ -255,7 +255,21 @@ cross_prefix=""
>  audio_drv_list=""
>  block_drv_rw_whitelist=""
>  block_drv_ro_whitelist=""
> -host_cc="cc"
> +
> +case `uname -s` in
> +    OpenBSD)
> +    # Default system cc in OpenBSD is unsufficient

s/unsufficient/insufficient/

> +    # we need the 'gcc' pkg added, whch provides

s/whch/which/

> +    # these modified binary names
> +    host_cc="egcc"
> +    host_cxx="eg++"
> +    ;;
> +         *)
> +    host_cc="cc"
> +    host_cxx="c++"
> +    ;;
> +esac

Do we really need such work-arounds in our configure script? GCC 4.2 is
really veeeery old nowadays, so if the OpenBSD folks refuse to update
the default in their distro, IMHO they should be punished by having to
select the C compiler manually everywhere.

 Thomas

Reply via email to