summaryrefslogtreecommitdiff
path: root/test/fiddle
diff options
context:
space:
mode:
authorPaul Jordan <paullj1@gmail.com>2020-04-01 02:18:23 +0100
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2020-04-01 15:49:02 +1300
commit3e386d76c2d2f4a38ddf7101344178bff84c824f (patch)
treed5c696490401978a6ca642604897dbfd00bda512 /test/fiddle
parent0091fac1d8de07e86fef8315ba77609bed9dd7f5 (diff)
Fix helper to not assume glibc
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2995
Diffstat (limited to 'test/fiddle')
-rw-r--r--test/fiddle/helper.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb
index 348131e448..f5c7bd2ca6 100644
--- a/test/fiddle/helper.rb
+++ b/test/fiddle/helper.rb
@@ -32,7 +32,11 @@ when /linux/
# libc.so and libm.so are installed to /lib/arm-linux-gnu*.
# It's not installed to /lib32.
dirs = Dir.glob('/lib/arm-linux-gnu*')
- libdir = dirs[0] if dirs && File.directory?(dirs[0])
+ if dirs.length > 0
+ libdir = dirs[0] if dirs && File.directory?(dirs[0])
+ else # handle alpine environment
+ libdir = '/lib' if File.directory? '/lib'
+ end
else
libdir = '/lib32' if File.directory? '/lib32'
end
@@ -40,8 +44,17 @@ when /linux/
# 64-bit ruby
libdir = '/lib64' if File.directory? '/lib64'
end
- libc_so = File.join(libdir, "libc.so.6")
- libm_so = File.join(libdir, "libm.so.6")
+
+ # Handle musl libc
+ libc = Dir.glob(File.join(libdir, "libc.musl*.so*"))
+ if libc && libc.length > 0
+ libc_so = libc[0]
+ libm_so = libc[0]
+ else
+ # glibc
+ libc_so = File.join(libdir, "libc.so.6")
+ libm_so = File.join(libdir, "libm.so.6")
+ end
when /mingw/, /mswin/
require "rbconfig"
crtname = RbConfig::CONFIG["RUBY_SO_NAME"][/msvc\w+/] || 'ucrtbase'