@@ -128,7 +128,7 @@ def dll_ref_versions
128128require "rake_compiler_dock"
129129
130130def verify_dll ( dll , cross_ruby )
131- dll_imports = cross_ruby . dlls
131+ expected_imports = cross_ruby . dlls . sort
132132 dump = `#{ [ "env" , "LANG=C" , cross_ruby . tool ( "objdump" ) , "-p" , dll ] . shelljoin } `
133133
134134 if cross_ruby . windows?
@@ -137,29 +137,29 @@ def verify_dll(dll, cross_ruby)
137137
138138 # Verify that the expected DLL dependencies match the actual dependencies
139139 # and that no further dependencies exist.
140- dll_imports_is = dump . scan ( /DLL Name: (.*)$/ ) . map ( &:first ) . map ( &:downcase ) . uniq
141- if dll_imports_is . sort != dll_imports . sort
142- raise "unexpected dll imports #{ dll_imports_is . inspect } in #{ dll } "
140+ actual_imports = dump . scan ( /DLL Name: (.*)$/ ) . map ( &:first ) . map ( &:downcase ) . uniq . sort
141+ if actual_imports != expected_imports
142+ raise "unexpected so imports #{ actual_imports . inspect } in #{ dll } (expected #{ expected_imports . inspect } ) "
143143 end
144144
145145 elsif cross_ruby . linux?
146146 # Verify that the expected so dependencies match the actual dependencies
147147 # and that no further dependencies exist.
148- dll_imports_is = dump . scan ( /NEEDED\s +(.*)/ ) . map ( &:first ) . uniq
149- if dll_imports_is . sort != dll_imports . sort
150- raise "unexpected so imports #{ dll_imports_is . inspect } in #{ dll } (expected #{ dll_imports . inspect } )"
148+ actual_imports = dump . scan ( /NEEDED\s +(.*)/ ) . map ( &:first ) . uniq . sort
149+ if actual_imports != expected_imports
150+ raise "unexpected so imports #{ actual_imports . inspect } in #{ dll } (expected #{ expected_imports . inspect } )"
151151 end
152152
153153 # Verify that the expected so version requirements match the actual dependencies.
154- dll_ref_versions_list = dump . scan ( /0x[\d a-f]+ 0x[\d a-f]+ \d + (\w +)_([\d \. ]+)$/i )
154+ ref_versions_data = dump . scan ( /0x[\d a-f]+ 0x[\d a-f]+ \d + (\w +)_([\d \. ]+)$/i )
155155 # Build a hash of library versions like {"LIBUDEV"=>"183", "GLIBC"=>"2.17"}
156- dll_ref_versions_is = dll_ref_versions_list . each . with_object ( { } ) do |( lib , ver ) , h |
156+ actual_ref_versions = ref_versions_data . each . with_object ( { } ) do |( lib , ver ) , h |
157157 if !h [ lib ] || ver . split ( "." ) . map ( &:to_i ) . pack ( "C*" ) > h [ lib ] . split ( "." ) . map ( &:to_i ) . pack ( "C*" )
158158 h [ lib ] = ver
159159 end
160160 end
161- if dll_ref_versions_is != cross_ruby . dll_ref_versions
162- raise "unexpected so version requirements #{ dll_ref_versions_is . inspect } in #{ dll } "
161+ if actual_ref_versions != cross_ruby . dll_ref_versions
162+ raise "unexpected so version requirements #{ actual_ref_versions . inspect } in #{ dll } "
163163 end
164164
165165 elsif cross_ruby . darwin?
0 commit comments