- All tests pass in all static configurations (DLL test execution is not an option due to private linkage).
- This works around a few compiler limitations (and one bug), though these don’t seem significant.
- A number of narrowing implicit casts (that I didn’t want try to resolve myself) are commented.
- Otherwise compiles warning free in dynamic and static builds, for x86/x64/GMP(MPIR)/OpenSSL.
- Several sign mismatches have been resolved and don’t appear to be risky, but please review.
- Packages published to NuGet.
Visual Studio 2013 Solution and Builds #65
pull evoskuil wants to merge 29 commits into bitcoin-core:master from evoskuil:msvc changing 71 files +2359 −37-
evoskuil commented at 10:17 am on September 28, 2014: contributor
-
Ignore obj build subdirectories, bin and vs files. 93c89eb756
-
Visual Studio common build configuration props. 95120c13a0
-
Visual Studio projects, import props and version resource. 476a44da75
-
Avoid empty initializers. d95551025b
-
Workaround for bug in msvc ctp support for c99 variable scoping. 7b338e5058
-
Comment implicit numeric casts with potential for data loss. b9b9f38325
-
Update VS DLL version resource. c8bc5ada13
-
NuGet packaging. 00ff2f503d
-
Comment implicit numeric casts with potential for data loss (openssl). 471a267123
-
Disable PDB output in NuGet packages until we have DLL exports. fc90e43173
-
Add util to includes. acd928df3c
-
Update common VS props files. 40f959d97c
-
Simplify VS projects w/ updated .props, ref new openssl NuGet package. 04e28e77d9
-
Add VS project build script. c72193fde6
-
Remove use of $(DefaultLinkage) in VS props since variables are not processed by the UX extensions. 15244cf7ba
-
Update packaging for output path changes and new support for OpenSSL pckage dependency. da52caeb64
-
Update nuget dependency versions. bf4884bafb
-
Change VS platform tools from v120 to ctp_nov2013. 2f27842645
-
cosmetic msvc xml fix 34079e8976
-
Update VS import props. c07b84c060
-
Update VS common props to emit debug symbols into static libs. b8c2019690
-
Move include base. 639383300b
-
Windows ignores. 3165f1f419
-
Warnings and workarounds. 62a206393a
-
Update include location for import props. 6aa13f087e
-
Fix inverted HAVE_BUILTING_EXPECT condition. 8060d0252f
-
Workaround for C98 no variable-length array. 28226d1428
-
Fix or comment type mismatches and remove variable-length array (C98). ec999cad99
-
Update NuGet package references and generated packaging. 14310e50d0
-
gmaxwell commented at 8:52 pm on September 28, 2014: contributor
Great! Though we’re going to need to break this up a bit more as it’s difficult to review this way. If you’re interested in doing that, see below… otherwise we’ll cherry pick a few of these commits and gratefully use the rest of the patch as a list of things to do.
To break this up it should be separated into patches which change the object code (e.g. elimination of var arrays), ones that don’t (comments, casts that shouldn’t change behavior, etc), and things which are MSVC specific (build system things). Review is simplified when the result provably does not change behavior, or where the changes provably only matter for a single platform or configuration.
We should also convert things to C89 and not MSVC’s half-C++/half-C89— e.g. no C++ comments or buried initialization, since doing so will make the code more compatible with some embedded compilers and static analysis tools. I converted most of the code to C89 a while back, but it was such a huge patch that I didn’t finish cleaning it up and it’s now all thoroughly bitrotted.
There should be no runtime malloc— the var arrays can be replaced with static sizes (and asserts to check the size). Cory may have comments on the build-system stuff. Maintaining multiple build systems is a drag but in my experience its necessary— and not so hard for this library.
-
evoskuil commented at 9:08 pm on September 28, 2014: contributorSure, happy to do it. I’ll cancel this PR and create some more digestible parts. I know what you mean regarding bitrot. I started using this 5 months ago and it’s a pain to keep in sync.
-
evoskuil closed this on Sep 28, 2014
-
evoskuil commented at 10:05 pm on October 27, 2014: contributor@gmaxwell I’ve had an initial pull request out for the MSVC projects for a few weeks. It was my plan based on the above comments to submit these individually, not as a “complete” set. Bitrot is continuing to take its toll, is there anything I can do to move this along?
This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-30 03:15 UTC
More mirrored repositories can be found on mirror.b10c.me