Page MenuHomePhabricator

[Chronik] Add minimal Rust <-> C++ bridge
ClosedPublic

Authored by tobias_ruck on Aug 16 2022, 13:37.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC4bac623448ed: [Chronik] Add minimal Rust <-> C++ bridge
Summary

Establish a bridge using the cxx crate. The definition is in chronik-ffi/src/ffi.rs, see https://cxx.rs/extern-rust.html and https://cxx.rs/extern-c++.html.

On the C++ side, we expose log_println, which prints a string using LogPrintf. In the future we can add more parameters (like file/line no) and use LogInstance().LogPrintStr.

On the Rust side, we expose setup_bridge, which uses log_println to print a message.

cxx generates the files in a fixed location, and we update the CMake list file to add the generated headers and C++ source files.

Corrosion builds chronik-ffi-static, which we add to the chronik target.

We set the Rust_CARGO_TARGET triplet for Corrosion for known targets, see https://doc.rust-lang.org/nightly/rustc/platform-support.html. All the platform targets from cmake/platforms are supported, except OSX, which has a known issue with the cxx dependency.

Depends on D11862.

Test Plan
  1. ninja
  2. ./src/bitcoind -regtest prints "Starting Chronik..." in the logs
  3. Ctrl+C to terminate bitcoind prints "Stopping Chronik..." in the logs (as before)

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Add missing COMMAND field to add_custom_command, add Linux Chronik build targets

@bot build-chronik-linux32
@bot build-chronik-linux64
@bot build-chronik-linux-aarch64
@bot build-chronik-linux-arm

Tail of the build log:

(cat <<EOF
results() {
  set +e
  shopt -s dotglob nullglob
  mv /work/abc-ci-builds/"@bot"/* /results
  chown -R ${ME} /work
  chown -R ${ME} /results
  chown -R ${ME} /root/.ccache
}
trap "results" EXIT
export TEAMCITY_VERSION="2019.2.4 (build 72059)"
export BASE_CACHE="/root/abc-depends/cache"
export SDK_ARCHIVE_DIR="/root/abc-depends/osx-sdk"
export SOURCES_PATH="/root/abc-depends/sources"
export SDK_DL_REMOTE="http://ci.fabien.cash"
mkdir -p "/root/abc-depends/cache" "/root/abc-depends/osx-sdk" "/root/abc-depends/sources"
./contrib/teamcity/build-configurations.py "@bot"
EOF
) > run-command.sh
chmod +x run-command.sh

~/infra/docker/docker-run.sh \
  -a "-v /home/teamcity/.ccache:/root/.ccache -v /home/teamcity/.abc-depends:/root/abc-depends -v "${RESULTS_DIR}":/results" \
  -c run-command.sh /work/run-command.sh abc-base-image-"${HASH}" ./run-command.sh

[17:21:11] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script7529089603918928061
[17:21:11] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[17:21:11] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[17:21:11] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[17:21:11] :	 [Step 1/1] Building base image for: 5050716d4...
[17:21:11] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[17:21:14] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[17:21:14] :	 [Step 1/1] Tag name: abc-base-image-5050716d4
[17:21:37]W:	 [Step 1/1] Traceback (most recent call last):
[17:21:37]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 573, in <module>
[17:21:37]W:	 [Step 1/1]     main()
[17:21:37]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 562, in main
[17:21:37]W:	 [Step 1/1]     script_dir, config_path, args.build)
[17:21:37]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 59, in __init__
[17:21:37]W:	 [Step 1/1]     self.load(build_name)
[17:21:37]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 82, in load
[17:21:37]W:	 [Step 1/1]     self.name, list(config.keys())
[17:21:37]W:	 [Step 1/1] AssertionError: @bot is not a valid build identifier. Valid identifiers are ['templates', 'builds']
[17:21:37]W:	 [Step 1/1] mv: missing destination file operand after '/results'
[17:21:37]W:	 [Step 1/1] Try 'mv --help' for more information.
[17:21:42]W:	 [Step 1/1] Process exited with code 1
[17:21:42]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
[17:21:42]E:	 [Step 1/1] Step Command Line failed
[17:21:43]E: Ant JUnit report watcher
[17:21:43]E:	 [Ant JUnit report watcher] No reports found for paths:
[17:21:43]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[17:21:43]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[17:21:43] : Publishing internal artifacts (1s)
[17:21:44] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[17:21:44] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[17:21:43]W: Publishing artifacts (1s)
[17:21:43] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml]
[17:21:43]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[17:21:45] : Build finished

Tail of the build log:

                 from ../../src/./prevector.h:8,
                 from ../../src/./serialize.h:10,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_algo.h: In function ‘void std::shuffle(_RAIter, _RAIter, _UGenerator&&) [with _RAIter = __gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >; _UGenerator = FastRandomContext]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_algo.h:3792:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
     shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
     ^~~~~~~
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_algo.h:3792:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
In file included from /usr/arm-linux-gnueabihf/include/c++/8/map:60,
                 from ../../src/./rcu.h:12,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>, std::tuple<>}; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, tallyitem>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h:2411:7: note: parameter passing for argument of type ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, tallyitem>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >’} changed in GCC 7.1
       _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h: In member function ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = COutPoint; _Val = std::pair<const COutPoint, Coin>; _KeyOfValue = std::_Select1st<std::pair<const COutPoint, Coin> >; _Compare = std::less<COutPoint>; _Alloc = std::allocator<std::pair<const COutPoint, Coin> >]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h:2146:5: note: parameter passing for argument of type ‘std::_Rb_tree<COutPoint, std::pair<const COutPoint, Coin>, std::_Select1st<std::pair<const COutPoint, Coin> >, std::less<COutPoint>, std::allocator<std::pair<const COutPoint, Coin> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const COutPoint, Coin> >’} changed in GCC 7.1
     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/arm-linux-gnueabihf/include/c++/8/vector:64,
                 from /usr/arm-linux-gnueabihf/include/c++/8/functional:62,
                 from ../../src/./rcu.h:11,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_vector.h: In function ‘void ParseRecipients(const UniValue&, const UniValue&, std::vector<CRecipient>&, const CChainParams&)’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
In file included from /usr/arm-linux-gnueabihf/include/c++/8/map:60,
                 from ../../src/./rcu.h:12,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const boost::variant<CNoDestination, PKHash, ScriptHash>&>, std::tuple<>}; _Key = boost::variant<CNoDestination, PKHash, ScriptHash>; _Val = std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem>; _KeyOfValue = std::_Select1st<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >; _Compare = std::less<boost::variant<CNoDestination, PKHash, ScriptHash> >; _Alloc = std::allocator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h:2411:7: note: parameter passing for argument of type ‘std::_Rb_tree<boost::variant<CNoDestination, PKHash, ScriptHash>, std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem>, std::_Select1st<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >, std::less<boost::variant<CNoDestination, PKHash, ScriptHash> >, std::allocator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >’} changed in GCC 7.1
       _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/wallet/rpcwallet.cpp: In function ‘UniValue SendMoney(CWallet*, const CCoinControl&, std::vector<CRecipient>&, mapValue_t)’:
../../src/wallet/rpcwallet.cpp:410:17: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
     std::shuffle(recipients.begin(), recipients.end(), FastRandomContext());
     ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/arm-linux-gnueabihf/include/c++/8/map:61,
                 from ../../src/./rcu.h:12,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_map.h: In function ‘UniValue ListReceived(const Config&, const CWallet*, const UniValue&, bool)’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_map.h:499:8: note: parameter passing for argument of type ‘std::_Rb_tree<boost::variant<CNoDestination, PKHash, ScriptHash>, std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem>, std::_Select1st<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >, std::less<boost::variant<CNoDestination, PKHash, ScriptHash> >, std::allocator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >’} changed in GCC 7.1
    __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_map.h:499:8: note: parameter passing for argument of type ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, tallyitem>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >’} changed in GCC 7.1
    __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
[296/516] Linking CXX static library src/wallet/libwallet.a
[297/516] Linking CXX static library src/wallet/libwallet-tool.a
[298/516] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-linux-arm failed with exit code 1

Tail of the build log:

[251/525] Building CXX object src/CMakeFiles/bitcoinconsensus-shared.dir/script/bitcoinconsensus.cpp.o
[252/525] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/hash.cpp.o
[253/525] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[254/525] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/uint256.cpp.o
[255/525] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[256/525] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/pubkey.cpp.o
[257/525] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/util/strencodings.cpp.o
[258/525] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[259/525] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[260/525] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[261/525] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[262/525] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[263/525] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[264/525] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[265/525] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[266/525] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[267/525] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[268/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[269/525] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[270/525] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[271/525] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[272/525] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[273/525] Linking C static library src/secp256k1/libsecp256k1.a
[274/525] Linking CXX static library src/libbitcoinconsensus.a
[275/525] Linking C executable src/secp256k1/ecmult-bench
[276/525] Linking C executable src/secp256k1/internal-bench
[277/525] Linking C executable src/secp256k1/sign-bench
[278/525] Linking C executable src/secp256k1/verify-bench
[279/525] Linking C executable src/secp256k1/recover-bench
[280/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[281/525] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[282/525] Linking CXX static library src/libscript.a
[283/525] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[284/525] Linking CXX static library src/libcommon.a
[285/525] Linking CXX shared library src/libbitcoinconsensus.so.0.25.11
[286/525] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[287/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[288/525] Linking CXX executable src/bitcoin-cli
[289/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[290/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[291/525] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[292/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[293/525] Linking CXX executable src/bitcoin-tx
[294/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[295/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[296/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[297/525] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[298/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[299/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[300/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[301/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[302/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[303/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[304/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[305/525] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[306/525] Linking CXX static library src/wallet/libwallet.a
[307/525] Linking CXX static library src/wallet/libwallet-tool.a
[308/525] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

[259/526] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[260/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[261/526] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[262/526] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[263/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[264/526] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[265/526] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[266/526] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[267/526] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[268/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[269/526] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[270/526] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[271/526] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[272/526] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[273/526] Linking C static library src/secp256k1/libsecp256k1.a
[274/526] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[275/526] Linking CXX static library src/libbitcoinconsensus.a
[276/526] Linking CXX static library src/libscript.a
[277/526] Linking C executable src/secp256k1/ecmult-bench
[278/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[279/526] Linking CXX static library src/libcommon.a
[280/526] Linking C executable src/secp256k1/internal-bench
[281/526] Linking C executable src/secp256k1/sign-bench
[282/526] Linking C executable src/secp256k1/verify-bench
[283/526] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[284/526] Linking CXX shared library src/libbitcoinconsensus.so.0.25.11
[285/526] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[286/526] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[287/526] Linking C executable src/secp256k1/recover-bench
[288/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[289/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[290/526] Linking CXX executable src/bitcoin-cli
[291/526] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[292/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[293/526] Linking CXX executable src/bitcoin-tx
[294/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[295/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[296/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[297/526] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[298/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[299/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[300/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[301/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[302/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[303/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[304/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[305/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[306/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[307/526] Linking CXX static library src/wallet/libwallet.a
[308/526] Linking CXX static library src/wallet/libwallet-tool.a
[309/526] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-linux32 failed with exit code 1

Tail of the build log:

[246/514] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[247/514] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[248/514] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[249/514] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[250/514] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[251/514] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[252/514] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[253/514] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[254/514] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[255/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[256/514] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[257/514] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[258/514] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[259/514] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[260/514] Linking C static library src/secp256k1/libsecp256k1.a
[261/514] Linking CXX static library src/libbitcoinconsensus.a
[262/514] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[263/514] Linking C executable src/secp256k1/ecmult-bench
[264/514] Linking CXX static library src/libscript.a
[265/514] Linking C executable src/secp256k1/internal-bench
[266/514] Linking CXX static library src/libcommon.a
[267/514] Linking C executable src/secp256k1/sign-bench
[268/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[269/514] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[270/514] Linking C executable src/secp256k1/verify-bench
[271/514] Linking CXX shared library src/libbitcoinconsensus.so.0.25.11
[272/514] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[273/514] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[274/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[275/514] Linking C executable src/secp256k1/recover-bench
[276/514] Linking CXX executable src/bitcoin-cli
[277/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[278/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[279/514] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[280/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[281/514] Linking CXX executable src/bitcoin-tx
[282/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[283/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[284/514] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[285/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[286/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[287/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[288/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[289/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[290/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[291/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[292/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[293/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[294/514] Linking CXX static library src/wallet/libwallet.a
[295/514] Linking CXX static library src/wallet/libwallet-tool.a
[296/514] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-linux-aarch64 failed with exit code 1

Tail of the build log:

[259/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/util/strencodings.cpp.o
[260/526] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[261/526] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[262/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[263/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[264/526] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[265/526] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[266/526] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[267/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[268/526] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[269/526] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[270/526] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[271/526] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[272/526] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[273/526] Linking C static library src/secp256k1/libsecp256k1.a
[274/526] Linking CXX static library src/libbitcoinconsensus.a
[275/526] Linking C executable src/secp256k1/ecmult-bench
[276/526] Linking C executable src/secp256k1/internal-bench
[277/526] Linking C executable src/secp256k1/sign-bench
[278/526] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[279/526] Linking CXX static library src/libscript.a
[280/526] Linking C executable src/secp256k1/verify-bench
[281/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[282/526] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[283/526] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[284/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[285/526] Linking C executable src/secp256k1/recover-bench
[286/526] Linking CXX static library src/libcommon.a
[287/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[288/526] Linking CXX shared library src/libbitcoinconsensus.so.0.25.11
[289/526] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[290/526] Linking CXX executable src/bitcoin-cli
[291/526] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[292/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[293/526] Linking CXX executable src/bitcoin-tx
[294/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[295/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[296/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[297/526] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[298/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[299/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[300/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[301/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[302/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[303/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[304/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[305/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[306/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[307/526] Linking CXX static library src/wallet/libwallet.a
[308/526] Linking CXX static library src/wallet/libwallet-tool.a
[309/526] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-linux64 failed with exit code 1
Fabien requested changes to this revision.Aug 16 2022, 18:16
Fabien added inline comments.
chronik/CMakeLists.txt
38 ↗(On Diff #34668)

You should add these definitions directly to the relevant toolchain file, as it is expected to be overriden only when cross compiling

57 ↗(On Diff #34668)

This is no longer a supported platform, you can remove it

This revision now requires changes to proceed.Aug 16 2022, 18:16
contrib/teamcity/build-configurations.yml
111 ↗(On Diff #34672)

Don't duplicate the builds but add the flag to the existing ones instead

Move the cross-compile definitions for Rust_CARGO_TARGET into the respective file in cmake/platforms

Also fix the echo in add_custom_command to use cmake -E

Remove build-chronik-* targets, add -DBUILD_BITCOIN_CHRONIK=ON to cross compiles directly instead

@bot build-linux32
@bot build-linux64
@bot build-linux-aarch64
@bot build-linux-arm
@bot build-osx
@bot build-win64

Tail of the build log:

(cat <<EOF
results() {
  set +e
  shopt -s dotglob nullglob
  mv /work/abc-ci-builds/"@bot"/* /results
  chown -R ${ME} /work
  chown -R ${ME} /results
  chown -R ${ME} /root/.ccache
}
trap "results" EXIT
export TEAMCITY_VERSION="2019.2.4 (build 72059)"
export BASE_CACHE="/root/abc-depends/cache"
export SDK_ARCHIVE_DIR="/root/abc-depends/osx-sdk"
export SOURCES_PATH="/root/abc-depends/sources"
export SDK_DL_REMOTE="http://ci.fabien.cash"
mkdir -p "/root/abc-depends/cache" "/root/abc-depends/osx-sdk" "/root/abc-depends/sources"
./contrib/teamcity/build-configurations.py "@bot"
EOF
) > run-command.sh
chmod +x run-command.sh

~/infra/docker/docker-run.sh \
  -a "-v /home/teamcity/.ccache:/root/.ccache -v /home/teamcity/.abc-depends:/root/abc-depends -v "${RESULTS_DIR}":/results" \
  -c run-command.sh /work/run-command.sh abc-base-image-"${HASH}" ./run-command.sh

[21:26:15] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script5169375624598166901
[21:26:15] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[21:26:15] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[21:26:15] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[21:26:15] :	 [Step 1/1] Building base image for: 3f2398832...
[21:26:15] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[21:26:17] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[21:26:17] :	 [Step 1/1] Tag name: abc-base-image-3f2398832
[21:26:43]W:	 [Step 1/1] Traceback (most recent call last):
[21:26:43]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 573, in <module>
[21:26:43]W:	 [Step 1/1]     main()
[21:26:43]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 562, in main
[21:26:43]W:	 [Step 1/1]     script_dir, config_path, args.build)
[21:26:43]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 59, in __init__
[21:26:43]W:	 [Step 1/1]     self.load(build_name)
[21:26:43]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 82, in load
[21:26:43]W:	 [Step 1/1]     self.name, list(config.keys())
[21:26:43]W:	 [Step 1/1] AssertionError: @bot is not a valid build identifier. Valid identifiers are ['templates', 'builds']
[21:26:43]W:	 [Step 1/1] mv: missing destination file operand after '/results'
[21:26:43]W:	 [Step 1/1] Try 'mv --help' for more information.
[21:26:47]W:	 [Step 1/1] Process exited with code 1
[21:26:47]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
[21:26:48]E:	 [Step 1/1] Step Command Line failed
[21:26:48]E: Ant JUnit report watcher
[21:26:48]E:	 [Ant JUnit report watcher] No reports found for paths:
[21:26:48]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[21:26:48]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[21:26:48] : Publishing internal artifacts (2s)
[21:26:50] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[21:26:50] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[21:26:48]W: Publishing artifacts (2s)
[21:26:48] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml]
[21:26:48]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[21:26:51] : Build finished

Tail of the build log:

[246/514] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[247/514] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[248/514] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[249/514] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[250/514] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[251/514] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[252/514] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[253/514] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[254/514] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[255/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[256/514] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[257/514] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[258/514] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[259/514] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[260/514] Linking C static library src/secp256k1/libsecp256k1.a
[261/514] Linking CXX static library src/libbitcoinconsensus.a
[262/514] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[263/514] Linking C executable src/secp256k1/ecmult-bench
[264/514] Linking CXX static library src/libscript.a
[265/514] Linking C executable src/secp256k1/internal-bench
[266/514] Linking CXX static library src/libcommon.a
[267/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[268/514] Linking C executable src/secp256k1/sign-bench
[269/514] Linking C executable src/secp256k1/verify-bench
[270/514] Linking CXX shared library src/libbitcoinconsensus.so.0.25.11
[271/514] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[272/514] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[273/514] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[274/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[275/514] Linking C executable src/secp256k1/recover-bench
[276/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[277/514] Linking CXX executable src/bitcoin-cli
[278/514] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[279/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[280/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[281/514] Linking CXX executable src/bitcoin-tx
[282/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[283/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[284/514] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[285/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[286/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[287/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[288/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[289/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[290/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[291/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[292/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[293/514] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[294/514] Linking CXX static library src/wallet/libwallet.a
[295/514] Linking CXX static library src/wallet/libwallet-tool.a
[296/514] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-linux-aarch64 failed with exit code 1

Tail of the build log:

-- Installing: /results/artifacts/bin/secp256k1-exhaustive_tests.exe
[365/805] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.obj
[366/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.obj
[367/805] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.obj
[368/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.obj
[369/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.obj
[370/805] Linking CXX static library src/libscript.a
[371/805] Building C object src/secp256k1/CMakeFiles/secp256k1-tests.dir/src/tests.c.obj
[372/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.obj
[373/805] Linking CXX static library src/libcommon.a
[374/805] Creating version file for bitcoinconsensus-shared
[375/805] Linking C executable src/secp256k1/secp256k1-tests.exe
[376/805] Creating version file for bitcoin-cli
[377/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.obj
[378/805] Creating version file for bitcoin-tx
[379/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.obj
[380/805] Installing component secp256k1-secp256k1-tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-tests"
-- Installing: /results/artifacts/bin/secp256k1-tests.exe
[381/805] Building CXX object src/CMakeFiles/bitcoinconsensus-shared.dir/script/bitcoinconsensus.cpp.obj
[382/805] 
[383/805] Building RC object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.rc.res
/work/abc-ci-builds/build-win64/src/bitcoin-cli.rc:25: use "" to put " in a string
/work/abc-ci-builds/build-win64/src/bitcoin-cli.rc:25: use "" to put " in a string
[384/805] 
[385/805] Building RC object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.rc.res
/work/abc-ci-builds/build-win64/src/bitcoin-tx.rc:25: use "" to put " in a string
/work/abc-ci-builds/build-win64/src/bitcoin-tx.rc:25: use "" to put " in a string
[386/805] 
[387/805] Building RC object src/CMakeFiles/bitcoinconsensus-shared.dir/bitcoinconsensus-shared.rc.res
/work/abc-ci-builds/build-win64/src/bitcoinconsensus-shared.rc:25: use "" to put " in a string
/work/abc-ci-builds/build-win64/src/bitcoinconsensus-shared.rc:25: use "" to put " in a string
[388/805] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.obj
[389/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.obj
[390/805] Linking CXX shared library src/libbitcoinconsensus.dll
[391/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.obj
[392/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.obj
[393/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.obj
[394/805] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.obj
[395/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.obj
[396/805] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.obj
[397/805] Linking CXX executable src/bitcoin-cli.exe
[398/805] Linking CXX executable src/bitcoin-tx.exe
[399/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.obj
[400/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.obj
[401/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.obj
[402/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.obj
[403/805] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.obj
[404/805] Linking CXX static library src/wallet/libwallet.a
[405/805] Linking CXX static library src/wallet/libwallet-tool.a
[406/805] Creating version file for bitcoin-wallet
[407/805] 
[408/805] Building RC object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.rc.res
/work/abc-ci-builds/build-win64/src/bitcoin-wallet.rc:25: use "" to put " in a string
/work/abc-ci-builds/build-win64/src/bitcoin-wallet.rc:25: use "" to put " in a string
[409/805] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.obj
[410/805] Linking CXX executable src/bitcoin-wallet.exe
ninja: build stopped: cannot make progress due to previous errors.
Build build-win64 failed with exit code 1

Tail of the build log:

                 from ../../src/./prevector.h:8,
                 from ../../src/./serialize.h:10,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_algo.h: In function ‘void std::shuffle(_RAIter, _RAIter, _UGenerator&&) [with _RAIter = __gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >; _UGenerator = FastRandomContext]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_algo.h:3792:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
     shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
     ^~~~~~~
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_algo.h:3792:5: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
In file included from /usr/arm-linux-gnueabihf/include/c++/8/map:60,
                 from ../../src/./rcu.h:12,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>, std::tuple<>}; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, tallyitem>; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h:2411:7: note: parameter passing for argument of type ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, tallyitem>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >’} changed in GCC 7.1
       _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h: In member function ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = COutPoint; _Val = std::pair<const COutPoint, Coin>; _KeyOfValue = std::_Select1st<std::pair<const COutPoint, Coin> >; _Compare = std::less<COutPoint>; _Alloc = std::allocator<std::pair<const COutPoint, Coin> >]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h:2146:5: note: parameter passing for argument of type ‘std::_Rb_tree<COutPoint, std::pair<const COutPoint, Coin>, std::_Select1st<std::pair<const COutPoint, Coin> >, std::less<COutPoint>, std::allocator<std::pair<const COutPoint, Coin> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const COutPoint, Coin> >’} changed in GCC 7.1
     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/arm-linux-gnueabihf/include/c++/8/vector:64,
                 from /usr/arm-linux-gnueabihf/include/c++/8/functional:62,
                 from ../../src/./rcu.h:11,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_vector.h: In function ‘void ParseRecipients(const UniValue&, const UniValue&, std::vector<CRecipient>&, const CChainParams&)’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
    _M_realloc_insert(end(), __x);
    ^~~~~~~~~~~~~~~~~
In file included from /usr/arm-linux-gnueabihf/include/c++/8/map:60,
                 from ../../src/./rcu.h:12,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h: In member function ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const boost::variant<CNoDestination, PKHash, ScriptHash>&>, std::tuple<>}; _Key = boost::variant<CNoDestination, PKHash, ScriptHash>; _Val = std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem>; _KeyOfValue = std::_Select1st<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >; _Compare = std::less<boost::variant<CNoDestination, PKHash, ScriptHash> >; _Alloc = std::allocator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >]’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_tree.h:2411:7: note: parameter passing for argument of type ‘std::_Rb_tree<boost::variant<CNoDestination, PKHash, ScriptHash>, std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem>, std::_Select1st<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >, std::less<boost::variant<CNoDestination, PKHash, ScriptHash> >, std::allocator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >’} changed in GCC 7.1
       _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/wallet/rpcwallet.cpp: In function ‘UniValue SendMoney(CWallet*, const CCoinControl&, std::vector<CRecipient>&, mapValue_t)’:
../../src/wallet/rpcwallet.cpp:410:17: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<CRecipient*, std::vector<CRecipient> >’ changed in GCC 7.1
     std::shuffle(recipients.begin(), recipients.end(), FastRandomContext());
     ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/arm-linux-gnueabihf/include/c++/8/map:61,
                 from ../../src/./rcu.h:12,
                 from ../../src/./serialize.h:11,
                 from ../../src/./amount.h:10,
                 from ../../src/wallet/rpcwallet.cpp:6:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_map.h: In function ‘UniValue ListReceived(const Config&, const CWallet*, const UniValue&, bool)’:
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_map.h:499:8: note: parameter passing for argument of type ‘std::_Rb_tree<boost::variant<CNoDestination, PKHash, ScriptHash>, std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem>, std::_Select1st<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >, std::less<boost::variant<CNoDestination, PKHash, ScriptHash> >, std::allocator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const boost::variant<CNoDestination, PKHash, ScriptHash>, tallyitem> >’} changed in GCC 7.1
    __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
/usr/arm-linux-gnueabihf/include/c++/8/bits/stl_map.h:499:8: note: parameter passing for argument of type ‘std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, tallyitem>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, tallyitem> >’} changed in GCC 7.1
    __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
[296/516] Linking CXX static library src/wallet/libwallet.a
[297/516] Linking CXX static library src/wallet/libwallet-tool.a
[298/516] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-linux-arm failed with exit code 1

Tail of the build log:

[258/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[259/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/util/strencodings.cpp.o
[260/526] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[261/526] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[262/526] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[263/526] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[264/526] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[265/526] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[266/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[267/526] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[268/526] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[269/526] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[270/526] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[271/526] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[272/526] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[273/526] Linking C static library src/secp256k1/libsecp256k1.a
[274/526] Linking CXX static library src/libbitcoinconsensus.a
[275/526] Linking CXX static library src/libscript.a
[276/526] Linking CXX static library src/libcommon.a
[277/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[278/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[279/526] Linking C executable src/secp256k1/ecmult-bench
[280/526] Linking C executable src/secp256k1/internal-bench
[281/526] Linking CXX shared library src/libbitcoinconsensus.so.0.25.11
[282/526] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[283/526] Linking C executable src/secp256k1/sign-bench
[284/526] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[285/526] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[286/526] Linking C executable src/secp256k1/verify-bench
[287/526] Linking C executable src/secp256k1/recover-bench
[288/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[289/526] Linking CXX executable src/bitcoin-cli
[290/526] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[291/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[292/526] Linking CXX executable src/bitcoin-tx
[293/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[294/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[295/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[296/526] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[297/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[298/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[299/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[300/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[301/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[302/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[303/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[304/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[305/526] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[306/526] Linking CXX static library src/wallet/libwallet.a
[307/526] Linking CXX static library src/wallet/libwallet-tool.a
[308/526] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-linux32 failed with exit code 1

Tail of the build log:

[363/813] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[364/813] Linking C static library src/secp256k1/libsecp256k1.a
[365/813] Linking CXX static library src/libbitcoinconsensus.a
[366/813] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[367/813] Linking C executable src/secp256k1/sign-bench
[368/813] Linking C executable src/secp256k1/internal-bench
[369/813] Linking C executable src/secp256k1/recover-bench
[370/813] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[371/813] Linking C executable src/secp256k1/verify-bench
[372/813] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[373/813] Linking C executable src/secp256k1/ecmult-bench
[374/813] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[375/813] Linking CXX static library src/libscript.a
[376/813] Building C object src/secp256k1/CMakeFiles/secp256k1-exhaustive_tests.dir/src/tests_exhaustive.c.o
[377/813] Linking CXX static library src/libcommon.a
[378/813] Linking C executable src/secp256k1/secp256k1-exhaustive_tests
[379/813] Linking CXX shared library src/libbitcoinconsensus.0.25.11.dylib
[380/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[381/813] Creating library symlink src/libbitcoinconsensus.0.dylib src/libbitcoinconsensus.dylib
[382/813] Linking CXX executable src/bitcoin-cli
[383/813] Installing component secp256k1-secp256k1-exhaustive_tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-exhaustive_tests"
-- Installing: /results/artifacts/bin/secp256k1-exhaustive_tests
[384/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[385/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[386/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[387/813] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[388/813] Linking CXX executable src/bitcoin-tx
[389/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[390/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[391/813] Building C object src/secp256k1/CMakeFiles/secp256k1-tests.dir/src/tests.c.o
[392/813] Linking C executable src/secp256k1/secp256k1-tests
[393/813] Installing component secp256k1-secp256k1-tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-tests"
-- Installing: /results/artifacts/bin/secp256k1-tests
[394/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[395/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[396/813] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[397/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[398/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[399/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[400/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[401/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[402/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[403/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[404/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[405/813] Linking CXX static library src/wallet/libwallet.a
[406/813] Linking CXX static library src/wallet/libwallet-tool.a
[407/813] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-osx failed with exit code 1

@bot build-linux64
@bot build-linux-aarch64
@bot build-linux-arm
@bot build-osx
@bot build-win64

Tail of the build log:

(cat <<EOF
results() {
  set +e
  shopt -s dotglob nullglob
  mv /work/abc-ci-builds/"@bot"/* /results
  chown -R ${ME} /work
  chown -R ${ME} /results
  chown -R ${ME} /root/.ccache
}
trap "results" EXIT
export TEAMCITY_VERSION="2019.2.4 (build 72059)"
export BASE_CACHE="/root/abc-depends/cache"
export SDK_ARCHIVE_DIR="/root/abc-depends/osx-sdk"
export SOURCES_PATH="/root/abc-depends/sources"
export SDK_DL_REMOTE="http://ci.fabien.cash"
mkdir -p "/root/abc-depends/cache" "/root/abc-depends/osx-sdk" "/root/abc-depends/sources"
./contrib/teamcity/build-configurations.py "@bot"
EOF
) > run-command.sh
chmod +x run-command.sh

~/infra/docker/docker-run.sh \
  -a "-v /home/teamcity/.ccache:/root/.ccache -v /home/teamcity/.abc-depends:/root/abc-depends -v "${RESULTS_DIR}":/results" \
  -c run-command.sh /work/run-command.sh abc-base-image-"${HASH}" ./run-command.sh

[12:54:44] :	 [Step 1/1] Starting: /home/teamcity/buildAgent/temp/agentTmp/custom_script8694421796439833214
[12:54:44] :	 [Step 1/1] in directory: /home/teamcity/buildAgent/work/jailed-build
[12:54:44] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[12:54:44] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[12:54:44] :	 [Step 1/1] Building base image for: cbbdbd036...
[12:54:44] :	 [Step 1/1] ~/buildAgent/work/jailed-build/bitcoin-abc ~/buildAgent/work/jailed-build
[12:54:47] :	 [Step 1/1] ~/buildAgent/work/jailed-build
[12:54:47] :	 [Step 1/1] Tag name: abc-base-image-cbbdbd036
[12:54:59]W:	 [Step 1/1] Traceback (most recent call last):
[12:54:59]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 573, in <module>
[12:54:59]W:	 [Step 1/1]     main()
[12:54:59]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 562, in main
[12:54:59]W:	 [Step 1/1]     script_dir, config_path, args.build)
[12:54:59]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 59, in __init__
[12:54:59]W:	 [Step 1/1]     self.load(build_name)
[12:54:59]W:	 [Step 1/1]   File "./contrib/teamcity/build-configurations.py", line 82, in load
[12:54:59]W:	 [Step 1/1]     self.name, list(config.keys())
[12:54:59]W:	 [Step 1/1] AssertionError: @bot is not a valid build identifier. Valid identifiers are ['templates', 'builds']
[12:54:59]W:	 [Step 1/1] mv: missing destination file operand after '/results'
[12:54:59]W:	 [Step 1/1] Try 'mv --help' for more information.
[12:55:05]W:	 [Step 1/1] Process exited with code 1
[12:55:05]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)
[12:55:05]E:	 [Step 1/1] Step Command Line failed
[12:55:05]E: Ant JUnit report watcher
[12:55:05]E:	 [Ant JUnit report watcher] No reports found for paths:
[12:55:05]E:	 [Ant JUnit report watcher] +:results/test_bitcoin.xml
[12:55:05]E:	 [Ant JUnit report watcher] +:results/**/junit_results*.xml
[12:55:05] : Publishing internal artifacts
[12:55:06] :	 [Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[12:55:06] :	 [Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[12:55:05]W: Publishing artifacts
[12:55:05] :	 [Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml]
[12:55:05]W:	 [Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[12:55:06] : Build finished

Tail of the build log:

[363/813] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[364/813] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[365/813] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[366/813] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[367/813] Linking C static library src/secp256k1/libsecp256k1.a
[368/813] Linking CXX static library src/libbitcoinconsensus.a
[369/813] Linking CXX static library src/libscript.a
[370/813] Linking CXX static library src/libcommon.a
[371/813] Linking CXX shared library src/libbitcoinconsensus.0.25.12.dylib
[372/813] Creating library symlink src/libbitcoinconsensus.0.dylib src/libbitcoinconsensus.dylib
[373/813] Building C object src/secp256k1/CMakeFiles/secp256k1-exhaustive_tests.dir/src/tests_exhaustive.c.o
[374/813] Linking CXX executable src/bitcoin-cli
[375/813] Linking C executable src/secp256k1/ecmult-bench
[376/813] Linking C executable src/secp256k1/internal-bench
[377/813] Linking C executable src/secp256k1/sign-bench
[378/813] Linking C executable src/secp256k1/recover-bench
[379/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[380/813] Linking C executable src/secp256k1/secp256k1-exhaustive_tests
[381/813] Linking C executable src/secp256k1/verify-bench
[382/813] Installing component secp256k1-secp256k1-exhaustive_tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-exhaustive_tests"
-- Installing: /results/artifacts/bin/secp256k1-exhaustive_tests
[383/813] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[384/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[385/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[386/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[387/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[388/813] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[389/813] Linking CXX executable src/bitcoin-tx
[390/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[391/813] Building C object src/secp256k1/CMakeFiles/secp256k1-tests.dir/src/tests.c.o
[392/813] Linking C executable src/secp256k1/secp256k1-tests
[393/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[394/813] Installing component secp256k1-secp256k1-tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-tests"
-- Installing: /results/artifacts/bin/secp256k1-tests
[395/813] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[396/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[397/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[398/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[399/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[400/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[401/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[402/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[403/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[404/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[405/813] Linking CXX static library src/wallet/libwallet.a
[406/813] Linking CXX static library src/wallet/libwallet-tool.a
[407/813] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-osx failed with exit code 1

Attempt at setting compiler settings for OSX

Tail of the build log:

[363/813] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[364/813] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[365/813] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[366/813] Linking C static library src/secp256k1/libsecp256k1.a
[367/813] Linking CXX static library src/libbitcoinconsensus.a
[368/813] Linking C executable src/secp256k1/ecmult-bench
[369/813] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[370/813] Linking C executable src/secp256k1/internal-bench
[371/813] Linking CXX static library src/libscript.a
[372/813] Linking C executable src/secp256k1/sign-bench
[373/813] Building C object src/secp256k1/CMakeFiles/secp256k1-exhaustive_tests.dir/src/tests_exhaustive.c.o
[374/813] Linking C executable src/secp256k1/recover-bench
[375/813] Linking CXX static library src/libcommon.a
[376/813] Linking C executable src/secp256k1/secp256k1-exhaustive_tests
[377/813] Linking C executable src/secp256k1/verify-bench
[378/813] Linking CXX shared library src/libbitcoinconsensus.0.25.12.dylib
[379/813] Creating library symlink src/libbitcoinconsensus.0.dylib src/libbitcoinconsensus.dylib
[380/813] Linking CXX executable src/bitcoin-cli
[381/813] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[382/813] Installing component secp256k1-secp256k1-exhaustive_tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-exhaustive_tests"
-- Installing: /results/artifacts/bin/secp256k1-exhaustive_tests
[383/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[384/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[385/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[386/813] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[387/813] Linking CXX executable src/bitcoin-tx
[388/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[389/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[390/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[391/813] Building C object src/secp256k1/CMakeFiles/secp256k1-tests.dir/src/tests.c.o
[392/813] Linking C executable src/secp256k1/secp256k1-tests
[393/813] Installing component secp256k1-secp256k1-tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-tests"
-- Installing: /results/artifacts/bin/secp256k1-tests
[394/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[395/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[396/813] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[397/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[398/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[399/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[400/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[401/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[402/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[403/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[404/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[405/813] Linking CXX static library src/wallet/libwallet.a
[406/813] Linking CXX static library src/wallet/libwallet-tool.a
[407/813] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-osx failed with exit code 1

Tail of the build log:

[363/813] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[364/813] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[365/813] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[366/813] Linking C static library src/secp256k1/libsecp256k1.a
[367/813] Linking CXX static library src/libbitcoinconsensus.a
[368/813] Linking C executable src/secp256k1/ecmult-bench
[369/813] Linking C executable src/secp256k1/internal-bench
[370/813] Linking C executable src/secp256k1/sign-bench
[371/813] Linking C executable src/secp256k1/recover-bench
[372/813] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[373/813] Linking C executable src/secp256k1/verify-bench
[374/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[375/813] Linking CXX static library src/libscript.a
[376/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[377/813] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[378/813] Linking CXX static library src/libcommon.a
[379/813] Linking CXX shared library src/libbitcoinconsensus.0.25.12.dylib
[380/813] Creating library symlink src/libbitcoinconsensus.0.dylib src/libbitcoinconsensus.dylib
[381/813] Building C object src/secp256k1/CMakeFiles/secp256k1-exhaustive_tests.dir/src/tests_exhaustive.c.o
[382/813] Linking C executable src/secp256k1/secp256k1-exhaustive_tests
[383/813] Linking CXX executable src/bitcoin-cli
[384/813] Installing component secp256k1-secp256k1-exhaustive_tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-exhaustive_tests"
-- Installing: /results/artifacts/bin/secp256k1-exhaustive_tests
[385/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[386/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[387/813] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[388/813] Linking CXX executable src/bitcoin-tx
[389/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[390/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[391/813] Building C object src/secp256k1/CMakeFiles/secp256k1-tests.dir/src/tests.c.o
[392/813] Linking C executable src/secp256k1/secp256k1-tests
[393/813] Installing component secp256k1-secp256k1-tests
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1-secp256k1-tests"
-- Installing: /results/artifacts/bin/secp256k1-tests
[394/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[395/813] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[396/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[397/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[398/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[399/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[400/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[401/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[402/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[403/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[404/813] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[405/813] Linking CXX static library src/wallet/libwallet.a
[406/813] Linking CXX static library src/wallet/libwallet-tool.a
[407/813] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-osx failed with exit code 1

Remove Chronik from build-osx

There seems to be an issue in the cxx crate for OSX builds. To make progress, we'll merge it without OSX support for now.

@bot build-linux64 build-linux-aarch64 build-linux-arm build-osx build-win64

Rebase from master and remove MACOSX_DEPLOYMENT_TARGET

@bot build-linux64 build-linux-aarch64 build-linux-arm build-osx build-win64

Fabien requested changes to this revision.Sep 1 2022, 14:08
Fabien added inline comments.
chronik/chronik-cpp/chronik_bridge.h
11 ↗(On Diff #34773)

chronik_bridge better reflect the intent that chronik_ffi

chronik/chronik-ffi/src/bridge.rs
11 ↗(On Diff #34773)

from Rust is not important for the user, let's just say Starting Chronik like it used to print

chronik/chronik-ffi/src/ffi.rs
7 ↗(On Diff #34773)

I suppose setup_bridge will be the only function here ? If so no need for a wildcard

contrib/teamcity/build-configurations.yml
309 ↗(On Diff #34773)
This revision now requires changes to proceed.Sep 1 2022, 14:08
tobias_ruck edited the test plan for this revision. (Show Details)

@bot build-linux64 build-linux-aarch64 build-linux-arm build-osx build-win64

This revision is now accepted and ready to land.Sep 1 2022, 16:32