Skip to content

Commit a9cfd39

Browse files
Merge #6491: ci: merge bitcoin#27314, bitcoin#28954, fix multiprocess builds
27d9763 fix: add `linux64_multiprocess` `BUILD_TARGET` to matrix, mend C(XX) (Kittywhiskers Van Gogh) 26cc5a1 ci: use underscore to separate variant name from target triple (Kittywhiskers Van Gogh) d0131a5 trivial: sort `BUILD_TARGET` on GitHub and in `matrix.sh` alphabetically (Kittywhiskers Van Gogh) 4f1b5c1 merge bitcoin#28954: Reduce use of bash -c (Kittywhiskers Van Gogh) a49162f merge bitcoin#27314: Fix handling of `CXX=clang++` when building `qt` package (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * [bitcoin#27314](bitcoin#27314) has been backported in this PR as [bitcoin#25838](bitcoin#25838) (backported in [dash#6384](#6384)) broke Clang depends builds. * [bitcoin#28954](bitcoin#28954) has been backported to fix a problem associated with multiprocess runs ([build](https://gitlab.com/dashpay/dash/-/jobs/8396677312#L2921)). * Support for multiprocess builds were enabled _proper_ in [dash#6143](#6143) but unfortunately, the configuration params for multiprocess builds were not processed by CI as the build variant was not added to `matrix.sh` ([source](https://github.com/dashpay/dash/blob/6a51ab271dd5b1b839d754337abbf58a99cbdd21/ci/dash/matrix.sh)). This is evident by comparing two variants with Boost::Process enablement (`--with-boost-process`), `linux64_fuzz` ([source](https://github.com/dashpay/dash/blob/6a51ab271dd5b1b839d754337abbf58a99cbdd21/ci/test/00_setup_env_native_fuzz.sh#L19)) and `linux64_multiprocess` ([source](https://github.com/dashpay/dash/blob/6a51ab271dd5b1b839d754337abbf58a99cbdd21/ci/test/00_setup_env_native_multiprocess.sh#L13)). Looking at a `develop` (6a51ab2) build, the fuzz build has it enabled ([source](https://gitlab.com/dashpay/dash/-/jobs/8394892905#L737)) while the multiprocess build doesn't ([source](https://gitlab.com/dashpay/dash/-/jobs/8394892909#L1524)) despite both scripts having the enablement argument. ## Breaking Changes None expected. ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 27d9763 UdjinM6: utACK 27d9763 Tree-SHA512: 3e2fb72d4211875a162d3aecb994c5bd43b2f6d9fea0804d7e00a38a034672730f9351ceb9256ace38e32f7ef81527c8a034a870e5099a277dfd06f9fa54b480
2 parents 0968a00 + 27d9763 commit a9cfd39

File tree

9 files changed

+46
-40
lines changed

9 files changed

+46
-40
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,22 +114,22 @@ jobs:
114114
- build_target: linux64
115115
host: x86_64-pc-linux-gnu
116116
depends_on: linux64
117-
- build_target: linux64_tsan
118-
host: x86_64-pc-linux-gnu
119-
depends_on: linux64
120-
- build_target: linux64_ubsan
117+
- build_target: linux64_cxx20
121118
host: x86_64-pc-linux-gnu
122119
depends_on: linux64
123120
- build_target: linux64_fuzz
124121
host: x86_64-pc-linux-gnu
125122
depends_on: linux64
126-
- build_target: linux64_cxx20
123+
- build_target: linux64_nowallet
127124
host: x86_64-pc-linux-gnu
128125
depends_on: linux64
129126
- build_target: linux64_sqlite
130127
host: x86_64-pc-linux-gnu
131128
depends_on: linux64
132-
- build_target: linux64_nowallet
129+
- build_target: linux64_tsan
130+
host: x86_64-pc-linux-gnu
131+
depends_on: linux64
132+
- build_target: linux64_ubsan
133133
host: x86_64-pc-linux-gnu
134134
depends_on: linux64
135135
container:

.gitlab-ci.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -193,27 +193,27 @@ x86_64-w64-mingw32:
193193
variables:
194194
HOST: x86_64-w64-mingw32
195195

196-
x86_64-pc-linux-gnu-debug:
196+
x86_64-pc-linux-gnu_debug:
197197
extends: .build-depends-template
198198
variables:
199199
HOST: x86_64-pc-linux-gnu
200200
DEP_OPTS: "DEBUG=1"
201201

202-
x86_64-pc-linux-gnu-nowallet:
202+
x86_64-pc-linux-gnu_nowallet:
203203
extends:
204204
- .build-depends-template
205205
- .skip-in-fast-mode-template
206206
variables:
207207
HOST: x86_64-pc-linux-gnu
208208
DEP_OPTS: "NO_WALLET=1"
209209

210-
x86_64-pc-linux-gnu-multiprocess:
210+
x86_64-pc-linux-gnu_multiprocess:
211211
extends:
212212
- .build-depends-template
213213
- .skip-in-fast-mode-template
214214
variables:
215215
HOST: x86_64-pc-linux-gnu
216-
DEP_OPTS: "MULTIPROCESS=1"
216+
DEP_OPTS: "DEBUG=1 MULTIPROCESS=1"
217217

218218
x86_64-apple-darwin:
219219
extends:
@@ -243,7 +243,7 @@ win64-build:
243243
linux64-build:
244244
extends: .build-template
245245
needs:
246-
- x86_64-pc-linux-gnu-debug
246+
- x86_64-pc-linux-gnu_debug
247247
variables:
248248
BUILD_TARGET: linux64
249249

@@ -252,7 +252,7 @@ linux64_cxx20-build:
252252
- .build-template
253253
- .skip-in-fast-mode-template
254254
needs:
255-
- x86_64-pc-linux-gnu-debug
255+
- x86_64-pc-linux-gnu_debug
256256
variables:
257257
BUILD_TARGET: linux64_cxx20
258258

@@ -261,7 +261,7 @@ linux64_sqlite-build:
261261
- .build-template
262262
- .skip-in-fast-mode-template
263263
needs:
264-
- x86_64-pc-linux-gnu-debug
264+
- x86_64-pc-linux-gnu_debug
265265
variables:
266266
BUILD_TARGET: linux64_sqlite
267267

@@ -270,7 +270,7 @@ linux64_fuzz-build:
270270
- .build-template
271271
- .skip-in-fast-mode-template
272272
needs:
273-
- x86_64-pc-linux-gnu-debug
273+
- x86_64-pc-linux-gnu_debug
274274
variables:
275275
BUILD_TARGET: linux64_fuzz
276276

@@ -279,7 +279,7 @@ linux64_fuzz-build:
279279
# - .build-template
280280
# - .skip-in-fast-mode-template
281281
# needs:
282-
# - x86_64-pc-linux-gnu-debug
282+
# - x86_64-pc-linux-gnu_debug
283283
# variables:
284284
# BUILD_TARGET: linux64_asan
285285

@@ -288,7 +288,7 @@ linux64_tsan-build:
288288
- .build-template
289289
- .skip-in-fast-mode-template
290290
needs:
291-
- x86_64-pc-linux-gnu-debug
291+
- x86_64-pc-linux-gnu_debug
292292
variables:
293293
BUILD_TARGET: linux64_tsan
294294

@@ -297,7 +297,7 @@ linux64_ubsan-build:
297297
- .build-template
298298
- .skip-in-fast-mode-template
299299
needs:
300-
- x86_64-pc-linux-gnu-debug
300+
- x86_64-pc-linux-gnu_debug
301301
variables:
302302
BUILD_TARGET: linux64_ubsan
303303

@@ -306,7 +306,7 @@ linux64_nowallet-build:
306306
- .build-template
307307
- .skip-in-fast-mode-template
308308
needs:
309-
- x86_64-pc-linux-gnu-nowallet
309+
- x86_64-pc-linux-gnu_nowallet
310310
variables:
311311
BUILD_TARGET: linux64_nowallet
312312

@@ -315,7 +315,7 @@ linux64_multiprocess-build:
315315
- .build-template
316316
- .skip-in-fast-mode-template
317317
needs:
318-
- x86_64-pc-linux-gnu-multiprocess
318+
- x86_64-pc-linux-gnu_multiprocess
319319
variables:
320320
BUILD_TARGET: linux64_multiprocess
321321

@@ -324,7 +324,7 @@ linux64_multiprocess-build:
324324
# - .build-template
325325
# - .skip-in-fast-mode-template
326326
# needs:
327-
# - x86_64-pc-linux-gnu-debug
327+
# - x86_64-pc-linux-gnu_debug
328328
# variables:
329329
# BUILD_TARGET: linux64_valgrind
330330

ci/dash/matrix.sh

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,30 @@ export UBSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/
1818

1919
if [ "$BUILD_TARGET" = "arm-linux" ]; then
2020
source ./ci/test/00_setup_env_arm.sh
21-
elif [ "$BUILD_TARGET" = "win64" ]; then
22-
source ./ci/test/00_setup_env_win64.sh
2321
elif [ "$BUILD_TARGET" = "linux64" ]; then
2422
source ./ci/test/00_setup_env_native_qt5.sh
2523
elif [ "$BUILD_TARGET" = "linux64_asan" ]; then
2624
source ./ci/test/00_setup_env_native_asan.sh
27-
elif [ "$BUILD_TARGET" = "linux64_tsan" ]; then
28-
source ./ci/test/00_setup_env_native_tsan.sh
29-
elif [ "$BUILD_TARGET" = "linux64_ubsan" ]; then
30-
source ./ci/test/00_setup_env_native_ubsan.sh
31-
elif [ "$BUILD_TARGET" = "linux64_fuzz" ]; then
32-
source ./ci/test/00_setup_env_native_fuzz.sh
3325
elif [ "$BUILD_TARGET" = "linux64_cxx20" ]; then
3426
source ./ci/test/00_setup_env_native_cxx20.sh
35-
elif [ "$BUILD_TARGET" = "linux64_sqlite" ]; then
36-
source ./ci/test/00_setup_env_native_sqlite.sh
27+
elif [ "$BUILD_TARGET" = "linux64_fuzz" ]; then
28+
source ./ci/test/00_setup_env_native_fuzz.sh
29+
elif [ "$BUILD_TARGET" = "linux64_multiprocess" ]; then
30+
source ./ci/test/00_setup_env_native_multiprocess.sh
3731
elif [ "$BUILD_TARGET" = "linux64_nowallet" ]; then
3832
source ./ci/test/00_setup_env_native_nowallet.sh
33+
elif [ "$BUILD_TARGET" = "linux64_sqlite" ]; then
34+
source ./ci/test/00_setup_env_native_sqlite.sh
35+
elif [ "$BUILD_TARGET" = "linux64_tsan" ]; then
36+
source ./ci/test/00_setup_env_native_tsan.sh
37+
elif [ "$BUILD_TARGET" = "linux64_ubsan" ]; then
38+
source ./ci/test/00_setup_env_native_ubsan.sh
3939
elif [ "$BUILD_TARGET" = "linux64_valgrind" ]; then
4040
source ./ci/test/00_setup_env_native_valgrind.sh
4141
elif [ "$BUILD_TARGET" = "mac" ]; then
4242
source ./ci/test/00_setup_env_mac.sh
4343
elif [ "$BUILD_TARGET" = "s390x" ]; then
4444
source ./ci/test/00_setup_env_s390x.sh
45+
elif [ "$BUILD_TARGET" = "win64" ]; then
46+
source ./ci/test/00_setup_env_win64.sh
4547
fi

ci/dash/test_integrationtests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ echo "Using socketevents mode: $SOCKETEVENTS"
4242
EXTRA_ARGS="--dashd-arg=-socketevents=$SOCKETEVENTS"
4343

4444
set +e
45-
LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib ${TEST_RUNNER_ENV} ./test/functional/test_runner.py --ci --attempts=3 --ansi --combinedlogslen=4000 --timeout-factor=${TEST_RUNNER_TIMEOUT_FACTOR} ${TEST_RUNNER_EXTRA} --failfast --nocleanup --tmpdir=$(pwd)/testdatadirs $PASS_ARGS $EXTRA_ARGS
45+
LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib ./test/functional/test_runner.py --ci --attempts=3 --ansi --combinedlogslen=4000 --timeout-factor=${TEST_RUNNER_TIMEOUT_FACTOR} ${TEST_RUNNER_EXTRA} --failfast --nocleanup --tmpdir=$(pwd)/testdatadirs $PASS_ARGS $EXTRA_ARGS
4646
RESULT=$?
4747
set -e
4848

ci/dash/test_unittests.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ if [ "$DIRECT_WINE_EXEC_TESTS" = "true" ]; then
2929
wine ./src/test/test_dash.exe
3030
else
3131
if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then
32-
${TEST_RUNNER_ENV} ./src/test/test_dash --catch_system_errors=no -l test_suite
32+
./src/test/test_dash --catch_system_errors=no -l test_suite
3333
else
34-
${TEST_RUNNER_ENV} make $MAKEJOBS check VERBOSE=1
34+
make $MAKEJOBS check VERBOSE=1
3535
fi
3636
fi

ci/test/00_setup_env.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ export RUN_SECURITY_TESTS=${RUN_SECURITY_TESTS:-false}
4343
# This is needed because some ci machines have slow CPU or disk, so sanitizers
4444
# might be slow or a reindex might be waiting on disk IO.
4545
export TEST_RUNNER_TIMEOUT_FACTOR=${TEST_RUNNER_TIMEOUT_FACTOR:-4}
46-
export TEST_RUNNER_ENV=${TEST_RUNNER_ENV:-}
4746
export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false}
4847
export EXPECTED_TESTS_DURATION_IN_SECONDS=${EXPECTED_TESTS_DURATION_IN_SECONDS:-1000}
4948

ci/test/00_setup_env_native_multiprocess.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ export PACKAGES="cmake python3 llvm clang"
1111
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
1212
export GOAL="install"
1313
export TEST_RUNNER_EXTRA="--v2transport"
14-
export BITCOIN_CONFIG="--with-boost-process --enable-debug CC=clang CXX=clang++" # Use clang to avoid OOM
15-
export TEST_RUNNER_ENV="BITCOIND=dash-node"
14+
export BITCOIN_CONFIG="--with-boost-process --enable-debug CC=clang-16 CXX=clang++-16" # Use clang to avoid OOM
15+
export BITCOIND=dash-node # Used in functional tests

ci/test/00_setup_env_s390x.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ fi
1919
# Use debian to avoid 404 apt errors
2020
export CONTAINER_NAME=ci_s390x
2121
export RUN_UNIT_TESTS=true
22-
export TEST_RUNNER_ENV="LC_ALL=C"
2322
export RUN_FUNCTIONAL_TESTS=true
2423
export GOAL="install"
2524
export BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests --with-boost-process" # GUI tests disabled for now, see https://github.com/bitcoin/bitcoin/issues/23730

depends/packages/qt.mk

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,15 @@ $(package)_config_opts_linux += -dbus-runtime
159159
ifneq ($(LTO),)
160160
$(package)_config_opts_linux += -ltcg
161161
endif
162-
$(package)_config_opts_linux += -platform linux-g++ -xplatform bitcoin-linux-g++
163-
ifneq (,$(findstring -stdlib=libc++,$($(1)_cxx)))
164-
$(package)_config_opts_x86_64_linux = -xplatform linux-clang-libc++
162+
163+
ifneq (,$(findstring clang,$($(package)_cxx)))
164+
ifneq (,$(findstring -stdlib=libc++,$($(package)_cxx)))
165+
$(package)_config_opts_linux += -platform linux-clang-libc++ -xplatform linux-clang-libc++
166+
else
167+
$(package)_config_opts_linux += -platform linux-clang -xplatform linux-clang
168+
endif
169+
else
170+
$(package)_config_opts_linux += -platform linux-g++ -xplatform bitcoin-linux-g++
165171
endif
166172

167173
$(package)_config_opts_mingw32 = -no-opengl

0 commit comments

Comments
 (0)