Fix minimum libzstd version that supports ZSTD_STREAMING (#9841)

Summary:
The minimum libzstd version that has `ZSTD_compressStream2` is
1.4.0 so only define ZSTD_STREAMING in that case.

Fixes building on Ubuntu 18.04 which has libzstd 1.3.3 as its
repository version.

Fixes https://github.com/facebook/rocksdb/issues/9795

Pull Request resolved: https://github.com/facebook/rocksdb/pull/9841

Test Plan:
Build and test on Ubuntu 18.04 with:
  apt-get install libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev \
    libzstd-dev libgflags-dev g++ make curl

Reviewed By: ajkr

Differential Revision: D35648738

Pulled By: jay-zhuang

fbshipit-source-id: 2a9e969bcc17a7dc10172f3817283409de885811
main
Jonathan Albrecht 3 years ago committed by Facebook GitHub Bot
parent d6e016be6d
commit 844a35108b
  1. 8
      util/compression.h

@ -49,8 +49,10 @@
#include <zstd.h> #include <zstd.h>
#if ZSTD_VERSION_NUMBER >= 10103 // v1.1.3+ #if ZSTD_VERSION_NUMBER >= 10103 // v1.1.3+
#include <zdict.h> #include <zdict.h>
#define ZSTD_STREAMING
#endif // ZSTD_VERSION_NUMBER >= 10103 #endif // ZSTD_VERSION_NUMBER >= 10103
#if ZSTD_VERSION_NUMBER >= 10400 // v1.4.0+
#define ZSTD_STREAMING
#endif // ZSTD_VERSION_NUMBER >= 10400
namespace ROCKSDB_NAMESPACE { namespace ROCKSDB_NAMESPACE {
// Need this for the context allocation override // Need this for the context allocation override
// On windows we need to do this explicitly // On windows we need to do this explicitly
@ -516,8 +518,8 @@ inline bool ZSTDNotFinal_Supported() {
} }
inline bool ZSTD_Streaming_Supported() { inline bool ZSTD_Streaming_Supported() {
#ifdef ZSTD #if defined(ZSTD) && defined(ZSTD_STREAMING)
return ZSTD_versionNumber() >= 10300; return true;
#else #else
return false; return false;
#endif #endif

Loading…
Cancel
Save