Skip to content

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Nov 15, 2021

This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the end of 2020. It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

It was mentioned in #22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for thread_local (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see #23489).

Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with --disable-threadlocal. However we wouldn't make any guarantees on how long that workaround might exist for.

glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.

Add support for calling C++11 thread_local object destructors on thread
and program exit. This needs compiler support for offloading C++11
destructor calls to glibc.

The last time we increased our runtime glibc requirement for release builds was in #17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

Guix builds:

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
d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip

@DrahtBot
Copy link
Contributor

DrahtBot commented Nov 15, 2021

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

No conflicts as of last run.

@hebasto
Copy link
Member

hebasto commented Nov 15, 2021

Changing the minimum required glibc version is a two-fold task.

Firstly, we drop support for systems with glibc 2.17. Effectively, one won't be able to run Bitcoin Core v23.0 on CentOS 7 in 2022. That looks completely reasonable to me.

Secondly, we are choosing a new minimum required glibc version. And I believe we should stick to one which is actually available on a real system, to be able to test release binaries on it. My suggestion is to bump glibc up to 2.24 which is available on Debian 9.

So, Concept ACK on moving from 2.17, and Approach NACK on choosing 2.18 as a new one., see #23511 (comment).

@fanquake
Copy link
Member Author

My suggestion is to bump glibc up to 2.24 which is available on Debian 9.

Unless you're planning on taking advantage of features available in newer glibcs, or making the binaries actually fail to run against older glibcs, there's not really any point in bumping our minimum glibc requirement any further here.

The symbol-checker is just a sanity check that the release binaries only contain calls to functions available in a glibc <= version X. iirc the "newest" symbol we use in master is currently getauxval, which was introduced in glibc 2.16, so our current release binaries should run on a machine with glibc 2.16. The minimum in the symbol-checker was just made 2.17, as it aligned with what was available on CentOS 7.

With this PR, the "newest" symbols will be some calls to thread_local related functions, introduced in glibc 2.18, and the minimum required version in the symbol-checker will align with function usage in the release binaries. You could increase the minimum required glibc version further, but that wouldn't change the release binaries, and they would still run on systems with glibc 2.18+. Either until someone introduces some new functionality, or we remove backwards compatibility related work arounds.

@hebasto
Copy link
Member

hebasto commented Nov 15, 2021

I mean that this PR changes approach from "align with a glibc available on XXX" to "align glibc version to the newest symbol we actual use", right?

@maflcko
Copy link
Member

maflcko commented Nov 15, 2021

Does it practically matter if the minimum is set to 2.23 or 2.24 or 2.18? If you want to check that it works on Debian 9, you can test that regardless of the what the minimum is set to?

@hebasto
Copy link
Member

hebasto commented Nov 15, 2021

Does it practically matter if the minimum is set to 2.23 or 2.24 or 2.18? If you want to check that it works on Debian 9, you can test that regardless of the what the minimum is set to?

Correct. But I mean a bit different notion. If we provide users a "guarantee" that our release binaries can be run on any system with glibc 2.18+ then we must be able to test them on an actual system with glibc 2.18. If symbol checking is just a "sanity" measure then no such testing is required.

@fanquake
Copy link
Member Author

I mean that this PR changes approach from "align with a glibc available on XXX" to "align glibc version to the newest symbol we actual use", right?

Yes.

Does it practically matter if the minimum is set to 2.23 or 2.24 or 2.18?

I might be misunderstanding you, but, yes? If our minimum requirement was 2.24, then we'd change our code to align with that, i.e by removing back compat work arounds like --no-tls-get-addr-optimize. Having code that was trying to achieve one thing, while actually claiming to support something else in our release checks, would be confusing.

I don't think I've seen a good rationale for setting the minimum glibc requirement to anything other than what is actually used by our code. I'm not sure why choosing a glibc version shipped with the LTS of an arbitrary distro is better than that. Having the minimum requirement set to the actual minimum also means we also get immediate notification (via Guix build) when dependencies or requirements change with newly introduced code.

@maflcko
Copy link
Member

maflcko commented Nov 15, 2021

Concept ACK. Bumping to 2.18 seems fine for now. It can always be increased further, if needed.

@hebasto
Copy link
Member

hebasto commented Nov 15, 2021

I mean that this PR changes approach from "align with a glibc available on XXX" to "align glibc version to the newest symbol we actual use", right?

Yes.

Ok. Approach ACK.

@hebasto
Copy link
Member

hebasto commented Nov 15, 2021

Guix builds:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
bbe01b2c65bc7d7b7861dbbd9157a43b7d09d42a31e2d1cee614c74485612dc6  guix-build-b73cb82c9508/output/aarch64-linux-gnu/SHA256SUMS.part
77b9451b6be6ac6076b22ea9ba929e6540cd226118180aa30dd09d593670f22e  guix-build-b73cb82c9508/output/aarch64-linux-gnu/bitcoin-b73cb82c9508-aarch64-linux-gnu-debug.tar.gz
5956462064be5c540ed66856179d9ce80202350d75d3dad17d1a139097a7556f  guix-build-b73cb82c9508/output/aarch64-linux-gnu/bitcoin-b73cb82c9508-aarch64-linux-gnu.tar.gz
7cf5e29b54ae2b8f828dcc3b8044545b8e2257ecacc2a33e4f5a2671d7cee456  guix-build-b73cb82c9508/output/arm-linux-gnueabihf/SHA256SUMS.part
572c176568168b023212348f579d4758222218190bdb70d5b7d34e653b858d15  guix-build-b73cb82c9508/output/arm-linux-gnueabihf/bitcoin-b73cb82c9508-arm-linux-gnueabihf-debug.tar.gz
815820eadf2dabc8ee395ceead28d2a6082e12ef3ba2bf72663f92afa8b9e09b  guix-build-b73cb82c9508/output/arm-linux-gnueabihf/bitcoin-b73cb82c9508-arm-linux-gnueabihf.tar.gz
1a7c43f05ca0fbab459cbe0545851894ae843bad7bd8bb7f08420691cc5b0c86  guix-build-b73cb82c9508/output/dist-archive/bitcoin-b73cb82c9508.tar.gz
d879a1df5bf68c5066d726af83bfc93644a43e28c82af69bd742ea43aec00fb2  guix-build-b73cb82c9508/output/powerpc64-linux-gnu/SHA256SUMS.part
5411d6107f045240414c4d5a51d00dcb4aebf69486a3e71712c81a7be5152b28  guix-build-b73cb82c9508/output/powerpc64-linux-gnu/bitcoin-b73cb82c9508-powerpc64-linux-gnu-debug.tar.gz
867e9180726c4dd602d6fbc902957fd1d99390c80d699a293f763cf3a10113ec  guix-build-b73cb82c9508/output/powerpc64-linux-gnu/bitcoin-b73cb82c9508-powerpc64-linux-gnu.tar.gz
128f529376d90c350c1b342e9c11b3307e89d7ac8afb21c4dc009f1d31ad0af1  guix-build-b73cb82c9508/output/powerpc64le-linux-gnu/SHA256SUMS.part
f1aec22a2e32757bd6dbc9b962941c910678d53cc712f176991825b0b527a936  guix-build-b73cb82c9508/output/powerpc64le-linux-gnu/bitcoin-b73cb82c9508-powerpc64le-linux-gnu-debug.tar.gz
3893577c2e91dc70070cd4cc45946e780d9694a73cedd100abc3fda317fa6285  guix-build-b73cb82c9508/output/powerpc64le-linux-gnu/bitcoin-b73cb82c9508-powerpc64le-linux-gnu.tar.gz
bf6528c2d77c45db3da72e3c4ebac478ae29286cc6f795496213ce8aa06a4a66  guix-build-b73cb82c9508/output/riscv64-linux-gnu/SHA256SUMS.part
587113fcb6ff210e095a882bb6871e3cafea9ec3f3caf86f35fffdf6aca6ed32  guix-build-b73cb82c9508/output/riscv64-linux-gnu/bitcoin-b73cb82c9508-riscv64-linux-gnu-debug.tar.gz
54e76a5f95b2a0dbb1df584582c7298b366c63dae98e5b471a94c840328815cd  guix-build-b73cb82c9508/output/riscv64-linux-gnu/bitcoin-b73cb82c9508-riscv64-linux-gnu.tar.gz
faf504401cf0b4723be3f5c32b2be53c6210b6823fa7c61c659ee05ad7488f56  guix-build-b73cb82c9508/output/x86_64-apple-darwin19/SHA256SUMS.part
41ebe8500536a1f6fac3747471b6e678ac38b0f79aece0216263de78c40ef384  guix-build-b73cb82c9508/output/x86_64-apple-darwin19/bitcoin-b73cb82c9508-osx-unsigned.dmg
4c1dbee06d53319557ba4db9a62d8e719e0261216f011beb8b163b930d635f3e  guix-build-b73cb82c9508/output/x86_64-apple-darwin19/bitcoin-b73cb82c9508-osx-unsigned.tar.gz
a7f9557e353dcb8cc9f82b0f681e34d2b09b800c6745d4893ee4d163d47760dc  guix-build-b73cb82c9508/output/x86_64-apple-darwin19/bitcoin-b73cb82c9508-osx64.tar.gz
d0940a692bc2ca9354decd92032e4348906dbd266ab028da9701448d18692c23  guix-build-b73cb82c9508/output/x86_64-linux-gnu/SHA256SUMS.part
04b0cbd12fbd46269123689dc996230167101fe2715ce2f888a9c36636636375  guix-build-b73cb82c9508/output/x86_64-linux-gnu/bitcoin-b73cb82c9508-x86_64-linux-gnu-debug.tar.gz
4396fa63d28009be4bec371035ff2e8cb19591c5c3715a42eb4618498d400cad  guix-build-b73cb82c9508/output/x86_64-linux-gnu/bitcoin-b73cb82c9508-x86_64-linux-gnu.tar.gz
b021e56d2970dcd569b22f2516028f3f4963ce7a15cb4acfece2448331833e3a  guix-build-b73cb82c9508/output/x86_64-w64-mingw32/SHA256SUMS.part
0182dd0bf1f9eb5b47a51d1de7f592fc834255e840c266a599e4f5ab852c5c93  guix-build-b73cb82c9508/output/x86_64-w64-mingw32/bitcoin-b73cb82c9508-win-unsigned.tar.gz
c9a429ff3a0a28d306ff453504f0d899b31047aef38f42120083c56efa45dc65  guix-build-b73cb82c9508/output/x86_64-w64-mingw32/bitcoin-b73cb82c9508-win64-debug.zip
691e3a55d8626557ee017c388631e8443f6844fc1e765da922dbea8b2f3ce6b3  guix-build-b73cb82c9508/output/x86_64-w64-mingw32/bitcoin-b73cb82c9508-win64-setup-unsigned.exe
6ee568d78cc2c1596fe2faaf730b87b19505b5826e418420949d28a976461c04  guix-build-b73cb82c9508/output/x86_64-w64-mingw32/bitcoin-b73cb82c9508-win64.zip

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK b73cb82, I have reviewed the code and it looks OK, I agree it can be merged.

From what I can see the only platform this drops support for is CentOS
7. CentOS 7 reached the end of it's "full update" support at the end of
2020. It does receive maintenance updates until 2024, however I don't
think supporting glibc 2.17 until 2024 is realistic. Note that anyone
wanting to self-compile and target a glibc 2.17 runtime could build with
--disable-threadlocal.

glibc 2.18 was released in August 2013.
https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html
This was used to expose additional formatting macros in glibs / std
libs. However this is no-longer required now that we require glibc
2.18+.

See https://sourceware.org/bugzilla/show_bug.cgi?id=15366.
@laanwj
Copy link
Member

laanwj commented Nov 16, 2021

ACK ACK ACK ACK ACK 5b93e65
I've wanted this for so long, can we finally drop the weird handling around thread_local (--disable-threadlocal can be dropped completely in a follow-up PR), it shouldn't be needed anymore in the year of 2021.

@hebasto
Copy link
Member

hebasto commented Nov 16, 2021

can we finally drop the weird handling around thread_local

There still are some workarounds fro Windows and FreeBSD (

@laanwj
Copy link
Member

laanwj commented Nov 16, 2021

There still are some workarounds fro Windows and FreeBSD (

The FreeBSD issue is something from 2018. Did someone recently try if it's still a problem?

Edit: I will check, and report somewhere else, it's off topic here.
Edit.2: Yes, the problem still exists. I tried compiling w/ thread_local on FreeBSD 13.0, the most recent version, and still get the __cxa_thread_call_dtors: dtr 0x801f77850 from unloaded dso, skipping messages

@laanwj
Copy link
Member

laanwj commented Nov 16, 2021

find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-ACK 5b93e65, only suggested changes since my previous review.

Guix builds:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip

@fanquake fanquake merged commit 6bde42e into bitcoin:master Nov 17, 2021
@fanquake fanquake deleted the glibc_2_18 branch November 17, 2021 00:07
Copy link
Member

@jarolrod jarolrod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post merge ACK, was testing 🏗️

in relation to the qt5.15 update PR, this is preferable to applying the related patch.

I had ran a GUIX build, my hashes match @hebasto and @laanwj:

d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip

@DrahtBot
Copy link
Contributor

Guix builds

File commit a85442f
(master)
commit df4a5d2
(master and this pull)
SHA256SUMS.part 309bd56bed133dc9... 5e0667e43890651b...
*-aarch64-linux-gnu-debug.tar.gz 7f63a62664517770... e1456caaf5847f67...
*-aarch64-linux-gnu.tar.gz 9c02e9f6e3bfa48b... 4040a787d8745b4b...
*-arm-linux-gnueabihf-debug.tar.gz 4669f89eb398a4c5... ed9bb6afcb18a3a5...
*-arm-linux-gnueabihf.tar.gz 049e98a6a6671dc3... d5c94a7108ddae9b...
*-osx-unsigned.dmg 05225510e464d56a... 44e1ee4265378b9b...
*-osx-unsigned.tar.gz 0809d21c2388289f... 607805300cc51061...
*-osx64.tar.gz 99ac4b6bb403ef8c... eb8e0815990edd57...
*-powerpc64-linux-gnu-debug.tar.gz 32abd0d7623c4fcb... c189ebacfea878a8...
*-powerpc64-linux-gnu.tar.gz b3f5ded6ab0f8f44... 49f5d871551c7019...
*-powerpc64le-linux-gnu-debug.tar.gz ad7d7b3db652f718... e15222cab66a679b...
*-powerpc64le-linux-gnu.tar.gz e83d8aceda407fb5... 19489e86fe57a3b5...
*-riscv64-linux-gnu-debug.tar.gz cb5380e61cc30cfc... 06939d1729df0db6...
*-riscv64-linux-gnu.tar.gz 2982454848dd8a6a... 45fbde41be1eb7fe...
*-win-unsigned.tar.gz 02f97eed1f2e6576... a1fb98d31b0abdc1...
*-win64-debug.zip dede667097633c36... 568682d1a4adc41d...
*-win64-setup-unsigned.exe d3f73468fdc362a7... 7d57773c339bf604...
*-win64.zip 33b70fd1964fcd25... 64a3b404111f0a94...
*-x86_64-linux-gnu-debug.tar.gz 6fcef5837ba3419e... 83f9437b08fc5150...
*-x86_64-linux-gnu.tar.gz 56998d2286a04828... 7f1222d5ea21d005...
*.tar.gz 3014d727c46d3574... db7380d1c6f1c22b...
guix_build.log 30a90e6966635cc5... 854d2f23b684e4a5...
guix_build.log.diff d9f6bf461b845ea4...

sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Nov 17, 2021
fanquake added a commit to bitcoin-core/gui that referenced this pull request Mar 7, 2022
956f732 build: Bump minimum Qt version to 5.11.3 (Hennadii Stepanov)
e22d10b ci: Switch from bionic to buster (Hennadii Stepanov)

Pull request description:

  The current minimum Qt version is 5.9.5 which has been set in bitcoin/bitcoin#21286.

  Distro support:
  - centos 7 -- unsupported since bitcoin/bitcoin#23511
  - centos 8 -- [5.15.2](http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/qt5-qtbase-5.15.2-3.el8.x86_64.rpm)
  - buster -- [5.11.3](https://packages.debian.org/buster/libqt5core5a)
  - bullseye  -- [5.15.2](https://packages.debian.org/bullseye/libqt5core5a)
  - _bionic_ -- [5.9.5](https://packages.ubuntu.com/bionic/libqt5core5a)
  - focal -- [5.12.8](https://packages.ubuntu.com/focal/libqt5core5a)

  As another Ubuntu LTS is coming soon, it seems unreasonable to stick to Qt 5.9 which support [ended](https://www.qt.io/blog/2017/06/07/renewed-qt-support-services) on 2020-05-31. Anyway, it's still possible to build Bitcoin Core GUI with depends on bionic system.

  Bumping the minimum Qt version allows to make code safer and more reliable, e.g.:
  - functor-parameter overload of [`QMetaObject::invokeMethod`](https://doc.qt.io/qt-5/qmetaobject.html#invokeMethod-4)
  - fixed https://bugreports.qt.io/browse/QTBUG-10907

  An example of the patch using the functor-overload of `QMetaObject::invokeMethod`:
  ```diff
  --- a/src/qt/walletmodel.cpp
  +++ b/src/qt/walletmodel.cpp
  @@ -349,7 +349,7 @@ bool WalletModel::changePassphrase(const SecureString &oldPass, const SecureStri
   static void NotifyUnload(WalletModel* walletModel)
   {
       qDebug() << "NotifyUnload";
  -    bool invoked = QMetaObject::invokeMethod(walletModel, "unload");
  +    bool invoked = QMetaObject::invokeMethod(walletModel, &WalletModel::unload);
       assert(invoked);
   }

  ```
  It uses the same new syntax as signal-slot connection with compile-time check. Also see bitcoin/bitcoin#16348.

  This PR is intended to be merged early [after](bitcoin/bitcoin#22969) branching `23.x` off.

ACKs for top commit:
  MarcoFalke:
    cr ACK 956f732
  fanquake:
    ACK 956f732

Tree-SHA512: 3d652bcdcd990ce785ad412ed70234d4f27743895e535a53ed44b35d4afc3052e066c4c84f417e30bc53d0a3dd9ebed62444c57b7c765cb1e9aa687fbf866877
@fanquake
Copy link
Member Author

This went into 23.0, but didn't end up with a release note. Although it is currently documented in dependencies.md. Removing the label.

kwvg added a commit to kwvg/dash that referenced this pull request Dec 28, 2022
kwvg added a commit to kwvg/dash that referenced this pull request Dec 28, 2022
kwvg added a commit to kwvg/dash that referenced this pull request Jan 2, 2023
kwvg added a commit to kwvg/dash that referenced this pull request Jan 13, 2023
kwvg added a commit to kwvg/dash that referenced this pull request Jan 17, 2023
PastaPastaPasta pushed a commit to kwvg/dash that referenced this pull request Jan 19, 2023
knst pushed a commit to knst/dash that referenced this pull request Mar 9, 2023
5b93e65 build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake)
dbfca4a build: require glibc 2.18+ for release builds (fanquake)

Pull request description:

  This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

  It was mentioned in bitcoin#22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see bitcoin#23489).

  Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for.

  glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.
  > Add support for calling C++11 thread_local object destructors on thread
    and program exit.  This needs compiler support for offloading C++11
    destructor calls to glibc.

  The last time we increased our runtime glibc requirement for release builds was in bitcoin#17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

  Guix builds:
  ```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
  d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
  5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
  db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
  db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
  58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
  9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
  254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
  cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
  8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
  de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
  ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
  65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
  40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
  a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
  581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
  6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
  ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
  c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
  e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
  f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
  2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
  5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
  2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
  0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
  53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
  7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
  9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
  a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK ACK ACK ACK ACK 5b93e65
  hebasto:
    re-ACK 5b93e65, only suggested changes since my [previous](bitcoin#23511 (review)) review.

Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
knst pushed a commit to knst/dash that referenced this pull request Mar 10, 2023
5b93e65 build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake)
dbfca4a build: require glibc 2.18+ for release builds (fanquake)

Pull request description:

  This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

  It was mentioned in bitcoin#22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see bitcoin#23489).

  Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for.

  glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.
  > Add support for calling C++11 thread_local object destructors on thread
    and program exit.  This needs compiler support for offloading C++11
    destructor calls to glibc.

  The last time we increased our runtime glibc requirement for release builds was in bitcoin#17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

  Guix builds:
  ```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
  d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
  5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
  db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
  db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
  58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
  9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
  254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
  cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
  8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
  de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
  ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
  65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
  40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
  a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
  581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
  6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
  ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
  c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
  e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
  f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
  2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
  5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
  2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
  0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
  53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
  7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
  9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
  a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK ACK ACK ACK ACK 5b93e65
  hebasto:
    re-ACK 5b93e65, only suggested changes since my [previous](bitcoin#23511 (review)) review.

Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
knst pushed a commit to knst/dash that referenced this pull request Apr 3, 2023
5b93e65 build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake)
dbfca4a build: require glibc 2.18+ for release builds (fanquake)

Pull request description:

  This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

  It was mentioned in bitcoin#22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see bitcoin#23489).

  Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for.

  glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.
  > Add support for calling C++11 thread_local object destructors on thread
    and program exit.  This needs compiler support for offloading C++11
    destructor calls to glibc.

  The last time we increased our runtime glibc requirement for release builds was in bitcoin#17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

  Guix builds:
  ```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
  d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
  5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
  db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
  db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
  58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
  9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
  254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
  cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
  8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
  de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
  ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
  65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
  40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
  a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
  581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
  6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
  ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
  c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
  e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
  f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
  2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
  5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
  2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
  0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
  53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
  7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
  9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
  a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK ACK ACK ACK ACK 5b93e65
  hebasto:
    re-ACK 5b93e65, only suggested changes since my [previous](bitcoin#23511 (review)) review.

Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
knst pushed a commit to knst/dash that referenced this pull request Apr 14, 2023
5b93e65 build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake)
dbfca4a build: require glibc 2.18+ for release builds (fanquake)

Pull request description:

  This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

  It was mentioned in bitcoin#22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see bitcoin#23489).

  Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for.

  glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.
  > Add support for calling C++11 thread_local object destructors on thread
    and program exit.  This needs compiler support for offloading C++11
    destructor calls to glibc.

  The last time we increased our runtime glibc requirement for release builds was in bitcoin#17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

  Guix builds:
  ```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
  d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
  5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
  db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
  db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
  58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
  9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
  254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
  cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
  8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
  de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
  ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
  65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
  40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
  a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
  581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
  6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
  ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
  c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
  e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
  f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
  2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
  5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
  2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
  0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
  53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
  7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
  9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
  a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK ACK ACK ACK ACK 5b93e65
  hebasto:
    re-ACK 5b93e65, only suggested changes since my [previous](bitcoin#23511 (review)) review.

Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
knst pushed a commit to knst/dash that referenced this pull request Apr 18, 2023
5b93e65 build: remove D__STDC_FORMAT_MACROS from CPPFLAGS (fanquake)
dbfca4a build: require glibc 2.18+ for release builds (fanquake)

Pull request description:

  This increases our runtime glibc requirement from 2.17 to 2.18. From what I can see the only platform this drops release support for is CentOS 7, which reached the end of it's "full update" support at the [end of 2020](https://wiki.centos.org/About/Product). It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic.

  It was mentioned in bitcoin#22405 that our 2.17 requirement could be a bit excessive, and I tend to agree, however without a good reason to require an even newer version, I think a move from 2.17 -> 2.18 is sufficient for now. That means we get a glibc with "proper" support for `thread_local` (see below), as well as avoid having to patch dependencies to retain glibc compatibility (see bitcoin#23489).

  Note that anyone wanting to self-compile and target a glibc 2.17 runtime could currently build with `--disable-threadlocal`. However we wouldn't make any guarantees on how long that workaround might exist for.

  glibc 2.18 was released in August 2013: https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html.
  > Add support for calling C++11 thread_local object destructors on thread
    and program exit.  This needs compiler support for offloading C++11
    destructor calls to glibc.

  The last time we increased our runtime glibc requirement for release builds was in bitcoin#17538 (0.20 release), where we moved from a 2.11 requirement to 2.17.

  Guix builds:
  ```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
  d21c7429dbaca3a5260ec424036e19e287c553adb2229894e59eb9b60bc2eba5  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/SHA256SUMS.part
  5d8e7d8b5016b694cb23bcee202819a7db63ea033e5a21c99895981f7b508184  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu-debug.tar.gz
  db4e7b6af7d4dfa246e604f5548fd31e1ad51b810b24789f42362cd7be41cad3  guix-build-5b93e65f6abf/output/aarch64-linux-gnu/bitcoin-5b93e65f6abf-aarch64-linux-gnu.tar.gz
  db97badc0ad969bcb13620fc7f087d78622f3217ee792fc28406cc083a25bcbe  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/SHA256SUMS.part
  58a6910362ffacd1c7df27033c25cb25f24a317f3ca909f39bb20ac552b021db  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf-debug.tar.gz
  9d99fd89de4798116bfe83ff1e17e10c019b3e30d2d39fd70a5bef7c937bf6d5  guix-build-5b93e65f6abf/output/arm-linux-gnueabihf/bitcoin-5b93e65f6abf-arm-linux-gnueabihf.tar.gz
  254e9149d00b0e50af1c80697326ac69ab823b4e845c19f059cc229f724fbb07  guix-build-5b93e65f6abf/output/dist-archive/bitcoin-5b93e65f6abf.tar.gz
  cc39947931b65960f1d32c3d53d623108a78af4bf2b3ac34b65a4c30de5feb08  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/SHA256SUMS.part
  8763efeaaeea17bc526bccb050bd9da1ad2f22c7d8ec912ec0db68f4de7d4b88  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu-debug.tar.gz
  de8984c519c6afc7d43e28c11f7a38b0c5c2eec676bf566448cfd0e4f6accac8  guix-build-5b93e65f6abf/output/powerpc64-linux-gnu/bitcoin-5b93e65f6abf-powerpc64-linux-gnu.tar.gz
  ba73422ca3da7670435018b515bb2f8917dd23d47adb7989643b324bb47bcbf4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/SHA256SUMS.part
  65a66250139f2379e8ff79abab0448c2a395b77bbb9f18f9ba51d2c83c598ce4  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu-debug.tar.gz
  40e8de24f4e18af0473886cdedbc7aed2797264f8f4ed871547dd7d6e678efac  guix-build-5b93e65f6abf/output/powerpc64le-linux-gnu/bitcoin-5b93e65f6abf-powerpc64le-linux-gnu.tar.gz
  a42d20fd81325171f19b11f2cdf76da1d129146dfbda744125f579bb6f11a632  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/SHA256SUMS.part
  581379b13295665ea709f8bda7ff606a4a1d4d536f6578a22ea2c64aeea62d62  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu-debug.tar.gz
  6dc6c6ac6116fda4596c6f577b6ecef65c552467222072e629562892a0363431  guix-build-5b93e65f6abf/output/riscv64-linux-gnu/bitcoin-5b93e65f6abf-riscv64-linux-gnu.tar.gz
  ef4ee73071bd1a4d610281781eb2409dd8fe5c976ba347914e97b5cb49292db4  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/SHA256SUMS.part
  c4ea3b83c7debaf2d5a5cced6408445c2cb22177b0b368df74a72612a9105600  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.dmg
  e9c53a43f7f1c105f5aa8d0f8163a773a5b4a16c420ffdb2e3d0a5aab89a275f  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx-unsigned.tar.gz
  f6e67def9519895ce2bf0893dbc4279e77e61d242b64ffd7423f46439baa9642  guix-build-5b93e65f6abf/output/x86_64-apple-darwin19/bitcoin-5b93e65f6abf-osx64.tar.gz
  2dac0468cda5ddd5e2aaf632228bbbde1fe98f6119c1cc0e91ab36bb7924b587  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/SHA256SUMS.part
  5fbb6cd4a951dc8f7d9d3ec80b8dcbce4d6cd74a4a8c532ac30a2646ca4337a5  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu-debug.tar.gz
  2942ef6a2e67508a87566ebbea0bbbe922962fbc90df9a73d4a328953171c633  guix-build-5b93e65f6abf/output/x86_64-linux-gnu/bitcoin-5b93e65f6abf-x86_64-linux-gnu.tar.gz
  0d4c30d286d040126b8418a7c7e16d94cf8fe4397f4b71250a8502bf0aa65637  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/SHA256SUMS.part
  53b7f7b4243f5b9f02f91407569392ea672bb585227696cc0b63b5bc10866d8d  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win-unsigned.tar.gz
  7e7c252dcfe406f47caa9593b4009d969447859f4a665a02ef4718edaf170311  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-debug.zip
  9cbc0780d42d6b4779ad989670757323a37151c03b4797e520a74b642b53e3dd  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64-setup-unsigned.exe
  a302b35629ac3bb21ae86905dfe521cdccd98a7e35868e12a081152adcf89bf5  guix-build-5b93e65f6abf/output/x86_64-w64-mingw32/bitcoin-5b93e65f6abf-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK ACK ACK ACK ACK 5b93e65
  hebasto:
    re-ACK 5b93e65, only suggested changes since my [previous](bitcoin#23511 (review)) review.

Tree-SHA512: e9c57b11881204ee7c4e3d474d64722bc1bd4409cf8511f2914360205158946a327aa7234bbcbae40c43c0373954d0571c28583d90c280dca53614372891ddde
delta1 added a commit to delta1/elements that referenced this pull request May 26, 2023
@bitcoin bitcoin locked and limited conversation to collaborators Sep 15, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants