54245985fb
b19c000063 Merge #607: Use size_t shifts when computing a size_t 4d01bc2d9c Merge #606: travis: Remove unused sudo:false e6d01e9347 Use size_t shifts when computing a size_t 7667532bd7 travis: Remove unused sudo:false ee99f12f3d Merge #599: Switch x86_64 asm to use "i" instead of "n" for immediate values. d58bc93f2c Switch x86_64 asm to use "i" instead of "n" for immediate values. 05362ee042 Merge #597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build 83483869ac Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build aa15154a48 Merge #568: Fix integer overflow in ecmult_multi_var when n is large 2277af5ff0 Fix integer overflow in ecmult_multi_var when n is large 85d0e1bcce Merge #591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. 14196379ec Merge #580: Add trivial ecmult_multi algorithm which does not require a scratch space a697d82da9 Add trivial ecmult_multi to the benchmark tool bade617417 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points. 5545e13dea Merge #584: configure: Use CFLAGS_FOR_BUILD when checking native compiler 20c5869df2 Merge #516: improvements to random seed in src/tests.c b76e45d5d6 Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. 870a977644 Merge #562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse be40c4d0b5 Fixup for C90 mixed declarations. c71dd2c08f Merge #509: Fix algorithm selection in bench_ecmult 6492bf88cc Merge #518: Summarize build options after running configure 0e9ada1941 Merge #567: Correct order of libs returned on pkg-config --libs --static libsecp2… e96901a4b9 Merge #587: Make randomization of a non-signing context a noop 58df8d03ad Merge #511: Portability fix for the configure scripts generated 2ebdad772a Merge #552: Make constants static: 1c131affd3 Merge #551: secp256k1_fe_sqrt: Verify that the arguments don't alias. ba698f883b Merge #539: Assorted minor corrections 949e85b009 Merge #550: Optimize secp256k1_fe_normalize_weak calls. a34bcaadf1 Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker 2d5f4cebdc configure: Use CFLAGS_FOR_BUILD when checking native compiler b408c6a8b2 Merge #579: Use __GNUC_PREREQ for detecting __builtin_expect 6198375218 Make randomization of a non-signing context a noop c663397f46 Use __GNUC_PREREQ for detecting __builtin_expect e34ceb333b Merge #557: Eliminate scratch memory used when generating contexts b3bf5f99a3 ecmult_impl: expand comment to explain how effective affine interacts with everything efa783f8f0 Store z-ratios in the 'x' coord they'll recover ffd3b346fe add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points 84740acd2a ecmult_impl: save one fe_inv_var 47045270fa ecmult_impl: eliminate scratch memory used when generating context 7f7a2ed3a8 ecmult_gen_impl: eliminate scratch memory used when generating context 314a61d724 Merge #553: add static context object which has no capabilities 89a20a8945 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call. 1086fda4c1 Merge #354: [ECDH API change] Support custom hash function d3cb1f95eb Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse 40fde611bd prevent attempts to modify `secp256k1_context_no_precomp` ed7c08417a add static context object which has no capabilities 496c5b43b8 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B; bf8b86cc07 secp256k1_fe_sqrt: Verify that the arguments don't alias. 9bd89c836b Optimize secp256k1_fe_normalize_weak calls. Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead. 52ab96fedb clean dependendies in field_*_impl.h deff5edd42 Correct math typos in field_*.h 4efb3f8dd1 Add check that restrict pointers don't alias with all parameters. 1e6f1f5ad5 Merge #529: fix tests.c in the count == 0 case c8fbc3c397 [ECDH API change] Allow pass arbitrary data to hash function b00be65056 [ECDH API change] Support custom hash function 95e99f196f fix tests.c in the count == 0 case 452d8e4d2a Merge #523: scratch: add stack frame support 6fe50439ae scratch: add stack frame support 9bc2e26502 Merge #522: parameterize ecmult_const over input size 7c1b91ba4b parameterize ecmult_const over input size dbc3ddd5e2 Merge #513: Increase sparsity of pippenger fixed window naf representation 3965027c81 Summarize build options in configure script 0f0517369c Fix algorithm selection in bench_ecmult fb9271dcf0 Merge #510: add a couple missing `const`s to ecmult_pippenger_wnaf cd5f6028e5 Merge #515: Fix typo 09146ae854 Merge #512: secp256k1_ec_privkey_negate - fix documentation ec0a7b3ae3 Don't touch leading zeros in wnaf_fixed. 9e36d1bfe2 Fix bug in wnaf_fixed where the wnaf array is not completely zeroed when given a 0 scalar. 96f68a0afc Don't invert scalar in wnaf_fixed when it is even because a caller might intentionally give a scalar with many leading zeros. 8b3841c91d fix bug in fread() failure check cddef0c0be tests: add warning message when /dev/urandom fails 9b7c47a21e Fix typo 6dbb007869 Increase sparsity of pippenger fixed window naf representation 1646ace4d5 secp256k1_ec_privkey_negate - fix documentation 270f6c80db Portability fix for the configure scripts generated 9b3ff0309d add a couple missing `const`s to ecmult_pippenger_wnaf cd329dbc3e Merge #460: [build] Update ax_jni_include_dir.m4 macro 7f9c1a1565 Merge #498: tests: Avoid calling fclose(...) with an invalid argument f99aa8d4d3 Merge #499: tests: Make sure we get the requested number of bytes from /dev/urandom b549d3d5f7 Merge #472: [build] Set --enable-jni to no by default instead of auto. d333521516 Merge #494: Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS 2ef8ea5d21 Merge #495: Add bench_ecmult to .gitignore 82a96e4587 tests: Make sure we get the requested number of bytes from /dev/urandom 5aae5b5bb2 Avoid calling fclose(...) with an invalid argument cb32940df3 Add bench_ecmult to .gitignore 31abd3ab8d Support OpenSSL versions >= 1.1 for ENABLE_OPENSSL_TESTS c95f6f1360 Merge #487: fix tests typo, s/changed/unchanged fb46c83881 Merge #463: Reduce usage of hardcoded size constants 02f5001dfc Merge #490: Disambiguate bench functions and types 1f46d6089e Disambiguate bench functions and types f54c6c5083 Merge #480: Enable benchmark building by default c77fc08597 Merge #486: Add pippenger_wnaf for multi-multiplication d2f9c6b5dc Use more precise pippenger bucket windows 4c950bbeaf Save some additions per window in _pippenger_wnaf a58f543f5a Add flags for choosing algorithm in ecmult_multi benchmark 36b22c9337 Use scratch space dependent batching in ecmult_multi 355a38f113 Add pippenger_wnaf ecmult_multi bc65aa794e Add bench_ecmult dba5471b69 Add ecmult_multi tests 8c1c831bdb Generalize Strauss to support multiple points 548de42ecf add resizeable scratch space API 0e96cdc6b6 fix typo, s/changed/unchanged c7680e570f Reduce usage of hardcoded size constants 6ad5cdb42a Merge #479: Get rid of reserved _t in type names 7a78f60598 Print whether we're building benchmarks 4afec9f1ae Build benchmarks by default d1dc9dfc0a Get rid of reserved _t in type names 57752d28b3 [build] Set --enable-jni to no by default instead of auto. e7daa9b3c2 [build] Tweak JNI macro to warn instead of error for JNI not found. 5b22977922 [build] Update ax_jni_include_dir.m4 macro to deal with recent versions of macOS git-subtree-dir: src/secp256k1 git-subtree-split: b19c000063be11018b4d1a6b0a85871ab9d0bdcf
167 lines
7.4 KiB
YAML
167 lines
7.4 KiB
YAML
dist: xenial
|
|
os: linux
|
|
language: minimal
|
|
cache:
|
|
ccache: true
|
|
directories:
|
|
- depends/built
|
|
- depends/sdk-sources
|
|
- $HOME/.ccache
|
|
stages:
|
|
- lint
|
|
- test
|
|
env:
|
|
global:
|
|
- MAKEJOBS=-j3
|
|
- RUN_UNIT_TESTS=true
|
|
- RUN_FUNCTIONAL_TESTS=true
|
|
- RUN_FUZZ_TESTS=false
|
|
- DOCKER_NAME_TAG=ubuntu:18.04
|
|
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
|
|
- CCACHE_SIZE=100M
|
|
- CCACHE_TEMPDIR=/tmp/.ccache-temp
|
|
- CCACHE_COMPRESS=1
|
|
- CCACHE_DIR=$HOME/.ccache
|
|
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
|
|
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
|
|
- WINEDEBUG=fixme-all
|
|
- DOCKER_PACKAGES="build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
|
|
before_install:
|
|
- set -o errexit; source .travis/test_03_before_install.sh
|
|
install:
|
|
- set -o errexit; source .travis/test_04_install.sh
|
|
before_script:
|
|
- set -o errexit; source .travis/test_05_before_script.sh
|
|
script:
|
|
- if [ $SECONDS -gt 1200 ]; then set +o errexit; echo "Travis early exit to cache current state"; false; else set -o errexit; source .travis/test_06_script_a.sh; fi
|
|
- if [ $SECONDS -gt 1800 ]; then set +o errexit; echo "Travis early exit to cache current state"; false; else set -o errexit; source .travis/test_06_script_b.sh; fi
|
|
after_script:
|
|
- echo $TRAVIS_COMMIT_RANGE
|
|
- echo $TRAVIS_COMMIT_LOG
|
|
jobs:
|
|
include:
|
|
|
|
- stage: lint
|
|
name: 'lint'
|
|
env:
|
|
cache: false
|
|
language: python
|
|
python: '3.5' # Oldest supported version according to doc/dependencies.md
|
|
install:
|
|
- set -o errexit; source .travis/lint_04_install.sh
|
|
before_script:
|
|
- set -o errexit; source .travis/lint_05_before_script.sh
|
|
script:
|
|
- set -o errexit; source .travis/lint_06_script.sh
|
|
|
|
- stage: test
|
|
name: 'ARM [GOAL: install] [no unit or functional tests]'
|
|
env: >-
|
|
HOST=arm-linux-gnueabihf
|
|
PACKAGES="python3 g++-arm-linux-gnueabihf"
|
|
RUN_UNIT_TESTS=false
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="install"
|
|
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
|
|
# This could be removed once the ABI change warning does not show up by default
|
|
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
|
|
|
|
- stage: test
|
|
name: 'Win32 [GOAL: deploy] [no gui or functional tests]'
|
|
env: >-
|
|
HOST=i686-w64-mingw32
|
|
DPKG_ADD_ARCH="i386"
|
|
PACKAGES="python3 nsis g++-mingw-w64-i686 wine-binfmt wine32"
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="deploy"
|
|
BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests"
|
|
|
|
- stage: test
|
|
name: 'Win64 [GOAL: deploy] [no gui or functional tests]'
|
|
env: >-
|
|
HOST=x86_64-w64-mingw32
|
|
PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64"
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="deploy"
|
|
BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests"
|
|
|
|
- stage: test
|
|
name: '32-bit + dash [GOAL: install] [GUI: no BIP70]'
|
|
env: >-
|
|
HOST=i686-pc-linux-gnu
|
|
PACKAGES="g++-multilib python3-zmq"
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --disable-bip70 --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
|
|
CONFIG_SHELL="/bin/dash"
|
|
|
|
- stage: test
|
|
name: 'x86_64 Linux [GOAL: install] [bionic] [uses qt5 dev package instead of depends Qt to speed up build and avoid timeout]'
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
|
|
DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1"
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CXXFLAGS=\"-g0 -O2\""
|
|
|
|
- stage: test
|
|
name: 'x86_64 Linux [GOAL: install] [trusty] [no functional tests, no depends, only system libs]'
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
DOCKER_NAME_TAG=ubuntu:14.04
|
|
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libicu-dev libpng-dev libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
|
|
NO_DEPENDS=1
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no"
|
|
|
|
- stage: test
|
|
name: 'x86_64 Linux [GOAL: install] [xenial] [no depends, only system libs, sanitizers: thread (TSan), no wallet]'
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
DOCKER_NAME_TAG=ubuntu:16.04
|
|
PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
|
|
NO_DEPENDS=1
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --disable-wallet --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=thread --disable-hardening --disable-asm CC=clang CXX=clang++"
|
|
|
|
- stage: test
|
|
name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]'
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
|
|
NO_DEPENDS=1
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=address,integer,undefined CC=clang CXX=clang++"
|
|
|
|
- stage: test
|
|
name: 'x86_64 Linux [GOAL: install] [bionic] [no depends, only system libs, sanitizers: fuzzer,address]'
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
PACKAGES="clang llvm python3 libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev"
|
|
NO_DEPENDS=1
|
|
RUN_UNIT_TESTS=false
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
RUN_FUZZ_TESTS=true
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--disable-wallet --disable-bench --with-utils=no --with-daemon=no --with-libs=no --with-gui=no --enable-fuzz --with-sanitizers=fuzzer,address CC=clang CXX=clang++"
|
|
|
|
- stage: test
|
|
name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]'
|
|
env: >-
|
|
HOST=x86_64-unknown-linux-gnu
|
|
PACKAGES="python3-zmq"
|
|
DEP_OPTS="NO_WALLET=1"
|
|
GOAL="install"
|
|
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
|
|
|
- stage: test
|
|
name: 'macOS 10.10 [GOAL: deploy] [no functional tests]'
|
|
env: >-
|
|
HOST=x86_64-apple-darwin14
|
|
PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools"
|
|
OSX_SDK=10.11
|
|
RUN_UNIT_TESTS=false
|
|
RUN_FUNCTIONAL_TESTS=false
|
|
GOAL="deploy"
|
|
BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror"
|