-
Notifications
You must be signed in to change notification settings - Fork 37.8k
build: upgrade to boost 1.77 to fix c++20 compilation #23340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: upgrade to boost 1.77 to fix c++20 compilation #23340
Conversation
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
@laanwj do you have any thoughts about this? |
No opinion on whether to bump or to what version, but if it was bumped to 1.74, we could remove the suppression: |
Any thoughts on this? If there are no objections, I think it makes sense to move forward with this change |
I think this is an awkward bump, and if we are going to update Boost again, it might as well be to the current latest version, which is 1.77.0. As mentioned, that would mean we can drop a suppression, and we'd avoid some build warnings related to unused variables in the process module. We are also early enough in the release cycle that if there are any serious issues the update could be reverted. Just make sure you update our Boost package to account for the fact that we don't need the CMake files that will be generated with the newer version. Also, please write a better commit message. i.e |
1293d48
to
6ed9487
Compare
Bumped to 1.77 and removed suppression as suggested above, will sqash once we have ACKs / Concept ACKs |
The opposite is preferable though... |
968a9ee
to
ea1a45c
Compare
Okay, squashed, I generally prefer having a clean history, but that's okay :) |
|
Any suggestions? I'd be happy to revert to 1.76 and work it down until ci is happy? |
If someone would like to provide a diff similar to what Marco mentions, I'll be happy to apply it, but I'm not too familiar with syscall sandboxing At this point, I'm going to move forward with trying version working back from 1.77 to 1.76 etc until I find one that CI is happy with. |
You didn't update to account for the Cmake files as mentioned.
Pull requests are expected to contain changes that are reviewable / ACKable. Don't push random changes / fixups with the intent to "squash later"; make whatever changes/fixups you need to locally, then squash, fixup commit messages etc, before pushing to GitHub. Separately, rather than crossing out stuff in your PR description, either update it if it's relevant, or remove it entirely, otherwise it's just polluting the merge message with garbage. Given the point of this PR is to fix the C++20 build, it would be worthwhile including what is actually failing with Boost 1.71.0, or why 1.73.0 or later is required.
I'd still rather we move to 1.77.0, adding any syscall exceptions as needed. Also, please don't do development via CI. It's noisy, and is really just abusing CI resources. You can run the CI locally to test you changes, and ensure they are working before pushing them up. |
|
Guix builds
|
You can rebase on #23555 |
I presume you want me to revert back to 1.77 and rebase, correct? Did that ^ |
f050714
to
cb3e9fd
Compare
Looks like the msan issue is still there. Maybe a miscompilation? (Can't reproduce in valgrind so far) Also, we should watch out for this change in boost 1.76: #23551 (comment) |
In case this helps,
|
Could rebase and remove this file: https://github.com/bitcoin/bitcoin/pull/23998/files#diff-f0d944793d9fcd5e0429c26efabf465b903cedfd17e0d744916f0ba3d3beb2e5 |
cb3e9fd
to
02cb3b2
Compare
Done, rebased, and applied suggestion. (am out and about atm, so am not able to build depends locally) |
The second commit needs to be squashed, otherwise depends wont build in ce77c4b. You need to fixup the PR description, remove all the struck-through text etc. You can also remove the portion about a |
remove now unneeded suppression build(depends): drop fix_openbsd_test_lib.patch
02cb3b2
to
1666e12
Compare
Squashed, and updated PR description. I don't really have a desire to re-compile using our current boost / boost 1.72 with c++20 to determine why it failed, but boost 1.73 was the earliest that bitcoin core would compile with when using c++20 |
🐙 This pull request conflicts with the target branch and needs rebase. Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft". |
I've rebased this in #24383. |
4bba7ab build: upgrade depends Boost to 1.77.0 (Pasta) Pull request description: This primarily improves support for external signing, as it includes multiple bugfixes for Boost Process. As well as various improvements to the multi-index library. #23340 rebased. Guix build: ```bash bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum b5186404303e2a6573a6df404f943f6d172d4965bd9a78d7f9d1f7cf7080b774 guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/SHA256SUMS.part 9d03756665fac8cb1e3af6623b8cede3032bad6cbc15739db5145c4813f0c2f9 guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu-debug.tar.gz 32897b5fda018d4fe57f65234da9620202de0b774ae4fa454309460ee451ef98 guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu.tar.gz f64304b16fbfaf7a7330842bf8f535acacdcdd36ddf185f5dfcdbe184f05571f guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/SHA256SUMS.part f5cb4c742edf42aec2f64f97c727a8e325050d465ea58ff9c22f8b5b31073879 guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf-debug.tar.gz 0f834947a3eb2d802ba4d1d6dbd26fea9d3453bd8c2dedb06fcfbf1498b45433 guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf.tar.gz 389feef0bf716dd7ea7d72d755f999dbd2d3160f895a606ad6f4a14e97083a47 guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/SHA256SUMS.part a9c791b6bcc2bbeff0c94f71dbd9967676559297e089079216253e303acd82cb guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-arm64-apple-darwin.tar.gz 55cdef30941f3fc4716bae5be1230b529b171c5e2cd0c18cc57a15206d742a13 guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg 5343499bd15ae59627d3b33259ac7ccec8c841c8bc27cd1a47b41389fae48ac3 guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz fbb99e7f3d5249b92c90ba312ac769adfc9813fb70468decd09f722826f48119 guix-build-4bba7ab2ffc3/output/dist-archive/bitcoin-4bba7ab2ffc3.tar.gz c5f466eb462dccea8daa10307ff140844f38097b198282600528acd486915e97 guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/SHA256SUMS.part 174c75cbf16f3ca593d1c684b597eb8dac483dc10ae3cd46cbff61d3f70e70a5 guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu-debug.tar.gz 1e6692f4876ba13847cd3722c6e2cd3ee886ebede6b12dffa01b1dbc55186358 guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu.tar.gz dac7f60b99dfb96daf8c3c9a0b98d4ecc3a7ecf7ad6a8dfb879cb61aa4f2e429 guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/SHA256SUMS.part 4cef32efcd9fa591a53ea5354d63e9d6c0d663ae7748599b34427f17ef462f1c guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu-debug.tar.gz d5ac47db91eb0232075a1138cc0ae212516e4f7fa022b2de181533d411a0d507 guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu.tar.gz 7eb67ea46c7ade1f51928648e664bc2295a96ae0e3f144cf6903f277334b228f guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/SHA256SUMS.part b97d248731573ef3911f4d2750409615a940f975d9c4de783c76beb897a4dd53 guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu-debug.tar.gz 7d2b0cef4cc83dbf54cd1af18fe4cb7b7ea408747e30993c20e1012b1b628373 guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu.tar.gz a45eb59edc5a1e8742dd9fce1a9916b43ab2894ff8f3c62d5110a9afa35cf9e9 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/SHA256SUMS.part 504efd5c1131407a3e3120e77a1abe1e183727d995e7cb944c9c8089518314a0 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg 0f14f26d2074de96d078ea31ef249a6f9ba2db1fec86856496fca5ab2f517cb7 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz 574aab5513038a80c6cac16eb927d7dcec27b880ffd313c6b56272ed577e2df3 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx64.tar.gz ec7861c9840c2888022a81d5fbb807284c07f603053ba9cc200c103e26379e7f guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/SHA256SUMS.part 9d1d2fb313d15048ae6b10b9c50942a00ef8c65c367b25656810b3819fdc95ff guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu-debug.tar.gz d668065e2de147d352914f0d2f5769051f0ec0a29ce208979758724fe556cc04 guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu.tar.gz aa1f2ce87f707d28c137775830da128bd2b49b20eb258ff46a78f1ada1516480 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/SHA256SUMS.part bcf3f19575662dadf3f77ca0bd5d4a3268314fd97c46f88679af1977d83863c5 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win-unsigned.tar.gz c8d64700e03757a5f46ec04dc7e2cdf9435ebdee9e6cea5789475ca86461f912 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-debug.zip 92bd0cb7a43551e89910e8fabfb2915da03835ac074331436e1f159760ed8d19 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-setup-unsigned.exe e414c9a500ebf49ef1f2625c6763b945a13d5f1d1c56463f642f325e054f87ed guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64.zip ``` ACKs for top commit: laanwj: ACK 4bba7ab hebasto: ACK 4bba7ab Tree-SHA512: f0eb26860180c45ef169ea7fe70d43e68abf103185d5b9a1021d3c72e1cb0126809f43e56ec378430ab3625a09c025797fe1438360832101439c2b014287dc47
4bba7ab build: upgrade depends Boost to 1.77.0 (Pasta) Pull request description: This primarily improves support for external signing, as it includes multiple bugfixes for Boost Process. As well as various improvements to the multi-index library. bitcoin#23340 rebased. Guix build: ```bash bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum b5186404303e2a6573a6df404f943f6d172d4965bd9a78d7f9d1f7cf7080b774 guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/SHA256SUMS.part 9d03756665fac8cb1e3af6623b8cede3032bad6cbc15739db5145c4813f0c2f9 guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu-debug.tar.gz 32897b5fda018d4fe57f65234da9620202de0b774ae4fa454309460ee451ef98 guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu.tar.gz f64304b16fbfaf7a7330842bf8f535acacdcdd36ddf185f5dfcdbe184f05571f guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/SHA256SUMS.part f5cb4c742edf42aec2f64f97c727a8e325050d465ea58ff9c22f8b5b31073879 guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf-debug.tar.gz 0f834947a3eb2d802ba4d1d6dbd26fea9d3453bd8c2dedb06fcfbf1498b45433 guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf.tar.gz 389feef0bf716dd7ea7d72d755f999dbd2d3160f895a606ad6f4a14e97083a47 guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/SHA256SUMS.part a9c791b6bcc2bbeff0c94f71dbd9967676559297e089079216253e303acd82cb guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-arm64-apple-darwin.tar.gz 55cdef30941f3fc4716bae5be1230b529b171c5e2cd0c18cc57a15206d742a13 guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg 5343499bd15ae59627d3b33259ac7ccec8c841c8bc27cd1a47b41389fae48ac3 guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz fbb99e7f3d5249b92c90ba312ac769adfc9813fb70468decd09f722826f48119 guix-build-4bba7ab2ffc3/output/dist-archive/bitcoin-4bba7ab2ffc3.tar.gz c5f466eb462dccea8daa10307ff140844f38097b198282600528acd486915e97 guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/SHA256SUMS.part 174c75cbf16f3ca593d1c684b597eb8dac483dc10ae3cd46cbff61d3f70e70a5 guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu-debug.tar.gz 1e6692f4876ba13847cd3722c6e2cd3ee886ebede6b12dffa01b1dbc55186358 guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu.tar.gz dac7f60b99dfb96daf8c3c9a0b98d4ecc3a7ecf7ad6a8dfb879cb61aa4f2e429 guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/SHA256SUMS.part 4cef32efcd9fa591a53ea5354d63e9d6c0d663ae7748599b34427f17ef462f1c guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu-debug.tar.gz d5ac47db91eb0232075a1138cc0ae212516e4f7fa022b2de181533d411a0d507 guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu.tar.gz 7eb67ea46c7ade1f51928648e664bc2295a96ae0e3f144cf6903f277334b228f guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/SHA256SUMS.part b97d248731573ef3911f4d2750409615a940f975d9c4de783c76beb897a4dd53 guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu-debug.tar.gz 7d2b0cef4cc83dbf54cd1af18fe4cb7b7ea408747e30993c20e1012b1b628373 guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu.tar.gz a45eb59edc5a1e8742dd9fce1a9916b43ab2894ff8f3c62d5110a9afa35cf9e9 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/SHA256SUMS.part 504efd5c1131407a3e3120e77a1abe1e183727d995e7cb944c9c8089518314a0 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg 0f14f26d2074de96d078ea31ef249a6f9ba2db1fec86856496fca5ab2f517cb7 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz 574aab5513038a80c6cac16eb927d7dcec27b880ffd313c6b56272ed577e2df3 guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx64.tar.gz ec7861c9840c2888022a81d5fbb807284c07f603053ba9cc200c103e26379e7f guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/SHA256SUMS.part 9d1d2fb313d15048ae6b10b9c50942a00ef8c65c367b25656810b3819fdc95ff guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu-debug.tar.gz d668065e2de147d352914f0d2f5769051f0ec0a29ce208979758724fe556cc04 guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu.tar.gz aa1f2ce87f707d28c137775830da128bd2b49b20eb258ff46a78f1ada1516480 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/SHA256SUMS.part bcf3f19575662dadf3f77ca0bd5d4a3268314fd97c46f88679af1977d83863c5 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win-unsigned.tar.gz c8d64700e03757a5f46ec04dc7e2cdf9435ebdee9e6cea5789475ca86461f912 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-debug.zip 92bd0cb7a43551e89910e8fabfb2915da03835ac074331436e1f159760ed8d19 guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-setup-unsigned.exe e414c9a500ebf49ef1f2625c6763b945a13d5f1d1c56463f642f325e054f87ed guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64.zip ``` ACKs for top commit: laanwj: ACK 4bba7ab hebasto: ACK 4bba7ab Tree-SHA512: f0eb26860180c45ef169ea7fe70d43e68abf103185d5b9a1021d3c72e1cb0126809f43e56ec378430ab3625a09c025797fe1438360832101439c2b014287dc47
I've been investigating compiling bitcoin core using C++20. It appears that our usage of boost requires boost 1.73 or above in order to compile using C++20 (compilation fails with any version lower than that). After initial review, it was recommended to bump boost to 1.77.