From: Yann Collet Date: Mon, 5 Mar 2018 00:05:59 +0000 (-0800) Subject: DYNAMIC_BMI2 enabled for clang X-Git-Tag: v1.3.4~1^2~41^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d02b44cf55105c23048c5cc6290b73c79bb519a2;p=thirdparty%2Fzstd.git DYNAMIC_BMI2 enabled for clang clang only claims compatibility with gcc 4.2. Consequently, recent patch which reserved DYNAMIC_BMI2 for gcc >= 4.8 also disabled it for clang. fix : __clang__ is now enough to enable DYNAMIC_BMI2 (associated with other existing conditions : x64/x64, !bmi2) --- diff --git a/lib/common/compiler.h b/lib/common/compiler.h index 63d32258a..bb8730126 100644 --- a/lib/common/compiler.h +++ b/lib/common/compiler.h @@ -74,8 +74,11 @@ * Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default. */ #ifndef DYNAMIC_BMI2 - #if defined(__GNUC__) && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) \ - && (defined(__x86_64__) || defined(_M_X86)) && !defined(__BMI2__) + #if defined(__clang__) \ + || (defined(__GNUC__) \ + && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) \ + && (defined(__x86_64__) || defined(_M_X86)) \ + && !defined(__BMI2__) # define DYNAMIC_BMI2 1 #else # define DYNAMIC_BMI2 0