diff --git a/.travis.yml b/.travis.yml index 22271cde9..42f0043b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,27 +19,65 @@ matrix: # Standard Ubuntu 12.04 LTS Server Edition 64 bit - os: linux sudo: required - env: PLATFORM="Ubuntu 12.04" CMD="make gppinstall gpptest && make clean && make libc6install gnu90test && make clean && make c99test && make clean && make gnu99test && make clean && make clangtest" + env: PLATFORM="Ubuntu 12.04" CMD="make gpptest && make clean && make gnu90test && make clean && make c99test && make clean && make gnu99test && make clean && make clangtest" + addons: + apt: + packages: + - libc6-dev-i386 + - g++-multilib - os: linux sudo: required - env: PLATFORM="Ubuntu 12.04" CMD="make arminstall armtest" + env: PLATFORM="Ubuntu 12.04" CMD="make armtest" + addons: + apt: + packages: + - gcc-arm-linux-gnueabi + - libc6-dev-armel-cross + - linux-libc-dev-armel-cross + - binfmt-support + - qemu + - qemu-user-static - os: linux sudo: required - env: PLATFORM="Ubuntu 12.04" CMD="make libc6install && make -C programs test32" + env: PLATFORM="Ubuntu 12.04" CMD="make -C programs test32" + addons: + apt: + packages: + - libc6-dev-i386 + - gcc-multilib - os: linux sudo: required env: PLATFORM="Ubuntu 12.04" CMD="make -C tests versionsTest" - os: linux sudo: required - env: PLATFORM="Ubuntu 12.04" CMD="make libc6install asan32" + env: PLATFORM="Ubuntu 12.04" CMD="make asan32" + addons: + apt: + packages: + - libc6-dev-i386 + - gcc-multilib - os: linux sudo: required - env: PLATFORM="Ubuntu 12.04" CMD="make valgrindinstall && make -C programs valgrindTest" + env: PLATFORM="Ubuntu 12.04" CMD="make -C programs valgrindTest" + addons: + apt: + packages: + - valgrind # Ubuntu 14.04 LTS Server Edition 64 bit - os: linux dist: trusty sudo: required - env: PLATFORM="Ubuntu 14.04" CMD="make zlibwrapper && make clean && make gcc5install gcc5test && make clean && make gcc6install gcc6test && make clean && make ppcinstall ppctest" + env: PLATFORM="Ubuntu 14.04" CMD="make zlibwrapper && make clean && make gcc5test && make clean && make gcc6test && sudo apt-get install -y -q qemu-system-ppc binfmt-support qemu-user-static gcc-powerpc-linux-gnu && make clean && make ppctest" + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-multilib + - gcc-5 + - gcc-5-multilib + - gcc-6 + - gcc-6-multilib # OS X Mavericks - os: osx env: PLATFORM="OS X Mavericks" CMD="make gnu90test && make clean && make test && make clean && make travis-install" diff --git a/Makefile b/Makefile index 6e83f33a9..32f063f0c 100644 --- a/Makefile +++ b/Makefile @@ -174,37 +174,3 @@ bmi32test: clean staticAnalyze: clean CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all endif - - -#------------------------------------------------------------------------ -# for Travis CI -#------------------------------------------------------------------------ -libc6install: - sudo apt-get install -y -qq libc6-dev-i386 - -gppinstall: - sudo apt-get install -y -qq g++-multilib - -gcc5install: - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt-get update -y -qq - sudo apt-get install -y -qq gcc-5-multilib - -gcc6install: - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt-get update -y -qq - sudo apt-get install -y -qq gcc-6-multilib - -arminstall: clean - sudo apt-get install -y -q qemu binfmt-support qemu-user-static gcc-arm-linux-gnueabi - -ppcinstall: clean - sudo apt-get install -y -q qemu-system-ppc binfmt-support qemu-user-static gcc-powerpc-linux-gnu # doesn't work with Ubuntu 12.04 - -ppc64install: clean # compilation works but cannot be executed - sudo apt-get install -y -q qemu-system-ppc binfmt-support qemu-user-static gcc-powerpc-linux-gnu - update-binfmts --displ - -valgrindinstall: - echo sudo apt-get install -y -qq valgrind - sudo apt-get install -y -qq valgrind diff --git a/programs/Makefile b/programs/Makefile index a51d438b5..9c70f868b 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -54,10 +54,12 @@ FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) ZSTDCOMMON_FILES := $(ZSTDDIR)/common/*.c ZSTDCOMP_FILES := $(ZSTDDIR)/compress/zstd_compress.c $(ZSTDDIR)/compress/fse_compress.c $(ZSTDDIR)/compress/huf_compress.c -ZSTDDECOMP_FILES := $(ZSTDDIR)/decompress/zstd_decompress.o $(ZSTDDIR)/decompress/huf_decompress.c +ZSTDDECOMP_FILES := $(ZSTDDIR)/decompress/huf_decompress.c ZSTD_FILES := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES) ZBUFF_FILES := $(ZSTDDIR)/compress/zbuff_compress.c $(ZSTDDIR)/decompress/zbuff_decompress.c ZDICT_FILES := $(ZSTDDIR)/dictBuilder/*.c +ZSTDDECOMP_O = $(ZSTDDIR)/decompress/zstd_decompress.o +ZSTDDECOMP32_O = $(ZSTDDIR)/decompress/zstd_decompress32.o ifeq ($(ZSTD_LEGACY_SUPPORT), 0) CPPFLAGS += -DZSTD_LEGACY_SUPPORT=0 @@ -86,21 +88,25 @@ ZSTDRTTEST= --test-large-data default: zstd -all: zstd fullbench fuzzer zbufftest paramgrill datagen +all: zstd fullbench fuzzer zbufftest zstreamtest paramgrill datagen -all32: CFLAGS += -m32 -all32: EXT := 32$(EXT) -all32: cleano32 all +all32: cleano32 zstd32 fullbench32 fuzzer32 zbufftest32 zstreamtest32 -$(ZSTDDIR)/decompress/zstd_decompress.o: CFLAGS += $(ALIGN_LOOP) -zstd : $(ZSTD_FILES) $(ZSTDLEGACY_FILES) $(ZDICT_FILES) \ +$(ZSTDDECOMP_O): $(ZSTDDIR)/decompress/zstd_decompress.c + $(CC) $(ALIGN_LOOP) $(FLAGS) $^ -c -o $@ + +$(ZSTDDECOMP32_O): $(ZSTDDIR)/decompress/zstd_decompress.c + $(CC) -m32 $(ALIGN_LOOP) $(FLAGS) $^ -c -o $@ + +zstd : $(ZSTDDECOMP_O) $(ZSTD_FILES) $(ZSTDLEGACY_FILES) $(ZDICT_FILES) \ zstdcli.c fileio.c bench.c datagen.c dibio.c $(CC) $(FLAGS) -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT) $^ -o $@$(EXT) -zstd32: CFLAGS += -m32 -zstd32: EXT := 32$(EXT) -zstd32: zstd +zstd32 : $(ZSTDDECOMP32_O) $(ZSTD_FILES) $(ZSTDLEGACY_FILES) $(ZDICT_FILES) \ + zstdcli.c fileio.c bench.c datagen.c dibio.c + $(CC) -m32 $(FLAGS) -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT) $^ -o $@$(EXT) + zstd_nolegacy : $(MAKE) zstd ZSTD_LEGACY_SUPPORT=0 @@ -116,7 +122,7 @@ zstd-pgo : clean zstd rm zstd $(MAKE) zstd MOREFLAGS=-fprofile-use -zstd-frugal: $(ZSTD_FILES) zstdcli.c fileio.c +zstd-frugal: $(ZSTDDECOMP_O) $(ZSTD_FILES) zstdcli.c fileio.c $(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_LEGACY_SUPPORT=0 $^ -o zstd$(EXT) zstd-compress: $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES) \ @@ -130,42 +136,39 @@ zstd-decompress: $(ZSTDCOMMON_FILES) $(ZSTDDECOMP_FILES) \ zstd-small: clean CFLAGS="-Os -s" $(MAKE) zstd-frugal -fullbench : $(ZSTD_FILES) $(ZBUFF_FILES) datagen.c fullbench.c +fullbench : $(ZSTDDECOMP_O) $(ZSTD_FILES) $(ZBUFF_FILES) datagen.c fullbench.c $(CC) $(FLAGS) $^ -o $@$(EXT) -fullbench32 : CFLAGS += -m32 -fullbench32 : EXT := 32$(EXT) -fullbench32 : fullbench +fullbench32 : $(ZSTDDECOMP32_O) $(ZSTD_FILES) $(ZBUFF_FILES) datagen.c fullbench.c + $(CC) -m32 $(FLAGS) $^ -o $@$(EXT) fuzzer : CPPFLAGS += -I$(ZSTDDIR)/dictBuilder -fuzzer : $(ZSTD_FILES) $(ZDICT_FILES) datagen.c fuzzer.c +fuzzer : $(ZSTDDECOMP_O) $(ZSTD_FILES) $(ZDICT_FILES) datagen.c fuzzer.c $(CC) $(FLAGS) $^ -o $@$(EXT) -fuzzer32 : CFLAGS += -m32 -fuzzer32 : EXT := 32$(EXT) -fuzzer32 : fuzzer +fuzzer32 : CPPFLAGS += -I$(ZSTDDIR)/dictBuilder +fuzzer32 : $(ZSTDDECOMP32_O) $(ZSTD_FILES) $(ZDICT_FILES) datagen.c fuzzer.c + $(CC) -m32 $(FLAGS) $^ -o $@$(EXT) -zbufftest : $(ZSTD_FILES) $(ZBUFF_FILES) datagen.c zbufftest.c +zbufftest : $(ZSTDDECOMP_O) $(ZSTD_FILES) $(ZBUFF_FILES) datagen.c zbufftest.c $(CC) $(FLAGS) $^ -o $@$(EXT) -zbufftest32 : CFLAGS += -m32 -zbufftest32 : EXT := 32$(EXT) -zbufftest32 : zbufftest +zbufftest32 : $(ZSTDDECOMP32_O) $(ZSTD_FILES) $(ZBUFF_FILES) datagen.c zbufftest.c + $(CC) -m32 $(FLAGS) $^ -o $@$(EXT) -zstreamtest : $(ZSTD_FILES) datagen.c zstreamtest.c +zstreamtest : $(ZSTDDECOMP_O) $(ZSTD_FILES) datagen.c zstreamtest.c $(CC) $(FLAGS) $^ -o $@$(EXT) -zstreamtest32 : CFLAGS += -m32 -zstreamtest32 : EXT := 32$(EXT) -zstreamtest32 : zstreamtest +zstreamtest32 : $(ZSTDDECOMP32_O) $(ZSTD_FILES) datagen.c zstreamtest.c + $(CC) -m32 $(FLAGS) $^ -o $@$(EXT) -paramgrill : $(ZSTD_FILES) datagen.c paramgrill.c +paramgrill : $(ZSTDDECOMP_O) $(ZSTD_FILES) datagen.c paramgrill.c $(CC) $(FLAGS) $^ -lm -o $@$(EXT) datagen : datagen.c datagencli.c $(CC) $(FLAGS) $^ -o $@$(EXT) -roundTripCrash : $(ZSTD_FILES) roundTripCrash.c +roundTripCrash : $(ZSTDDECOMP_O) $(ZSTD_FILES) roundTripCrash.c $(CC) $(FLAGS) $^ -o $@$(EXT) clean: diff --git a/programs/fileio.c b/programs/fileio.c index cda5dd43d..39a1ae9da 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -41,11 +41,12 @@ * Compiler Options ***************************************/ #ifdef _MSC_VER /* Visual */ -# define _POSIX_SOURCE 1 /* enable %llu on Windows */ # define _CRT_SECURE_NO_WARNINGS /* removes Visual warning on strerror() */ # pragma warning(disable : 4204) /* non-constant aggregate initializer */ #endif - +#if defined(__MINGW32__) && !defined(_POSIX_SOURCE) +# define _POSIX_SOURCE 1 /* disable %llu warnings with MinGW on Windows */ +#endif /*-************************************* * Includes