diff options
author | Paul Jordan <paullj1@gmail.com> | 2020-04-01 02:18:23 +0100 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2020-04-01 15:49:02 +1300 |
commit | 3e386d76c2d2f4a38ddf7101344178bff84c824f (patch) | |
tree | d5c696490401978a6ca642604897dbfd00bda512 /test/fiddle | |
parent | 0091fac1d8de07e86fef8315ba77609bed9dd7f5 (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.rb | 19 |
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' |