-
-
Notifications
You must be signed in to change notification settings - Fork 9.3k
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
linux/linkage_checker: remove gcc
from undeclared_deps
#13796
Conversation
This is causing warnings all over Homebrew/homebrew-core. For example, there are dozens of warnings about this in the following CI run: https://github.com/Homebrew/homebrew-core/runs/8116257943?check_suite_focus=true
Review period will end on 2022-09-05 at 06:32:23 UTC. |
@carlocab @danielnachun @iMichka @sjackman I'd like to understand a little more why this is happening. Are these opportunistic linkages? Are these actually using the GCC formula but it's just added as a dependency in a different way? Will this be resolved when we rebuild bottles on 22.04? If this is temporary until 22.04 migration: I'm fine with adding this now with a Ruby comment noting when it should be removed. If this is not temporary: can we work out how to resolve this properly? |
This is an anticipated consequence of #13659. This is not quite opportunistic linkage, nor is it a dependency -- at least, not in the same way we usually think of those terms. This is probably best described as "optional" linkage: the formulae that throw these warnings will use
If by resolving this you mean removing the undeclared dependency exception, then one way of doing this would be to:
Step 2 above is, from my understanding, planned, and will be enabled by building bottles on 22.04. Step 3 will likely happen eventually. There is some dispute about step 4, since some Linux maintainers want the flexibility to build with the Step 4, however, is crucial. One major reason for doing #13659 is to remove the need to rebuild all of formula An alternative to the above would be to make the I know @sjackman had ideas about doing something like this for |
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.
Ok, I'm fine as-is given the explanation. Would love to see an inline Ruby comment summarising this situation and explaining why with a TODO
that links to an issue describing the work that needs to be done. Thanks again @carlocab!
f9f1ceb
to
b2cc172
Compare
I think #13659 is a great idea and we should keep it. Although I think we should avoid using brewed GCC whenever possible, in the rare case it may be needed preventing the dependency explosion is critical.
I will be working as much as possible to get rid of all the Linux-only
This is the proper solution and I will go over the example @sjackman gave on doing this to see how to implement it best. The logic essentially boils down to finding the newest symbol ABI version in the bottle's binaries and making sure it is not newer than what is provided by GCC 11. It only applies to 4 libraries |
Review period ended. |
# See discussions at: | ||
# https://github.com/Homebrew/brew/pull/13659 | ||
# https://github.com/Homebrew/brew/pull/13796 | ||
# TODO: Find a nicer way to handle this. (e.g. examining the ELF file to determine the required libstdc++.) |
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.
@danielnachun can you tackle this post 3.6.0? Please open a tracking issue if that'd be helpful for you to remember 👍🏻
Thanks ❤️
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?This is causing warnings all over Homebrew/homebrew-core.
For example, there are dozens of warnings about this in the following CI
run: https://github.com/Homebrew/homebrew-core/runs/8116257943?check_suite_focus=true