aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorWilliam Woodruff2017-06-19 22:48:01 -0400
committerWilliam Woodruff2017-06-19 22:48:01 -0400
commit47fe2149638a85bc956593c12abd5aa5bb15452c (patch)
treecc3c93e0b715ce2ad6e47df275f6b88bcac93ebe /Library
parentcd7e3cd39d4fd48cedf0963c1660fe9a70544ad5 (diff)
downloadbrew-47fe2149638a85bc956593c12abd5aa5bb15452c.tar.bz2
linkage_checker: Add harmless dylibs check.
While the linkage checker should normally report all broken links, there are a few cases where broken links are harmless. One case is when a the PPC slice of a program links to a PPC-only library that no longer exists on x86_64 OS X. Since the PPC slice is never loaded on modern OS X, inconsistencies within it do not need to be reported.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/os/mac/linkage_checker.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/Library/Homebrew/os/mac/linkage_checker.rb b/Library/Homebrew/os/mac/linkage_checker.rb
index 6720ddcbe..f332c2d7a 100644
--- a/Library/Homebrew/os/mac/linkage_checker.rb
+++ b/Library/Homebrew/os/mac/linkage_checker.rb
@@ -36,6 +36,7 @@ class LinkageChecker
rescue NotAKegError
@system_dylibs << dylib
rescue Errno::ENOENT
+ next if harmless_broken_link?(dylib)
@broken_dylibs << dylib
else
tap = Tab.for_keg(owner).tap
@@ -114,6 +115,14 @@ class LinkageChecker
private
+ # Whether or not dylib is a harmless broken link, meaning that it's
+ # okay to skip (and not report) as broken.
+ def harmless_broken_link?(dylib)
+ # libgcc_s_ppc64 is referenced by programs that use the Java Service Wrapper,
+ # and is harmless on x86(_64) machines
+ ["/usr/lib/libgcc_s_ppc64.1.dylib"].include?(dylib)
+ end
+
# Display a list of things.
# Things may either be an array, or a hash of (label -> array)
def display_items(label, things)