-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cf4910a
commit 1f7a6f1
Showing
85 changed files
with
23,085 additions
and
6 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Set the default behavior | ||
* text eol=lf | ||
|
||
# Explicitly declare source files | ||
*.c text eol=lf | ||
*.h text eol=lf | ||
|
||
# Denote files that should not be modified. | ||
*.odt binary | ||
*.png binary | ||
# Visual Studio | ||
*.sln binary | ||
*.suo binary | ||
*.vcxproj* binary | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
language: c | ||
compiler: gcc | ||
script: make test-travis | ||
before_install: | ||
- sudo apt-get update -qq | ||
- sudo apt-get install -qq gcc-arm-linux-gnueabi | ||
- sudo apt-get install -qq clang | ||
- sudo apt-get install -qq g++-multilib | ||
- sudo apt-get install -qq gcc-multilib | ||
- sudo apt-get install -qq valgrind | ||
- sudo apt-get install -qq python3 | ||
|
||
env: | ||
- LZ4_TRAVIS_CI_ENV=travis-install | ||
- LZ4_TRAVIS_CI_ENV=examples | ||
- LZ4_TRAVIS_CI_ENV=cmake | ||
- LZ4_TRAVIS_CI_ENV=clangtest | ||
- LZ4_TRAVIS_CI_ENV=sanitize | ||
- LZ4_TRAVIS_CI_ENV=staticAnalyze | ||
- LZ4_TRAVIS_CI_ENV=gpptest | ||
- LZ4_TRAVIS_CI_ENV=armtest | ||
- LZ4_TRAVIS_CI_ENV=versionsTest | ||
- LZ4_TRAVIS_CI_ENV=test-lz4 | ||
- LZ4_TRAVIS_CI_ENV=test-lz4c | ||
- LZ4_TRAVIS_CI_ENV=test-lz4c32 | ||
- LZ4_TRAVIS_CI_ENV=test-fullbench | ||
- LZ4_TRAVIS_CI_ENV=test-fullbench32 | ||
- LZ4_TRAVIS_CI_ENV=test-fuzzer | ||
- LZ4_TRAVIS_CI_ENV=test-fuzzer32 | ||
- LZ4_TRAVIS_CI_ENV=test-frametest | ||
- LZ4_TRAVIS_CI_ENV=test-frametest32 | ||
- LZ4_TRAVIS_CI_ENV=test-mem | ||
|
||
matrix: | ||
fast_finish: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
# ################################################################ | ||
# LZ4 - Makefile | ||
# Copyright (C) Yann Collet 2011-2015 | ||
# All rights reserved. | ||
# | ||
# BSD license | ||
# Redistribution and use in source and binary forms, with or without modification, | ||
# are permitted provided that the following conditions are met: | ||
# | ||
# * Redistributions of source code must retain the above copyright notice, this | ||
# list of conditions and the following disclaimer. | ||
# | ||
# * Redistributions in binary form must reproduce the above copyright notice, this | ||
# list of conditions and the following disclaimer in the documentation and/or | ||
# other materials provided with the distribution. | ||
# | ||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR | ||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
# | ||
# You can contact the author at : | ||
# - LZ4 source repository : https://github.com/Cyan4973/lz4 | ||
# - LZ4 forum froup : https://groups.google.com/forum/#!forum/lz4c | ||
# ################################################################ | ||
|
||
# Version number | ||
export VERSION=131 | ||
export RELEASE=r$(VERSION) | ||
|
||
DESTDIR?= | ||
PREFIX ?= /usr/local | ||
|
||
LIBDIR ?= $(PREFIX)/lib | ||
INCLUDEDIR=$(PREFIX)/include | ||
PRGDIR = programs | ||
LZ4DIR = lib | ||
|
||
|
||
# Select test target for Travis CI's Build Matrix | ||
ifneq (,$(filter test-%,$(LZ4_TRAVIS_CI_ENV))) | ||
TRAVIS_TARGET=prg-travis | ||
else | ||
TRAVIS_TARGET=$(LZ4_TRAVIS_CI_ENV) | ||
endif | ||
|
||
# Define nul output | ||
ifneq (,$(filter Windows%,$(OS))) | ||
VOID = nul | ||
else | ||
VOID = /dev/null | ||
endif | ||
|
||
|
||
.PHONY: default all lib lz4programs clean test versionsTest | ||
|
||
default: lz4programs | ||
|
||
all: lib | ||
@cd $(PRGDIR); $(MAKE) -e all | ||
|
||
lib: | ||
@cd $(LZ4DIR); $(MAKE) -e all | ||
|
||
lz4programs: | ||
@cd $(PRGDIR); $(MAKE) -e | ||
|
||
clean: | ||
@cd $(PRGDIR); $(MAKE) clean > $(VOID) | ||
@cd $(LZ4DIR); $(MAKE) clean > $(VOID) | ||
@cd examples; $(MAKE) clean > $(VOID) | ||
@cd versionsTest; $(MAKE) clean > $(VOID) | ||
@echo Cleaning completed | ||
|
||
|
||
#------------------------------------------------------------------------ | ||
#make install is validated only for Linux, OSX, kFreeBSD and Hurd targets | ||
ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU)) | ||
|
||
install: | ||
@cd $(LZ4DIR); $(MAKE) -e install | ||
@cd $(PRGDIR); $(MAKE) -e install | ||
|
||
uninstall: | ||
@cd $(LZ4DIR); $(MAKE) uninstall | ||
@cd $(PRGDIR); $(MAKE) uninstall | ||
|
||
travis-install: | ||
sudo $(MAKE) install | ||
|
||
test: | ||
@cd $(PRGDIR); $(MAKE) -e test | ||
|
||
test-travis: $(TRAVIS_TARGET) | ||
|
||
cmake: | ||
@cd cmake_unofficial; cmake CMakeLists.txt; $(MAKE) | ||
|
||
gpptest: clean | ||
$(MAKE) all CC=g++ CFLAGS="-O3 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror" | ||
|
||
clangtest: clean | ||
$(MAKE) all CC=clang CPPFLAGS="-Werror -Wconversion -Wno-sign-conversion" | ||
|
||
sanitize: clean | ||
$(MAKE) test CC=clang CPPFLAGS="-g -fsanitize=undefined" FUZZER_TIME="-T1mn" NB_LOOPS=-i1 | ||
|
||
staticAnalyze: clean | ||
CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all | ||
|
||
armtest: clean | ||
cd lib; $(MAKE) -e all CC=arm-linux-gnueabi-gcc CPPFLAGS="-Werror" | ||
cd programs; $(MAKE) -e bins CC=arm-linux-gnueabi-gcc CPPFLAGS="-Werror" | ||
|
||
versionsTest: clean | ||
@cd versionsTest; $(MAKE) | ||
|
||
examples: | ||
cd lib; $(MAKE) -e | ||
cd programs; $(MAKE) -e lz4 | ||
cd examples; $(MAKE) -e test | ||
|
||
prg-travis: | ||
@cd $(PRGDIR); $(MAKE) -e test-travis | ||
|
||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,178 @@ | ||
r131 | ||
New : Dos/DJGPP target, thanks to Louis Santillan (#114) | ||
Added : Example using lz4frame library, by Zbigniew Jędrzejewski-Szmek (#118) | ||
Changed: xxhash symbols are modified (namespace emulation) within liblz4 | ||
|
||
r130: | ||
Fixed : incompatibility sparse mode vs console, reported by Yongwoon Cho (#105) | ||
Fixed : LZ4IO exits too early when frame crc not present, reported by Yongwoon Cho (#106) | ||
Fixed : incompatibility sparse mode vs append mode, reported by Takayuki Matsuoka (#110) | ||
Performance fix : big compression speed boost for clang (+30%) | ||
New : cross-version test, by Takayuki Matsuoka | ||
|
||
r129: | ||
Added : LZ4_compress_fast(), LZ4_compress_fast_continue() | ||
Added : LZ4_compress_destSize() | ||
Changed: New lz4 and lz4hc compression API. Previous function prototypes still supported. | ||
Changed: Sparse file support enabled by default | ||
New : LZ4 CLI improved performance compressing/decompressing multiple files (#86, kind contribution from Kyle J. Harper & Takayuki Matsuoka) | ||
Fixed : GCC 4.9+ optimization bug - Reported by Markus Trippelsdorf, Greg Slazinski & Evan Nemerson | ||
Changed: Enums converted to LZ4F_ namespace convention - by Takayuki Matsuoka | ||
Added : AppVeyor CI environment, for Visual tests - Suggested by Takayuki Matsuoka | ||
Modified:Obsolete functions generate warnings - Suggested by Evan Nemerson, contributed by Takayuki Matsuoka | ||
Fixed : Bug #75 (unfinished stream), reported by Yongwoon Cho | ||
Updated: Documentation converted to MarkDown format | ||
|
||
r128: | ||
New : lz4cli sparse file support (Requested by Neil Wilson, and contributed by Takayuki Matsuoka) | ||
New : command -m, to compress multiple files in a single command (suggested by Kyle J. Harper) | ||
Fixed : Restored lz4hc compression ratio (slightly lower since r124) | ||
New : lz4 cli supports long commands (suggested by Takayuki Matsuoka) | ||
New : lz4frame & lz4cli frame content size support | ||
New : lz4frame supports skippable frames, as requested by Sergey Cherepanov | ||
Changed: Default "make install" directory is /usr/local, as notified by Ron Johnson | ||
New : lz4 cli supports "pass-through" mode, requested by Neil Wilson | ||
New : datagen can generate sparse files | ||
New : scan-build tests, thanks to kind help by Takayuki Matsuoka | ||
New : g++ compatibility tests | ||
New : arm cross-compilation test, thanks to kind help by Takayuki Matsuoka | ||
Fixed : Fuzzer + frametest compatibility with NetBSD (issue #48, reported by Thomas Klausner) | ||
Added : Visual project directory | ||
Updated: Man page & Specification | ||
|
||
r127: | ||
N/A : added a file on SVN | ||
|
||
r126: | ||
New : lz4frame API is now integrated into liblz4 | ||
Fixed : GCC 4.9 bug on highest performance settings, reported by Greg Slazinski | ||
Fixed : bug within LZ4 HC streaming mode, reported by James Boyle | ||
Fixed : older compiler don't like nameless unions, reported by Cheyi Lin | ||
Changed : lz4 is C90 compatible | ||
Changed : added -pedantic option, fixed a few mminor warnings | ||
|
||
r125: | ||
Changed : endian and alignment code | ||
Changed : directory structure : new "lib" directory | ||
Updated : lz4io, now uses lz4frame | ||
Improved: slightly improved decoding speed | ||
Fixed : LZ4_compress_limitedOutput(); Special thanks to Christopher Speller ! | ||
Fixed : some alignment warnings under clang | ||
Fixed : deprecated function LZ4_slideInputBufferHC() | ||
|
||
r124: | ||
New : LZ4 HC streaming mode | ||
Fixed : LZ4F_compressBound() using null preferencesPtr | ||
Updated : xxHash to r38 | ||
Updated library number, to 1.4.0 | ||
|
||
r123: | ||
Added : experimental lz4frame API, thanks to Takayuki Matsuoka and Christopher Jackson for testings | ||
Fix : s390x support, thanks to Nobuhiro Iwamatsu | ||
Fix : test mode (-t) no longer requires confirmation, thanks to Thary Nguyen | ||
|
||
r122: | ||
Fix : AIX & AIX64 support (SamG) | ||
Fix : mips 64-bits support (lew van) | ||
Added : Examples directory, using code examples from Takayuki Matsuoka | ||
Updated : Framing specification, to v1.4.1 | ||
Updated : xxHash, to r36 | ||
|
||
r121: | ||
Added : Makefile : install for kFreeBSD and Hurd (Nobuhiro Iwamatsu) | ||
Fix : Makefile : install for OS-X and BSD, thanks to Takayuki Matsuoka | ||
|
||
r120: | ||
Modified : Streaming API, using strong types | ||
Added : LZ4_versionNumber(), thanks to Takayuki Matsuoka | ||
Fix : OS-X : library install name, thanks to Clemens Lang | ||
Updated : Makefile : synchronize library version number with lz4.h, thanks to Takayuki Matsuoka | ||
Updated : Makefile : stricter compilation flags | ||
Added : pkg-config, thanks to Zbigniew Jędrzejewski-Szmek (issue 135) | ||
Makefile : lz4-test only test native binaries, as suggested by Michał Górny (issue 136) | ||
Updated : xxHash to r35 | ||
|
||
r119: | ||
Fix : Issue 134 : extended malicious address space overflow in 32-bits mode for some specific configurations | ||
|
||
r118: | ||
New : LZ4 Streaming API (Fast version), special thanks to Takayuki Matsuoka | ||
New : datagen : parametrable synthetic data generator for tests | ||
Improved : fuzzer, support more test cases, more parameters, ability to jump to specific test | ||
fix : support ppc64le platform (issue 131) | ||
fix : Issue 52 (malicious address space overflow in 32-bits mode when using large custom format) | ||
fix : Makefile : minor issue 130 : header files permissions | ||
|
||
r117: | ||
Added : man pages for lz4c and lz4cat | ||
Added : automated tests on Travis, thanks to Takayuki Matsuoka ! | ||
fix : block-dependency command line (issue 127) | ||
fix : lz4fullbench (issue 128) | ||
|
||
r116: | ||
hotfix (issue 124 & 125) | ||
|
||
r115: | ||
Added : lz4cat utility, installed on POSX systems (issue 118) | ||
OS-X compatible compilation of dynamic library (issue 115) | ||
|
||
r114: | ||
Makefile : library correctly compiled with -O3 switch (issue 114) | ||
Makefile : library compilation compatible with clang | ||
Makefile : library is versioned and linked (issue 119) | ||
lz4.h : no more static inline prototypes (issue 116) | ||
man : improved header/footer (issue 111) | ||
Makefile : Use system default $(CC) & $(MAKE) variables (issue 112) | ||
xxhash : updated to r34 | ||
|
||
r113: | ||
Large decompression speed improvement for GCC 32-bits. Thanks to Valery Croizier ! | ||
LZ4HC : Compression Level is now a programmable parameter (CLI from 4 to 9) | ||
Separated IO routines from command line (lz4io.c) | ||
Version number into lz4.h (suggested by Francesc Alted) | ||
|
||
r112: | ||
quickfix | ||
|
||
r111 : | ||
Makefile : added capability to install libraries | ||
Modified Directory tree, to better separate libraries from programs. | ||
|
||
r110 : | ||
lz4 & lz4hc : added capability to allocate state & stream state with custom allocator (issue 99) | ||
fuzzer & fullbench : updated to test new functions | ||
man : documented -l command (Legacy format, for Linux kernel compression) (issue 102) | ||
cmake : improved version by Mika Attila, building programs and libraries (issue 100) | ||
xxHash : updated to r33 | ||
Makefile : clean also delete local package .tar.gz | ||
|
||
r109 : | ||
lz4.c : corrected issue 98 (LZ4_compress_limitedOutput()) | ||
Makefile : can specify version number from makefile | ||
|
||
r108 : | ||
lz4.c : corrected compression efficiency issue 97 in 64-bits chained mode (-BD) for streams > 4 GB (thanks Roman Strashkin for reporting) | ||
|
||
r107 : | ||
Makefile : support DESTDIR for staged installs. Thanks Jorge Aparicio. | ||
Makefile : make install installs both lz4 and lz4c (Jorge Aparicio) | ||
Makefile : removed -Wno-implicit-declaration compilation switch | ||
lz4cli.c : include <stduni.h> for isatty() (Luca Barbato) | ||
lz4.h : introduced LZ4_MAX_INPUT_SIZE constant (Shay Green) | ||
lz4.h : LZ4_compressBound() : unified macro and inline definitions (Shay Green) | ||
lz4.h : LZ4_decompressSafe_partial() : clarify comments (Shay Green) | ||
lz4.c : LZ4_compress() verify input size condition (Shay Green) | ||
bench.c : corrected a bug in free memory size evaluation | ||
cmake : install into bin/ directory (Richard Yao) | ||
cmake : check for just C compiler (Elan Ruusamae) | ||
|
||
r106 : | ||
Makefile : make dist modify text files in the package to respect Unix EoL convention | ||
lz4cli.c : corrected small display bug in HC mode | ||
|
||
r105 : | ||
Makefile : New install script and man page, contributed by Prasad Pandit | ||
lz4cli.c : Minor modifications, for easier extensibility | ||
COPYING : added license file | ||
LZ4_Streaming_Format.odt : modified file name to remove white space characters | ||
Makefile : .exe suffix now properly added only for Windows target |
Oops, something went wrong.