11 env: [ COVERITY_SCAN_BRANCH=1 ]
15 name: ivmai/libatomic_ops
17 description: The atomic_ops library
18 branch_pattern: master
19 build_command_prepend: ./configure
20 build_command: make -j check CFLAGS_EXTRA="-D LINT2 -march=native"
24 - CFLAGS_EXTRA="-O3 -march=native"
25 - CONF_OPTIONS="--enable-assertions"
29 - CFLAGS_EXTRA="-O3 -march=native"
30 - CONF_OPTIONS="--enable-assertions"
33 - CFLAGS_EXTRA="-O3 -march=native"
34 - CONF_OPTIONS="--enable-assertions"
38 env: [ CFLAGS_EXTRA="-march=native -std=c11" ]
41 env: [ CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2 -std=c89" ]
43 addons: { apt: { packages: [ gcc-multilib ] } }
46 - CFLAGS_EXTRA="-m32 -march=native"
47 - CONF_OPTIONS="--enable-assertions"
49 addons: { apt: { packages: [ gcc-multilib ] } }
52 - CFLAGS_EXTRA="-m32 -march=native"
53 - CONF_OPTIONS="--enable-assertions"
56 - CFLAGS_EXTRA="-m32 -march=native -D _FORTIFY_SOURCE=2"
57 - CONF_OPTIONS="--enable-assertions"
61 packages: [ clang-4.0 ]
62 sources: [ llvm-toolchain-trusty-4.0 ]
65 env: [ CFLAGS_EXTRA="-O3 -march=native -std=c11" ]
69 packages: [ clang-4.0, gcc-multilib ]
70 sources: [ llvm-toolchain-trusty-4.0 ]
73 env: [ CFLAGS_EXTRA="-m32 -O3 -march=native" ]
78 sources: [ ubuntu-toolchain-r-test ]
81 env: [ CFLAGS_EXTRA="-O3 -march=native" ]
85 packages: [ gcc-5, gcc-5-multilib ]
86 sources: [ ubuntu-toolchain-r-test ]
89 env: [ CFLAGS_EXTRA="-m32 -O3 -march=native" ]
93 packages: [ gcc-5, gcc-5-multilib ]
94 sources: [ ubuntu-toolchain-r-test ]
98 - CFLAGS_EXTRA="-mx32 -march=native -D _FORTIFY_SOURCE=2"
99 - CONF_OPTIONS="--enable-assertions --enable-shared"
103 packages: [ gcc-5, gcc-5-multilib ]
104 sources: [ ubuntu-toolchain-r-test ]
108 - CFLAGS_EXTRA="-mx32 -march=native"
109 - CONF_OPTIONS="--disable-atomic-intrinsics"
113 - CFLAGS_EXTRA="-fsanitize=address -fno-common -fno-omit-frame-pointer"
117 - CFLAGS_EXTRA="-fsanitize=memory,undefined -march=native -fno-omit-frame-pointer"
123 - CONF_OPTIONS="--disable-atomic-intrinsics"
124 - CFLAGS_EXTRA="-march=native"
126 addons: { apt: { packages: [ lcov ] } }
129 - CONF_OPTIONS="--enable-gcov --enable-shared"
130 - REPORT_COVERAGE=true
131 - CFLAGS_EXTRA="-march=native -D DEBUG_RUN_ONE_TEST -D VERBOSE"
134 - CPPCHECK_ENABLE="-j16 -q --enable=information,performance,portability,style,warning"
135 - MAKEFILE_TARGET=all
139 - CPPCHECK_ENABLE="-q --enable=unusedFunction -D AO_TEST_EMULATION"
140 - MAKEFILE_TARGET=all
145 packages: [ clang-4.0 ]
146 sources: [ llvm-toolchain-trusty-4.0 ]
151 - MAKEFILE_TARGET=all
152 - CFLAGS_EXTRA="-D AO_TRACE_MALLOC -D VERBOSE"
154 addons: { apt: { packages: [ musl-tools ] } }
158 - CFLAGS_EXTRA="-march=native"
159 - CONF_OPTIONS="--enable-assertions"
161 addons: { apt: { packages: [ gcc-mingw-w64 ] } }
162 compiler: x86_64-w64-mingw32-gcc
165 - CONF_OPTIONS="--host=x86_64-w64-mingw32 --enable-shared"
166 - MAKEFILE_TARGET=all
168 addons: { apt: { packages: [ gcc-multilib ] } }
169 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=aarch64-linux ]
171 addons: { apt: { packages: [ gcc-multilib ] } }
172 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=alpha-linux ]
174 addons: { apt: { packages: [ gcc-multilib ] } }
175 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=arm-unknown-linux-gnueabi ]
177 addons: { apt: { packages: [ gcc-multilib ] } }
178 env: [ CROSS_GCC_VER=4.2.4, NOLIBC_ARCH_ABI=avr32-linux,
179 CFLAGS_EXTRA="-fno-strict-aliasing" ]
181 addons: { apt: { packages: [ gcc-multilib ] } }
182 env: [ CROSS_GCC_VER=4.6.3, NOLIBC_ARCH_ABI=cris-linux ]
184 addons: { apt: { packages: [ gcc-multilib ] } }
185 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=hppa-linux ]
187 addons: { apt: { packages: [ gcc-multilib ] } }
188 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=ia64-linux ]
190 addons: { apt: { packages: [ gcc-multilib ] } }
191 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=m68k-linux ]
193 addons: { apt: { packages: [ gcc-multilib ] } }
194 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=mips-linux ]
196 addons: { apt: { packages: [ gcc-multilib ] } }
197 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=mips64-linux ]
199 addons: { apt: { packages: [ gcc-multilib ] } }
200 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=powerpc-linux ]
202 addons: { apt: { packages: [ gcc-multilib ] } }
203 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=powerpc64-linux ]
205 addons: { apt: { packages: [ gcc-multilib ] } }
206 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=ppc64le-linux ]
208 addons: { apt: { packages: [ gcc-multilib ] } }
209 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=s390x-linux ]
211 addons: { apt: { packages: [ gcc-multilib ] } }
212 env: [ CROSS_GCC_VER=4.6.3, NOLIBC_ARCH_ABI=sh4-linux ]
214 addons: { apt: { packages: [ gcc-multilib ] } }
215 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=sparc-linux,
216 CFLAGS_EXTRA="-D AO_NO_SPARC_V9" ]
218 addons: { apt: { packages: [ gcc-multilib ] } }
219 env: [ CROSS_GCC_VER=4.9.0, NOLIBC_ARCH_ABI=sparc64-linux ]
221 addons: { apt: { packages: [ gcc-multilib ] } }
222 env: [ CROSS_GCC_VER=4.6.2, NOLIBC_ARCH_ABI=tilegx-linux ]
225 - if [[ "$CPPCHECK_ENABLE" != "" ]]; then
226 git clone --depth=3 https://github.com/danmar/cppcheck.git
227 ~/cppcheck -b master;
228 make --directory ~/cppcheck -j CXXFLAGS="-O3 -march=native -D NDEBUG";
229 elif [[ "$CROSS_GCC_VER" != "" ]]; then
231 TAR_FOLDER_URL=https://www.kernel.org/pub/tools/crosstool/files/bin/$BUILD_ARCH/$CROSS_GCC_VER;
232 TARFILE=$BUILD_ARCH-gcc-$CROSS_GCC_VER-nolibc_$NOLIBC_ARCH_ABI.tar.xz;
233 wget -O - $TAR_FOLDER_URL/$TARFILE | tar xf - --xz --directory ~;
234 CROSS_CC=~/gcc-$CROSS_GCC_VER-nolibc/$NOLIBC_ARCH_ABI/bin/$NOLIBC_ARCH_ABI-gcc;
235 export C_INCLUDE_PATH=/usr/include;
236 MAKEFILE_TARGET=check-nolink;
238 - if [[ "$MAKEFILE_TARGET" == "" ]]; then
239 MAKEFILE_TARGET=check;
244 - if [[ "$REPORT_COVERAGE" == true ]]; then
245 gem install coveralls-lcov;
249 - if [[ "$COVERITY_SCAN_BRANCH" != 1 ]]; then
250 ./configure $CONF_OPTIONS --enable-werror;
252 - if [[ "$CSA_CHECK" != true && "$CPPCHECK_ENABLE" == ""
253 && "$COVERITY_SCAN_BRANCH" != 1 ]]; then
256 - if [[ "$CROSS_GCC_VER" != "" ]]; then
259 - if [[ "$COVERITY_SCAN_BRANCH" != 1 ]]; then
260 make -j $MAKEFILE_TARGET CC=$CC CFLAGS_EXTRA="$CFLAGS_EXTRA";
262 - if [ -f tests/test_atomic.log ]; then cat tests/test_atomic*.log; fi
263 - if [[ "$CSA_CHECK" == true ]]; then
264 ${CC} --analyze -Xanalyzer -analyzer-output=text -Werror -I src
265 $CFLAGS_EXTRA tests/*.c src/*.c;
267 - if [[ "$CPPCHECK_ENABLE" != "" ]]; then
268 ~/cppcheck/cppcheck -f --error-exitcode=2 -U long -D CPPCHECK -I src
269 $CPPCHECK_ENABLE tests/*.c src/*.c;
271 - if [[ "$MSAN_OR_UBSAN" == true ]]; then
272 UBSAN_OPTIONS="halt_on_error=1" make -C tests check-without-test-driver;
276 - if [[ "$REPORT_COVERAGE" == true ]]; then
277 lcov --capture --directory src --directory tests --output-file coverage.info;
278 lcov --remove coverage.info '/usr/*' 'tests/*' --output-file coverage.info;
279 lcov --list coverage.info;
280 coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info;