< to be added >
Closes #31456.
Based on https://github.com/bitcoin-core/secp256k1/pull/1647 (the CI lint job failure is expected) and #31503.
TODO: the build system is configured without -DWERROR=ON
at this mooment.
< to be added >
Closes #31456.
Based on https://github.com/bitcoin-core/secp256k1/pull/1647 (the CI lint job failure is expected) and #31503.
TODO: the build system is configured without -DWERROR=ON
at this mooment.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31507.
See the guideline for information on the review process. A summary of reviews will appear here.
Reviewers, this pull request conflicts with the following ones:
bitcoin-chainstate.exe
to bitcoinkernel.dll
on Windows by hebasto)If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
🚧 At least one of the CI tasks failed. Debug: https://github.com/bitcoin/bitcoin/runs/34465651629
Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:
Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
Seems fine to add this, because it is easy to remove and can increase the build compatibly in the meantime.
Also, it allows to evaluate the codegen, which could be substantially better than msvc, or detect more msvc bugs.
If there are enough benefits to clang-cl, the docs could be updated to use it and msvc could be dropped from the docs and possibly CI.
Also, it allows to evaluate the codegen, which could be substantially better than msvc, or detect more msvc bugs.
Does it? My read of the docs was that clang just tries to internally work around all the MSVC bugs, so it seems like it will just continue to “hide” issues?
From #31456#issue-2729797132:
MSVC has many issues, for example:
- compile failure: [MSVC 17.12.0 internal compiler error #31303](https://github.com/bitcoin/bitcoin/issues/31303)
Added two commits that enable compiling fuzz/utxo_snapshot.cpp
with clang-cl and switch “Win64 native, fuzz” job to clang-cl.
119@@ -120,7 +120,11 @@ function(try_append_cxx_flags flags)
120 endfunction()
121
122 if(MSVC)
if(MSVC)
go away and we just rely on the CMAKE_CXX_COMPILER_ID
test?
MSVC
, as it separates MSVC specific syntax /WX
from GCC syntax -Werror
.
if(MSVC)
as much as possible and instead check against the compiler id, no? Except for the cases where we REALLY mean MSVC.
This change enables compiling `fuzz/utxo_snapshot.cpp` with clang-cl.
< to be added >
It’d be good if this could actually be filled in, so it’s clear what the goals are / what’s trying to be acheived here.
Hmm, actually, it seems like maybe CMAKE_CXX_COMPILER_FRONTEND_VARIANT is what we should be testing against?
It doesn’t seem reliable, as it might not be set at all for CMake versions < 3.26.