Skip to content

Commit

Permalink
linkage_checker: skip broken linkage in Julia
Browse files Browse the repository at this point in the history
  • Loading branch information
cho-m committed Sep 10, 2024
1 parent f0be97f commit dd25679
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions Library/Homebrew/linkage_checker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@ def dylib_to_dep(dylib)
Regexp.last_match(2)
end

sig { params(file: String).returns(T::Boolean) }
def broken_dylibs_allowed?(file)
return false if formula.name != "julia"

file.start_with?("#{formula.prefix.realpath}/share/julia/compiled/")

Check warning on line 99 in Library/Homebrew/linkage_checker.rb

View check run for this annotation

Codecov / codecov/patch

Library/Homebrew/linkage_checker.rb#L99

Added line #L99 was not covered by tests
end

def check_dylibs(rebuild_cache:)
keg_files_dylibs = nil

Expand Down Expand Up @@ -128,7 +135,7 @@ def check_dylibs(rebuild_cache:)
if !file_has_any_rpath_dylibs && (dylib.start_with? "@rpath/")
file_has_any_rpath_dylibs = true
pathname = Pathname(file)
@files_missing_rpaths << file if pathname.rpaths.empty?
@files_missing_rpaths << file if pathname.rpaths.empty? && !broken_dylibs_allowed?(file.to_s)
end

next if checked_dylibs.include? dylib
Expand Down Expand Up @@ -156,7 +163,7 @@ def check_dylibs(rebuild_cache:)
# If we cannot associate the dylib with a dependency, then it may be a system library.
# If dlopen finds the dylib, then the linkage is not broken.
@system_dylibs << dylib
elsif !system_framework?(dylib)
elsif !system_framework?(dylib) && !broken_dylibs_allowed?(file.to_s)
@broken_dylibs << dylib
end
else
Expand Down

0 comments on commit dd25679

Please sign in to comment.