-
Notifications
You must be signed in to change notification settings - Fork 37.7k
guix: Avoid relying on newer symbols by rebasing our cross toolchains on older glibcs #22365
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
Conversation
As I noted on IRC, there is no need to use actual glibc 2.17. The version 2.24 is enough, and it does not introduce 2.17+ symbols in our release binaries. |
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. |
I agree this is preferable. My understanding is that we've been using a more recent version than 2.17 for a long time already, and 2.17 is ancient. Sure, there is always a risk that some new function we start using, or a dependency change, introduces a more recent symbol dependency too, but we have tooling to detect that. |
eaf0892
to
ae820d6
Compare
Updated to use |
Concept ACK. As I mentioned on IRC, my preference was to update these together. |
Guix builds
|
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.
Approach ACK ae820d6.
Add a nice commit message and un-draft?
Guix builds
|
Concept ACK |
1 similar comment
Concept ACK |
Support for riscv64 in glibc landed in 2.27 so it's unavoidable that we use 2.27. Running a Bitcoin build with toolchains based on 2.24 for platforms other than riscv64 seem to produce binaries which do not have 2.17 symbols. So use 2.24 since it's more recent and maintained by Debian Stretch.
Our 'bitcoin-linux-g++' definition better integrates with our depends system than the stock linux-g++-64 definition. This fixes a bug whereby Guix builds on x86_64 for x86_64 did not produce a QMinimalIntegrationPlugin and led to bitcoin-qt not being built.
ae820d6
to
dc4137a
Compare
Pushed ae820d6...dc4137a
|
|
ACK dc4137a Built and verified using objdump that the binaries have the right symbol versions. |
Added one new commit 647f7e5
Note for followup: Perhaps add a "print to stdout" option to |
reACK 647f7e5 |
Guix builds
|
Guix builds:
|
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 647f7e5
My only concern about this change is:
Gitian builds on master does not pass symbol check. If both guix and gitian will be kept in 22.0 codebase, the latter must be fixed with set of fixups. But applying changes that fix gitian builds will make this PR redundant. Proposed to discuss this topic on the next weekly meeting. |
I think we should remove gitian after branch-off. There is no need to maintain a script that isn't used. |
Those changes don't make this PR redundant.
It really needs to be done before branch-off. As well as removing some of the back-compat machinery, and modifying where we run some of your symbol / security checks. There's no point leaving this half-broken for 22.0, and fixing it up just after. we should just do it now. |
Fixing symbol compatibility for gitian fixes it for guix as well.
Agree to drop all gitian stuff before branch-off. |
When Guix is being built against the correct glibc, which is what should be done, that's irrelevant, there is nothing to "fix". This would still be done even if you wanted to fix gitian, you'd just drop the compatibility option. |
Right.
Unfortunately, some of "fixes" touch dependencies (e.g., #22318), regardless of |
That still doesn't make a difference for Guix, because the dependencies are being built in the same environment. |
I think there is some wisdom to keeping some of the gitian backwards compatibility code until we've successfully done a guix release. Even though it doesn't completely work at the moment, it's easier to fix it up than reintroduce it, in case we do need to do a gitian release for some reason. |
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.
review ACK 647f7e5
Also checked that this makes DrahtBot happier.
@@ -0,0 +1,60 @@ | |||
commit 6b02af31e9a721bb15a11380cd22d53b621711f8 |
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.
Is there a source for this commit?
https://sourceware.org/git/?p=glibc.git;a=commit;h=6b02af31e9a721bb15a11380cd22d53b621711f8 is a 404
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.
@@ -0,0 +1,98 @@ | |||
commit dc23a45db566095e83ff0b7a57afc87fb5ca89a1 |
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.
Same
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.
This should be the correct link: https://sourceware.org/git/?p=glibc.git;a=commit;h=fc3e1337be1c6935ab58bd13520f97a535cf70cc
Guix builds: b0cc4097dcb0c7e432b5884868df56fdca12838164765dff6cfca9f46c50c09d guix-build-647f7e5f1da1/output/aarch64-linux-gnu/SHA256SUMS.part
6555ea52efaacd5ac62ef62e141cf12e9aab50b901fdf41591758ac2e822359e guix-build-647f7e5f1da1/output/aarch64-linux-gnu/bitcoin-647f7e5f1da1-aarch64-linux-gnu-debug.tar.gz
5b9c5e369b53fa02f0e9750f5aede71e989fb2c06537f40844d901db2f1a7b0c guix-build-647f7e5f1da1/output/aarch64-linux-gnu/bitcoin-647f7e5f1da1-aarch64-linux-gnu.tar.gz
d9d884967737993a7ec897570a364dd57f51380c51a774bbe9174236fc7842e6 guix-build-647f7e5f1da1/output/arm-linux-gnueabihf/SHA256SUMS.part
a0f6afaeb47a66b613487c4c2a1e6b9d96cba1b3afbb929d999a6d6cc3a84fbf guix-build-647f7e5f1da1/output/arm-linux-gnueabihf/bitcoin-647f7e5f1da1-arm-linux-gnueabihf-debug.tar.gz
c391f0845ad11ed790176a0c82a2d95418dd2911e9afcc7984c0cb64aa8ff987 guix-build-647f7e5f1da1/output/arm-linux-gnueabihf/bitcoin-647f7e5f1da1-arm-linux-gnueabihf.tar.gz
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 guix-build-647f7e5f1da1/output/dist-archive/SKIPATTEST.TAG
de25b62acfdda83a0ab6c3c80c9e87c7408c4992e2124b2bcb54876377e6a7c8 guix-build-647f7e5f1da1/output/dist-archive/bitcoin-647f7e5f1da1.tar.gz
06f31ccad401a88215f1f64784fc1f37fe0820039908c1d3da419d30fb20949a guix-build-647f7e5f1da1/output/powerpc64-linux-gnu/SHA256SUMS.part
e699f0babaa511d543f18bed9023a1a853d17069cd5337389afba1ee8fac4761 guix-build-647f7e5f1da1/output/powerpc64-linux-gnu/bitcoin-647f7e5f1da1-powerpc64-linux-gnu-debug.tar.gz
01463830bcd166d658e2e3253adf2c9cef394a9c35b68fc598fa8148a1c6d9e4 guix-build-647f7e5f1da1/output/powerpc64-linux-gnu/bitcoin-647f7e5f1da1-powerpc64-linux-gnu.tar.gz
425ceaa0df11b0f20cd0e9aa65dead9e0ec6f6ca145dc2fb78cce8e18f13e970 guix-build-647f7e5f1da1/output/powerpc64le-linux-gnu/SHA256SUMS.part
287eaf143715a9951cf667d481adc461ac3bcb947f7220909905a77bd3e454dc guix-build-647f7e5f1da1/output/powerpc64le-linux-gnu/bitcoin-647f7e5f1da1-powerpc64le-linux-gnu-debug.tar.gz
0e374af879e66a6ed8430ad2873c021ee7df9aa595110b2afeed91ba877dd15c guix-build-647f7e5f1da1/output/powerpc64le-linux-gnu/bitcoin-647f7e5f1da1-powerpc64le-linux-gnu.tar.gz
8f19905a6eaebcf9b6c01f44c5013d23ee7e78781562fdbf3cff63bd8911079a guix-build-647f7e5f1da1/output/riscv64-linux-gnu/SHA256SUMS.part
67cd32523a21db5d26d9bc5deac6381a8d97462d8817f5f7f7ed9296b8cc5ff2 guix-build-647f7e5f1da1/output/riscv64-linux-gnu/bitcoin-647f7e5f1da1-riscv64-linux-gnu-debug.tar.gz
a191dbc3cb52ec5eabff2c5f487ac519bac26cfcee39219ae12f3acddeab7ed8 guix-build-647f7e5f1da1/output/riscv64-linux-gnu/bitcoin-647f7e5f1da1-riscv64-linux-gnu.tar.gz
2723e5c4dd02f99188a36e5e4f9ee72f7ca1c37beaf79e419dc9d431737a2763 guix-build-647f7e5f1da1/output/x86_64-apple-darwin18/SHA256SUMS.part
ddcbb8535da9268b2d271d7a89f4a44053193ac3f5bf73e6f5f12c5ddac369e4 guix-build-647f7e5f1da1/output/x86_64-apple-darwin18/bitcoin-647f7e5f1da1-osx-unsigned.dmg
3b892e34ac1b43d9e41d7b0c42c5fadfbd913bd94a497efd07117ed488efa01f guix-build-647f7e5f1da1/output/x86_64-apple-darwin18/bitcoin-647f7e5f1da1-osx-unsigned.tar.gz
412d06fd2aab1ec85ada2de95b47f03927cf782481a581be810d45f082036b18 guix-build-647f7e5f1da1/output/x86_64-apple-darwin18/bitcoin-647f7e5f1da1-osx64.tar.gz
24874b4f99e537a58ae111c22c8eba889e0087feb0f855e7046f981868306192 guix-build-647f7e5f1da1/output/x86_64-linux-gnu/SHA256SUMS.part
6f7de79d48a5ecfa57b48d6f79ae5c261495ddb2a9383c33f5ac5d43f5e08e86 guix-build-647f7e5f1da1/output/x86_64-linux-gnu/bitcoin-647f7e5f1da1-x86_64-linux-gnu-debug.tar.gz
dcaaa67abbb46038c656a40f4f913a85c2c73f14a3d1245b86ee16991fa9ec4e guix-build-647f7e5f1da1/output/x86_64-linux-gnu/bitcoin-647f7e5f1da1-x86_64-linux-gnu.tar.gz
51eb00f218f674ec2eaab6526219c95e4e806e2b82d9733c21be98eedb89bff1 guix-build-647f7e5f1da1/output/x86_64-w64-mingw32/SHA256SUMS.part
f4ec5155590b1e2c1e1830ffbe0c378e93bfae329edce2c7a2141c490b80b690 guix-build-647f7e5f1da1/output/x86_64-w64-mingw32/bitcoin-647f7e5f1da1-win-unsigned.tar.gz
f3fa9a9b17dd286c2c96a692a7d469a184fa2d4ae03574e597d5ce1fe4ec6ae6 guix-build-647f7e5f1da1/output/x86_64-w64-mingw32/bitcoin-647f7e5f1da1-win64-debug.zip
6d5d2f353f413894b03bbd855ac62156cfc2c100b2966abdfe6ca8e625c36adf guix-build-647f7e5f1da1/output/x86_64-w64-mingw32/bitcoin-647f7e5f1da1-win64-setup-unsigned.exe
8d1c5c19a1949dc5ac962c12010954d2a4ea68ea43aa63257c9bf3527026bfc8 guix-build-647f7e5f1da1/output/x86_64-w64-mingw32/bitcoin-647f7e5f1da1-win64.zip |
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 647f7e5 - documentation can be fixed shortly.
Posthumous ACK 647f7e5 (get the same build result as fanquake) |
Guix builds:
|
797b3ed script: remove gitian reference from symbol-check.py (fanquake) 15fc9a0 guix: add additional documentation to patches (fanquake) 4516e5e lint: exclude Guix patches from spell-checking (fanquake) de6ca41 guix: no-longer pass --enable-glibc-back-compat to Guix (fanquake) 84dd81f build: remove glibc backcompat requirement for Linux symbol checks (fanquake) Pull request description: Now that our Guix toolchains are based on glibc 2.24 and 2.27 (RISCV), we don't need to use the `--enable-glibc-back-compat` option to produce binaries that don't use any symbols from glibc 2.17 and 2.27 or later. This also adds additional documentation to some Guix patches (pointed out in #22365) and removes Guix patches from the spelling linter, because that isn't our spelling. Symbol usage: https://gist.github.com/fanquake/d15604fc580718444c5aa4b3c3c75fdc. 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 ed54e6a6cf4fab328557c0c72eb08c73f2a58c6c70959544cf4b1882e75ea69e guix-build-797b3ed90900/output/aarch64-linux-gnu/SHA256SUMS.part 83bd9dadc59f89f848d143fa4fc3964f16fe0b4bdf35e5093b577ff2c4bd1f43 guix-build-797b3ed90900/output/aarch64-linux-gnu/bitcoin-797b3ed90900-aarch64-linux-gnu-debug.tar.gz 94cb8c35281f12dec6ea5b390b66cad5e27ac8c45a30c42c8d38c438695d54c0 guix-build-797b3ed90900/output/aarch64-linux-gnu/bitcoin-797b3ed90900-aarch64-linux-gnu.tar.gz 7318b63d65c0aa52d2446de8e1f40658d2e47ab8fb0268820c3b7585d140fb23 guix-build-797b3ed90900/output/arm-linux-gnueabihf/SHA256SUMS.part 95e1ffb372964b73f539653ca703b70cf0c018801a9c4c0ffc46a0b63539253c guix-build-797b3ed90900/output/arm-linux-gnueabihf/bitcoin-797b3ed90900-arm-linux-gnueabihf-debug.tar.gz 039d3842e6499626cf955ae0a7590dd6b3d0935cdc217c98aaf9d156b0ebd3b4 guix-build-797b3ed90900/output/arm-linux-gnueabihf/bitcoin-797b3ed90900-arm-linux-gnueabihf.tar.gz e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 guix-build-797b3ed90900/output/dist-archive/SKIPATTEST.TAG 2c4e7b6e7aff63ba811e5bf59362d16866c3a358f8844fba8739a61192870622 guix-build-797b3ed90900/output/dist-archive/bitcoin-797b3ed90900.tar.gz 955029b949c368eabd517dd33040d2f01e2ac6a55e7b4f9107907a7c6e0c6060 guix-build-797b3ed90900/output/powerpc64-linux-gnu/SHA256SUMS.part fd6d6b137f8efedf58a879d11205b1d4649e1f97d7f91e193239ef206fcc285d guix-build-797b3ed90900/output/powerpc64-linux-gnu/bitcoin-797b3ed90900-powerpc64-linux-gnu-debug.tar.gz 51736ac8e77737999f1b5bd4c381b0016f19a8d5e40e786fe941ff04e84c11c9 guix-build-797b3ed90900/output/powerpc64-linux-gnu/bitcoin-797b3ed90900-powerpc64-linux-gnu.tar.gz 8c244c16bfa46c1efdb120e1d91fdd14d3f14eefee8d7e1fbb0a9b4664a5c315 guix-build-797b3ed90900/output/powerpc64le-linux-gnu/SHA256SUMS.part 704ee593251a1b1c65a5bebeef93b23f266af4e8cbf8ae556150c3b2e8f06a6c guix-build-797b3ed90900/output/powerpc64le-linux-gnu/bitcoin-797b3ed90900-powerpc64le-linux-gnu-debug.tar.gz 0ec06ae7d344de20d61e3965d8b383747ef20b0e9d93a3165733ea23bdf2ead8 guix-build-797b3ed90900/output/powerpc64le-linux-gnu/bitcoin-797b3ed90900-powerpc64le-linux-gnu.tar.gz 2dd6c6ecc67b0ea40ca9c43f92efca81ccd054b8db8c197ad84ad9674d510a25 guix-build-797b3ed90900/output/riscv64-linux-gnu/SHA256SUMS.part 5ebb27a855a677f7a188d83995be6b2a3ea8606be152abb7fc7832713fb0677a guix-build-797b3ed90900/output/riscv64-linux-gnu/bitcoin-797b3ed90900-riscv64-linux-gnu-debug.tar.gz bdaf1783f5e1861597afa37c1880364e118d9a7a7af8017302d82202791019f6 guix-build-797b3ed90900/output/riscv64-linux-gnu/bitcoin-797b3ed90900-riscv64-linux-gnu.tar.gz 726c9092b60ac2e7d7e14b2c24467fcf276a6f89170a871ddab9dce6ac230699 guix-build-797b3ed90900/output/x86_64-apple-darwin18/SHA256SUMS.part 2af4d709b44952654f3c08c86593bf2ccc9a44ed422783a1b95b8a199a894db2 guix-build-797b3ed90900/output/x86_64-apple-darwin18/bitcoin-797b3ed90900-osx-unsigned.dmg fd49ba445aa6cf3d8c47019a05e9e5740cb0f53349344dd80671297127f49f1a guix-build-797b3ed90900/output/x86_64-apple-darwin18/bitcoin-797b3ed90900-osx-unsigned.tar.gz 3f51cbf8cf18420d4be70e656aa993675cf5e828a255c2030047ae2e059ed5b7 guix-build-797b3ed90900/output/x86_64-apple-darwin18/bitcoin-797b3ed90900-osx64.tar.gz afd1edee1447bb88d81e972abfae4c4e065b5b1827769f033cff9472084c7c1b guix-build-797b3ed90900/output/x86_64-linux-gnu/SHA256SUMS.part ec468ef886d25e685f4f7a18b4f7d497dedf757495e0d5beb72c23cc32ab69b5 guix-build-797b3ed90900/output/x86_64-linux-gnu/bitcoin-797b3ed90900-x86_64-linux-gnu-debug.tar.gz 1934d7294f0c9e083d38a3f68d4a61cd679defa79ce0a89f77386978692b9b18 guix-build-797b3ed90900/output/x86_64-linux-gnu/bitcoin-797b3ed90900-x86_64-linux-gnu.tar.gz 94c11c328a628052eb6f50e9816aa768f87ea7acfbbbafdab60f6928da766811 guix-build-797b3ed90900/output/x86_64-w64-mingw32/SHA256SUMS.part fd371922ba93d81bd4a2b711d617af6756f9f0494db6d83aa0e5f491a24168ef guix-build-797b3ed90900/output/x86_64-w64-mingw32/bitcoin-797b3ed90900-win-unsigned.tar.gz 4e4ad976bc029bbbf9596ad8493accaaba8b0d5c598dd342f8da330609bbdf21 guix-build-797b3ed90900/output/x86_64-w64-mingw32/bitcoin-797b3ed90900-win64-debug.zip 3a89a16b9101e9a17d98efb9234b5bdd264c0bba2c6326511017730e1a08311f guix-build-797b3ed90900/output/x86_64-w64-mingw32/bitcoin-797b3ed90900-win64-setup-unsigned.exe e285ab737e3c843fd3f1c26c2f053e421a3c39b33995747ce48281884d3f28d1 guix-build-797b3ed90900/output/x86_64-w64-mingw32/bitcoin-797b3ed90900-win64.zip ``` ACKs for top commit: sipa: utACK 797b3ed hebasto: ACK 797b3ed Tree-SHA512: 3a569702d8832c155c5ce8d2f6d823f7f12603885576078bc5192bc9038a48261ecb541800f79d1e9bc86d71fa640265c5b8b89df9d8bb680b3bb05d9d78a666
After this PR, we'll have the following:
symbol-check.py
)