From 156ab8f4a18b0335a770efbe9ba2b2f003521e3c Mon Sep 17 00:00:00 2001 From: inikep Date: Wed, 17 Aug 2016 14:17:54 +0200 Subject: [PATCH 1/5] APT dependencies moved from Makefile to .travis.yml --- .travis.yml | 44 ++++++++++++++++++++++++++++++++++++++------ Makefile | 34 ---------------------------------- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/.travis.yml b/.travis.yml index 22271cde9..f980c9727 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,27 +19,59 @@ 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 - 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 - 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 - 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 && make clean && make ppcinstall ppctest" + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-5-multilib + - gcc-6-multilib + - qemu-system-ppc + - gcc-powerpc-linux-gnu # 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 From 78f3e0630bc4948b4ce323fa0beaf19330fbb350 Mon Sep 17 00:00:00 2001 From: inikep Date: Wed, 17 Aug 2016 14:52:11 +0200 Subject: [PATCH 2/5] disabled %llu warnings with MinGW on Windows --- .travis.yml | 6 +++++- programs/fileio.c | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index f980c9727..81773ae50 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,7 @@ matrix: - gcc-arm-linux-gnueabi - libc6-dev-armel-cross - linux-libc-dev-armel-cross + - binfmt-support - os: linux sudo: required env: PLATFORM="Ubuntu 12.04" CMD="make -C programs test32" @@ -41,6 +42,7 @@ matrix: apt: packages: - libc6-dev-i386 + - gcc-multilib - os: linux sudo: required env: PLATFORM="Ubuntu 12.04" CMD="make -C tests versionsTest" @@ -51,6 +53,7 @@ matrix: apt: packages: - libc6-dev-i386 + - gcc-multilib - os: linux sudo: required env: PLATFORM="Ubuntu 12.04" CMD="make -C programs valgrindTest" @@ -62,12 +65,13 @@ matrix: - os: linux dist: trusty sudo: required - env: PLATFORM="Ubuntu 14.04" CMD="make zlibwrapper && make clean && make gcc5test && make clean && make gcc6test && make clean && make ppcinstall ppctest" + env: PLATFORM="Ubuntu 14.04" CMD="make zlibwrapper && make clean && make gcc5test && make clean && make gcc6test && make clean && make ppctest" addons: apt: sources: - ubuntu-toolchain-r-test packages: + - gcc-multilib - gcc-5-multilib - gcc-6-multilib - qemu-system-ppc diff --git a/programs/fileio.c b/programs/fileio.c index 04d5a71ac..c64a14cf7 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 From d0c270fe85a8ddda10e943ee3b42044fe6b4d137 Mon Sep 17 00:00:00 2001 From: inikep Date: Wed, 17 Aug 2016 15:59:50 +0200 Subject: [PATCH 3/5] improved programs\Makefile --- .travis.yml | 5 +++++ programs/Makefile | 55 +++++++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index 81773ae50..d421eb98d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,8 @@ matrix: - 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 -C programs test32" @@ -72,9 +74,12 @@ matrix: - ubuntu-toolchain-r-test packages: - gcc-multilib + - gcc-4.8-multilib-powerpc-linux-gnu - gcc-5-multilib - gcc-6-multilib + - binfmt-support - qemu-system-ppc + - qemu-user-static - gcc-powerpc-linux-gnu # OS X Mavericks - os: osx diff --git a/programs/Makefile b/programs/Makefile index a51d438b5..f5efd0837 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 @@ -130,34 +136,31 @@ 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 $(CC) $(FLAGS) $^ -lm -o $@$(EXT) From 79b4062c81f87777f474c762edade5ab2a7ff183 Mon Sep 17 00:00:00 2001 From: inikep Date: Wed, 17 Aug 2016 16:29:57 +0200 Subject: [PATCH 4/5] fixed paramgrill dependency --- .travis.yml | 7 ++++--- programs/Makefile | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index d421eb98d..86208f66e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,14 +73,15 @@ matrix: sources: - ubuntu-toolchain-r-test packages: - - gcc-multilib - - gcc-4.8-multilib-powerpc-linux-gnu - gcc-5-multilib - gcc-6-multilib - - binfmt-support - qemu-system-ppc - qemu-user-static - gcc-powerpc-linux-gnu + - gcc-4.8-multilib-powerpc-linux-gnu + - gcc-4.8-powerpc-linux-gnu + - binutils-powerpc-linux-gnu + - binfmt-support # 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/programs/Makefile b/programs/Makefile index f5efd0837..9c70f868b 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -122,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) \ @@ -162,13 +162,13 @@ zstreamtest : $(ZSTDDECOMP_O) $(ZSTD_FILES) datagen.c zstreamtest.c 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: From c5e12f70e53018dff95628877eb2b36855578548 Mon Sep 17 00:00:00 2001 From: inikep Date: Wed, 17 Aug 2016 17:31:08 +0200 Subject: [PATCH 5/5] fixed powerpc Travis test --- .travis.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 86208f66e..42f0043b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,21 +67,17 @@ matrix: - os: linux dist: trusty sudo: required - env: PLATFORM="Ubuntu 14.04" CMD="make zlibwrapper && make clean && make gcc5test && make clean && make gcc6test && make clean && make 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 - - qemu-system-ppc - - qemu-user-static - - gcc-powerpc-linux-gnu - - gcc-4.8-multilib-powerpc-linux-gnu - - gcc-4.8-powerpc-linux-gnu - - binutils-powerpc-linux-gnu - - binfmt-support # OS X Mavericks - os: osx env: PLATFORM="OS X Mavericks" CMD="make gnu90test && make clean && make test && make clean && make travis-install"