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
  1. evoskuil commented at 10:17 am on September 28, 2014: contributor
    • 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.
  2. Ignore obj build subdirectories, bin and vs files. 93c89eb756
  3. Visual Studio common build configuration props. 95120c13a0
  4. Visual Studio projects, import props and version resource. 476a44da75
  5. Avoid empty initializers. d95551025b
  6. Workaround for bug in msvc ctp support for c99 variable scoping. 7b338e5058
  7. Comment implicit numeric casts with potential for data loss. b9b9f38325
  8. Update VS DLL version resource. c8bc5ada13
  9. NuGet packaging. 00ff2f503d
  10. Comment implicit numeric casts with potential for data loss (openssl). 471a267123
  11. Disable PDB output in NuGet packages until we have DLL exports. fc90e43173
  12. Add util to includes. acd928df3c
  13. Update common VS props files. 40f959d97c
  14. Simplify VS projects w/ updated .props, ref new openssl NuGet package. 04e28e77d9
  15. Add VS project build script. c72193fde6
  16. Remove use of $(DefaultLinkage) in VS props since variables are not processed by the UX extensions. 15244cf7ba
  17. Update packaging for output path changes and new support for OpenSSL pckage dependency. da52caeb64
  18. Update nuget dependency versions. bf4884bafb
  19. Change VS platform tools from v120 to ctp_nov2013. 2f27842645
  20. cosmetic msvc xml fix 34079e8976
  21. Update VS import props. c07b84c060
  22. Update VS common props to emit debug symbols into static libs. b8c2019690
  23. Move include base. 639383300b
  24. Windows ignores. 3165f1f419
  25. Warnings and workarounds. 62a206393a
  26. Update include location for import props. 6aa13f087e
  27. Fix inverted HAVE_BUILTING_EXPECT condition. 8060d0252f
  28. Workaround for C98 no variable-length array. 28226d1428
  29. Fix or comment type mismatches and remove variable-length array (C98). ec999cad99
  30. Update NuGet package references and generated packaging. 14310e50d0
  31. 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.

  32. evoskuil commented at 9:08 pm on September 28, 2014: contributor
    Sure, 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.
  33. evoskuil closed this on Sep 28, 2014

  34. 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?

github-metadata-mirror

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

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me