-
-
Notifications
You must be signed in to change notification settings - Fork 13k
osrm-backend: exclude libraries on Linux due to GCC dependency #233023
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
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.
The bottle does not include C++ libraries as core formulae are | ||
not allowed to have a Linux-only GCC dependency for libraries. |
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.
The bottle does not include C++ libraries as core formulae are | |
not allowed to have a Linux-only GCC dependency for libraries. | |
Does not include C++ libraries. |
- I don't think people need to know the reason why
- I don't think it makes sense to make this bottle only
# Remove C++ libraries from Linux bottle. Can consider restoring once GCC 12 is default | ||
rm_r([include, lib]) if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"] |
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.
# Remove C++ libraries from Linux bottle. Can consider restoring once GCC 12 is default | |
rm_r([include, lib]) if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"] | |
# Remove C++ libraries from Linux formula. Can consider restoring once GCC 12 is default | |
rm_r([include, lib]) if OS.linux? |
end | ||
|
||
test do | ||
refute_path_exists lib if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"] |
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.
refute_path_exists lib if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"] | |
refute_path_exists lib if OS.linux? |
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.
Yea, as long as you're not shipping libraries it's fine. We should probably audit for that.
Something like a check that makes sure all ELF files in the keg are executable if a formula is in linux_only_gcc_dependency_allowlist
. That can be relaxed if we can actually check the GCC version required by a library.
Lots of great ideas here, thanks @carlocab ❤️ |
Locally I'm scoping out alternative to just completing the GCC 12 upgrade. We already use GLIBCXX_3.4.30 (GCC 12.1.0) in some binaries perhaps from Ubuntu's different GCC vs libstdc++, e.g. $ objdump -p $(brew --prefix)/lib/libz3.so | grep -oE 'GLIBCXX_3.4.[0-9]{2,}' | sort -r | head -3
GLIBCXX_3.4.30
GLIBCXX_3.4.29
GLIBCXX_3.4.26 EDIT: Homebrew/brew#20609 |
Closing in favor of improving brew detection given GCC 12 is actually mandatory in many of our Linux bottles. |
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?Another unwanted runtime dependency on versioned GCC. Trying out shipping only executables for bottles.
Also trying to drop some old deps and workarounds.