zstd-ruby 1.4.5.0 → 1.5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +8 -0
  3. data/.github/workflows/ruby.yml +35 -0
  4. data/README.md +2 -2
  5. data/ext/zstdruby/extconf.rb +2 -1
  6. data/ext/zstdruby/libzstd/BUCK +5 -7
  7. data/ext/zstdruby/libzstd/Makefile +225 -222
  8. data/ext/zstdruby/libzstd/README.md +43 -5
  9. data/ext/zstdruby/libzstd/common/bitstream.h +46 -22
  10. data/ext/zstdruby/libzstd/common/compiler.h +182 -22
  11. data/ext/zstdruby/libzstd/common/cpu.h +1 -3
  12. data/ext/zstdruby/libzstd/common/debug.c +1 -1
  13. data/ext/zstdruby/libzstd/common/debug.h +12 -19
  14. data/ext/zstdruby/libzstd/common/entropy_common.c +196 -44
  15. data/ext/zstdruby/libzstd/common/error_private.c +2 -1
  16. data/ext/zstdruby/libzstd/common/error_private.h +82 -3
  17. data/ext/zstdruby/libzstd/common/fse.h +41 -12
  18. data/ext/zstdruby/libzstd/common/fse_decompress.c +139 -22
  19. data/ext/zstdruby/libzstd/common/huf.h +47 -23
  20. data/ext/zstdruby/libzstd/common/mem.h +87 -98
  21. data/ext/zstdruby/libzstd/common/pool.c +23 -17
  22. data/ext/zstdruby/libzstd/common/pool.h +2 -2
  23. data/ext/zstdruby/libzstd/common/portability_macros.h +131 -0
  24. data/ext/zstdruby/libzstd/common/threading.c +6 -5
  25. data/ext/zstdruby/libzstd/common/xxhash.c +6 -846
  26. data/ext/zstdruby/libzstd/common/xxhash.h +5568 -167
  27. data/ext/zstdruby/libzstd/common/zstd_common.c +10 -10
  28. data/ext/zstdruby/libzstd/common/zstd_deps.h +111 -0
  29. data/ext/zstdruby/libzstd/common/zstd_internal.h +189 -142
  30. data/ext/zstdruby/libzstd/common/zstd_trace.h +163 -0
  31. data/ext/zstdruby/libzstd/compress/clevels.h +134 -0
  32. data/ext/zstdruby/libzstd/compress/fse_compress.c +89 -46
  33. data/ext/zstdruby/libzstd/compress/hist.c +27 -29
  34. data/ext/zstdruby/libzstd/compress/hist.h +2 -2
  35. data/ext/zstdruby/libzstd/compress/huf_compress.c +770 -198
  36. data/ext/zstdruby/libzstd/compress/zstd_compress.c +2894 -863
  37. data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +390 -90
  38. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +12 -11
  39. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.h +4 -2
  40. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +31 -8
  41. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +1 -1
  42. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +25 -297
  43. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.h +1 -1
  44. data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +206 -69
  45. data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +307 -132
  46. data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +1 -1
  47. data/ext/zstdruby/libzstd/compress/zstd_fast.c +322 -143
  48. data/ext/zstdruby/libzstd/compress/zstd_fast.h +1 -1
  49. data/ext/zstdruby/libzstd/compress/zstd_lazy.c +1136 -174
  50. data/ext/zstdruby/libzstd/compress/zstd_lazy.h +59 -1
  51. data/ext/zstdruby/libzstd/compress/zstd_ldm.c +316 -213
  52. data/ext/zstdruby/libzstd/compress/zstd_ldm.h +9 -2
  53. data/ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h +106 -0
  54. data/ext/zstdruby/libzstd/compress/zstd_opt.c +373 -150
  55. data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
  56. data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +152 -444
  57. data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +31 -113
  58. data/ext/zstdruby/libzstd/decompress/huf_decompress.c +1044 -403
  59. data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +571 -0
  60. data/ext/zstdruby/libzstd/decompress/zstd_ddict.c +9 -9
  61. data/ext/zstdruby/libzstd/decompress/zstd_ddict.h +2 -2
  62. data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +450 -105
  63. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +913 -273
  64. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.h +14 -5
  65. data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +59 -12
  66. data/ext/zstdruby/libzstd/deprecated/zbuff.h +1 -1
  67. data/ext/zstdruby/libzstd/deprecated/zbuff_common.c +1 -1
  68. data/ext/zstdruby/libzstd/deprecated/zbuff_compress.c +24 -4
  69. data/ext/zstdruby/libzstd/deprecated/zbuff_decompress.c +1 -1
  70. data/ext/zstdruby/libzstd/dictBuilder/cover.c +55 -38
  71. data/ext/zstdruby/libzstd/dictBuilder/cover.h +7 -6
  72. data/ext/zstdruby/libzstd/dictBuilder/divsufsort.c +1 -1
  73. data/ext/zstdruby/libzstd/dictBuilder/fastcover.c +43 -34
  74. data/ext/zstdruby/libzstd/dictBuilder/zdict.c +128 -58
  75. data/ext/zstdruby/libzstd/dll/example/Makefile +1 -1
  76. data/ext/zstdruby/libzstd/dll/example/README.md +16 -22
  77. data/ext/zstdruby/libzstd/legacy/zstd_legacy.h +1 -1
  78. data/ext/zstdruby/libzstd/legacy/zstd_v01.c +8 -8
  79. data/ext/zstdruby/libzstd/legacy/zstd_v01.h +1 -1
  80. data/ext/zstdruby/libzstd/legacy/zstd_v02.c +9 -9
  81. data/ext/zstdruby/libzstd/legacy/zstd_v02.h +1 -1
  82. data/ext/zstdruby/libzstd/legacy/zstd_v03.c +9 -9
  83. data/ext/zstdruby/libzstd/legacy/zstd_v03.h +1 -1
  84. data/ext/zstdruby/libzstd/legacy/zstd_v04.c +10 -10
  85. data/ext/zstdruby/libzstd/legacy/zstd_v04.h +1 -1
  86. data/ext/zstdruby/libzstd/legacy/zstd_v05.c +13 -13
  87. data/ext/zstdruby/libzstd/legacy/zstd_v05.h +1 -1
  88. data/ext/zstdruby/libzstd/legacy/zstd_v06.c +13 -13
  89. data/ext/zstdruby/libzstd/legacy/zstd_v06.h +1 -1
  90. data/ext/zstdruby/libzstd/legacy/zstd_v07.c +13 -13
  91. data/ext/zstdruby/libzstd/legacy/zstd_v07.h +1 -1
  92. data/ext/zstdruby/libzstd/libzstd.mk +185 -0
  93. data/ext/zstdruby/libzstd/libzstd.pc.in +4 -3
  94. data/ext/zstdruby/libzstd/modulemap/module.modulemap +4 -0
  95. data/ext/zstdruby/libzstd/{dictBuilder/zdict.h → zdict.h} +154 -7
  96. data/ext/zstdruby/libzstd/zstd.h +699 -214
  97. data/ext/zstdruby/libzstd/{common/zstd_errors.h → zstd_errors.h} +2 -1
  98. data/ext/zstdruby/zstdruby.c +2 -2
  99. data/lib/zstd-ruby/version.rb +1 -1
  100. metadata +15 -6
  101. data/.travis.yml +0 -14
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -204,10 +204,7 @@ typedef signed long long S64;
204
204
  * Prefer these methods in priority order (0 > 1 > 2)
205
205
  */
206
206
  #ifndef FSE_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
207
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
208
- # define FSE_FORCE_MEMORY_ACCESS 2
209
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
210
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
207
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
211
208
  # define FSE_FORCE_MEMORY_ACCESS 1
212
209
  # endif
213
210
  #endif
@@ -343,8 +340,7 @@ FORCE_INLINE unsigned FSE_highbit32 (U32 val)
343
340
  {
344
341
  # if defined(_MSC_VER) /* Visual */
345
342
  unsigned long r;
346
- _BitScanReverse ( &r, val );
347
- return (unsigned) r;
343
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
348
344
  # elif defined(__GNUC__) && (GCC_VERSION >= 304) /* GCC Intrinsic */
349
345
  return __builtin_clz (val) ^ 31;
350
346
  # else /* Software version */
@@ -1280,7 +1276,11 @@ static size_t HUF_decompress (void* dst, size_t maxDstSize, const void* cSrc, si
1280
1276
  * Basic Types
1281
1277
  *********************************************************/
1282
1278
  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */
1283
- # include <stdint.h>
1279
+ # if defined(_AIX)
1280
+ # include <inttypes.h>
1281
+ # else
1282
+ # include <stdint.h> /* intptr_t */
1283
+ # endif
1284
1284
  typedef uint8_t BYTE;
1285
1285
  typedef uint16_t U16;
1286
1286
  typedef int16_t S16;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -89,7 +89,11 @@ extern "C" {
89
89
  * Basic Types
90
90
  *****************************************************************/
91
91
  #if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
92
- # include <stdint.h>
92
+ # if defined(_AIX)
93
+ # include <inttypes.h>
94
+ # else
95
+ # include <stdint.h> /* intptr_t */
96
+ # endif
93
97
  typedef uint8_t BYTE;
94
98
  typedef uint16_t U16;
95
99
  typedef int16_t S16;
@@ -125,10 +129,7 @@ extern "C" {
125
129
  * Prefer these methods in priority order (0 > 1 > 2)
126
130
  */
127
131
  #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
128
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
129
- # define MEM_FORCE_MEMORY_ACCESS 2
130
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
131
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
132
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
132
133
  # define MEM_FORCE_MEMORY_ACCESS 1
133
134
  # endif
134
135
  #endif
@@ -349,9 +350,8 @@ MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits);
349
350
  MEM_STATIC unsigned BIT_highbit32 (U32 val)
350
351
  {
351
352
  # if defined(_MSC_VER) /* Visual */
352
- unsigned long r=0;
353
- _BitScanReverse ( &r, val );
354
- return (unsigned) r;
353
+ unsigned long r;
354
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
355
355
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
356
356
  return __builtin_clz (val) ^ 31;
357
357
  # else /* Software version */
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -90,7 +90,11 @@ extern "C" {
90
90
  * Basic Types
91
91
  *****************************************************************/
92
92
  #if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
93
- # include <stdint.h>
93
+ # if defined(_AIX)
94
+ # include <inttypes.h>
95
+ # else
96
+ # include <stdint.h> /* intptr_t */
97
+ # endif
94
98
  typedef uint8_t BYTE;
95
99
  typedef uint16_t U16;
96
100
  typedef int16_t S16;
@@ -126,10 +130,7 @@ extern "C" {
126
130
  * Prefer these methods in priority order (0 > 1 > 2)
127
131
  */
128
132
  #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
129
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
130
- # define MEM_FORCE_MEMORY_ACCESS 2
131
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
132
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
133
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
133
134
  # define MEM_FORCE_MEMORY_ACCESS 1
134
135
  # endif
135
136
  #endif
@@ -352,9 +353,8 @@ MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits);
352
353
  MEM_STATIC unsigned BIT_highbit32 (U32 val)
353
354
  {
354
355
  # if defined(_MSC_VER) /* Visual */
355
- unsigned long r=0;
356
- _BitScanReverse ( &r, val );
357
- return (unsigned) r;
356
+ unsigned long r;
357
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
358
358
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
359
359
  return __builtin_clz (val) ^ 31;
360
360
  # else /* Software version */
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -52,7 +52,11 @@ extern "C" {
52
52
  * Basic Types
53
53
  *****************************************************************/
54
54
  #if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
55
- # include <stdint.h>
55
+ # if defined(_AIX)
56
+ # include <inttypes.h>
57
+ # else
58
+ # include <stdint.h> /* intptr_t */
59
+ # endif
56
60
  typedef uint8_t BYTE;
57
61
  typedef uint16_t U16;
58
62
  typedef int16_t S16;
@@ -74,7 +78,7 @@ extern "C" {
74
78
  /*-*************************************
75
79
  * Debug
76
80
  ***************************************/
77
- #include "debug.h"
81
+ #include "../common/debug.h"
78
82
  #ifndef assert
79
83
  # define assert(condition) ((void)0)
80
84
  #endif
@@ -97,10 +101,7 @@ extern "C" {
97
101
  * Prefer these methods in priority order (0 > 1 > 2)
98
102
  */
99
103
  #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
100
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
101
- # define MEM_FORCE_MEMORY_ACCESS 2
102
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
103
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
104
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
104
105
  # define MEM_FORCE_MEMORY_ACCESS 1
105
106
  # endif
106
107
  #endif
@@ -623,9 +624,8 @@ MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits);
623
624
  MEM_STATIC unsigned BIT_highbit32 (U32 val)
624
625
  {
625
626
  # if defined(_MSC_VER) /* Visual */
626
- unsigned long r=0;
627
- _BitScanReverse ( &r, val );
628
- return (unsigned) r;
627
+ unsigned long r;
628
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
629
629
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
630
630
  return __builtin_clz (val) ^ 31;
631
631
  # else /* Software version */
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -80,7 +80,11 @@ extern "C" {
80
80
  * Basic Types
81
81
  *****************************************************************/
82
82
  #if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
83
- # include <stdint.h>
83
+ # if defined(_AIX)
84
+ # include <inttypes.h>
85
+ # else
86
+ # include <stdint.h> /* intptr_t */
87
+ # endif
84
88
  typedef uint8_t BYTE;
85
89
  typedef uint16_t U16;
86
90
  typedef int16_t S16;
@@ -116,10 +120,7 @@ extern "C" {
116
120
  * Prefer these methods in priority order (0 > 1 > 2)
117
121
  */
118
122
  #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
119
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
120
- # define MEM_FORCE_MEMORY_ACCESS 2
121
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
122
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
123
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
123
124
  # define MEM_FORCE_MEMORY_ACCESS 1
124
125
  # endif
125
126
  #endif
@@ -752,9 +753,8 @@ MEM_STATIC size_t BITv05_readBitsFast(BITv05_DStream_t* bitD, unsigned nbBits);
752
753
  MEM_STATIC unsigned BITv05_highbit32 (U32 val)
753
754
  {
754
755
  # if defined(_MSC_VER) /* Visual */
755
- unsigned long r=0;
756
- _BitScanReverse ( &r, val );
757
- return (unsigned) r;
756
+ unsigned long r;
757
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
758
758
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
759
759
  return __builtin_clz (val) ^ 31;
760
760
  # else /* Software version */
@@ -2829,7 +2829,7 @@ static size_t ZSTDv05_decodeFrameHeader_Part2(ZSTDv05_DCtx* zc, const void* src,
2829
2829
 
2830
2830
  static size_t ZSTDv05_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr)
2831
2831
  {
2832
- const BYTE* const in = (const BYTE* const)src;
2832
+ const BYTE* const in = (const BYTE*)src;
2833
2833
  BYTE headerFlags;
2834
2834
  U32 cSize;
2835
2835
 
@@ -2998,7 +2998,7 @@ static size_t ZSTDv05_decodeSeqHeaders(int* nbSeq, const BYTE** dumpsPtr, size_t
2998
2998
  FSEv05_DTable* DTableLL, FSEv05_DTable* DTableML, FSEv05_DTable* DTableOffb,
2999
2999
  const void* src, size_t srcSize, U32 flagStaticTable)
3000
3000
  {
3001
- const BYTE* const istart = (const BYTE* const)src;
3001
+ const BYTE* const istart = (const BYTE*)src;
3002
3002
  const BYTE* ip = istart;
3003
3003
  const BYTE* const iend = istart + srcSize;
3004
3004
  U32 LLtype, Offtype, MLtype;
@@ -3306,7 +3306,7 @@ static size_t ZSTDv05_decompressSequences(
3306
3306
  {
3307
3307
  const BYTE* ip = (const BYTE*)seqStart;
3308
3308
  const BYTE* const iend = ip + seqSize;
3309
- BYTE* const ostart = (BYTE* const)dst;
3309
+ BYTE* const ostart = (BYTE*)dst;
3310
3310
  BYTE* op = ostart;
3311
3311
  BYTE* const oend = ostart + maxDstSize;
3312
3312
  size_t errorCode, dumpsLength=0;
@@ -3419,7 +3419,7 @@ static size_t ZSTDv05_decompress_continueDCtx(ZSTDv05_DCtx* dctx,
3419
3419
  {
3420
3420
  const BYTE* ip = (const BYTE*)src;
3421
3421
  const BYTE* iend = ip + srcSize;
3422
- BYTE* const ostart = (BYTE* const)dst;
3422
+ BYTE* const ostart = (BYTE*)dst;
3423
3423
  BYTE* op = ostart;
3424
3424
  BYTE* const oend = ostart + maxDstSize;
3425
3425
  size_t remainingSize = srcSize;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -82,7 +82,11 @@ extern "C" {
82
82
  * Basic Types
83
83
  *****************************************************************/
84
84
  #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
85
- # include <stdint.h>
85
+ # if defined(_AIX)
86
+ # include <inttypes.h>
87
+ # else
88
+ # include <stdint.h> /* intptr_t */
89
+ # endif
86
90
  typedef uint8_t BYTE;
87
91
  typedef uint16_t U16;
88
92
  typedef int16_t S16;
@@ -118,10 +122,7 @@ extern "C" {
118
122
  * Prefer these methods in priority order (0 > 1 > 2)
119
123
  */
120
124
  #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
121
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
122
- # define MEM_FORCE_MEMORY_ACCESS 2
123
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
124
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
125
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
125
126
  # define MEM_FORCE_MEMORY_ACCESS 1
126
127
  # endif
127
128
  #endif
@@ -856,9 +857,8 @@ MEM_STATIC size_t BITv06_readBitsFast(BITv06_DStream_t* bitD, unsigned nbBits);
856
857
  MEM_STATIC unsigned BITv06_highbit32 ( U32 val)
857
858
  {
858
859
  # if defined(_MSC_VER) /* Visual */
859
- unsigned long r=0;
860
- _BitScanReverse ( &r, val );
861
- return (unsigned) r;
860
+ unsigned long r;
861
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
862
862
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
863
863
  return __builtin_clz (val) ^ 31;
864
864
  # else /* Software version */
@@ -3025,7 +3025,7 @@ typedef struct
3025
3025
  * Provides the size of compressed block from block header `src` */
3026
3026
  static size_t ZSTDv06_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr)
3027
3027
  {
3028
- const BYTE* const in = (const BYTE* const)src;
3028
+ const BYTE* const in = (const BYTE*)src;
3029
3029
  U32 cSize;
3030
3030
 
3031
3031
  if (srcSize < ZSTDv06_blockHeaderSize) return ERROR(srcSize_wrong);
@@ -3219,7 +3219,7 @@ static size_t ZSTDv06_decodeSeqHeaders(int* nbSeqPtr,
3219
3219
  FSEv06_DTable* DTableLL, FSEv06_DTable* DTableML, FSEv06_DTable* DTableOffb, U32 flagRepeatTable,
3220
3220
  const void* src, size_t srcSize)
3221
3221
  {
3222
- const BYTE* const istart = (const BYTE* const)src;
3222
+ const BYTE* const istart = (const BYTE*)src;
3223
3223
  const BYTE* const iend = istart + srcSize;
3224
3224
  const BYTE* ip = istart;
3225
3225
 
@@ -3441,7 +3441,7 @@ static size_t ZSTDv06_decompressSequences(
3441
3441
  {
3442
3442
  const BYTE* ip = (const BYTE*)seqStart;
3443
3443
  const BYTE* const iend = ip + seqSize;
3444
- BYTE* const ostart = (BYTE* const)dst;
3444
+ BYTE* const ostart = (BYTE*)dst;
3445
3445
  BYTE* const oend = ostart + maxDstSize;
3446
3446
  BYTE* op = ostart;
3447
3447
  const BYTE* litPtr = dctx->litPtr;
@@ -3557,7 +3557,7 @@ static size_t ZSTDv06_decompressFrame(ZSTDv06_DCtx* dctx,
3557
3557
  {
3558
3558
  const BYTE* ip = (const BYTE*)src;
3559
3559
  const BYTE* const iend = ip + srcSize;
3560
- BYTE* const ostart = (BYTE* const)dst;
3560
+ BYTE* const ostart = (BYTE*)dst;
3561
3561
  BYTE* op = ostart;
3562
3562
  BYTE* const oend = ostart + dstCapacity;
3563
3563
  size_t remainingSize = srcSize;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -242,7 +242,11 @@ extern "C" {
242
242
  * Basic Types
243
243
  *****************************************************************/
244
244
  #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
245
- # include <stdint.h>
245
+ # if defined(_AIX)
246
+ # include <inttypes.h>
247
+ # else
248
+ # include <stdint.h> /* intptr_t */
249
+ # endif
246
250
  typedef uint8_t BYTE;
247
251
  typedef uint16_t U16;
248
252
  typedef int16_t S16;
@@ -278,10 +282,7 @@ extern "C" {
278
282
  * Prefer these methods in priority order (0 > 1 > 2)
279
283
  */
280
284
  #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
281
- # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
282
- # define MEM_FORCE_MEMORY_ACCESS 2
283
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
284
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
285
+ # if defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__)
285
286
  # define MEM_FORCE_MEMORY_ACCESS 1
286
287
  # endif
287
288
  #endif
@@ -526,9 +527,8 @@ MEM_STATIC size_t BITv07_readBitsFast(BITv07_DStream_t* bitD, unsigned nbBits);
526
527
  MEM_STATIC unsigned BITv07_highbit32 (U32 val)
527
528
  {
528
529
  # if defined(_MSC_VER) /* Visual */
529
- unsigned long r=0;
530
- _BitScanReverse ( &r, val );
531
- return (unsigned) r;
530
+ unsigned long r;
531
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
532
532
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
533
533
  return __builtin_clz (val) ^ 31;
534
534
  # else /* Software version */
@@ -3254,7 +3254,7 @@ typedef struct
3254
3254
  * Provides the size of compressed block from block header `src` */
3255
3255
  static size_t ZSTDv07_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr)
3256
3256
  {
3257
- const BYTE* const in = (const BYTE* const)src;
3257
+ const BYTE* const in = (const BYTE*)src;
3258
3258
  U32 cSize;
3259
3259
 
3260
3260
  if (srcSize < ZSTDv07_blockHeaderSize) return ERROR(srcSize_wrong);
@@ -3449,7 +3449,7 @@ static size_t ZSTDv07_decodeSeqHeaders(int* nbSeqPtr,
3449
3449
  FSEv07_DTable* DTableLL, FSEv07_DTable* DTableML, FSEv07_DTable* DTableOffb, U32 flagRepeatTable,
3450
3450
  const void* src, size_t srcSize)
3451
3451
  {
3452
- const BYTE* const istart = (const BYTE* const)src;
3452
+ const BYTE* const istart = (const BYTE*)src;
3453
3453
  const BYTE* const iend = istart + srcSize;
3454
3454
  const BYTE* ip = istart;
3455
3455
 
@@ -3668,7 +3668,7 @@ static size_t ZSTDv07_decompressSequences(
3668
3668
  {
3669
3669
  const BYTE* ip = (const BYTE*)seqStart;
3670
3670
  const BYTE* const iend = ip + seqSize;
3671
- BYTE* const ostart = (BYTE* const)dst;
3671
+ BYTE* const ostart = (BYTE*)dst;
3672
3672
  BYTE* const oend = ostart + maxDstSize;
3673
3673
  BYTE* op = ostart;
3674
3674
  const BYTE* litPtr = dctx->litPtr;
@@ -3795,7 +3795,7 @@ static size_t ZSTDv07_decompressFrame(ZSTDv07_DCtx* dctx,
3795
3795
  {
3796
3796
  const BYTE* ip = (const BYTE*)src;
3797
3797
  const BYTE* const iend = ip + srcSize;
3798
- BYTE* const ostart = (BYTE* const)dst;
3798
+ BYTE* const ostart = (BYTE*)dst;
3799
3799
  BYTE* const oend = ostart + dstCapacity;
3800
3800
  BYTE* op = ostart;
3801
3801
  size_t remainingSize = srcSize;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Facebook, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -0,0 +1,185 @@
1
+ # ################################################################
2
+ # Copyright (c) Yann Collet, Facebook, Inc.
3
+ # All rights reserved.
4
+ #
5
+ # This source code is licensed under both the BSD-style license (found in the
6
+ # LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ # in the COPYING file in the root directory of this source tree).
8
+ # You may select, at your option, one of the above-listed licenses.
9
+ # ################################################################
10
+
11
+ ##################################################################
12
+ # Input Variables
13
+ ##################################################################
14
+
15
+ # Zstd lib directory
16
+ LIBZSTD ?= ./
17
+
18
+ # Legacy support
19
+ ZSTD_LEGACY_SUPPORT ?= 5
20
+ ZSTD_LEGACY_MULTITHREADED_API ?= 0
21
+
22
+ # Build size optimizations
23
+ HUF_FORCE_DECOMPRESS_X1 ?= 0
24
+ HUF_FORCE_DECOMPRESS_X2 ?= 0
25
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT ?= 0
26
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG ?= 0
27
+ ZSTD_NO_INLINE ?= 0
28
+ ZSTD_STRIP_ERROR_STRINGS ?= 0
29
+
30
+ # Assembly support
31
+ ZSTD_NO_ASM ?= 0
32
+
33
+ ##################################################################
34
+ # libzstd helpers
35
+ ##################################################################
36
+
37
+ # Make 4.3 doesn't support '\#' anymore (https://lwn.net/Articles/810071/)
38
+ NUM_SYMBOL := \#
39
+
40
+ # define silent mode as default (verbose mode with V=1 or VERBOSE=1)
41
+ $(V)$(VERBOSE).SILENT:
42
+
43
+ # When cross-compiling from linux to windows,
44
+ # one might need to specify TARGET_SYSTEM as "Windows."
45
+ # Building from Fedora fails without it.
46
+ # (but Ubuntu and Debian don't need to set anything)
47
+ TARGET_SYSTEM ?= $(OS)
48
+
49
+ # Version numbers
50
+ LIBVER_SRC := $(LIBZSTD)/zstd.h
51
+ LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
52
+ LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
53
+ LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
54
+ LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT)
55
+ LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT))
56
+ LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT))
57
+ LIBVER_PATCH := $(shell echo $(LIBVER_PATCH_SCRIPT))
58
+ LIBVER := $(shell echo $(LIBVER_SCRIPT))
59
+ CCVER := $(shell $(CC) --version)
60
+ ZSTD_VERSION?= $(LIBVER)
61
+
62
+ # ZSTD_LIB_MINIFY is a helper variable that
63
+ # configures a bunch of other variables to space-optimized defaults.
64
+ ZSTD_LIB_MINIFY ?= 0
65
+ ifneq ($(ZSTD_LIB_MINIFY), 0)
66
+ HAVE_CC_OZ ?= $(shell echo "" | $(CC) -Oz -x c -c - -o /dev/null 2> /dev/null && echo 1 || echo 0)
67
+ ZSTD_LEGACY_SUPPORT ?= 0
68
+ ZSTD_LIB_DEPRECATED ?= 0
69
+ HUF_FORCE_DECOMPRESS_X1 ?= 1
70
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT ?= 1
71
+ ZSTD_NO_INLINE ?= 1
72
+ ZSTD_STRIP_ERROR_STRINGS ?= 1
73
+ ifneq ($(HAVE_CC_OZ), 0)
74
+ # Some compilers (clang) support an even more space-optimized setting.
75
+ CFLAGS += -Oz
76
+ else
77
+ CFLAGS += -Os
78
+ endif
79
+ CFLAGS += -fno-stack-protector -fomit-frame-pointer -fno-ident \
80
+ -DDYNAMIC_BMI2=0 -DNDEBUG
81
+ else
82
+ CFLAGS += -O3
83
+ endif
84
+
85
+ DEBUGLEVEL ?= 0
86
+ CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -DDEBUGLEVEL=$(DEBUGLEVEL)
87
+ ifeq ($(TARGET_SYSTEM),Windows_NT) # MinGW assumed
88
+ CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting
89
+ endif
90
+ DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
91
+ -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
92
+ -Wstrict-prototypes -Wundef -Wpointer-arith \
93
+ -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
94
+ -Wredundant-decls -Wmissing-prototypes -Wc++-compat
95
+ CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
96
+ LDFLAGS += $(MOREFLAGS)
97
+ FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
98
+
99
+ HAVE_COLORNEVER = $(shell echo a | grep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0)
100
+ GREP_OPTIONS ?=
101
+ ifeq ($HAVE_COLORNEVER, 1)
102
+ GREP_OPTIONS += --color=never
103
+ endif
104
+ GREP = grep $(GREP_OPTIONS)
105
+ SED_ERE_OPT ?= -E
106
+
107
+ ZSTD_COMMON_FILES := $(sort $(wildcard $(LIBZSTD)/common/*.c))
108
+ ZSTD_COMPRESS_FILES := $(sort $(wildcard $(LIBZSTD)/compress/*.c))
109
+ ZSTD_DECOMPRESS_FILES := $(sort $(wildcard $(LIBZSTD)/decompress/*.c))
110
+ ZSTD_DICTBUILDER_FILES := $(sort $(wildcard $(LIBZSTD)/dictBuilder/*.c))
111
+ ZSTD_DEPRECATED_FILES := $(sort $(wildcard $(LIBZSTD)/deprecated/*.c))
112
+ ZSTD_LEGACY_FILES :=
113
+
114
+ ZSTD_DECOMPRESS_AMD64_ASM_FILES := $(sort $(wildcard $(LIBZSTD)/decompress/*_amd64.S))
115
+
116
+ ifneq ($(ZSTD_NO_ASM), 0)
117
+ CPPFLAGS += -DZSTD_DISABLE_ASM
118
+ else
119
+ # Unconditionally add the ASM files they are disabled by
120
+ # macros in the .S file.
121
+ ZSTD_DECOMPRESS_FILES += $(ZSTD_DECOMPRESS_AMD64_ASM_FILES)
122
+ endif
123
+
124
+ ifneq ($(HUF_FORCE_DECOMPRESS_X1), 0)
125
+ CFLAGS += -DHUF_FORCE_DECOMPRESS_X1
126
+ endif
127
+
128
+ ifneq ($(HUF_FORCE_DECOMPRESS_X2), 0)
129
+ CFLAGS += -DHUF_FORCE_DECOMPRESS_X2
130
+ endif
131
+
132
+ ifneq ($(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT), 0)
133
+ CFLAGS += -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT
134
+ endif
135
+
136
+ ifneq ($(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG), 0)
137
+ CFLAGS += -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG
138
+ endif
139
+
140
+ ifneq ($(ZSTD_NO_INLINE), 0)
141
+ CFLAGS += -DZSTD_NO_INLINE
142
+ endif
143
+
144
+ ifneq ($(ZSTD_STRIP_ERROR_STRINGS), 0)
145
+ CFLAGS += -DZSTD_STRIP_ERROR_STRINGS
146
+ endif
147
+
148
+ ifneq ($(ZSTD_LEGACY_MULTITHREADED_API), 0)
149
+ CFLAGS += -DZSTD_LEGACY_MULTITHREADED_API
150
+ endif
151
+
152
+ ifneq ($(ZSTD_LEGACY_SUPPORT), 0)
153
+ ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT) -lt 8; echo $$?), 0)
154
+ ZSTD_LEGACY_FILES += $(shell ls $(LIBZSTD)/legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
155
+ endif
156
+ endif
157
+ CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
158
+
159
+ UNAME := $(shell uname)
160
+
161
+ ifndef BUILD_DIR
162
+ ifeq ($(UNAME), Darwin)
163
+ ifeq ($(shell md5 < /dev/null > /dev/null; echo $$?), 0)
164
+ HASH ?= md5
165
+ endif
166
+ else ifeq ($(UNAME), FreeBSD)
167
+ HASH ?= gmd5sum
168
+ else ifeq ($(UNAME), NetBSD)
169
+ HASH ?= md5 -n
170
+ else ifeq ($(UNAME), OpenBSD)
171
+ HASH ?= md5
172
+ endif
173
+ HASH ?= md5sum
174
+
175
+ HASH_DIR = conf_$(shell echo $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(ZSTD_FILES) | $(HASH) | cut -f 1 -d " " )
176
+ HAVE_HASH :=$(shell echo 1 | $(HASH) > /dev/null && echo 1 || echo 0)
177
+ ifeq ($(HAVE_HASH),0)
178
+ $(info warning : could not find HASH ($(HASH)), needed to differentiate builds using different flags)
179
+ BUILD_DIR := obj/generic_noconf
180
+ endif
181
+ endif # BUILD_DIR
182
+
183
+ ZSTD_SUBDIR := $(LIBZSTD)/common $(LIBZSTD)/compress $(LIBZSTD)/decompress $(LIBZSTD)/dictBuilder $(LIBZSTD)/legacy $(LIBZSTD)/deprecated
184
+ vpath %.c $(ZSTD_SUBDIR)
185
+ vpath %.S $(ZSTD_SUBDIR)