extzstd 0.3.2 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -3
  3. data/contrib/zstd/CHANGELOG +225 -1
  4. data/contrib/zstd/CONTRIBUTING.md +158 -75
  5. data/contrib/zstd/LICENSE +4 -4
  6. data/contrib/zstd/Makefile +106 -69
  7. data/contrib/zstd/Package.swift +36 -0
  8. data/contrib/zstd/README.md +64 -36
  9. data/contrib/zstd/SECURITY.md +15 -0
  10. data/contrib/zstd/TESTING.md +2 -3
  11. data/contrib/zstd/lib/BUCK +5 -7
  12. data/contrib/zstd/lib/Makefile +117 -199
  13. data/contrib/zstd/lib/README.md +37 -7
  14. data/contrib/zstd/lib/common/allocations.h +55 -0
  15. data/contrib/zstd/lib/common/bits.h +200 -0
  16. data/contrib/zstd/lib/common/bitstream.h +80 -86
  17. data/contrib/zstd/lib/common/compiler.h +225 -63
  18. data/contrib/zstd/lib/common/cpu.h +37 -1
  19. data/contrib/zstd/lib/common/debug.c +7 -1
  20. data/contrib/zstd/lib/common/debug.h +21 -12
  21. data/contrib/zstd/lib/common/entropy_common.c +15 -37
  22. data/contrib/zstd/lib/common/error_private.c +9 -2
  23. data/contrib/zstd/lib/common/error_private.h +93 -5
  24. data/contrib/zstd/lib/common/fse.h +12 -87
  25. data/contrib/zstd/lib/common/fse_decompress.c +37 -117
  26. data/contrib/zstd/lib/common/huf.h +97 -172
  27. data/contrib/zstd/lib/common/mem.h +58 -58
  28. data/contrib/zstd/lib/common/pool.c +38 -17
  29. data/contrib/zstd/lib/common/pool.h +10 -4
  30. data/contrib/zstd/lib/common/portability_macros.h +158 -0
  31. data/contrib/zstd/lib/common/threading.c +74 -14
  32. data/contrib/zstd/lib/common/threading.h +5 -10
  33. data/contrib/zstd/lib/common/xxhash.c +6 -814
  34. data/contrib/zstd/lib/common/xxhash.h +6930 -195
  35. data/contrib/zstd/lib/common/zstd_common.c +1 -36
  36. data/contrib/zstd/lib/common/zstd_deps.h +1 -1
  37. data/contrib/zstd/lib/common/zstd_internal.h +68 -154
  38. data/contrib/zstd/lib/common/zstd_trace.h +163 -0
  39. data/contrib/zstd/lib/compress/clevels.h +134 -0
  40. data/contrib/zstd/lib/compress/fse_compress.c +75 -155
  41. data/contrib/zstd/lib/compress/hist.c +1 -1
  42. data/contrib/zstd/lib/compress/hist.h +1 -1
  43. data/contrib/zstd/lib/compress/huf_compress.c +810 -259
  44. data/contrib/zstd/lib/compress/zstd_compress.c +2864 -919
  45. data/contrib/zstd/lib/compress/zstd_compress_internal.h +523 -192
  46. data/contrib/zstd/lib/compress/zstd_compress_literals.c +117 -40
  47. data/contrib/zstd/lib/compress/zstd_compress_literals.h +16 -6
  48. data/contrib/zstd/lib/compress/zstd_compress_sequences.c +28 -19
  49. data/contrib/zstd/lib/compress/zstd_compress_sequences.h +1 -1
  50. data/contrib/zstd/lib/compress/zstd_compress_superblock.c +251 -412
  51. data/contrib/zstd/lib/compress/zstd_compress_superblock.h +1 -1
  52. data/contrib/zstd/lib/compress/zstd_cwksp.h +284 -97
  53. data/contrib/zstd/lib/compress/zstd_double_fast.c +382 -133
  54. data/contrib/zstd/lib/compress/zstd_double_fast.h +14 -2
  55. data/contrib/zstd/lib/compress/zstd_fast.c +732 -260
  56. data/contrib/zstd/lib/compress/zstd_fast.h +3 -2
  57. data/contrib/zstd/lib/compress/zstd_lazy.c +1177 -390
  58. data/contrib/zstd/lib/compress/zstd_lazy.h +129 -14
  59. data/contrib/zstd/lib/compress/zstd_ldm.c +280 -210
  60. data/contrib/zstd/lib/compress/zstd_ldm.h +3 -2
  61. data/contrib/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
  62. data/contrib/zstd/lib/compress/zstd_opt.c +516 -285
  63. data/contrib/zstd/lib/compress/zstd_opt.h +32 -8
  64. data/contrib/zstd/lib/compress/zstdmt_compress.c +202 -131
  65. data/contrib/zstd/lib/compress/zstdmt_compress.h +9 -6
  66. data/contrib/zstd/lib/decompress/huf_decompress.c +1149 -555
  67. data/contrib/zstd/lib/decompress/huf_decompress_amd64.S +595 -0
  68. data/contrib/zstd/lib/decompress/zstd_ddict.c +4 -4
  69. data/contrib/zstd/lib/decompress/zstd_ddict.h +1 -1
  70. data/contrib/zstd/lib/decompress/zstd_decompress.c +583 -106
  71. data/contrib/zstd/lib/decompress/zstd_decompress_block.c +1054 -379
  72. data/contrib/zstd/lib/decompress/zstd_decompress_block.h +14 -3
  73. data/contrib/zstd/lib/decompress/zstd_decompress_internal.h +56 -6
  74. data/contrib/zstd/lib/deprecated/zbuff.h +1 -1
  75. data/contrib/zstd/lib/deprecated/zbuff_common.c +1 -1
  76. data/contrib/zstd/lib/deprecated/zbuff_compress.c +24 -4
  77. data/contrib/zstd/lib/deprecated/zbuff_decompress.c +3 -1
  78. data/contrib/zstd/lib/dictBuilder/cover.c +60 -44
  79. data/contrib/zstd/lib/dictBuilder/cover.h +6 -11
  80. data/contrib/zstd/lib/dictBuilder/divsufsort.c +1 -1
  81. data/contrib/zstd/lib/dictBuilder/fastcover.c +26 -18
  82. data/contrib/zstd/lib/dictBuilder/zdict.c +100 -101
  83. data/contrib/zstd/lib/legacy/zstd_legacy.h +38 -1
  84. data/contrib/zstd/lib/legacy/zstd_v01.c +18 -53
  85. data/contrib/zstd/lib/legacy/zstd_v01.h +1 -1
  86. data/contrib/zstd/lib/legacy/zstd_v02.c +28 -85
  87. data/contrib/zstd/lib/legacy/zstd_v02.h +1 -1
  88. data/contrib/zstd/lib/legacy/zstd_v03.c +29 -88
  89. data/contrib/zstd/lib/legacy/zstd_v03.h +1 -1
  90. data/contrib/zstd/lib/legacy/zstd_v04.c +27 -80
  91. data/contrib/zstd/lib/legacy/zstd_v04.h +1 -1
  92. data/contrib/zstd/lib/legacy/zstd_v05.c +36 -85
  93. data/contrib/zstd/lib/legacy/zstd_v05.h +1 -1
  94. data/contrib/zstd/lib/legacy/zstd_v06.c +44 -96
  95. data/contrib/zstd/lib/legacy/zstd_v06.h +1 -1
  96. data/contrib/zstd/lib/legacy/zstd_v07.c +37 -92
  97. data/contrib/zstd/lib/legacy/zstd_v07.h +1 -1
  98. data/contrib/zstd/lib/libzstd.mk +237 -0
  99. data/contrib/zstd/lib/libzstd.pc.in +4 -3
  100. data/contrib/zstd/lib/module.modulemap +35 -0
  101. data/contrib/zstd/lib/{dictBuilder/zdict.h → zdict.h} +202 -33
  102. data/contrib/zstd/lib/zstd.h +1030 -332
  103. data/contrib/zstd/lib/{common/zstd_errors.h → zstd_errors.h} +27 -8
  104. data/ext/extconf.rb +26 -7
  105. data/ext/extzstd.c +51 -24
  106. data/ext/extzstd.h +33 -6
  107. data/ext/extzstd_stream.c +74 -31
  108. data/ext/libzstd_conf.h +0 -1
  109. data/ext/zstd_decompress_asm.S +1 -0
  110. metadata +17 -7
  111. data/contrib/zstd/appveyor.yml +0 -292
  112. data/ext/depend +0 -2
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Meta Platforms, Inc. and affiliates.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -24,6 +24,7 @@
24
24
  #define HUFv07_STATIC_LINKING_ONLY /* HUFv07_TABLELOG_ABSOLUTEMAX */
25
25
  #define ZSTDv07_STATIC_LINKING_ONLY
26
26
 
27
+ #include "../common/compiler.h"
27
28
  #include "../common/error_private.h"
28
29
 
29
30
 
@@ -184,7 +185,7 @@ ZSTDLIBv07_API size_t ZSTDv07_insertBlock(ZSTDv07_DCtx* dctx, const void* blockS
184
185
  low-level memory access routines
185
186
  Copyright (C) 2013-2015, Yann Collet.
186
187
 
187
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
188
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
188
189
 
189
190
  Redistribution and use in source and binary forms, with or without
190
191
  modification, are permitted provided that the following conditions are
@@ -227,15 +228,6 @@ extern "C" {
227
228
  # include <stdlib.h> /* _byteswap_ulong */
228
229
  # include <intrin.h> /* _byteswap_* */
229
230
  #endif
230
- #if defined(__GNUC__)
231
- # define MEM_STATIC static __attribute__((unused))
232
- #elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
233
- # define MEM_STATIC static inline
234
- #elif defined(_MSC_VER)
235
- # define MEM_STATIC static __inline
236
- #else
237
- # define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */
238
- #endif
239
231
 
240
232
 
241
233
  /*-**************************************************************
@@ -268,27 +260,6 @@ extern "C" {
268
260
  /*-**************************************************************
269
261
  * Memory I/O
270
262
  *****************************************************************/
271
- /* MEM_FORCE_MEMORY_ACCESS :
272
- * By default, access to unaligned memory is controlled by `memcpy()`, which is safe and portable.
273
- * Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal.
274
- * The below switch allow to select different access method for improved performance.
275
- * Method 0 (default) : use `memcpy()`. Safe and portable.
276
- * Method 1 : `__packed` statement. It depends on compiler extension (ie, not portable).
277
- * This method is safe if your compiler supports it, and *generally* as fast or faster than `memcpy`.
278
- * Method 2 : direct access. This method is portable but violate C standard.
279
- * It can generate buggy code on targets depending on alignment.
280
- * In some circumstances, it's the only known way to get the most performance (ie GCC + ARMv6)
281
- * See http://fastcompression.blogspot.fr/2015/08/accessing-unaligned-memory.html for details.
282
- * Prefer these methods in priority order (0 > 1 > 2)
283
- */
284
- #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
285
- # 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__) )
286
- # define MEM_FORCE_MEMORY_ACCESS 2
287
- # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
288
- (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
289
- # define MEM_FORCE_MEMORY_ACCESS 1
290
- # endif
291
- #endif
292
263
 
293
264
  MEM_STATIC unsigned MEM_32bits(void) { return sizeof(size_t)==4; }
294
265
  MEM_STATIC unsigned MEM_64bits(void) { return sizeof(size_t)==8; }
@@ -299,33 +270,6 @@ MEM_STATIC unsigned MEM_isLittleEndian(void)
299
270
  return one.c[0];
300
271
  }
301
272
 
302
- #if defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==2)
303
-
304
- /* violates C standard, by lying on structure alignment.
305
- Only use if no other choice to achieve best performance on target platform */
306
- MEM_STATIC U16 MEM_read16(const void* memPtr) { return *(const U16*) memPtr; }
307
- MEM_STATIC U32 MEM_read32(const void* memPtr) { return *(const U32*) memPtr; }
308
- MEM_STATIC U64 MEM_read64(const void* memPtr) { return *(const U64*) memPtr; }
309
-
310
- MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(U16*)memPtr = value; }
311
-
312
- #elif defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==1)
313
-
314
- /* __pack instructions are safer, but compiler specific, hence potentially problematic for some compilers */
315
- /* currently only defined for gcc and icc */
316
- typedef union { U16 u16; U32 u32; U64 u64; size_t st; } __attribute__((packed)) unalign;
317
-
318
- MEM_STATIC U16 MEM_read16(const void* ptr) { return ((const unalign*)ptr)->u16; }
319
- MEM_STATIC U32 MEM_read32(const void* ptr) { return ((const unalign*)ptr)->u32; }
320
- MEM_STATIC U64 MEM_read64(const void* ptr) { return ((const unalign*)ptr)->u64; }
321
-
322
- MEM_STATIC void MEM_write16(void* memPtr, U16 value) { ((unalign*)memPtr)->u16 = value; }
323
-
324
- #else
325
-
326
- /* default method, safe and standard.
327
- can sometimes prove slower */
328
-
329
273
  MEM_STATIC U16 MEM_read16(const void* memPtr)
330
274
  {
331
275
  U16 val; memcpy(&val, memPtr, sizeof(val)); return val;
@@ -346,8 +290,6 @@ MEM_STATIC void MEM_write16(void* memPtr, U16 value)
346
290
  memcpy(memPtr, &value, sizeof(value));
347
291
  }
348
292
 
349
- #endif /* MEM_FORCE_MEMORY_ACCESS */
350
-
351
293
  MEM_STATIC U32 MEM_swap32(U32 in)
352
294
  {
353
295
  #if defined(_MSC_VER) /* Visual Studio */
@@ -442,7 +384,7 @@ MEM_STATIC size_t MEM_readLEST(const void* memPtr)
442
384
  header file (to include)
443
385
  Copyright (C) 2013-2016, Yann Collet.
444
386
 
445
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
387
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
446
388
 
447
389
  Redistribution and use in source and binary forms, with or without
448
390
  modification, are permitted provided that the following conditions are
@@ -530,9 +472,8 @@ MEM_STATIC size_t BITv07_readBitsFast(BITv07_DStream_t* bitD, unsigned nbBits);
530
472
  MEM_STATIC unsigned BITv07_highbit32 (U32 val)
531
473
  {
532
474
  # if defined(_MSC_VER) /* Visual */
533
- unsigned long r=0;
534
- _BitScanReverse ( &r, val );
535
- return (unsigned) r;
475
+ unsigned long r;
476
+ return _BitScanReverse(&r, val) ? (unsigned)r : 0;
536
477
  # elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */
537
478
  return __builtin_clz (val) ^ 31;
538
479
  # else /* Software version */
@@ -600,7 +541,7 @@ MEM_STATIC size_t BITv07_initDStream(BITv07_DStream_t* bitD, const void* srcBuff
600
541
  }
601
542
 
602
543
  /*! BITv07_lookBitsFast() :
603
- * unsafe version; only works only if nbBits >= 1 */
544
+ * unsafe version; only works if nbBits >= 1 */
604
545
  MEM_STATIC size_t BITv07_lookBitsFast(const BITv07_DStream_t* bitD, U32 nbBits)
605
546
  {
606
547
  U32 const bitMask = sizeof(bitD->bitContainer)*8 - 1;
@@ -620,7 +561,7 @@ MEM_STATIC size_t BITv07_readBits(BITv07_DStream_t* bitD, U32 nbBits)
620
561
  }
621
562
 
622
563
  /*! BITv07_readBitsFast() :
623
- * unsafe version; only works only if nbBits >= 1 */
564
+ * unsafe version; only works if nbBits >= 1 */
624
565
  MEM_STATIC size_t BITv07_readBitsFast(BITv07_DStream_t* bitD, U32 nbBits)
625
566
  {
626
567
  size_t const value = BITv07_lookBitsFast(bitD, nbBits);
@@ -674,7 +615,7 @@ MEM_STATIC unsigned BITv07_endOfDStream(const BITv07_DStream_t* DStream)
674
615
  Public Prototypes declaration
675
616
  Copyright (C) 2013-2016, Yann Collet.
676
617
 
677
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
618
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
678
619
 
679
620
  Redistribution and use in source and binary forms, with or without
680
621
  modification, are permitted provided that the following conditions are
@@ -982,7 +923,7 @@ MEM_STATIC BYTE FSEv07_decodeSymbolFast(FSEv07_DState_t* DStatePtr, BITv07_DStre
982
923
  header file
983
924
  Copyright (C) 2013-2016, Yann Collet.
984
925
 
985
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
926
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
986
927
 
987
928
  Redistribution and use in source and binary forms, with or without
988
929
  modification, are permitted provided that the following conditions are
@@ -1155,7 +1096,7 @@ size_t HUFv07_decompress1X4_usingDTable(void* dst, size_t maxDstSize, const void
1155
1096
  Common functions of New Generation Entropy library
1156
1097
  Copyright (C) 2016, Yann Collet.
1157
1098
 
1158
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
1099
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
1159
1100
 
1160
1101
  Redistribution and use in source and binary forms, with or without
1161
1102
  modification, are permitted provided that the following conditions are
@@ -1379,7 +1320,7 @@ size_t HUFv07_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats,
1379
1320
  FSE : Finite State Entropy decoder
1380
1321
  Copyright (C) 2013-2015, Yann Collet.
1381
1322
 
1382
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
1323
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
1383
1324
 
1384
1325
  Redistribution and use in source and binary forms, with or without
1385
1326
  modification, are permitted provided that the following conditions are
@@ -1703,7 +1644,7 @@ size_t FSEv07_decompress(void* dst, size_t maxDstSize, const void* cSrc, size_t
1703
1644
  Huffman decoder, part of New Generation Entropy library
1704
1645
  Copyright (C) 2013-2016, Yann Collet.
1705
1646
 
1706
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
1647
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
1707
1648
 
1708
1649
  Redistribution and use in source and binary forms, with or without
1709
1650
  modification, are permitted provided that the following conditions are
@@ -2581,7 +2522,7 @@ size_t HUFv07_decompress1X_DCtx (HUFv07_DTable* dctx, void* dst, size_t dstSize,
2581
2522
  Common functions of Zstd compression library
2582
2523
  Copyright (C) 2015-2016, Yann Collet.
2583
2524
 
2584
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
2525
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
2585
2526
 
2586
2527
  Redistribution and use in source and binary forms, with or without
2587
2528
  modification, are permitted provided that the following conditions are
@@ -2605,7 +2546,7 @@ size_t HUFv07_decompress1X_DCtx (HUFv07_DTable* dctx, void* dst, size_t dstSize,
2605
2546
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2606
2547
 
2607
2548
  You can contact the author at :
2608
- - zstd homepage : http://www.zstd.net/
2549
+ - zstd homepage : https://facebook.github.io/zstd/
2609
2550
  */
2610
2551
 
2611
2552
 
@@ -2651,7 +2592,7 @@ static void ZSTDv07_defaultFreeFunction(void* opaque, void* address)
2651
2592
  Header File for include
2652
2593
  Copyright (C) 2014-2016, Yann Collet.
2653
2594
 
2654
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
2595
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
2655
2596
 
2656
2597
  Redistribution and use in source and binary forms, with or without
2657
2598
  modification, are permitted provided that the following conditions are
@@ -2721,7 +2662,7 @@ typedef enum { bt_compressed, bt_raw, bt_rle, bt_end } blockType_t;
2721
2662
  #define MIN_SEQUENCES_SIZE 1 /* nbSeq==0 */
2722
2663
  #define MIN_CBLOCK_SIZE (1 /*litCSize*/ + 1 /* RLE or RAW */ + MIN_SEQUENCES_SIZE /* nbSeq==0 */) /* for a non-null block */
2723
2664
 
2724
- #define HufLog 12
2665
+ #define ZSTD_HUFFDTABLE_CAPACITY_LOG 12
2725
2666
  typedef enum { lbt_huffman, lbt_repeat, lbt_raw, lbt_rle } litBlockType_t;
2726
2667
 
2727
2668
  #define LONGNBSEQ 0x7F00
@@ -2858,7 +2799,7 @@ static const ZSTDv07_customMem defaultCustomMem = { ZSTDv07_defaultAllocFunction
2858
2799
  zstd - standard compression library
2859
2800
  Copyright (C) 2014-2016, Yann Collet.
2860
2801
 
2861
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
2802
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
2862
2803
 
2863
2804
  Redistribution and use in source and binary forms, with or without
2864
2805
  modification, are permitted provided that the following conditions are
@@ -2882,7 +2823,7 @@ static const ZSTDv07_customMem defaultCustomMem = { ZSTDv07_defaultAllocFunction
2882
2823
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2883
2824
 
2884
2825
  You can contact the author at :
2885
- - zstd homepage : http://www.zstd.net
2826
+ - zstd homepage : https://facebook.github.io/zstd
2886
2827
  */
2887
2828
 
2888
2829
  /* ***************************************************************
@@ -2935,7 +2876,7 @@ struct ZSTDv07_DCtx_s
2935
2876
  FSEv07_DTable LLTable[FSEv07_DTABLE_SIZE_U32(LLFSELog)];
2936
2877
  FSEv07_DTable OffTable[FSEv07_DTABLE_SIZE_U32(OffFSELog)];
2937
2878
  FSEv07_DTable MLTable[FSEv07_DTABLE_SIZE_U32(MLFSELog)];
2938
- HUFv07_DTable hufTable[HUFv07_DTABLE_SIZE(HufLog)]; /* can accommodate HUFv07_decompress4X */
2879
+ HUFv07_DTable hufTable[HUFv07_DTABLE_SIZE(ZSTD_HUFFDTABLE_CAPACITY_LOG)]; /* can accommodate HUFv07_decompress4X */
2939
2880
  const void* previousDstEnd;
2940
2881
  const void* base;
2941
2882
  const void* vBase;
@@ -2971,7 +2912,7 @@ size_t ZSTDv07_decompressBegin(ZSTDv07_DCtx* dctx)
2971
2912
  dctx->base = NULL;
2972
2913
  dctx->vBase = NULL;
2973
2914
  dctx->dictEnd = NULL;
2974
- dctx->hufTable[0] = (HUFv07_DTable)((HufLog)*0x1000001);
2915
+ dctx->hufTable[0] = (HUFv07_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001);
2975
2916
  dctx->litEntropy = dctx->fseEntropy = 0;
2976
2917
  dctx->dictID = 0;
2977
2918
  { int i; for (i=0; i<ZSTDv07_REP_NUM; i++) dctx->rep[i] = repStartValue[i]; }
@@ -3258,7 +3199,7 @@ typedef struct
3258
3199
  * Provides the size of compressed block from block header `src` */
3259
3200
  static size_t ZSTDv07_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr)
3260
3201
  {
3261
- const BYTE* const in = (const BYTE* const)src;
3202
+ const BYTE* const in = (const BYTE*)src;
3262
3203
  U32 cSize;
3263
3204
 
3264
3205
  if (srcSize < ZSTDv07_blockHeaderSize) return ERROR(srcSize_wrong);
@@ -3453,7 +3394,7 @@ static size_t ZSTDv07_decodeSeqHeaders(int* nbSeqPtr,
3453
3394
  FSEv07_DTable* DTableLL, FSEv07_DTable* DTableML, FSEv07_DTable* DTableOffb, U32 flagRepeatTable,
3454
3395
  const void* src, size_t srcSize)
3455
3396
  {
3456
- const BYTE* const istart = (const BYTE* const)src;
3397
+ const BYTE* const istart = (const BYTE*)src;
3457
3398
  const BYTE* const iend = istart + srcSize;
3458
3399
  const BYTE* ip = istart;
3459
3400
 
@@ -3603,11 +3544,14 @@ size_t ZSTDv07_execSequence(BYTE* op,
3603
3544
  const BYTE* match = oLitEnd - sequence.offset;
3604
3545
 
3605
3546
  /* check */
3606
- if ((oLitEnd>oend_w) | (oMatchEnd>oend)) return ERROR(dstSize_tooSmall); /* last match must start at a minimum distance of WILDCOPY_OVERLENGTH from oend */
3607
- if (iLitEnd > litLimit) return ERROR(corruption_detected); /* over-read beyond lit buffer */
3547
+ assert(oend >= op);
3548
+ if (sequence.litLength + WILDCOPY_OVERLENGTH > (size_t)(oend - op)) return ERROR(dstSize_tooSmall);
3549
+ if (sequenceLength > (size_t)(oend - op)) return ERROR(dstSize_tooSmall);
3550
+ assert(litLimit >= *litPtr);
3551
+ if (sequence.litLength > (size_t)(litLimit - *litPtr)) return ERROR(corruption_detected);;
3608
3552
 
3609
3553
  /* copy Literals */
3610
- ZSTDv07_wildcopy(op, *litPtr, sequence.litLength); /* note : since oLitEnd <= oend-WILDCOPY_OVERLENGTH, no risk of overwrite beyond oend */
3554
+ ZSTDv07_wildcopy(op, *litPtr, (ptrdiff_t)sequence.litLength); /* note : since oLitEnd <= oend-WILDCOPY_OVERLENGTH, no risk of overwrite beyond oend */
3611
3555
  op = oLitEnd;
3612
3556
  *litPtr = iLitEnd; /* update for next sequence */
3613
3557
 
@@ -3621,7 +3565,7 @@ size_t ZSTDv07_execSequence(BYTE* op,
3621
3565
  return sequenceLength;
3622
3566
  }
3623
3567
  /* span extDict & currentPrefixSegment */
3624
- { size_t const length1 = dictEnd - match;
3568
+ { size_t const length1 = (size_t)(dictEnd - match);
3625
3569
  memmove(oLitEnd, match, length1);
3626
3570
  op = oLitEnd + length1;
3627
3571
  sequence.matchLength -= length1;
@@ -3672,7 +3616,7 @@ static size_t ZSTDv07_decompressSequences(
3672
3616
  {
3673
3617
  const BYTE* ip = (const BYTE*)seqStart;
3674
3618
  const BYTE* const iend = ip + seqSize;
3675
- BYTE* const ostart = (BYTE* const)dst;
3619
+ BYTE* const ostart = (BYTE*)dst;
3676
3620
  BYTE* const oend = ostart + maxDstSize;
3677
3621
  BYTE* op = ostart;
3678
3622
  const BYTE* litPtr = dctx->litPtr;
@@ -3799,7 +3743,7 @@ static size_t ZSTDv07_decompressFrame(ZSTDv07_DCtx* dctx,
3799
3743
  {
3800
3744
  const BYTE* ip = (const BYTE*)src;
3801
3745
  const BYTE* const iend = ip + srcSize;
3802
- BYTE* const ostart = (BYTE* const)dst;
3746
+ BYTE* const ostart = (BYTE*)dst;
3803
3747
  BYTE* const oend = ostart + dstCapacity;
3804
3748
  BYTE* op = ostart;
3805
3749
  size_t remainingSize = srcSize;
@@ -4063,8 +4007,8 @@ size_t ZSTDv07_decompressContinue(ZSTDv07_DCtx* dctx, void* dst, size_t dstCapac
4063
4007
  }
4064
4008
  dctx->stage = ZSTDds_decodeBlockHeader;
4065
4009
  dctx->expected = ZSTDv07_blockHeaderSize;
4066
- dctx->previousDstEnd = (char*)dst + rSize;
4067
4010
  if (ZSTDv07_isError(rSize)) return rSize;
4011
+ dctx->previousDstEnd = (char*)dst + rSize;
4068
4012
  if (dctx->fParams.checksumFlag) XXH64_update(&dctx->xxhState, dst, rSize);
4069
4013
  return rSize;
4070
4014
  }
@@ -4257,7 +4201,7 @@ ZSTDLIBv07_API size_t ZSTDv07_decompress_usingDDict(ZSTDv07_DCtx* dctx,
4257
4201
  Buffered version of Zstd compression library
4258
4202
  Copyright (C) 2015-2016, Yann Collet.
4259
4203
 
4260
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
4204
+ BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
4261
4205
 
4262
4206
  Redistribution and use in source and binary forms, with or without
4263
4207
  modification, are permitted provided that the following conditions are
@@ -4281,7 +4225,7 @@ ZSTDLIBv07_API size_t ZSTDv07_decompress_usingDDict(ZSTDv07_DCtx* dctx,
4281
4225
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4282
4226
 
4283
4227
  You can contact the author at :
4284
- - zstd homepage : http://www.zstd.net/
4228
+ - zstd homepage : https://facebook.github.io/zstd/
4285
4229
  */
4286
4230
 
4287
4231
 
@@ -4421,7 +4365,8 @@ size_t ZBUFFv07_decompressContinue(ZBUFFv07_DCtx* zbd,
4421
4365
  if (hSize != 0) {
4422
4366
  size_t const toLoad = hSize - zbd->lhSize; /* if hSize!=0, hSize > zbd->lhSize */
4423
4367
  if (toLoad > (size_t)(iend-ip)) { /* not enough input to load full header */
4424
- memcpy(zbd->headerBuffer + zbd->lhSize, ip, iend-ip);
4368
+ if (ip != NULL)
4369
+ memcpy(zbd->headerBuffer + zbd->lhSize, ip, iend-ip);
4425
4370
  zbd->lhSize += iend-ip;
4426
4371
  *dstCapacityPtr = 0;
4427
4372
  return (hSize - zbd->lhSize) + ZSTDv07_blockHeaderSize; /* remaining header bytes + next block header */
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Yann Collet, Meta Platforms, Inc. and affiliates.
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,237 @@
1
+ # ################################################################
2
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
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
+ # This included Makefile provides the following variables :
12
+ # LIB_SRCDIR, LIB_BINDIR
13
+
14
+ # Ensure the file is not included twice
15
+ # Note : must be included after setting the default target
16
+ ifndef LIBZSTD_MK_INCLUDED
17
+ LIBZSTD_MK_INCLUDED := 1
18
+
19
+ ##################################################################
20
+ # Input Variables
21
+ ##################################################################
22
+
23
+ # By default, library's directory is same as this included makefile
24
+ LIB_SRCDIR ?= $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
25
+ LIB_BINDIR ?= $(LIBSRC_DIR)
26
+
27
+ # ZSTD_LIB_MINIFY is a helper variable that
28
+ # configures a bunch of other variables to space-optimized defaults.
29
+ ZSTD_LIB_MINIFY ?= 0
30
+
31
+ # Legacy support
32
+ ifneq ($(ZSTD_LIB_MINIFY), 0)
33
+ ZSTD_LEGACY_SUPPORT ?= 0
34
+ else
35
+ ZSTD_LEGACY_SUPPORT ?= 5
36
+ endif
37
+ ZSTD_LEGACY_MULTITHREADED_API ?= 0
38
+
39
+ # Build size optimizations
40
+ ifneq ($(ZSTD_LIB_MINIFY), 0)
41
+ HUF_FORCE_DECOMPRESS_X1 ?= 1
42
+ HUF_FORCE_DECOMPRESS_X2 ?= 0
43
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT ?= 1
44
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG ?= 0
45
+ ZSTD_NO_INLINE ?= 1
46
+ ZSTD_STRIP_ERROR_STRINGS ?= 1
47
+ else
48
+ HUF_FORCE_DECOMPRESS_X1 ?= 0
49
+ HUF_FORCE_DECOMPRESS_X2 ?= 0
50
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT ?= 0
51
+ ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG ?= 0
52
+ ZSTD_NO_INLINE ?= 0
53
+ ZSTD_STRIP_ERROR_STRINGS ?= 0
54
+ endif
55
+
56
+ # Assembly support
57
+ ZSTD_NO_ASM ?= 0
58
+
59
+ ZSTD_LIB_EXCLUDE_COMPRESSORS_DFAST_AND_UP ?= 0
60
+ ZSTD_LIB_EXCLUDE_COMPRESSORS_GREEDY_AND_UP ?= 0
61
+
62
+ ##################################################################
63
+ # libzstd helpers
64
+ ##################################################################
65
+
66
+ VOID ?= /dev/null
67
+
68
+ # Make 4.3 doesn't support '\#' anymore (https://lwn.net/Articles/810071/)
69
+ NUM_SYMBOL := \#
70
+
71
+ # define silent mode as default (verbose mode with V=1 or VERBOSE=1)
72
+ # Note : must be defined _after_ the default target
73
+ $(V)$(VERBOSE).SILENT:
74
+
75
+ # When cross-compiling from linux to windows,
76
+ # one might need to specify TARGET_SYSTEM as "Windows."
77
+ # Building from Fedora fails without it.
78
+ # (but Ubuntu and Debian don't need to set anything)
79
+ TARGET_SYSTEM ?= $(OS)
80
+
81
+ # Version numbers
82
+ LIBVER_SRC := $(LIB_SRCDIR)/zstd.h
83
+ LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
84
+ LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
85
+ LIBVER_PATCH_SCRIPT:=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < $(LIBVER_SRC)`
86
+ LIBVER_SCRIPT:= $(LIBVER_MAJOR_SCRIPT).$(LIBVER_MINOR_SCRIPT).$(LIBVER_PATCH_SCRIPT)
87
+ LIBVER_MAJOR := $(shell echo $(LIBVER_MAJOR_SCRIPT))
88
+ LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT))
89
+ LIBVER_PATCH := $(shell echo $(LIBVER_PATCH_SCRIPT))
90
+ LIBVER := $(shell echo $(LIBVER_SCRIPT))
91
+ CCVER := $(shell $(CC) --version)
92
+ ZSTD_VERSION?= $(LIBVER)
93
+
94
+ ifneq ($(ZSTD_LIB_MINIFY), 0)
95
+ HAVE_CC_OZ ?= $(shell echo "" | $(CC) -Oz -x c -c - -o /dev/null 2> /dev/null && echo 1 || echo 0)
96
+ ifneq ($(HAVE_CC_OZ), 0)
97
+ # Some compilers (clang) support an even more space-optimized setting.
98
+ CFLAGS += -Oz
99
+ else
100
+ CFLAGS += -Os
101
+ endif
102
+ CFLAGS += -fno-stack-protector -fomit-frame-pointer -fno-ident \
103
+ -DDYNAMIC_BMI2=0 -DNDEBUG
104
+ else
105
+ CFLAGS ?= -O3
106
+ endif
107
+
108
+ DEBUGLEVEL ?= 0
109
+ CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -DDEBUGLEVEL=$(DEBUGLEVEL)
110
+ ifeq ($(TARGET_SYSTEM),Windows_NT) # MinGW assumed
111
+ CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting
112
+ endif
113
+ DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
114
+ -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
115
+ -Wstrict-prototypes -Wundef -Wpointer-arith \
116
+ -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
117
+ -Wredundant-decls -Wmissing-prototypes -Wc++-compat
118
+ CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
119
+ ASFLAGS += $(DEBUGFLAGS) $(MOREFLAGS) $(CFLAGS)
120
+ LDFLAGS += $(MOREFLAGS)
121
+ FLAGS = $(CPPFLAGS) $(CFLAGS) $(ASFLAGS) $(LDFLAGS)
122
+
123
+ ifndef ALREADY_APPENDED_NOEXECSTACK
124
+ export ALREADY_APPENDED_NOEXECSTACK := 1
125
+ ifeq ($(shell echo "int main(int argc, char* argv[]) { (void)argc; (void)argv; return 0; }" | $(CC) $(FLAGS) -z noexecstack -x c -Werror - -o $(VOID) 2>$(VOID) && echo 1 || echo 0),1)
126
+ LDFLAGS += -z noexecstack
127
+ endif
128
+ ifeq ($(shell echo | $(CC) $(FLAGS) -Wa,--noexecstack -x assembler -Werror -c - -o $(VOID) 2>$(VOID) && echo 1 || echo 0),1)
129
+ CFLAGS += -Wa,--noexecstack
130
+ # CFLAGS are also added to ASFLAGS
131
+ else ifeq ($(shell echo | $(CC) $(FLAGS) -Qunused-arguments -Wa,--noexecstack -x assembler -Werror -c - -o $(VOID) 2>$(VOID) && echo 1 || echo 0),1)
132
+ # See e.g.: https://github.com/android/ndk/issues/171
133
+ CFLAGS += -Qunused-arguments -Wa,--noexecstack
134
+ # CFLAGS are also added to ASFLAGS
135
+ endif
136
+ endif
137
+
138
+ ifeq ($(shell echo "int main(int argc, char* argv[]) { (void)argc; (void)argv; return 0; }" | $(CC) $(FLAGS) -z cet-report=error -x c -Werror - -o $(VOID) 2>$(VOID) && echo 1 || echo 0),1)
139
+ LDFLAGS += -z cet-report=error
140
+ endif
141
+
142
+ HAVE_COLORNEVER = $(shell echo a | grep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0)
143
+ GREP_OPTIONS ?=
144
+ ifeq ($(HAVE_COLORNEVER), 1)
145
+ GREP_OPTIONS += --color=never
146
+ endif
147
+ GREP = grep $(GREP_OPTIONS)
148
+
149
+ ZSTD_COMMON_FILES := $(sort $(wildcard $(LIB_SRCDIR)/common/*.c))
150
+ ZSTD_COMPRESS_FILES := $(sort $(wildcard $(LIB_SRCDIR)/compress/*.c))
151
+ ZSTD_DECOMPRESS_FILES := $(sort $(wildcard $(LIB_SRCDIR)/decompress/*.c))
152
+ ZSTD_DICTBUILDER_FILES := $(sort $(wildcard $(LIB_SRCDIR)/dictBuilder/*.c))
153
+ ZSTD_DEPRECATED_FILES := $(sort $(wildcard $(LIB_SRCDIR)/deprecated/*.c))
154
+ ZSTD_LEGACY_FILES :=
155
+
156
+ ZSTD_DECOMPRESS_AMD64_ASM_FILES := $(sort $(wildcard $(LIB_SRCDIR)/decompress/*_amd64.S))
157
+
158
+ ifneq ($(ZSTD_NO_ASM), 0)
159
+ CPPFLAGS += -DZSTD_DISABLE_ASM
160
+ else
161
+ # Unconditionally add the ASM files they are disabled by
162
+ # macros in the .S file.
163
+ ZSTD_DECOMPRESS_FILES += $(ZSTD_DECOMPRESS_AMD64_ASM_FILES)
164
+ endif
165
+
166
+ ifneq ($(HUF_FORCE_DECOMPRESS_X1), 0)
167
+ CFLAGS += -DHUF_FORCE_DECOMPRESS_X1
168
+ endif
169
+
170
+ ifneq ($(HUF_FORCE_DECOMPRESS_X2), 0)
171
+ CFLAGS += -DHUF_FORCE_DECOMPRESS_X2
172
+ endif
173
+
174
+ ifneq ($(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT), 0)
175
+ CFLAGS += -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT
176
+ endif
177
+
178
+ ifneq ($(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG), 0)
179
+ CFLAGS += -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG
180
+ endif
181
+
182
+ ifneq ($(ZSTD_NO_INLINE), 0)
183
+ CFLAGS += -DZSTD_NO_INLINE
184
+ endif
185
+
186
+ ifneq ($(ZSTD_STRIP_ERROR_STRINGS), 0)
187
+ CFLAGS += -DZSTD_STRIP_ERROR_STRINGS
188
+ endif
189
+
190
+ ifneq ($(ZSTD_LEGACY_MULTITHREADED_API), 0)
191
+ CFLAGS += -DZSTD_LEGACY_MULTITHREADED_API
192
+ endif
193
+
194
+ ifneq ($(ZSTD_LIB_EXCLUDE_COMPRESSORS_DFAST_AND_UP), 0)
195
+ CFLAGS += -DZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR
196
+ else
197
+ ifneq ($(ZSTD_LIB_EXCLUDE_COMPRESSORS_GREEDY_AND_UP), 0)
198
+ CFLAGS += -DZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR -DZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR
199
+ endif
200
+ endif
201
+
202
+ ifneq ($(ZSTD_LEGACY_SUPPORT), 0)
203
+ ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT) -lt 8; echo $$?), 0)
204
+ ZSTD_LEGACY_FILES += $(shell ls $(LIB_SRCDIR)/legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
205
+ endif
206
+ endif
207
+ CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
208
+
209
+ UNAME := $(shell uname)
210
+
211
+ ifndef BUILD_DIR
212
+ ifeq ($(UNAME), Darwin)
213
+ ifeq ($(shell md5 < /dev/null > /dev/null; echo $$?), 0)
214
+ HASH ?= md5
215
+ endif
216
+ else ifeq ($(UNAME), FreeBSD)
217
+ HASH ?= gmd5sum
218
+ else ifeq ($(UNAME), NetBSD)
219
+ HASH ?= md5 -n
220
+ else ifeq ($(UNAME), OpenBSD)
221
+ HASH ?= md5
222
+ endif
223
+ HASH ?= md5sum
224
+
225
+ HASH_DIR = conf_$(shell echo $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(ZSTD_FILES) | $(HASH) | cut -f 1 -d " " )
226
+ HAVE_HASH :=$(shell echo 1 | $(HASH) > /dev/null && echo 1 || echo 0)
227
+ ifeq ($(HAVE_HASH),0)
228
+ $(info warning : could not find HASH ($(HASH)), needed to differentiate builds using different flags)
229
+ BUILD_DIR := obj/generic_noconf
230
+ endif
231
+ endif # BUILD_DIR
232
+
233
+ ZSTD_SUBDIR := $(LIB_SRCDIR)/common $(LIB_SRCDIR)/compress $(LIB_SRCDIR)/decompress $(LIB_SRCDIR)/dictBuilder $(LIB_SRCDIR)/legacy $(LIB_SRCDIR)/deprecated
234
+ vpath %.c $(ZSTD_SUBDIR)
235
+ vpath %.S $(ZSTD_SUBDIR)
236
+
237
+ endif # LIBZSTD_MK_INCLUDED
@@ -1,6 +1,6 @@
1
1
  # ZSTD - standard compression algorithm
2
- # Copyright (C) 2014-2016, Yann Collet, Facebook
3
- # BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
2
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ # BSD 2-Clause License (https://opensource.org/licenses/bsd-license.php)
4
4
 
5
5
  prefix=@PREFIX@
6
6
  exec_prefix=@EXEC_PREFIX@
@@ -9,7 +9,8 @@ libdir=@LIBDIR@
9
9
 
10
10
  Name: zstd
11
11
  Description: fast lossless compression algorithm library
12
- URL: http://www.zstd.net/
12
+ URL: https://facebook.github.io/zstd/
13
13
  Version: @VERSION@
14
14
  Libs: -L${libdir} -lzstd
15
+ Libs.private: @LIBS_PRIVATE@
15
16
  Cflags: -I${includedir}
@@ -0,0 +1,35 @@
1
+ module libzstd [extern_c] {
2
+ header "zstd.h"
3
+ export *
4
+ config_macros [exhaustive] \
5
+ /* zstd.h */ \
6
+ ZSTD_STATIC_LINKING_ONLY, \
7
+ ZSTDLIB_VISIBILITY, \
8
+ ZSTDLIB_VISIBLE, \
9
+ ZSTDLIB_HIDDEN, \
10
+ ZSTD_DLL_EXPORT, \
11
+ ZSTDLIB_STATIC_API, \
12
+ ZSTD_DISABLE_DEPRECATE_WARNINGS, \
13
+ ZSTD_CLEVEL_DEFAULT, \
14
+ /* zdict.h */ \
15
+ ZDICT_STATIC_LINKING_ONLY, \
16
+ ZDICTLIB_VISIBLE, \
17
+ ZDICTLIB_HIDDEN, \
18
+ ZDICTLIB_VISIBILITY, \
19
+ ZDICTLIB_STATIC_API, \
20
+ ZDICT_DISABLE_DEPRECATE_WARNINGS, \
21
+ /* zstd_errors.h */ \
22
+ ZSTDERRORLIB_VISIBLE, \
23
+ ZSTDERRORLIB_HIDDEN, \
24
+ ZSTDERRORLIB_VISIBILITY
25
+
26
+ module dictbuilder [extern_c] {
27
+ header "zdict.h"
28
+ export *
29
+ }
30
+
31
+ module errors [extern_c] {
32
+ header "zstd_errors.h"
33
+ export *
34
+ }
35
+ }