Page MenuHomePhabricator

refactor: move Boost datetime usage to wallet
AbandonedPublic

Authored by PiRK on Jun 5 2023, 12:14.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Summary

This means we don't need datetime in a --disable-wallet build, and it
isn't included in the kernel.

This is a backport of core#26198

Depends on D13988

Test Plan
ninja all check-all
ninja bitcoin-fuzzers

Event Timeline

PiRK requested review of this revision.Jun 5 2023, 12:14

Tail of the build log:

[365/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[366/537] Building CXX object src/CMakeFiles/server.dir/txorphanage.cpp.o
[367/537] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[368/537] Linking CXX executable src/bitcoin-cli
[369/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[370/537] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[371/537] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[372/537] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[373/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[374/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[375/537] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[376/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[377/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[378/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[379/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[380/537] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[381/537] Linking CXX executable src/bitcoin-tx
[382/537] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[383/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[384/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[385/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[386/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[387/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[388/537] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[389/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
FAILED: src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o 
/usr/bin/cmake -E __run_co_compile --launcher=/usr/bin/ccache --tidy="/usr/bin/clang-tidy-12;-warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=../../src/wallet/rpc/util.cpp -- /usr/bin/clang++ -DBOOST_AC_USE_STD_ATOMIC -DBOOST_ALL_NO_LIB -DBOOST_SP_USE_STD_ATOMIC -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -g -O2 -fPIC -fvisibility=hidden -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wgnu -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Woverloaded-virtual -Wshadow -Wshadow-field -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -pthread -std=gnu++17 -MD -MT src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o -MF src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o.d -o src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o -c ../../src/wallet/rpc/util.cpp
/work/abc-ci-builds/build-clang-tidy/../../src/wallet/rpc/util.cpp:32:53: error: statement should be inside braces [readability-braces-around-statements,-warnings-as-errors]
    if (ptime.is_not_a_date_time() || epoch > ptime) return 0;
                                                    ^
                                                     {
3401 warnings generated.
Suppressed 3400 warnings (3400 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning treated as error
[390/537] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[391/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[392/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[393/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[394/537] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[395/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[396/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[397/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[398/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[399/537] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[400/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[401/537] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[402/537] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[403/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[404/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[405/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[406/537] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[407/537] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[408/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[409/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[410/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[411/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[412/537] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1
PiRK planned changes to this revision.Jun 5 2023, 13:37
Fabien requested changes to this revision.Jun 5 2023, 17:07
Fabien added a subscriber: Fabien.
Fabien added inline comments.
src/test/fuzz/CMakeLists.txt
167

The build target name is completely fucked up with this change. You should change something to keep the name the same fuzz-parse_iso8601

This revision now requires changes to proceed.Jun 5 2023, 17:07

Better to do these backports in the right order if/when we have bandwidth for fuzzing. It does not really improve the boost situation anyway.