crc: disable nice CLMUL version due to clang bugs.

This commit is contained in:
Marian Beermann 2017-01-12 21:28:18 +01:00
parent ff69f6e6ae
commit 292fb1e2a9
1 changed files with 6 additions and 5 deletions

View File

@ -3,6 +3,11 @@
#include "slice_by_8.c" #include "slice_by_8.c"
#ifdef __GNUC__ #ifdef __GNUC__
/*
* clang also has or had GCC bug #56298 explained below, but doesn't support
* target attributes or the options stack. So we disable this faster code path for clang.
*/
#ifndef __clang__
#if __x86_64__ #if __x86_64__
/* /*
* Because we don't want a configure script we need compiler-dependent pre-defined macros for detecting this, * Because we don't want a configure script we need compiler-dependent pre-defined macros for detecting this,
@ -29,9 +34,6 @@
* Part 2 of 2 follows below. * Part 2 of 2 follows below.
*/ */
/* clang also defines __GNUC__, but doesn't need this, it emits warnings instead */
#ifndef __clang__
#ifndef __PCLMUL__ #ifndef __PCLMUL__
#pragma GCC push_options #pragma GCC push_options
#pragma GCC target("pclmul") #pragma GCC target("pclmul")
@ -56,9 +58,8 @@
#define __BORG_DISABLE_SSE4_1__ #define __BORG_DISABLE_SSE4_1__
#endif #endif
#endif /* ifdef __clang__ */
#endif /* if __x86_64__ */ #endif /* if __x86_64__ */
#endif /* ifndef __clang__ */
#endif /* ifdef __GNUC__ */ #endif /* ifdef __GNUC__ */
#ifdef FOLDING_CRC #ifdef FOLDING_CRC