Commit Graph

213 Commits

Author SHA1 Message Date
Ethan Heilman
6a9a4d13b2 Fixes compile errors in MSVC build #27332
+ Pins the compatible version of libevent in vcpkg
2023-04-05 16:49:53 -04:00
fanquake
07c54de550
Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0
2022917223 Add secp256k1_selftest call (Pieter Wuille)
3bfca788b0 Remove explicit enabling of default modules (Pieter Wuille)
4462cb0498 Adapt to libsecp256k1 API changes (Pieter Wuille)
9d47e7b71b Squashed 'src/secp256k1/' changes from 44c2452fd3..21ffe4b22a (Pieter Wuille)

Pull request description:

  Now that libsecp256k1 has a release (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-December/021271.html), update the subtree to match it.

  The changes themselves are not very impactful for Bitcoin Core, but include:
  * It's no longer needed to specify whether contexts are for signing or verification or both (all contexts support everything), so make use of that in this PR.
  * Verification operations can use the static context now, removing the need for some infrastructure in pubkey.cpp to make sure a context exists.
  * Most modules are now enabled by default, so we can drop explicit enabling for them.
  * CI improvements (in particular, MSVC and more recent MacOS)
  * Introduction of an internal int128 type, which has no effect for GCC/Clang builds, but enables 128-bit multiplication in MSVC, giving a ~20% speedup there (but still slower than GCC/Clang).
  * Release process changes (process documentation, changelog, ...).

ACKs for top commit:
  Sjors:
    ACK 2022917223, but 4462cb0498 could use more eyes on it.
  achow101:
    ACK 2022917223
  jonasnick:
    utACK 2022917223

Tree-SHA512: 8a9fe28852abe74abd6f96fef16a94d5a427b1d99bff4caab1699014d24698aab9b966a5364a46ed1001c07a7c1d825154ed4e6557c7decce952b77330a8616b
2023-01-13 09:40:57 +00:00
Suriyaa Sundararuban
f84e445dee
doc: Correct linked Microsoft URLs 2022-12-31 16:54:13 +01:00
Hennadii Stepanov
306ccd4927
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
- 2021: f47dda2c58
- 2020: fa0074e2d8
- 2019: aaaaad6ac9
2022-12-24 23:49:50 +00:00
Pieter Wuille
3bfca788b0 Remove explicit enabling of default modules 2022-12-13 15:08:26 -05:00
Hennadii Stepanov
f97892d21a
doc: Mention required workload when building with MSVC 2022-11-14 14:46:02 +00:00
fanquake
3a0b352c63
refactor: move url.h/cpp from lib util to lib common 2022-10-31 10:17:04 +00:00
Hennadii Stepanov
393be86724
build, msvc: Drop no longer required macro definitions for leveldb
Since levedb v1.21:
- the `__STDC_LIMIT_MACROS` macro definition is unneeded;
  commit: 50fbc87e8c62a816d6afd4740e0652a13ac6dc3e

- the `LEVELDB_ATOMIC_PRESENT` macro is unused;
  commit: 04f39105c5a418905da8b7657ca244d672c99d3b
2022-10-23 08:05:43 +01:00
MacroFake
fad7f2239c
test: Remove unused txmempool include from tests 2022-10-18 14:02:09 +02:00
Hennadii Stepanov
5c5b85d0e7
refactor: Make 64-bit shift explicit
Also this change enables MSVC warning C4334 for all codebase.

https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4334
2022-10-04 21:49:07 +01:00
Hennadii Stepanov
f3e40c481a
build, msvc: Enable C4834 warning
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c4834
2022-10-04 12:03:26 +01:00
fanquake
73ae72e603
build: remove unused MSVC defines
Most of these aren't unused in the codebase at all, let alone for MSVC.
2022-09-23 16:30:24 +01:00
fanquake
55aad5f3a9
build: remove stdio.h from header checks
We already use a mix of <cstdio> and stdio.h unconditionally throughout
the codebase.

Us checking this header also duplicates work already done by autotools.
Currently stdio.h is checked for 3 times during a ./configure run, after
this change, at least it's only twice.
2022-09-21 16:53:18 +01:00
fanquake
eb6026b90f
build: remove strings.h from header checks
We don't include strings.h anywhere.

This is also already checked for by autoconf, so us checking for it just
means a 3rd existence check during ./configure.
2022-09-20 12:06:36 +01:00
fanquake
ced00f5a2e
fs: work around u8path deprecated-declaration warnings with libc++
When building in c++20 mode using libc++, the following warning is
emitted:
```bash
./fs.h:72:29: warning: 'u8path<std::string>' is deprecated [-Wdeprecated-declarations]
    return std::filesystem::u8path(utf8_str);
                            ^
/usr/lib/llvm-14/bin/../include/c++/v1/__filesystem/u8path.h:72:27: note: 'u8path<std::string>' has been explicitly marked deprecated here
_LIBCPP_INLINE_VISIBILITY _LIBCPP_DEPRECATED_WITH_CHAR8_T
                          ^
/usr/lib/llvm-14/bin/../include/c++/v1/__config:1042:43: note: expanded from macro '_LIBCPP_DEPRECATED_WITH_CHAR8_T'
                                          ^
/usr/lib/llvm-14/bin/../include/c++/v1/__config:1007:48: note: expanded from macro '_LIBCPP_DEPRECATED'
                                               ^
1 warning generated.
```

as u8path<std::string> is deprecated starting with c++20.

Fixes: #24682.

Co-authored-by: MacroFake <falke.marco@gmail.com>
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-08-19 08:58:56 +01:00
Hennadii Stepanov
9f9339c692
msvc: Drop _SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING
It is no longer needed.
2022-08-10 15:48:10 +01:00
Hennadii Stepanov
ecb617fefe
build: Bump Qt to 5.15.5 in depends 2022-07-30 15:44:20 +01:00
Hennadii Stepanov
88ec5d40dc
build: Increase MS Visual Studio minimum version
Visual Studio 2022 with `/std:c++20` supports designated initializers.
2022-07-07 19:59:48 +01:00
Hennadii Stepanov
1d1546e4c2
build: Clean up build_msvc/libsecp256k1_config.h
Unused since bitcoin/bitcoin#19944:
- `USE_FIELD_10X26`
- `USE_FIELD_5X52`
- `USE_SCALAR_4X64`
- `USE_SCALAR_8X32`

Unused since bitcoin/bitcoin#20147:
- `USE_ENDOMORPHISM`

Unused since bitcoin/bitcoin#21573:
- `USE_FIELD_INV_BUILTIN`
- `USE_FIELD_INV_NUM`
- `USE_NUM_GMP`
- `USE_NUM_NONE`
- `USE_SCALAR_INV_BUILTIN`
- `USE_SCALAR_INV_NUM`
2022-06-28 23:48:49 +02:00
Hennadii Stepanov
05b2d9fe07
build: Bump default PlatformToolset for Visual Studio 2022 2022-06-26 11:29:36 +02:00
Hennadii Stepanov
460c6c7248
doc: Make Windows build docs match the CI task
Added Visual Studio 2022.
2022-06-26 11:24:00 +02:00
Hennadii Stepanov
a50e0b1bcb
qt, refactor: Add transactionoverviewwidget.cpp source file
Required for better/simpler interaction with CMake AUTOMOC.
2022-06-14 16:55:22 +02:00
MarcoFalke
fa72e0ba15
Use designated initializers 2022-06-01 20:06:01 +02:00
Hennadii Stepanov
b2c3d1086b
Revert "build: Specify zeromq port explicitly for MSVC builds"
This reverts commit 20b6c87117.
2022-04-13 23:26:23 +02:00
dhruv
d960d4fd3a
build: fix MSVC build after subtree update
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Co-authored-by: Aaron Clauson <aaron@sipsorcery.com>
2022-04-07 22:24:43 +01:00
Hennadii Stepanov
ba0bf79a22
build: Do not modify common.init.vcxproj directly 2022-04-05 19:06:03 +02:00
Hennadii Stepanov
2391fb7850
build, refactor: Add set_properties() to msvc-autogen.py 2022-04-05 18:38:22 +02:00
Pavol Rusnak
ef20add4c9
build, qt: bump Qt5 version to 5.15.3
Qt 5.15.3 release is a patch release made on the top of Qt 5.15.2. As a patch
release, Qt 5.15.3 does not add any new functionality but provides bug fixes
and other improvements.

https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.3/release-note.md

* dropped patches:
  - patches/qt/dont_use_avx_android_x86_64.patch
  - patches/qt/fix_bigsur_style.patch
* adjusted patches:
  - patches/qt/fix_android_jni_static.patch
  - patches/qt/fix_limits_header.patch
  - patches/qt/use_android_ndk23.patch

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-04-01 16:54:38 +02:00
fanquake
d4ba2b2cbc
compat: remove strnlen back-compat code
This was needed for mingw (not mingw-w64), and some older versions of
macOS, which we no-longer support.
2022-03-29 10:15:33 +01:00
Hennadii Stepanov
c3296b21e4
build: Drop double-conversion from MSVC dependencies
Qt uses its own `double-conversion`.
2022-03-10 08:36:13 +01:00
Hennadii Stepanov
20b6c87117
build: Specify zeromq port explicitly for MSVC builds
Current port 4 is broken:
- https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320
2022-03-10 08:36:05 +01:00
Ryan Ofsky
84b0973e35 test: Add tests for GetArg methods / settings.json type coercion
Just add tests. No changes to application behavior. Tests will be
updated in the next commit changing & improving current behavior.

Include a Qt test for GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 caused by GetArg
behavior that happens if settings.json contains an integer value for any
of the configuration options which GUI settings can currently clash with
(-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen,
-server, -proxy, -proxy, -onion, -onion, -lang, and -prune).
2022-03-07 13:29:46 -05:00
fanquake
39e66e938f
build: use header-only Boost unit test 2022-02-13 20:59:02 +00:00
Hennadii Stepanov
d570f26e17
Add bitcoin_config.h to build_msvc/.gitignore
bitcoin_config.h is auto-generated by the msvc-autogen.py script.
2022-02-05 12:48:21 +02:00
fanquake
07269321f3
build: remove Boost::system usage 2022-02-03 18:35:52 +08:00
Kiminuo
b87f9c5edf
build: remove boost::filesystem usage 2022-02-03 18:35:52 +08:00
MarcoFalke
ddcc518cbd
Merge bitcoin/bitcoin#23828: scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.a
172096e9dd scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.a (Russell Yanofsky)

Pull request description:

  Goal along with namespacing PR #23497 is to make code organization more obvious and have `src/node/` code in `node::` namespace in `libbitcoin_node.a` library

ACKs for top commit:
  MarcoFalke:
    cr ACK 172096e9dd

Tree-SHA512: a2e787eeaa3ab769b0f5376473072cae584d237aa8b67b677bea833bb36b0134a0eca17eb01722389639473b8463f4953bc3a5e4801a6b2c8965ac1075cba005
2022-01-06 14:59:17 +01:00
Hennadii Stepanov
f47dda2c58
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
* 2020: fa0074e2d8
* 2019: aaaaad6ac9
2021-12-30 19:36:57 +02:00
Russell Yanofsky
172096e9dd scripted-diff: Rename libbitcoin_server.a to libbitcoin_node.a
Goal along with namespacing PR #23497 is to have src/node/ code in
node:: namespace in libbitcoin_node.a library

-BEGIN VERIFY SCRIPT-
bash -c ' # Bash shell needed for brace expansion {a,b}
git mv build_msvc/libbitcoin_{server,node}
git mv build_msvc/libbitcoin_node/libbitcoin_{server,node}.vcxproj.in
ren() { git grep -l "$1" src build_msvc | xargs sed -i "s/$1/$2/g"; }
ren LIBBITCOIN_{SERVER,NODE}
ren libbitcoin_{server,node}
'
-END VERIFY SCRIPT-
2021-12-20 10:53:01 -05:00
Hennadii Stepanov
06aca8aacb
doc: Update build_msvc/README.md for Qt 5.15.2 2021-12-03 14:07:12 +08:00
MarcoFalke
fa44237d76
doc: Fix typos in endif header comments 2021-11-16 09:56:45 +01:00
W. J. van der Laan
c82284cfdc
Merge bitcoin/bitcoin#23345: build: Drop unneeded dependencies for bitcoin-wallet tool
4fe7cf1677 build: Drop unneeded dependencies for bitcoin-wallet tool (Hennadii Stepanov)

Pull request description:

  `bitcoin-wallet` is an offline tool, and its code does not depend on networking stuff (ZMQ, UPnP, NAT-PMP, and LIBBITCOIN_SERVER).

  Also `bitcoin-wallet`  does not interacts with the chainstate, therefore dependency on LevelDB is not needed.

ACKs for top commit:
  laanwj:
    Code review ACK 4fe7cf1677

Tree-SHA512: 97342d9cdf8670806efe16dc7885a85ec92f3c1ae0819a4c3cc147938fc8642089e303c4432cb1395fc75b852c1af6a6a13fc58e29e027c23f75219fd3bd8cb4
2021-11-15 16:29:46 +01:00
CallMeMisterOwl
410f99faed build_msvc/bitcoin_config.h is generated using build_msvc/msvc-autogen.py 2021-11-14 15:00:29 +01:00
Hennadii Stepanov
4fe7cf1677
build: Drop unneeded dependencies for bitcoin-wallet tool 2021-11-13 21:24:51 +02:00
fanquake
c1fb30633b
Merge bitcoin/bitcoin#23114: Add minisketch subtree and integrate into build/test
29173d6c6c ubsan: add minisketch exceptions (Cory Fields)
54b5e1aeab Add thin Minisketch wrapper to pick best implementation (Pieter Wuille)
ee9dc71c1b Add basic minisketch tests (Pieter Wuille)
0659f12b13 Add minisketch dependency (Gleb Naumenko)
0eb7928ab8 Add MSVC build configuration for libminisketch (Pieter Wuille)
8bc166d5b1 build: add minisketch build file and include it (Cory Fields)
b2904ceb85 build: add configure checks for minisketch (Cory Fields)
b6487dc4ef Squashed 'src/minisketch/' content from commit 89629eb2c7 (fanquake)

Pull request description:

  This takes over #21859, which has [recently switched](https://github.com/bitcoin/bitcoin/pull/21859#issuecomment-921899200) to my integration branch. A few more build issues came up (and have been fixed) since, and after discussing with sipa it was decided I would open a PR to shepherd any final changes through.

  > This adds a `src/minisketch` subtree, taken from the master branch of https://github.com/sipa/minisketch, to prepare for Erlay implementation (see #21515). It gets configured for just supporting 32-bit fields (the only ones we're interested in in the context of Erlay), and some code on top is added:
  > * A very basic unit test (just to make sure compilation & running works; actual correctness checking is done through minisketch's own tests).
  > * A wrapper in `minisketchwrapper.{cpp,h}` that runs a benchmark to determine which field implementation to use.

  Only changes since my last update to the branch in the previous PR have been rebasing on master and fixing an issue with a header in an introduced file.

ACKs for top commit:
  naumenkogs:
    ACK 29173d6c6c

Tree-SHA512: 1217d3228db1dd0de12c2919314e1c3626c18a416cf6291fec99d37e34fb6eec8e28d9e9fb935f8590273b8836cbadac313a15f05b4fd9f9d3024c8ce2c80d02
2021-11-12 10:00:49 +08:00
Aaron Clauson
bb1c84082c
Remove the build_msvc/testconsensus project
The testconsensus project is not integral to the Bitcoin Core code. It was originally added as a quick and dirty demo of how to do a consensus check with the msvc build. There are better examples.

PR #23438 made a change that caused a compiler error with the buildmsvc/testconsensus code. Rather than leave it hanging around to incur potential bitrot, or furhter PR build failures, it should be removed.
2021-11-06 21:32:34 +00:00
MarcoFalke
e77d9679fd
Merge bitcoin/bitcoin#23006: multiprocess: Add new bitcoin-gui, bitcoin-qt, bitcoin-wallet init implementations
d5f985e51f multiprocess: Add new bitcoin-gui, bitcoin-qt, bitcoin-wallet init implementations (Russell Yanofsky)

Pull request description:

  Add separate `interfaces::Init` subclasses for `bitcoin-wallet`,  `bitcoin-gui`, and `bitcoin-qt` binaries instead of sharing `bitcoind` and `bitcoin-node` init subclasses in different binaries. After this, the new init subclasses can be customized in #10102, so node and wallet code is dropped from the `bitcoin-gui` binary and wallet code is dropped from into the `bitcoin-node` binary.

  ---

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10).

ACKs for top commit:
  lsilva01:
    reACK d5f985e
  hebasto:
    re-ACK d5f985e51f, only suggested changes since my [previous](https://github.com/bitcoin/bitcoin/pull/23006#pullrequestreview-787537444) review.

Tree-SHA512: 6784210bd9ce3a6fbc66852680d0e9bc513c072dc538aeb7f48cb6a41580d3f567ccef04f975ee767a714a4b05d4d87273e94a79abda1b9c25d5ac4bbe752006
2021-10-26 15:54:52 +01:00
Pieter Wuille
0eb7928ab8
Add MSVC build configuration for libminisketch 2021-10-21 09:38:45 +08:00
fanquake
a68de12c0e
Merge bitcoin/bitcoin#22890: doc: Replace a link to Qt precompiled binaries with compile instructions
6bc4398937 doc: Suggest using jom instead of nmake (Hennadii Stepanov)
c4139f06a9 doc: Replace a link to Qt precompiled binaries with compile instructions (Hennadii Stepanov)
5e42f2ad26 build: Make <QtBaseDir> default name Qt and VS versions agnostic (Hennadii Stepanov)

Pull request description:

  This PR replaces a [link to Qt precompiled binaries](https://github.com/sipsorcery/qt_win_binary/releases) with compile instructions that allow users to self-compile static Qt package which is required for building Bitcoin Core with Visual Studio.

ACKs for top commit:
  sipsorcery:
    ACK 6bc4398937.

Tree-SHA512: 0c91536e51177ec2ed437614cb37b3fd1dccce856548c22307359da68200433971fd97cd8a537b0856cfccc521ac50d61801a78cb5275b818829ee7b43bc7d6a
2021-10-07 08:39:52 +08:00
Hennadii Stepanov
6bc4398937
doc: Suggest using jom instead of nmake 2021-09-30 11:07:43 +03:00