From 4323e689d8df71be428f65059d5c2ab7f042e001 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 24 Aug 2021 13:12:06 +0900 Subject: [PATCH] Simplify libc and libm path logics (#91) * Simplify libc_so and libm_so If nil, no need to set to nil. * Get rid of repeating inversions --- test/fiddle/helper.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb index a6e20199..f7143f24 100644 --- a/test/fiddle/helper.rb +++ b/test/fiddle/helper.rb @@ -56,6 +56,8 @@ libc_so = libm_so = "#{crtname}.dll" when /darwin/ libc_so = libm_so = "/usr/lib/libSystem.B.dylib" + # macOS 11.0+ removed libSystem.B.dylib from /usr/lib. But It works with dlopen. + rigid_path = true when /kfreebsd/ libc_so = "/lib/libc.so.0.1" libm_so = "/lib/libm.so.1" @@ -131,12 +133,9 @@ end end -libc_so = nil if !libc_so || (libc_so[0] == ?/ && !File.file?(libc_so)) -libm_so = nil if !libm_so || (libm_so[0] == ?/ && !File.file?(libm_so)) - -# macOS 11.0+ removed libSystem.B.dylib from /usr/lib. But It works with dlopen. -if RUBY_PLATFORM =~ /darwin/ - libc_so = libm_so = "/usr/lib/libSystem.B.dylib" +unless rigid_path + libc_so = nil if libc_so && libc_so[0] == ?/ && !File.file?(libc_so) + libm_so = nil if libm_so && libm_so[0] == ?/ && !File.file?(libm_so) end if !libc_so || !libm_so