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
Branch
chronik-minimal-bridge
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 19833
Build 39380: Build Diffbuild-chronik
Build 39379: arc lint + arc unit

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

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