Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14864727
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
9 KB
Subscribers
None
View Options
diff --git a/src/secp256k1/.travis.yml b/src/secp256k1/.travis.yml
index 5943cd33f..e4da58adb 100644
--- a/src/secp256k1/.travis.yml
+++ b/src/secp256k1/.travis.yml
@@ -1,134 +1,127 @@
language: c
os:
- linux
- osx
dist: bionic
# Valgrind currently supports upto macOS 10.13, the latest xcode of that version is 10.1
osx_image: xcode10.1
addons:
apt:
packages:
- gcc-multilib
- libc6-dbg:i386
- libgmp-dev
- libgmp-dev:i386
- libtool-bin
- ninja-build
- valgrind
- homebrew:
- packages:
- - cmake
- - gmp
- - ninja
- - valgrind
- update: true
install:
- - if [ "${TRAVIS_OS_NAME}" = "linux" ] && [ "${TRAVIS_CPU_ARCH}" = "amd64" ]; then ./travis/install_cmake.sh; fi
- - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install gcc@9; fi
+ - if [ "${TRAVIS_CPU_ARCH}" = "amd64" ]; then ./travis/install_cmake.sh; fi
+ - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install gcc@9 gmp ninja openssl valgrind; fi
cache:
directories:
- /opt/cmake
compiler:
- clang
- gcc
env:
global:
- WIDEMUL=auto
- BIGNUM=gmp
- ENDOMORPHISM=no
- STATICPRECOMPUTATION=yes
- ECMULTGENPRECISION=auto
- ASM=no
- AUTOTOOLS_TARGET=check
- CMAKE_TARGET=check-secp256k1
- AUTOTOOLS_EXTRA_FLAGS=
- CMAKE_EXTRA_FLAGS=
- WITH_VALGRIND=yes
- RUN_VALGRIND=no
- HOST=
- ECDH=no
- RECOVERY=no
- SCHNORR=yes
- SCHNORRSIG=no
- EXPERIMENTAL=no
- JNI=no
- OPENSSL_TESTS=auto
- MULTISET=no
- CTIMETEST=yes
- BENCH=yes
- ITERS=2
jobs:
- WIDEMUL=int64 RECOVERY=yes
- WIDEMUL=int64 ECDH=yes EXPERIMENTAL=yes MULTISET=yes SCHNORRSIG=yes
- WIDEMUL=int64 ENDOMORPHISM=yes
- WIDEMUL=int128
- WIDEMUL=int128 RECOVERY=yes EXPERIMENTAL=yes SCHNORRSIG=yes
- WIDEMUL=int128 ENDOMORPHISM=yes
- WIDEMUL=int128 ENDOMORPHISM=yes ECDH=yes EXPERIMENTAL=yes MULTISET=yes SCHNORRSIG=yes
- WIDEMUL=int128 ASM=x86_64
- WIDEMUL=int128 ENDOMORPHISM=yes ASM=x86_64
- BIGNUM=no
- BIGNUM=no ENDOMORPHISM=yes RECOVERY=yes EXPERIMENTAL=yes MULTISET=yes SCHNORRSIG=yes
- BIGNUM=no STATICPRECOMPUTATION=no
- AUTOTOOLS_TARGET=distcheck CMAKE_TARGET=install WITH_VALGRIND=no CTIMETEST=no BENCH=no
- AUTOTOOLS_EXTRA_FLAGS=CPPFLAGS=-DDETERMINISTIC CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DDETERMINISTIC
- AUTOTOOLS_EXTRA_FLAGS=CFLAGS=-O0 CMAKE_EXTRA_FLAGS=-DCMAKE_BUILD_TYPE=Debug CTIMETEST=no
- AUTOTOOLS_TARGET=check-java CMAKE_TARGET=check-secp256k1-java JNI=yes ECDH=yes EXPERIMENTAL=yes WITH_VALGRIND=no CTIMETEST=no BENCH=no
- ECMULTGENPRECISION=2
- ECMULTGENPRECISION=8
- RUN_VALGRIND=yes
BIGNUM=no ENDOMORPHISM=yes ASM=x86_64 EXPERIMENTAL=yes ECDH=yes RECOVERY=yes OPENSSL_TESTS=no MULTISET=yes
AUTOTOOLS_TARGET=
CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DVALGRIND CMAKE_TARGET="secp256k1-tests secp256k1-exhaustive_tests"
# The same as above but without endomorphism.
- RUN_VALGRIND=yes
BIGNUM=no ASM=x86_64 EXPERIMENTAL=yes ECDH=yes RECOVERY=yes OPENSSL_TESTS=no MULTISET=yes
AUTOTOOLS_TARGET=
CMAKE_EXTRA_FLAGS=-DCMAKE_C_FLAGS=-DVALGRIND CMAKE_TARGET="secp256k1-tests secp256k1-exhaustive_tests"
- SCHNORR=no
jobs:
fast_finish: true
include:
- compiler: clang
os: linux
env: HOST=i686-linux-gnu ENDOMORPHISM=yes OPENSSL_TESTS=no
- compiler: clang
os: linux
env: HOST=i686-linux-gnu BIGNUM=no OPENSSL_TESTS=no
- compiler: gcc
os: linux
env: HOST=i686-linux-gnu ENDOMORPHISM=yes BIGNUM=no OPENSSL_TESTS=no
- compiler: gcc
os: linux
env: HOST=i686-linux-gnu OPENSSL_TESTS=no
# S390x build (big endian system)
- dist: focal
compiler: gcc
env: HOST=s390x-unknown-linux-gnu OPENSSL_TESTS=no ECDH=yes RECOVERY=yes EXPERIMENTAL=yes MULTISET=yes CTIMETEST=no
arch: s390x
addons:
apt:
packages:
- cmake
- libgmp-dev
- libtool-bin
- ninja-build
- valgrind
before_script:
# This limits the iterations in the benchmarks below to ITER iterations.
- export SECP256K1_BENCH_ITERS="$ITERS"
# travis auto terminates jobs that go for 10 minutes without printing to stdout,
# but travis_wait doesn't work well with forking programs like valgrind
# (https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received https://github.com/bitcoin-core/secp256k1/pull/750#issuecomment-623476860)
script:
- function keep_alive() { while true; do echo -en "\a"; sleep 60; done }
- keep_alive &
- ./travis/build_autotools.sh
- ./travis/build_cmake.sh
- kill %keep_alive
after_script:
- valgrind --version
diff --git a/src/secp256k1/travis/build_cmake.sh b/src/secp256k1/travis/build_cmake.sh
index 26e604d3e..906ee9360 100755
--- a/src/secp256k1/travis/build_cmake.sh
+++ b/src/secp256k1/travis/build_cmake.sh
@@ -1,54 +1,57 @@
#!/usr/bin/env bash
export LC_ALL=C
set -ex
if [ "x$HOST" = "xi686-linux-gnu" ]; then
CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DCMAKE_C_FLAGS=-m32"
fi
if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$TRAVIS_COMPILER" = "gcc" ]
then
CMAKE_EXTRA_FLAGS="$CMAKE_EXTRA_FLAGS -DCMAKE_C_COMPILER=gcc-9"
fi
# "auto" is not a valid value for SECP256K1_ECMULT_GEN_PRECISION with cmake.
# In this case we use the default value instead by not setting the cache
# variable on the cmake command line.
if [ "x$ECMULTGENPRECISION" != "xauto" ]; then
ECMULT_GEN_PRECISION_ARG="-DSECP256K1_ECMULT_GEN_PRECISION=$ECMULTGENPRECISION"
fi
mkdir -p buildcmake/install
pushd buildcmake
-# Use the cmake version installed via the install_cmake.sh script on linux amd64
-if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "${TRAVIS_CPU_ARCH}" = "amd64" ]
-then
- CMAKE_COMMAND=/opt/cmake/bin/cmake
-else
- CMAKE_COMMAND=cmake
+CMAKE_COMMAND=cmake
+# Override with the cmake version installed via the install_cmake.sh script on
+# amd64
+if [ "${TRAVIS_CPU_ARCH}" = "amd64" ]; then
+ if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+ CMAKE_COMMAND=/opt/cmake/bin/cmake
+ elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
+ CMAKE_COMMAND=/opt/cmake/CMake.app/Contents/bin/cmake
+ fi
fi
${CMAKE_COMMAND} --version
${CMAKE_COMMAND} -GNinja .. \
-DCMAKE_INSTALL_PREFIX=install \
-DSECP256K1_BUILD_OPENSSL_TESTS=$OPENSSL_TESTS \
-DSECP256K1_ECMULT_STATIC_PRECOMPUTATION=$STATICPRECOMPUTATION \
-DSECP256K1_ENABLE_MODULE_ECDH=$ECDH \
-DSECP256K1_ENABLE_MODULE_MULTISET=$MULTISET \
-DSECP256K1_ENABLE_MODULE_RECOVERY=$RECOVERY \
-DSECP256K1_ENABLE_MODULE_SCHNORR=$SCHNORR \
-DSECP256K1_ENABLE_MODULE_EXTRAKEYS=$SCHNORRSIG \
-DSECP256K1_ENABLE_MODULE_SCHNORRSIG=$SCHNORRSIG \
-DSECP256K1_ENABLE_JNI=$JNI \
-DSECP256K1_ENABLE_ENDOMORPHISM=$ENDOMORPHISM \
-DSECP256K1_ENABLE_BIGNUM=$BIGNUM \
-DSECP256K1_USE_ASM=$ASM \
-DSECP256K1_TEST_OVERRIDE_WIDE_MULTIPLY=$WIDEMUL \
$ECMULT_GEN_PRECISION_ARG \
$CMAKE_EXTRA_FLAGS
ninja $CMAKE_TARGET
popd
diff --git a/src/secp256k1/travis/install_cmake.sh b/src/secp256k1/travis/install_cmake.sh
index 34013d4fb..1a0eb9fbb 100755
--- a/src/secp256k1/travis/install_cmake.sh
+++ b/src/secp256k1/travis/install_cmake.sh
@@ -1,39 +1,56 @@
#!/usr/bin/env bash
export LC_ALL=C
set -euxo pipefail
### Change these values to select the cmake version to install
CMAKE_VERSION_MAJOR=3
CMAKE_VERSION_MINOR=16
CMAKE_VERSION_PATCH=0
-CMAKE_INSTALL_SCRIPT_SHA256SUM=c87dc439a8d6b1b368843c580f0f92770ed641af8ff8fe0b706cfa79eed3ac91
### Installation
CMAKE_VERSION_FULL=${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}
# If cmake is already installed with the expected version (from cache), skip the
# installation process.
if /opt/cmake/bin/cmake --version | grep "${CMAKE_VERSION_FULL}"; then
exit 0
fi
# Download the pre-built binary from the cmake.org website.
# It is distributed as a script containing a self extractible archive.
URL_PREFIX=https://cmake.org/files/v${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}
-CMAKE_INSTALL_SCRIPT=cmake-${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}-Linux-x86_64.sh
+CMAKE_FILE_PREFIX=cmake-${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}
-wget ${URL_PREFIX}/${CMAKE_INSTALL_SCRIPT}
-echo "${CMAKE_INSTALL_SCRIPT_SHA256SUM} ${CMAKE_INSTALL_SCRIPT}" | sha256sum -c
+if [ "${TRAVIS_OS_NAME}" = "linux" ]
+then
+ CMAKE_INSTALL_SCRIPT=${CMAKE_FILE_PREFIX}-Linux-x86_64.sh
+ CMAKE_INSTALL_SCRIPT_SHA256SUM=c87dc439a8d6b1b368843c580f0f92770ed641af8ff8fe0b706cfa79eed3ac91
-# Make it executable
-sudo chmod +x ${CMAKE_INSTALL_SCRIPT}
+ wget ${URL_PREFIX}/${CMAKE_INSTALL_SCRIPT}
+ echo "${CMAKE_INSTALL_SCRIPT_SHA256SUM} ${CMAKE_INSTALL_SCRIPT}" | sha256sum -c
-# Install to /opt/cmake
-CMAKE_INSTALL_PREFIX=/opt/cmake
+ # Make it executable
+ sudo chmod +x ${CMAKE_INSTALL_SCRIPT}
-sudo mkdir -p ${CMAKE_INSTALL_PREFIX}
-sudo ./${CMAKE_INSTALL_SCRIPT} --prefix=${CMAKE_INSTALL_PREFIX} --skip-license
+ # Install to /opt/cmake
+ CMAKE_INSTALL_PREFIX=/opt/cmake
+
+ sudo mkdir -p ${CMAKE_INSTALL_PREFIX}
+ sudo ./${CMAKE_INSTALL_SCRIPT} --prefix=${CMAKE_INSTALL_PREFIX} --skip-license
+fi
+
+if [ "${TRAVIS_OS_NAME}" = "osx" ]
+then
+ CMAKE_ARCHIVE=${CMAKE_FILE_PREFIX}-Darwin-x86_64.tar.gz
+ CMAKE_ARCHIVE_SHA256SUM=aa5221fb0be10088a47314546b7be5767056cb10fc2cbf64d18a374f25b226ce
+
+ curl -L ${URL_PREFIX}/${CMAKE_ARCHIVE} --output ${CMAKE_ARCHIVE}
+ echo "${CMAKE_ARCHIVE_SHA256SUM} ${CMAKE_ARCHIVE}" | shasum -a 256 -c
+
+ sudo mkdir -p /opt/cmake
+ sudo tar -C /opt/cmake --strip-components=1 -xzf ${CMAKE_ARCHIVE}
+fi
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Wed, May 21, 21:58 (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5859823
Default Alt Text
(9 KB)
Attached To
rABC Bitcoin ABC
Event Timeline
Log In to Comment