Page MenuHomePhabricator

kernel: Add fatalError method to notifications
Changes PlannedPublic

Authored by PiRK on Wed, Nov 19, 14:49.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

FatalError replaces what previously was the AbortNode function in
shutdown.cpp.

This commit is part of the libbitcoinkernel project and further removes
the shutdown's and, more generally, the kernel library's dependency on
interface_ui with a kernel notification method. By removing interface_ui
from the kernel library, its dependency on boost is reduced to just
boost::multi_index. At the same time it also takes a step towards
de-globalising the interrupt infrastructure.

Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
Co-authored-by: TheCharlatan <seb.kung@gmail.com>

This concludes backport of core#27861
https://github.com/bitcoin/bitcoin/pull/27861/commits/6eb33bd0c21b3e075fbab596351cacafdc947472
Depends on D18967

Test Plan

ninja all check-all

Event Timeline

PiRK requested review of this revision.Wed, Nov 19, 14:49

Tail of the build log:

/work/src/banman.cpp:217: error: undefined reference to 'CClientUIInterface::BannedListChanged()'
/work/src/banman.cpp:171: error: undefined reference to 'CClientUIInterface::BannedListChanged()'
/work/src/banman.cpp:20: error: undefined reference to 'CClientUIInterface::InitMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/work/src/banman.cpp:150: error: undefined reference to 'CClientUIInterface::BannedListChanged()'
/work/src/banman.cpp:80: error: undefined reference to 'CClientUIInterface::BannedListChanged()'
collect2: error: ld returned 1 exit status
[614/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/crypto_hash.cpp.o
[615/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/data.cpp.o
[616/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[617/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/clientmodel.cpp.o
[618/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsmodel.cpp.o
[619/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/gcs_filter.cpp.o
[620/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/guiutil.cpp.o
[621/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/lockedpool.cpp.o
[622/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/optionsdialog.cpp.o
[623/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoingui.cpp.o
[624/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/merkle_root.cpp.o
[625/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/nanobench.cpp.o
[626/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/examples.cpp.o
[627/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/pool.cpp.o
[628/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/poly1305.cpp.o
[629/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/prevector.cpp.o
[630/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/checkqueue.cpp.o
[631/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/rollingbloom.cpp.o
[632/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/hashpadding.cpp.o
[633/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/checkblock.cpp.o
[634/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/streams_findbyte.cpp.o
[635/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/strencodings.cpp.o
[636/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin.cpp.o
[637/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/verify_script.cpp.o
[638/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/platformstyle.cpp.o
[639/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/util_time.cpp.o
[640/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/crypto_aes.cpp.o
[641/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/block_assemble.cpp.o
[642/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qvaluecombobox.cpp.o
[643/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qvalidatedlineedit.cpp.o
[644/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/bench.cpp.o
[645/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/chained_tx.cpp.o
[646/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[647/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/duplicate_inputs.cpp.o
[648/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[649/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/peer_eviction.cpp.o
[650/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/load_external.cpp.o
[651/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/mempool_eviction.cpp.o
[652/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/rpc_mempool.cpp.o
[653/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/mempool_stress.cpp.o
[654/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/readwriteblock.cpp.o
[655/666] Building CXX object src/bench/CMakeFiles/bitcoin-bench.dir/rpc_blockchain.cpp.o
[656/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[657/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[658/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[659/666] Linking CXX executable src/bench/bitcoin-bench
[660/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[661/666] Linking CXX static library src/qt/libbitcoin-qt-base.a
[662/666] Automatic MOC for target bitcoin-qt
[663/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[664/666] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[665/666] Linking CXX executable src/qt/bitcoin-qt
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1
PiRK planned changes to this revision.Wed, Nov 19, 15:47

figure out why we still need ui_interface in the kernel lib

src/CMakeLists.txt
664

indent