This is the mail archive of the
mailing list for the GCC project.
Re: GCC 4.9.0 Release Candidate available from gcc.gnu.org
- From: Jakub Jelinek <jakub at redhat dot com>
- To: PaweÅ Sikora <pluto at agmk dot net>
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 17 Apr 2014 11:57:08 +0200
- Subject: Re: GCC 4.9.0 Release Candidate available from gcc.gnu.org
- Authentication-results: sourceware.org; auth=none
- References: <728d251d1ed1190b0e4664106f8e0b38 at agmk dot net>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Thu, Apr 17, 2014 at 11:38:18AM +0200, PaweÅ Sikora wrote:
> the opt_random.h header includes <x86intrin.h> unconditionally and
> breaks crytopp build
> (redefinition of _mm_shuffle_epi8 in cpu.h).
> could you please add #ifdef __SSSE3__ around this include?
No, just fix cryptopp.
The *intrin.h headers have been redesigned to use #pragma GCC target,
so that they are usable regardless of the command line options used.
So, unlike in 4.8, you can
and similar headers and then have say
__attribute__((target ("ssse3"))) function which can use _mm_shuffle_epi8
and other SSSE3 intrinsics (similarly for lots of other ISA sets),
which wasn't possible before.
So, in this case you'd supposedly change the #ifdef to
#if !defined(__GNUC__) || defined(__SSSE3__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ > 8) || defined(__INTEL_COMPILER)
or so. Of course, you can use _mm_shuffle_epi8 only from functions
compiled within #pragma GCC target ("ssse3") (or anything higher)
or __attribute__((target ("ssse3"))). If you don't, cryptopp
is even more buggy.