You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.0 KiB
136 lines
4.0 KiB
From 346e147ba6480839b87046e9a9efab0bf6ed3660 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com> |
|
Date: Wed, 10 Aug 2016 17:35:48 +0200 |
|
Subject: [PATCH] Rely on ldd to detect glibc. |
|
|
|
This is just workaround, since we know we are quite sure this will be successful |
|
on Red Hat platforms. |
|
|
|
This workaround rhbz#1361037 |
|
--- |
|
test/fiddle/helper.rb | 111 ------------------------------------------ |
|
1 file changed, 111 deletions(-) |
|
|
|
diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb |
|
index 1da3d93..65148a1 100644 |
|
--- a/test/fiddle/helper.rb |
|
+++ b/test/fiddle/helper.rb |
|
@@ -6,115 +6,6 @@ |
|
|
|
libc_so = libm_so = nil |
|
|
|
-case RUBY_PLATFORM |
|
-when /cygwin/ |
|
- libc_so = "cygwin1.dll" |
|
- libm_so = "cygwin1.dll" |
|
-when /android/ |
|
- libdir = '/system/lib' |
|
- if [0].pack('L!').size == 8 |
|
- libdir = '/system/lib64' |
|
- end |
|
- libc_so = File.join(libdir, "libc.so") |
|
- libm_so = File.join(libdir, "libm.so") |
|
-when /linux/ |
|
- libdir = '/lib' |
|
- case RbConfig::SIZEOF['void*'] |
|
- when 4 |
|
- # 32-bit ruby |
|
- case RUBY_PLATFORM |
|
- when /armv\w+-linux/ |
|
- # In the ARM 32-bit libc package such as libc6:armhf libc6:armel, |
|
- # 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]) |
|
- else |
|
- libdir = '/lib32' if File.directory? '/lib32' |
|
- end |
|
- when 8 |
|
- # 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") |
|
-when /mingw/, /mswin/ |
|
- require "rbconfig" |
|
- crtname = RbConfig::CONFIG["RUBY_SO_NAME"][/msvc\w+/] || 'ucrtbase' |
|
- libc_so = libm_so = "#{crtname}.dll" |
|
-when /darwin/ |
|
- libc_so = libm_so = "/usr/lib/libSystem.B.dylib" |
|
-when /kfreebsd/ |
|
- libc_so = "/lib/libc.so.0.1" |
|
- libm_so = "/lib/libm.so.1" |
|
-when /gnu/ #GNU/Hurd |
|
- libc_so = "/lib/libc.so.0.3" |
|
- libm_so = "/lib/libm.so.6" |
|
-when /mirbsd/ |
|
- libc_so = "/usr/lib/libc.so.41.10" |
|
- libm_so = "/usr/lib/libm.so.7.0" |
|
-when /freebsd/ |
|
- libc_so = "/lib/libc.so.7" |
|
- libm_so = "/lib/libm.so.5" |
|
-when /bsd|dragonfly/ |
|
- libc_so = "/usr/lib/libc.so" |
|
- libm_so = "/usr/lib/libm.so" |
|
-when /solaris/ |
|
- libdir = '/lib' |
|
- case RbConfig::SIZEOF['void*'] |
|
- when 4 |
|
- # 32-bit ruby |
|
- libdir = '/lib' if File.directory? '/lib' |
|
- when 8 |
|
- # 64-bit ruby |
|
- libdir = '/lib/64' if File.directory? '/lib/64' |
|
- end |
|
- libc_so = File.join(libdir, "libc.so") |
|
- libm_so = File.join(libdir, "libm.so") |
|
-when /aix/ |
|
- pwd=Dir.pwd |
|
- libc_so = libm_so = "#{pwd}/libaixdltest.so" |
|
- unless File.exist? libc_so |
|
- cobjs=%w!strcpy.o! |
|
- mobjs=%w!floats.o sin.o! |
|
- funcs=%w!sin sinf strcpy strncpy! |
|
- expfile='dltest.exp' |
|
- require 'tmpdir' |
|
- Dir.mktmpdir do |dir| |
|
- begin |
|
- Dir.chdir dir |
|
- %x!/usr/bin/ar x /usr/lib/libc.a #{cobjs.join(' ')}! |
|
- %x!/usr/bin/ar x /usr/lib/libm.a #{mobjs.join(' ')}! |
|
- %x!echo "#{funcs.join("\n")}\n" > #{expfile}! |
|
- require 'rbconfig' |
|
- if RbConfig::CONFIG["GCC"] = 'yes' |
|
- lflag='-Wl,' |
|
- else |
|
- lflag='' |
|
- end |
|
- flags="#{lflag}-bE:#{expfile} #{lflag}-bnoentry -lm" |
|
- %x!#{RbConfig::CONFIG["LDSHARED"]} -o #{libc_so} #{(cobjs+mobjs).join(' ')} #{flags}! |
|
- ensure |
|
- Dir.chdir pwd |
|
- end |
|
- end |
|
- end |
|
-else |
|
- libc_so = ARGV[0] if ARGV[0] && ARGV[0][0] == ?/ |
|
- libm_so = ARGV[1] if ARGV[1] && ARGV[1][0] == ?/ |
|
- if( !(libc_so && libm_so) ) |
|
- $stderr.puts("libc and libm not found: #{$0} <libc> <libm>") |
|
- 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" |
|
-end |
|
- |
|
if !libc_so || !libm_so |
|
ruby = EnvUtil.rubybin |
|
# When the ruby binary is 32-bit and the host is 64-bit, |
|
-- |
|
2.9.2 |
|
|
|
|