-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Auto-detect ld v2.24
and disable USE_BINARYBUILDER_LIBUV
.
#31573
Conversation
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 looks fine to me, but I also am not sure I am qualified to review.
After playing around with this, I really don't like it. For this to work robustly, we need to:
The fundamental problem here is that apparently
|
I think:
Is the right conservative option. |
I like this option. If operating systems can't be trusted to not be broken junk (and they can't, unfortunately), then we need to take over that responsibility and ship stuff that isn't so broken. |
As a side note; it appears that there are other, subtler bugs that can occur even just when combining old GCC versions (like our GCC 4 shard) with new binutils (example). I think I'm going to need to build a binutils per GCC shard, we'll just use a binutils close to that GCC version. This compiler multiversioning mess is getting out of hand, so I have written up some thoughts about what the problems are, how we're solving them, and I've started rebuilding our system images to try and address these issues. |
Just a note that this is also an issue on RHEL 7.x.
|
Potential solution to #31555 (comment). I am trying to avoid having to fully parse the version number as that's complex in Make, and I don't even know what the proper bounds on invalid
ld
versions are (I just know that2.24
doesn't work, and2.26
does work)