linkage_checker: restrict RPATH test to --strict

This test is causing some rebuilds due to failed linkage upon upgrade.
That's a problem because rebuilds won't fix the problem that the `RPATH`
check identifies.
This commit is contained in:
Carlo Cabrera 2022-03-10 07:09:47 +08:00
parent e62094f52a
commit 39923cdb7f
No known key found for this signature in database
GPG Key ID: C74D447FC549A1D0

View File

@ -70,14 +70,16 @@ class LinkageChecker
display_items "Broken dependencies", @broken_deps, puts_output: puts_output display_items "Broken dependencies", @broken_deps, puts_output: puts_output
display_items "Unwanted system libraries", @unwanted_system_dylibs, puts_output: puts_output display_items "Unwanted system libraries", @unwanted_system_dylibs, puts_output: puts_output
display_items "Conflicting libraries", @version_conflict_deps, puts_output: puts_output display_items "Conflicting libraries", @version_conflict_deps, puts_output: puts_output
display_items "Undeclared dependencies with linkage", @undeclared_deps, puts_output: puts_output if strict return unless strict
display_items "Undeclared dependencies with linkage", @undeclared_deps, puts_output: puts_output
display_items "Files with missing rpath", @files_missing_rpaths, puts_output: puts_output display_items "Files with missing rpath", @files_missing_rpaths, puts_output: puts_output
end end
sig { params(strict: T::Boolean).returns(T::Boolean) } sig { params(strict: T::Boolean).returns(T::Boolean) }
def broken_library_linkage?(strict: false) def broken_library_linkage?(strict: false)
issues = [@broken_deps, @unwanted_system_dylibs, @version_conflict_deps, @files_missing_rpaths] issues = [@broken_deps, @unwanted_system_dylibs, @version_conflict_deps]
issues << @undeclared_deps if strict issues += [@undeclared_deps, @files_missing_rpaths] if strict
[issues, unexpected_broken_dylibs, unexpected_present_dylibs].flatten.any?(&:present?) [issues, unexpected_broken_dylibs, unexpected_present_dylibs].flatten.any?(&:present?)
end end