Skip to content

Commit 6e13b4e

Browse files
siparebroad
authored andcommitted
Squashed 'src/secp256k1/' changes from 3967d96..efad350
efad350 Merge bitcoin#906: Use modified divsteps with initial delta=1/2 for constant-time cc2c09e Merge bitcoin#918: Clean up configuration in gen_context 0706796 add ECMULT_GEN_PREC_BITS to basic_config.h a3aa262 gen_context: Don't include basic-config.h be0609f Add unit tests for edge cases with delta=1/2 variant of divsteps cd393ce Optimization: only do 59 hddivsteps per iteration instead of 62 277b224 Use modified divsteps with initial delta=1/2 for constant-time 376ca36 Fix typo in explanation 1e5d50f Merge bitcoin#889: fix uninitialized read in tests c083cc6 Merge bitcoin#903: Make argument of fe_normalizes_to_zero{_var} const 6e89853 Merge bitcoin#907: changed import to use brackets <> for openssl 4504472 changed import to use brackets <> for openssl as they are not local to the project 26de4df Merge bitcoin#831: Safegcd inverses, drop Jacobi symbols, remove libgmp 23c3fb6 Make argument of fe_normalizes_to_zero{_var} const 24ad04f Make scalar_inverse{,_var} benchmark scale with SECP256K1_BENCH_ITERS ebc1af7 Optimization: track f,g limb count and pass to new variable-time update_fg_var b306935 Optimization: use formulas instead of lookup tables for cancelling g bits 9164a1b Optimization: special-case zero modulus limbs in modinv64 1f233b3 Remove num/gmp support 20448b8 Remove unused Jacobi symbol support 5437e7b Remove unused scalar_sqr aa9cc52 Improve field/scalar inverse tests 1e0e885 Make field/scalar code use the new modinv modules for inverses 436281a Move secp256k1_fe_inverse{_var} to per-impl files aa404d5 Move secp256k1_scalar_{inverse{_var},is_even} to per-impl files 08d5496 Improve bounds checks in modinv modules 151aac0 Add tests for modinv modules d8a92fc Add extensive comments on the safegcd algorithm and implementation 8e415ac Add safegcd based modular inverse modules de0a643 Add secp256k1_ctz{32,64}_var functions 4c3ba88 Merge bitcoin#901: ci: Switch all Linux builds to Debian and more improvements 9361f36 ci: Select number of parallel make jobs depending on CI environment 28eccdf ci: Split output of logs into multiple sections c7f754f ci: Run PRs on merge result instead of on the source branch b994a8b ci: Print information about binaries using "file" f24e122 ci: Switch all Linux builds to Debian ebdba03 Merge bitcoin#891: build: Add workaround for automake 1.13 and older 3a8b47b Merge bitcoin#894: ctime_test: move context randomization test to the end 7d3497c ctime_test: move context randomization test to the end 99a1cfe print warnings for conditional-uninitialized 3d2cf6c initialize variable in tests f329bba build: Add workaround for automake 1.13 and older 24d1656 Merge bitcoin#882: Use bit ops instead of int mult for constant-time logic in gej_add_ge e491d06 Use bit ops instead of int mult for constant-time logic in gej_add_ge f8c0b57 Merge bitcoin#864: Add support for Cirrus CI cc2a545 ci: Refactor Nix shell files 2480e55 ci: Remove support for Travis CI 2b359f1 ci: Enable simple cache for brewing valgrind on macOS 8c02e46 ci: Add support for Cirrus CI 659d0d4 Merge bitcoin#880: Add parens around ROUND_TO_ALIGN's parameter. b6f6498 Add parens around ROUND_TO_ALIGN's parameter. This makes the macro robust against a hypothetical ROUND_TO_ALIGN(foo ? sizeA : size B) invocation. a4abaab Merge bitcoin#877: Add missing secp256k1_ge_set_gej_var decl. 5671e5f Merge bitcoin#874: Remove underscores from header defs. db72678 Merge bitcoin#878: Remove unused secp256k1_fe_inv_all_var b732701 Merge bitcoin#875: Avoid casting (void**) values. 75d2ae1 Remove unused secp256k1_fe_inv_all_var 482e4a9 Add missing secp256k1_ge_set_gej_var decl. 2730618 Avoid casting (void**) values. Replaced with an expression that only casts (void*) values. fb390c5 Remove underscores from header defs. This makes them consistent with other files and avoids reserved identifiers. f2d9aea Merge bitcoin#862: Autoconf improvements 328aaef Merge bitcoin#845: Extract the secret key from a keypair 3c15130 Improve CC_FOR_BUILD detection 47802a4 Restructure and tidy configure.ac 252c19d Ask brew for valgrind include path 8c727b9 Merge bitcoin#860: fixed trivial typo b7bc3a4 fixed typo 33cb3c2 Add secret key extraction from keypair to constant time tests 36d9dc1 Add seckey extraction from keypair to the extrakeys tests fc96aa7 Add a function to extract the secretkey from a keypair 98dac87 Merge bitcoin#858: Fix insecure links 07aa4c7 Fix insecure links b61f9da Merge bitcoin#857: docs: fix simple typo, dependecy -> dependency 18aadf9 docs: fix simple typo, dependecy -> dependency 2d9e717 Merge bitcoin#852: Add sage script for generating scalar_split_lambda constants dc6e5c3 Merge bitcoin#854: Rename msg32 to msghash32 in ecdsa_sign/verify and add explanation 6e85d67 Rename tweak to tweak32 in public API f587f04 Rename msg32 to msghash32 in ecdsa_sign/verify and add explanation 329a2e0 sage: Add script for generating scalar_split_lambda constants 8f0c6f1 Merge bitcoin#851: make test count iteration configurable by environment variable f4fa8d2 forbid a test iteration of 0 or less f554dfc sage: Reorganize files 3a10696 Merge bitcoin#849: Convert Sage code to Python 3 (as used by Sage >= 9) 13c88ef Convert Sage code to Python 3 (as used by Sage >= 9) 0ce4554 make test count iteration configurable by environment variable 9e5939d Merge bitcoin#835: Don't use reserved identifiers memczero and benchmark_verify_t d0a83f7 Merge bitcoin#839: Prevent arithmetic on NULL pointer if the scratch space is too small 903b16a Merge bitcoin#840: Return NULL early in context_preallocated_create if flags invalid 1f4dd03 Typedef (u)int128_t only when they're not provided by the compiler ebfa205 Return NULL early in context_preallocated_create if flags invalid 29a299e Run the undefined behaviour sanitizer on Travis 7506e06 Prevent arithmetic on NULL pointer if the scratch space is too small e89278f Don't use reserved identifiers memczero and benchmark_verify_t git-subtree-dir: src/secp256k1 git-subtree-split: efad350
1 parent 41c8647 commit 6e13b4e

File tree

89 files changed

+5505
-3295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+5505
-3295
lines changed

.cirrus.yml

Lines changed: 175 additions & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -1,221 +1,198 @@
1-
### Global defaults
2-
31
env:
4-
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
5-
MAKEJOBS: "-j4"
6-
TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache
7-
CCACHE_SIZE: "200M"
8-
CCACHE_DIR: "/tmp/ccache_dir"
9-
CCACHE_NOHASHDIR: "1" # Debug info might contain a stale path if the build dir changes, but this is fine
10-
11-
cirrus_ephemeral_worker_template_env: &CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
12-
DANGER_RUN_CI_ON_HOST: "1" # Containers will be discarded after the run, so there is no risk that the ci scripts modify the system
13-
14-
persistent_worker_template_env: &PERSISTENT_WORKER_TEMPLATE_ENV
15-
RESTART_CI_DOCKER_BEFORE_RUN: "1"
16-
17-
persistent_worker_template: &PERSISTENT_WORKER_TEMPLATE
18-
persistent_worker: {} # https://cirrus-ci.org/guide/persistent-workers/
19-
20-
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
21-
base_template: &BASE_TEMPLATE
22-
skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
2+
WIDEMUL: auto
3+
STATICPRECOMPUTATION: yes
4+
ECMULTGENPRECISION: auto
5+
ASM: no
6+
BUILD: check
7+
WITH_VALGRIND: yes
8+
RUN_VALGRIND: no
9+
EXTRAFLAGS:
10+
HOST:
11+
ECDH: no
12+
RECOVERY: no
13+
SCHNORRSIG: no
14+
EXPERIMENTAL: no
15+
CTIMETEST: yes
16+
BENCH: yes
17+
ITERS: 2
18+
MAKEFLAGS: -j2
19+
20+
cat_logs_snippet: &CAT_LOGS
21+
always:
22+
cat_tests_log_script:
23+
- cat tests.log || true
24+
cat_exhaustive_tests_log_script:
25+
- cat exhaustive_tests.log || true
26+
cat_valgrind_ctime_test_log_script:
27+
- cat valgrind_ctime_test.log || true
28+
cat_bench_log_script:
29+
- cat bench.log || true
30+
on_failure:
31+
cat_config_log_script:
32+
- cat config.log || true
33+
cat_test_env_script:
34+
- cat test_env.log || true
35+
cat_ci_env_script:
36+
- env
37+
38+
merge_base_script_snippet: &MERGE_BASE
2339
merge_base_script:
2440
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
25-
- bash -c "$PACKAGE_MANAGER_INSTALL git"
2641
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
2742
- git config --global user.email "ci@ci.ci"
2843
- git config --global user.name "ci"
2944
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
30-
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks
31-
32-
global_task_template: &GLOBAL_TASK_TEMPLATE
33-
<< : *BASE_TEMPLATE
34-
timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
35-
container:
36-
# https://cirrus-ci.org/faq/#are-there-any-limits
37-
# Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
38-
cpu: 2
39-
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
40-
ccache_cache:
41-
folder: "/tmp/ccache_dir"
42-
depends_built_cache:
43-
folder: "depends/built"
44-
ci_script:
45-
- ./ci/test_run_all.sh
46-
47-
depends_sdk_cache_template: &DEPENDS_SDK_CACHE_TEMPLATE
48-
depends_sdk_cache:
49-
folder: "depends/sdk-sources"
50-
51-
compute_credits_template: &CREDITS_TEMPLATE
52-
# https://cirrus-ci.org/pricing/#compute-credits
53-
# Only use credits for pull requests to the main repo
54-
use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin' && $CIRRUS_PR != ""
55-
56-
#task:
57-
# name: "Windows"
58-
# windows_container:
59-
# image: cirrusci/windowsservercore:2019
60-
# env:
61-
# CIRRUS_SHELL: powershell
62-
# PATH: 'C:\Python37;C:\Python37\Scripts;%PATH%'
63-
# PYTHONUTF8: 1
64-
# QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.6/Qt5.9.8_x64_static_vs2019.zip'
65-
# QT_DOWNLOAD_HASH: '9a8c6eb20967873785057fdcd329a657c7f922b0af08c5fde105cc597dd37e21'
66-
# QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019'
67-
# VCPKG_INSTALL_PATH: 'C:\tools\vcpkg\installed'
68-
# VCPKG_COMMIT_ID: 'ed0df8ecc4ed7e755ea03e18aaf285fd9b4b4a74'
69-
# install_script:
70-
# - choco install python --version=3.7.7 -y
7145

7246
task:
73-
name: 'lint [bionic]'
74-
<< : *BASE_TEMPLATE
47+
name: "x86_64: Linux (Debian stable)"
7548
container:
76-
image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md
49+
dockerfile: ci/linux-debian.Dockerfile
50+
# Reduce number of CPUs to be able to do more builds in parallel.
7751
cpu: 1
52+
# More than enough for our scripts.
7853
memory: 1G
79-
# For faster CI feedback, immediately schedule the linters
80-
<< : *CREDITS_TEMPLATE
81-
lint_script:
82-
- ./ci/lint_run_all.sh
83-
env:
84-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
85-
86-
task:
87-
name: 'ARM [unit tests, no functional tests] [buster]'
88-
<< : *GLOBAL_TASK_TEMPLATE
89-
container:
90-
image: debian:buster
91-
env:
92-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
93-
FILE_ENV: "./ci/test/00_setup_env_arm.sh"
94-
95-
task:
96-
name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [focal]'
97-
<< : *GLOBAL_TASK_TEMPLATE
98-
container:
99-
image: ubuntu:focal
100-
env:
101-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
102-
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
103-
104-
task:
105-
name: '32-bit + dash [gui] [CentOS 8]'
106-
<< : *GLOBAL_TASK_TEMPLATE
107-
container:
108-
image: centos:8
109-
env:
110-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
111-
PACKAGE_MANAGER_INSTALL: "yum install -y"
112-
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
113-
114-
task:
115-
name: '[previous releases, uses qt5 dev package and some depends packages, DEBUG] [unsigned char] [bionic]'
116-
previous_releases_cache:
117-
folder: "releases"
118-
<< : *GLOBAL_TASK_TEMPLATE
119-
<< : *PERSISTENT_WORKER_TEMPLATE
120-
env:
121-
<< : *PERSISTENT_WORKER_TEMPLATE_ENV
122-
FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh"
123-
124-
task:
125-
name: '[depends, sanitizers: thread (TSan), no gui] [hirsute]'
126-
<< : *GLOBAL_TASK_TEMPLATE
127-
container:
128-
image: ubuntu:hirsute
129-
cpu: 6 # Increase CPU and Memory to avoid timeout
130-
memory: 24G
131-
env:
132-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
133-
MAKEJOBS: "-j8"
134-
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
135-
136-
task:
137-
name: '[depends, sanitizers: memory (MSan)] [focal]'
138-
<< : *GLOBAL_TASK_TEMPLATE
139-
container:
140-
image: ubuntu:focal
141-
env:
142-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
143-
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
54+
matrix: &ENV_MATRIX
55+
- env: {WIDEMUL: int64, RECOVERY: yes}
56+
- env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
57+
- env: {WIDEMUL: int128}
58+
- env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
59+
- env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
60+
- env: {WIDEMUL: int128, ASM: x86_64}
61+
- env: { RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
62+
- env: { STATICPRECOMPUTATION: no}
63+
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
64+
- env: {CPPFLAGS: -DDETERMINISTIC}
65+
- env: {CFLAGS: -O0, CTIMETEST: no}
66+
- env:
67+
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
68+
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
69+
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
70+
ASM: x86_64
71+
ECDH: yes
72+
RECOVERY: yes
73+
EXPERIMENTAL: yes
74+
SCHNORRSIG: yes
75+
CTIMETEST: no
76+
- env: { ECMULTGENPRECISION: 2 }
77+
- env: { ECMULTGENPRECISION: 8 }
78+
- env:
79+
RUN_VALGRIND: yes
80+
ASM: x86_64
81+
ECDH: yes
82+
RECOVERY: yes
83+
EXPERIMENTAL: yes
84+
SCHNORRSIG: yes
85+
EXTRAFLAGS: "--disable-openssl-tests"
86+
BUILD:
87+
matrix:
88+
- env:
89+
CC: gcc
90+
- env:
91+
CC: clang
92+
<< : *MERGE_BASE
93+
test_script:
94+
- ./ci/cirrus.sh
95+
<< : *CAT_LOGS
14496

14597
task:
146-
name: '[no depends, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer] [hirsute]'
147-
<< : *GLOBAL_TASK_TEMPLATE
98+
name: "i686: Linux (Debian stable)"
14899
container:
149-
image: ubuntu:hirsute
150-
env:
151-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
152-
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
153-
154-
task:
155-
name: '[no depends, sanitizers: fuzzer,address,undefined,integer] [focal]'
156-
<< : *GLOBAL_TASK_TEMPLATE
157-
container:
158-
image: ubuntu:focal
159-
cpu: 4 # Increase CPU and memory to avoid timeout
160-
memory: 16G
161-
env:
162-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
163-
MAKEJOBS: "-j8"
164-
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
165-
166-
task:
167-
name: '[multiprocess, DEBUG] [focal]'
168-
<< : *GLOBAL_TASK_TEMPLATE
169-
container:
170-
image: ubuntu:focal
171-
cpu: 4
172-
memory: 16G # The default memory is sometimes just a bit too small, so double everything
173-
env:
174-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
175-
MAKEJOBS: "-j8"
176-
FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh"
177-
178-
task:
179-
name: '[no wallet] [bionic]'
180-
<< : *GLOBAL_TASK_TEMPLATE
181-
container:
182-
image: ubuntu:bionic
183-
env:
184-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
185-
FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh"
186-
187-
task:
188-
name: 'macOS 10.14 [gui, no tests] [focal]'
189-
<< : *DEPENDS_SDK_CACHE_TEMPLATE
190-
<< : *GLOBAL_TASK_TEMPLATE
191-
container:
192-
image: ubuntu:focal
100+
dockerfile: ci/linux-debian.Dockerfile
101+
cpu: 1
102+
memory: 1G
193103
env:
194-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
195-
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
104+
HOST: i686-linux-gnu
105+
ECDH: yes
106+
RECOVERY: yes
107+
EXPERIMENTAL: yes
108+
SCHNORRSIG: yes
109+
matrix:
110+
- env:
111+
CC: i686-linux-gnu-gcc
112+
- env:
113+
CC: clang --target=i686-pc-linux-gnu -isystem /usr/i686-linux-gnu/include
114+
test_script:
115+
- ./ci/cirrus.sh
116+
<< : *CAT_LOGS
196117

197118
task:
198-
name: 'macOS 11 native [gui] [no depends]'
199-
brew_install_script:
200-
- brew install boost libevent berkeley-db4 qt@5 miniupnpc libnatpmp ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt
201-
<< : *GLOBAL_TASK_TEMPLATE
202-
osx_instance:
203-
# Use latest image, but hardcode version to avoid silent upgrades (and breaks)
204-
image: big-sur-xcode-12.5 # https://cirrus-ci.org/guide/macOS
119+
name: "x86_64: macOS Catalina"
120+
macos_instance:
121+
image: catalina-base
205122
env:
206-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
207-
CI_USE_APT_INSTALL: "no"
208-
PACKAGE_MANAGER_INSTALL: "echo" # Nothing to do
209-
FILE_ENV: "./ci/test/00_setup_env_mac_host.sh"
123+
HOMEBREW_NO_AUTO_UPDATE: 1
124+
HOMEBREW_NO_INSTALL_CLEANUP: 1
125+
# Cirrus gives us a fixed number of 12 virtual CPUs. Not that we even have that many jobs at the moment...
126+
MAKEFLAGS: -j13
127+
matrix:
128+
<< : *ENV_MATRIX
129+
matrix:
130+
- env:
131+
CC: gcc-9
132+
- env:
133+
CC: clang
134+
# Update Command Line Tools
135+
# Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
136+
# See https://apple.stackexchange.com/a/195963 for the implementation.
137+
## update_clt_script:
138+
## - system_profiler SPSoftwareDataType
139+
## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
140+
## - |-
141+
## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
142+
## # For debugging
143+
## - softwareupdate -l && echo "PROD: $PROD"
144+
## - softwareupdate -i "$PROD" --verbose
145+
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
146+
##
147+
brew_valgrind_pre_script:
148+
- brew config
149+
- brew tap --shallow LouisBrunner/valgrind
150+
# Fetch valgrind source but don't build it yet.
151+
- brew fetch --HEAD LouisBrunner/valgrind/valgrind
152+
brew_valgrind_cache:
153+
# This is $(brew --cellar valgrind) but command substition does not work here.
154+
folder: /usr/local/Cellar/valgrind
155+
# Rebuild cache if ...
156+
fingerprint_script:
157+
# ... macOS version changes:
158+
- sw_vers
159+
# ... brew changes:
160+
- brew config
161+
# ... valgrind changes:
162+
- git -C "$(brew --cache)/valgrind--git" rev-parse HEAD
163+
populate_script:
164+
# If there's no hit in the cache, build and install valgrind.
165+
- brew install --HEAD LouisBrunner/valgrind/valgrind
166+
brew_valgrind_post_script:
167+
# If we have restored valgrind from the cache, tell brew to create symlink to the PATH.
168+
# If we haven't restored from cached (and just run brew install), this is a no-op.
169+
- brew link valgrind
170+
brew_script:
171+
- brew install automake libtool gcc@9
172+
<< : *MERGE_BASE
173+
test_script:
174+
- ./ci/cirrus.sh
175+
<< : *CAT_LOGS
210176

211177
task:
212-
name: 'ARM64 Android APK [focal]'
213-
<< : *DEPENDS_SDK_CACHE_TEMPLATE
214-
depends_sources_cache:
215-
folder: "depends/sources"
216-
<< : *GLOBAL_TASK_TEMPLATE
178+
name: "s390x (big-endian): Linux (Debian stable, QEMU)"
217179
container:
218-
image: ubuntu:focal
180+
dockerfile: ci/linux-debian.Dockerfile
181+
cpu: 1
182+
memory: 1G
219183
env:
220-
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
221-
FILE_ENV: "./ci/test/00_setup_env_android.sh"
184+
QEMU_CMD: qemu-s390x
185+
HOST: s390x-linux-gnu
186+
BUILD:
187+
WITH_VALGRIND: no
188+
ECDH: yes
189+
RECOVERY: yes
190+
EXPERIMENTAL: yes
191+
SCHNORRSIG: yes
192+
CTIMETEST: no
193+
<< : *MERGE_BASE
194+
test_script:
195+
# https://sourceware.org/bugzilla/show_bug.cgi?id=27008
196+
- rm /etc/ld.so.cache
197+
- ./ci/cirrus.sh
198+
<< : *CAT_LOGS

0 commit comments

Comments
 (0)