Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Jul 2015 22:43:59 +0200
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        Xin LI <delphij@freebsd.org>, freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: gcc/amd64 head build error after r281316
Message-ID:  <CA%2BhQ2%2BgBp=HsBYw2V93NJ4zKvSW0t7umwAzUr6NuVt9mMRSPcQ@mail.gmail.com>
In-Reply-To: <E45FFE9C-1AC3-45B5-8165-FC3ECDB708F2@FreeBSD.org>
References:  <CAO0mX5aTYgO1NF_Yp_eQ%2Bdvce_1p4spG1g=pqHqhDnp5cKX%2BGQ@mail.gmail.com> <20150708170514.GA47276@onelab2.iet.unipi.it> <E45FFE9C-1AC3-45B5-8165-FC3ECDB708F2@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jul 8, 2015 at 9:36 PM, Dimitry Andric <dim@freebsd.org> wrote:

> On 08 Jul 2015, at 19:05, Luigi Rizzo <rizzo@iet.unipi.it> wrote:
> >
> > the r281316 commit introduces the following lines
> > which break compilation with gcc on amd64 (as far as i know
> > immintrin.h is only available in our clang).
> > If there are no objections I'd like to add a further check
> > for the use of clang, see attached patch
> >
> > Index: /home/luigi/FreeBSD/head/lib/liblzma/config.h
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > --- /home/luigi/FreeBSD/head/lib/liblzma/config.h       (revision 28528=
1)
> > +++ /home/luigi/FreeBSD/head/lib/liblzma/config.h       (working copy)
> > @@ -150,7 +150,7 @@
> > #define HAVE_ICONV 1
> >
> > /* Define to 1 if you have the <immintrin.h> header file. */
> > -#if defined(__FreeBSD__) && defined(__amd64__)
> > +#if defined(__clang__) && defined(__FreeBSD__) && defined(__amd64__)
> > #define HAVE_IMMINTRIN_H 1
> > #endif
>
> Hi Luigi,
>
> I just saw you already committed this, but can we change this so it also
> detects gcc >=3D 4.4.0, where immintrin.h was introduced?  So then it
> works nicely for external gcc's too.
>

=E2=80=8Bi have no objections, but i don't know how to test it so
if you have a better fix feel free to go ahead and commit it.

cheers
luigi
=E2=80=8B


>
> E.g.:
>
> Index: lib/liblzma/config.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- lib/liblzma/config.h        (revision 285287)
> +++ lib/liblzma/config.h        (working copy)
> @@ -151,7 +151,9 @@
>
>  /* Define to 1 if you have the <immintrin.h> header file. */
>  /* FreeBSD - only with clang because the base gcc does not support it */
> -#if defined(__clang__) && defined(__FreeBSD__) && defined(__amd64__)
> +#if (defined(__clang__) || \
> +    __GNUC__ > 4 || (__GNUC__ =3D=3D 4 && __GNUC_MINOR >=3D 4)) \
> +    && defined(__FreeBSD__) && defined(__amd64__)
>  #define HAVE_IMMINTRIN_H 1
>  #endif
>
> Additionally, why are we checking for __FreeBSD__ here?  This config
> file is very specifically for use during buildworld, so I don't see the
> use in checking it at all.
>
> -Dimitry
>
>


--=20
-----------------------------------------+-------------------------------
 Prof. Luigi RIZZO, rizzo@iet.unipi.it  . Dip. di Ing. dell'Informazione
 http://www.iet.unipi.it/~luigi/        . Universita` di Pisa
 TEL      +39-050-2217533               . via Diotisalvi 2
 Mobile   +39-338-6809875               . 56122 PISA (Italy)
-----------------------------------------+-------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BhQ2%2BgBp=HsBYw2V93NJ4zKvSW0t7umwAzUr6NuVt9mMRSPcQ>