-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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: update minimum required version of glibc to 2.28 #5448
Conversation
3d8fb78
to
7eedcd8
Compare
This pull request has conflicts, please rebase. |
ef3d7db
to
457a1aa
Compare
Guix Binaries:
Guix Archives:
|
This pull request has conflicts, please rebase. |
Guix GH action is live again! Thanks @strophy! 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
Guix binaries
0d6c757ee5f8c939fe6feea9818a5c2d2c0279dfeed40fd4567d7a521ff3cd0c guix-build-4fbd043a2448/distsrc-4fbd043a2448-aarch64-linux-gnu/src/dash-cli db0177ca1fd3f3415fe4709c63baaf7b948829732fff998a85b410588c26853c guix-build-4fbd043a2448/distsrc-4fbd043a2448-aarch64-linux-gnu/src/dash-tx 9cbe991bb730d462837cb5971e948c13f57f38fd1d0303e1703747e2f004fd19 guix-build-4fbd043a2448/distsrc-4fbd043a2448-aarch64-linux-gnu/src/dash-wallet 33799f224fb9cd282b8d27b38b27b4f4c2380193ace4c7ec35df95c13074b516 guix-build-4fbd043a2448/distsrc-4fbd043a2448-aarch64-linux-gnu/src/dashd f11ed369a86d920deb5e23dac9ec717ea53038f0b3b208df4412b73ea21d43e6 guix-build-4fbd043a2448/distsrc-4fbd043a2448-aarch64-linux-gnu/src/qt/dash-qt 1357a42617c69c59299045f7594355062c945c02ca244b244560560a31aa8f20 guix-build-4fbd043a2448/distsrc-4fbd043a2448-aarch64-linux-gnu/src/test/test_dash bd74dc2bca88be1c22fd80870147afc716d4f4e49a9084ebe9df7e71b1d2c242 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm-linux-gnueabihf/src/dash-cli 590799331a033c2fd9903a2bef79d87401315f03b3f7ddc94ec34594d404b73a guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm-linux-gnueabihf/src/dash-tx 43766adea175b9b910e2cb15e0741c299aa339d0259091c11f3072e0bf78b726 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm-linux-gnueabihf/src/dash-wallet a02bae2472125470563d6a6b77774e420d2307e701ac2ad566fdb4efbe671e73 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm-linux-gnueabihf/src/dashd d02336d7f35add83fd93194fb2860957cf9877ba8bd892e9733e4d790dc76398 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm-linux-gnueabihf/src/qt/dash-qt 276b9701f0c87d7d1b5e0036923bb049b00f40ccf13a958430ee57b936391ea8 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm-linux-gnueabihf/src/test/test_dash 1e58b24c0554c76822b06c4e886d05cd470ffd6fa1f2fb8056cf966af658792b guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm64-apple-darwin/src/dash-cli 836a9eda6dcb884f1ed5964e471ed2aa4a7f6c6906af0a0159c3a5a61dd03ddd guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm64-apple-darwin/src/dash-tx 954e35ef29adb55d9499cd4ee49f9ade6656cf98c138f90aba64008f94087b39 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm64-apple-darwin/src/dash-wallet 028effae72303f1150d275bff954b10332eefa12f8f32bb1cc73dc64b18006c0 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm64-apple-darwin/src/dashd 555c371a73f8f2afb40e43b45e4c376c5f61acc9f1acb14c9c4273fb7697efa2 guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm64-apple-darwin/src/qt/dash-qt def39bbd134988b553fc5d8139ef59d9dfd000203ac18904f6681d5f968310db guix-build-4fbd043a2448/distsrc-4fbd043a2448-arm64-apple-darwin/src/test/test_dash b281a5644a53c6901de979b0508641999a4f0b6446c795ad5279f8a7a75a406d guix-build-4fbd043a2448/distsrc-4fbd043a2448-riscv64-linux-gnu/src/dash-cli 3c01a5e82cbb25599ed35f7bc13a0a71686887c4530ea0568c1458d6ee6d6253 guix-build-4fbd043a2448/distsrc-4fbd043a2448-riscv64-linux-gnu/src/dash-tx 93fae700066ecfbd4344005781abb305904ecf119ddc9bb1f5ee8f457942b576 guix-build-4fbd043a2448/distsrc-4fbd043a2448-riscv64-linux-gnu/src/dash-wallet 19edf4db48e4a078ffb9ad9d1bd061a7ec71444bfb9f9de69de8288e15caf896 guix-build-4fbd043a2448/distsrc-4fbd043a2448-riscv64-linux-gnu/src/dashd f80e4332683f70c0d89843b2984199b9c02c0722ec9a2a9a58dbf3029722d8a7 guix-build-4fbd043a2448/distsrc-4fbd043a2448-riscv64-linux-gnu/src/qt/dash-qt 869dfa7db10bf632c4e30e978b2b2d81eb38b064a43e183c4e702f1e818c5d34 guix-build-4fbd043a2448/distsrc-4fbd043a2448-riscv64-linux-gnu/src/test/test_dash d46f6e170b935565cb9994f3bb42a214512c16e55363d589d69ad68e56ffc4b7 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-apple-darwin/src/dash-cli 2ce085c74faf9250f3f057e1bc9fc45e8ec6cf5fc7af9c63c4eafb3c3f193f69 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-apple-darwin/src/dash-tx 3619897e2bc650c0d9e05ee84e80d43c2bf868175f131b577d331a303dfbff8b guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-apple-darwin/src/dash-wallet b5c629f6beaf0ea3066bb8f7df0982482a7979c9a5c461f78d8b0c5ecbc3934b guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-apple-darwin/src/dashd e5910eaa8376a5d409f10b719d7e24414b3f1eb337546402b0551df6e41268d1 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-apple-darwin/src/qt/dash-qt dff1667782e21a64c36fda98688ec0e6eadb3b8bac4279a3a3651e901d930b39 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-apple-darwin/src/test/test_dash 853ce18346b448182173eb8a23a00a7b81d254d1196deebc372ea5ae57bb1db9 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-linux-gnu/src/dash-cli cc44f389f4d7ac18eafde96fd2fd27af5784316de16303e14bdf3beab3a88715 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-linux-gnu/src/dash-tx 7c994a7c7cf37f5ffabf2b88d432bf1275b5eb67fc27f3a1d3ae3fee31eabfb2 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-linux-gnu/src/dash-wallet fc8ecee4a14ec3883ef24303ab4d7878fc4b6a5c2651b93caacc410d46bbd0ac guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-linux-gnu/src/dashd 088e1b3df5370769addf4a4fe306d64beb0ac7a4da9f4cca95355a5deec234a4 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-linux-gnu/src/qt/dash-qt 25839fac7d324e24553a7916e8cb5af147ed875424b171918ce06d7610549f4b guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-linux-gnu/src/test/test_dash 698502ea44e900d93017ca5a5c2361a5d50265194a2f71e6f61a8e9e09ddb903 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-w64-mingw32/src/dash-cli.exe ba1d2480f07fec3c3b0ca9f1c937bb5e510b0f6797168101b0ab22c452c04acb guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-w64-mingw32/src/dash-tx.exe 0c3b319eda891b96846fa80eba4efea9ed761987c3ca9210bddf46d651d09601 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-w64-mingw32/src/dash-wallet.exe 1eab94d8f24865f7a7b75541804742b0d28676d432a5fa72ae9097b109f947e8 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-w64-mingw32/src/dashd.exe 946602034f8c3718c9cac4db055801f01c3736bb9b1b0bcd4398d9cd714d5d27 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-w64-mingw32/src/qt/dash-qt.exe 9b67191775eff16f972c740bc70c161059092b82ce5cf19255ba7e4fdb7d6ac5 guix-build-4fbd043a2448/distsrc-4fbd043a2448-x86_64-w64-mingw32/src/test/test_dash.exeGuix archives
a30a40086d6a5aa1b54a6ab966acafb4d061eeb0d5344112e5fe45cbc206fa77 guix-build-4fbd043a2448/output/aarch64-linux-gnu/dashcore-4fbd043a2448-aarch64-linux-gnu-debug.tar.gz 0f4ae03b07633e41145d77ab7824649df89c4e93369a9fd09cd6c7b6cba1b405 guix-build-4fbd043a2448/output/aarch64-linux-gnu/dashcore-4fbd043a2448-aarch64-linux-gnu.tar.gz cf694dca10ac629ebbbb5b7066bf0b9c08bbce5b80572d3906945d9a7ee0eed0 guix-build-4fbd043a2448/output/arm-linux-gnueabihf/dashcore-4fbd043a2448-arm-linux-gnueabihf-debug.tar.gz b5b4c4aa5af7b9cd34b414d30d5ac1f81670bbc4416a51774c4175bc8f8347c9 guix-build-4fbd043a2448/output/arm-linux-gnueabihf/dashcore-4fbd043a2448-arm-linux-gnueabihf.tar.gz 9c7bca2d1e23e6325b1dc2b6b9d477a3766ed6c0f3dc543d8370799e798223dd guix-build-4fbd043a2448/output/arm64-apple-darwin/dashcore-4fbd043a2448-arm64-apple-darwin-unsigned.dmg 8242d3b8ef196e9a0a81da0f1b0e95eb8d117d4b0c40d3ff454fb8313a08d4c2 guix-build-4fbd043a2448/output/arm64-apple-darwin/dashcore-4fbd043a2448-arm64-apple-darwin-unsigned.tar.gz 56b9bdc27b9f09404bd614e35abd4d8bf55a035d8129cbc20cfd427512512201 guix-build-4fbd043a2448/output/arm64-apple-darwin/dashcore-4fbd043a2448-arm64-apple-darwin.tar.gz 59bc99d5acf2f16b67e5971d569bf28f16698adead7f247a00dc2f45a05b4b38 guix-build-4fbd043a2448/output/dist-archive/dashcore-4fbd043a2448.tar.gz fb7a41f1366887099cd889e73c24f9831036e8e06cd6edb04cf30c4c1522c589 guix-build-4fbd043a2448/output/riscv64-linux-gnu/dashcore-4fbd043a2448-riscv64-linux-gnu-debug.tar.gz 9efc286d56dfefb7c4c45895571e311869bf7c7b704f72fa208d8027965bef94 guix-build-4fbd043a2448/output/riscv64-linux-gnu/dashcore-4fbd043a2448-riscv64-linux-gnu.tar.gz 5959cac421619fdc0825e514e36c25ee878f92b038ed93056cbebf0185e9fc31 guix-build-4fbd043a2448/output/x86_64-apple-darwin/dashcore-4fbd043a2448-x86_64-apple-darwin-unsigned.dmg 52878e1970e97319295a38604975ff6cd44aed3b71054b88ec561e99dbffdf16 guix-build-4fbd043a2448/output/x86_64-apple-darwin/dashcore-4fbd043a2448-x86_64-apple-darwin-unsigned.tar.gz eeae1ca01d0845fdd24b64127f388609b384d80f8677e54f9153e96bee6323a9 guix-build-4fbd043a2448/output/x86_64-apple-darwin/dashcore-4fbd043a2448-x86_64-apple-darwin.tar.gz 32e22c39e1c9c66d7615560f6f262a631ef84276c35e40828b7abf6a0f1b71a7 guix-build-4fbd043a2448/output/x86_64-linux-gnu/dashcore-4fbd043a2448-x86_64-linux-gnu-debug.tar.gz 8235a78efcbe184ce72c0aab3a4dd792b0abbb3efb0cf81448b43093ada37082 guix-build-4fbd043a2448/output/x86_64-linux-gnu/dashcore-4fbd043a2448-x86_64-linux-gnu.tar.gz 8122c27096df4f18db96c55413732f1963e48dedfeb13a890a5dc9f477e1a058 guix-build-4fbd043a2448/output/x86_64-w64-mingw32/dashcore-4fbd043a2448-win64-debug.zip 34c01cc49172636141dcb3faa2fbcca31873653aca5aeabf397aae7c7f5dbed1 guix-build-4fbd043a2448/output/x86_64-w64-mingw32/dashcore-4fbd043a2448-win64-setup-unsigned.exe 7a6e160ab2f14c1666d33be39cfc6e9d4f0084fca6f2f1311e059eb9d59f1544 guix-build-4fbd043a2448/output/x86_64-w64-mingw32/dashcore-4fbd043a2448-win64-unsigned.tar.gz f04912d018e8f64037f0e12ecef96238a57a58842a6cef02458682be7de79a3e guix-build-4fbd043a2448/output/x86_64-w64-mingw32/dashcore-4fbd043a2448-win64.zipGitian
a427a29e8cce8501c547f52e42158ecf3b2d0dc064e403bb2b9b5af87389daba dashcore-4fbd043a2448-aarch64-linux-gnu-debug.tar.gz 49f0012b0dc2546ee892f7f212920da479111a04a68d4224bd996470f77f8556 dashcore-4fbd043a2448-aarch64-linux-gnu.tar.gz 97d2120f2dac57d57f07665fce3db612a908096020938fed14337ac55e4e0d4b dashcore-4fbd043a2448-osx64-debug.tar.gz 3d5de810bf5802c8fb4993863920963b868f5e27292e40bc9be790be47ff873f dashcore-4fbd043a2448-osx64.tar.gz 37d6a410a29889f8c58a93b712684a06a5c1afeccfaba59864256e142bcc02ca dashcore-4fbd043a2448-osx-unsigned.dmg f174b8e3ec0a6bdda8585d10b43bf7cdd34eb19ae5b63a02fd4b323febb319da dashcore-4fbd043a2448-riscv64-linux-gnu-debug.tar.gz c3f6de679aa88ce102acd32bc7bac0be185281076268532e517da67262d1841c dashcore-4fbd043a2448-riscv64-linux-gnu.tar.gz 59bc99d5acf2f16b67e5971d569bf28f16698adead7f247a00dc2f45a05b4b38 dashcore-4fbd043a2448.tar.gz 096bf512bc2419b63af43a0480d706523553edfee507c6257a1d0abd5dd05b4f dashcore-4fbd043a2448-win64-debug.zip 227e08ad1bba34a3eea1ffe3acedceaecf63d52d7e57bca6524094cc5dda4b7e dashcore-4fbd043a2448-win64-setup-unsigned.exe 0fce7527fd463ef3acc4b5f5763a893f28953903c67246ed070cd9ffea9e88fd dashcore-4fbd043a2448-win64.zip 7b2955b1e3e6a263a18a8a622a1eab308fbff874626fd16ef56639ff25ef8539 dashcore-4fbd043a2448-x86_64-linux-gnu-debug.tar.gz bf83a74b38ad004fb832035c8944e8f5a4a47a0d7ece85d08dfed7be661fd7c3 dashcore-4fbd043a2448-x86_64-linux-gnu.tar.gz
My gitian hashes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
light-ACK for merging via merge commit
This reverts commit 2ecaf21
clang warnings are quite noisy and easily cause gitlab's logs to spill over, preventing logging of dash-specific warnings and errors from making it to the CI logs. our dependencies mostly track upstream so regardless, we cannot act upon those warnings, so it's better to just suppress them if they're too noisy.
Used to avoid the following error: ``` In file included from test/fuzz/addition_overflow.cpp:7: In file included from ./test/fuzz/util.h:26: In file included from ./test/util/setup_common.h:16: In file included from ./txmempool.h:31: In file included from /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/optional.hpp:15: In file included from /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/optional/optional.hpp:47: In file included from /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/type_traits/is_nothrow_move_assignable.hpp:16: /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/type_traits/has_nothrow_assign.hpp:65:7: error: builtin __has_nothrow_assign is deprecated; use __is_nothrow_assignable instead [-Werror,-Wdeprecated-builtins] BOOST_HAS_NOTHROW_ASSIGN(T) ^ /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/type_traits/intrinsics.hpp:205:43: note: expanded from macro 'BOOST_HAS_NOTHROW_ASSIGN' ^ /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/serialization/serialization.hpp:61:1: note: in instantiation of template class 'boost::has_nothrow_assign<unsigned int>' requested here BOOST_STRONG_TYPEDEF(unsigned int, version_type) ^ /builds/dashpay/dash/depends/x86_64-pc-linux-gnu/include/boost/serialization/strong_typedef.hpp:42:57: note: expanded from macro 'BOOST_STRONG_TYPEDEF' D& operator=(const D& rhs) BOOST_NOEXCEPT_IF(boost::has_nothrow_assign<T>::value) {t = rhs.t; return *this;} \ ```
This reverts commit 6de96a8.
This reverts commit 90c7f16.
This reverts commit 4db1397.
4fbd043
to
a854aee
Compare
Additional Information
Motivation
Ubuntu
focal
(our current CI base) ships with glibc 2.31 (source) and while we will soon drop support forxenial
(which uses glibc 2.23), Debian 10 (buster
) and CentOS Stream 8 both support glibc 2.28.bitcoin#27029 consolidates support towards glibc 2.27, which means we simply use a CI image that bundles 2.27. Except, that we have to use 2.28 is that it's the minimum version required to build 32-bit ARM, due to a need to import the
fcntl64
symbol (see build).This was discussed in bitcoin#22287 where one of the proposed fixes has already made it into develop with 90c7f16. But that only resolves
fcntl64
SQLite usage, not 32-bit ARM symbol usage. The proposed solution for that was to bump the minimum glibc version or to exclude it from builds altogether (the latter being unacceptable due to widespread adoption of the architecture).Theoretically building on a newer version of glibc shouldn't prevent builds from running on older glibcs as long as newer symbols aren't used, which means we could simply continue with
focal
instead of downgrading tobuster
(a distribution that comes with the minimum required glibc version, which allows us to consolidate our build environment around glibc 2.28).Except, symbols are subject to versioning and can be "upgraded", breaking backwards compatibility (see build).
This is a documented problem that has been faced by different projects and maintainers, see here and here for examples.
This hasn't been a problem in the past because of the glibc compatibility layer but in its absence (we do not have the option to retain it as future Guix backports include modifications to the build system that assume its absence), bumps in symbol versioning will cause symbol tests to fail as the binary doesn't strictly contain the subset of symbols supported by the minimum version.
Bitcoin at the time of these backports, deprecated Gitian and didn't intend to ship releases built by them, making their breakage acceptable. This is in contrast to our continued usage of Gitian, for at least one more major release.
This leaves us with limited options and the most straightforward one is to downgrade the base CI image to the lowest glibc version shipped by a non-EOL distro (which in this case is glibc 2.28 with
buster
).Notes
Special thanks to @UdjinM6 for contributing significantly and testing this PR, through f801973, a218119 and e948e0a and helping me out with getting Gitian working properly