From 47fe2149638a85bc956593c12abd5aa5bb15452c Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Mon, 19 Jun 2017 22:48:01 -0400 Subject: [PATCH] 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. --- Library/Homebrew/os/mac/linkage_checker.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Library/Homebrew/os/mac/linkage_checker.rb b/Library/Homebrew/os/mac/linkage_checker.rb index 6720ddcbe8..f332c2d7a2 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)