diff --git a/appveyor.yml b/appveyor.yml index b098fd452..742f61206 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -82,8 +82,8 @@ ECHO Creating artifacts && ECHO %cd% && lib\dll\example\build_package.bat && - cd programs\ && make DEBUGFLAGS= clean zstd && - 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe && + make -C programs DEBUGFLAGS= clean zstd && + cd programs\ && 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe && appveyor PushArtifact zstd-win-binary-%PLATFORM%.zip && cp zstd.exe ..\bin\zstd.exe && git clone --depth 1 --branch master https://github.com/facebook/zstd && @@ -91,8 +91,8 @@ git archive --format=tar master -o zstd-src.tar && ..\zstd -19 zstd-src.tar && appveyor PushArtifact zstd-src.tar.zst && - certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.sig.sha256 && - appveyor PushArtifact zstd-src.sig.sha256 && + certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.tar.zst.sha256.sig && + appveyor PushArtifact zstd-src.tar.zst.sha256.sig && cd ..\..\bin\ && 7z a -tzip -mx9 zstd-win-release-%PLATFORM%.zip * && appveyor PushArtifact zstd-win-release-%PLATFORM%.zip diff --git a/doc/images/linux-4.7-12-mt-compress.png b/doc/images/linux-4.7-12-mt-compress.png new file mode 100644 index 000000000..c66ac0d5e Binary files /dev/null and b/doc/images/linux-4.7-12-mt-compress.png differ diff --git a/doc/images/linux-git-mt-compress.png b/doc/images/linux-git-mt-compress.png new file mode 100644 index 000000000..538b8a9fc Binary files /dev/null and b/doc/images/linux-git-mt-compress.png differ diff --git a/lib/common/compiler.h b/lib/common/compiler.h index bb8730126..e90a3bcde 100644 --- a/lib/common/compiler.h +++ b/lib/common/compiler.h @@ -64,6 +64,9 @@ #endif /* target attribute */ +#ifndef __has_attribute + #define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ +#endif #if defined(__GNUC__) # define TARGET_ATTRIBUTE(target) __attribute__((__target__(target))) #else @@ -74,7 +77,7 @@ * Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default. */ #ifndef DYNAMIC_BMI2 - #if defined(__clang__) \ + #if (defined(__clang__) && __has_attribute(__target__)) \ || (defined(__GNUC__) \ && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) \ && (defined(__x86_64__) || defined(_M_X86)) \