aboutsummaryrefslogtreecommitdiff
path: root/build_msvc/README.md
AgeCommit message (Collapse)Author
2021-05-01Remove Visual Studio 2017 reference from readmeAaron Clauson
This PR was motivated by a comment in GUI PR (257) regarding a suggested improvement not being supported by VS2017. When checking whether master can still be built with the VS2017 toolset ABI issues were encountered. Most likely due to the pre-compiled Qt binaries that are used. It does not seem worth the effort to try and support VS2017, which would most likely require additional Qt binaries, or lengthy instructions on how to build static Qt binaries on Windows (which is very error prone and tedious). Added advisory note about build not working with earlier Visual Studio versions. Fixed grammar.
2021-04-29Merge bitcoin/bitcoin#21045: build: adds switch to enable/disable randomized ↵W. J. van der Laan
base address in MSVC builds 9bd3f35003c2e9eff74766d57a71d6b391ab602a build: adds switch for disabling random base addresses in MSVC (Ethan Heilman) Pull request description: In m4 builds we have the --disable-hardening switch that can be given in `./configure` to turn off randomized addresses. This PR provides a simple way of turning off randomized addresses in MSVC builds. This PR: * Adds this option the common-init project file so that it can be globally set across the project * Documents this switch in msvc build readme I have run the following test to verify this works I ran the msvc build with `<RandomizedBaseAddress>true</RandomizedBaseAddress>` then checked `bitcoind.exe` and `bitcoin-cli.exe` with `dumpbin.exe`: bitcoind ``` > .\dumpbin.exe /headers src/bitcoind.exe Microsoft (R) COFF/PE Dumper Version 14.16.27045.0 ... OPTIONAL HEADER VALUES 20B magic # (PE32+) 14.28 linker version AE4600 size of code 345C00 size of initialized data 0 size of uninitialized data 6BED74 entry point (00000001406BED74) mainCRTStartup 1000 base of code 140000000 image base (0000000140000000 to 0000000140E2DFFF) 1000 section alignment 200 file alignment 6.00 operating system version 0.00 image version 6.00 subsystem version 0 Win32 version E2E000 size of image 400 size of headers 0 checksum 3 subsystem (Windows CUI) 8160 DLL characteristics High Entropy Virtual Addresses Dynamic base NX compatible Terminal Server Aware ``` bitcoin-cli ``` > .\dumpbin.exe /headers src/bitcoin-cli.exe Microsoft (R) COFF/PE Dumper Version 14.16.27045.0 ... OPTIONAL HEADER VALUES 20B magic # (PE32+) 14.28 linker version 1E3E00 size of code 92C00 size of initialized data 0 size of uninitialized data 104384 entry point (0000000140104384) mainCRTStartup 1000 base of code 140000000 image base (0000000140000000 to 0000000140279FFF) 1000 section alignment 200 file alignment 6.00 operating system version 0.00 image version 6.00 subsystem version 0 Win32 version 27A000 size of image 400 size of headers 0 checksum 3 subsystem (Windows CUI) 8160 DLL characteristics High Entropy Virtual Addresses Dynamic base NX compatible Terminal Server Aware ``` Then I built with `<RandomizedBaseAddress>false</RandomizedBaseAddress>` then checked `bitcoind.exe` and `bitcoin-cli.exe` with `dumpbin.exe` and observed that `Dynamic base` was longer listed in `OPTIONAL HEADER VALUES` bitcoind ``` PS C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64> .\dumpbin.exe /headers C:\Users\e0\Documents\GitHub\bitcoin021noaslr/src/bitcoind.exe Microsoft (R) COFF/PE Dumper Version 14.16.27045.0 ... OPTIONAL HEADER VALUES 20B magic # (PE32+) 14.28 linker version AE4600 size of code 33FE00 size of initialized data 0 size of uninitialized data 6BED74 entry point (00000001406BED74) mainCRTStartup 1000 base of code 140000000 image base (0000000140000000 to 0000000140E27FFF) 1000 section alignment 200 file alignment 6.00 operating system version 0.00 image version 6.00 subsystem version 0 Win32 version E28000 size of image 400 size of headers 0 checksum 3 subsystem (Windows CUI) 8120 DLL characteristics High Entropy Virtual Addresses NX compatible Terminal Server Aware ``` bitcoin-cli ``` > .\dumpbin.exe /headers src/bitcoin-cli.exe Microsoft (R) COFF/PE Dumper Version 14.16.27045.0 ... OPTIONAL HEADER VALUES 20B magic # (PE32+) 14.28 linker version 1E3E00 size of code 90C00 size of initialized data 0 size of uninitialized data 104384 entry point (0000000140104384) mainCRTStartup 1000 base of code 140000000 image base (0000000140000000 to 0000000140277FFF) 1000 section alignment 200 file alignment 6.00 operating system version 0.00 image version 6.00 subsystem version 0 Win32 version 278000 size of image 400 size of headers 0 checksum 3 subsystem (Windows CUI) 8120 DLL characteristics High Entropy Virtual Addresses NX compatible Terminal Server Aware ``` ACKs for top commit: sipsorcery: ACK 9bd3f35003c2e9eff74766d57a71d6b391ab602a. practicalswift: cr ACK 9bd3f35003c2e9eff74766d57a71d6b391ab602a: patch looks correct Tree-SHA512: ddffdb4ff8a09c7cfef61c07a5db2a2828e9e3aa795ad8e5a1bf51ab489a68b40f87f6694518c5e0b8858c0fad4f93bb947b052e6b9d5e55eb38e764b746fc02
2021-04-19Re-add command to install vcpkgdplusplus1024
`vcpkg integrate install` must be executed so that msbuild will automatically install external dependencies. It was removed in https://github.com/bitcoin/bitcoin/commit/712f95d3324d02310dd468e7bfd1e1b0df432e77 It was originally added in https://github.com/bitcoin/bitcoin/commit/76445677586a4c2fa72606b662269a4390c2e71f
2021-02-28build: adds switch for disabling random base addresses in MSVCEthan Heilman
2020-09-29Update msvc build to use new vcpkg manifestAaron Clauson
The vcpkg tool has introduced a proper way to use manifests, https://devblogs.microsoft.com/cppblog/vcpkg-accelerate-your-team-development-environment-with-binary-caching-and-manifests/. This PR replaces the custom text file mechanism with the new manifest approach. It is planned that vckpg manifests will include the ability to version dependencies in the future. Dependency versions would solve a number of issues that currently require workarounds with the appveyor CI. Set vcpkg manifest version to 1 to avoid any perception it's related to any release or other version numbering.
2020-04-03test: remove rapidcheck integration and testsfanquake
2020-02-27Add missing step in win deployment instructions Dan Gershony
As explained in #17864 there is a missing step that was required to finish the compilation for bitcoin core on windows
2020-01-09Ignore msvc linker warning and update to msvc build instructions.Aaron Clauson
- Update Visual Studio instructions. - Remove x64 platform conditional from bitcoin-qt project configuration. - Set use native environment toolset to fix linker warning. - Ignore linker warning about precompiled type information missing for test_bitcoin_qt.
2019-11-18doc: remove OpenSSL from build instructions and licensing infofanquake
2019-11-10Moves vcpkg list to a text file and updates the appveyor job and readme to ↵Aaron Clauson
use it.
2019-11-01doc: update MSVC instructions to remove Qt configurationfanquake
Also adds missing Boost packages. Installing only the currently listed packages was not sufficient to complete a build.
2019-09-08Added libbitcoin_qt and bitcoin-qt to the msbuild configuration.Aaron Clauson
2019-07-29Updated python command in readme so it will work on systems that have both ↵Aaron Clauson
python2 and 3 installed.
2019-06-19docs: add rapidcheck to vcpkg install listfanquake
2018-12-18Modify build instructions to work with Command Prompt as well asMurray Nesbitt
PowerShell; other minor changes
2018-08-26auto generate MSVC project filesChun Kuan Lee
2018-08-10Visual Studio build configuration for Bitcoin CoreAaron Clauson