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

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_AEB0E835-EF32-44CB-8966-F56B07FD3ACF
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

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
> ===================================================================
> --- /home/luigi/FreeBSD/head/lib/liblzma/config.h       (revision 285281)
> +++ /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 >= 4.4.0, where immintrin.h was introduced?  So then it
works nicely for external gcc's too.

E.g.:

Index: lib/liblzma/config.h
===================================================================
--- 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__ == 4 && __GNUC_MINOR >= 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


--Apple-Mail=_AEB0E835-EF32-44CB-8966-F56B07FD3ACF
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28

iEYEARECAAYFAlWde6kACgkQsF6jCi4glqMY/QCfWNq3Q8t0CxQjuypHRxJIJvxH
gxQAoPuhlmfTIMWDSI3ESfoUu9Mo9eMF
=HZhh
-----END PGP SIGNATURE-----

--Apple-Mail=_AEB0E835-EF32-44CB-8966-F56B07FD3ACF--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E45FFE9C-1AC3-45B5-8165-FC3ECDB708F2>