Workaround "an invalid stdio handle" error on PPC (rhbz#1361037).
This commit is contained in:
		
							parent
							
								
									b1466a4c8f
								
							
						
					
					
						commit
						7684b6800d
					
				
							
								
								
									
										119
									
								
								ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | |||||||
|  | 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 | 92 --------------------------------------------------- | ||||||
|  |  1 file changed, 92 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,98 +6,6 @@
 | ||||||
|  |   | ||||||
|  |  libc_so = libm_so = nil | ||||||
|  |   | ||||||
|  | -case RUBY_PLATFORM
 | ||||||
|  | -when /cygwin/
 | ||||||
|  | -  libc_so = "cygwin1.dll"
 | ||||||
|  | -  libm_so = "cygwin1.dll"
 | ||||||
|  | -when /x86_64-linux/
 | ||||||
|  | -  libc_so = "/lib64/libc.so.6"
 | ||||||
|  | -  libm_so = "/lib64/libm.so.6"
 | ||||||
|  | -when /linux/
 | ||||||
|  | -  libdir = '/lib'
 | ||||||
|  | -  case [0].pack('L!').size
 | ||||||
|  | -  when 4
 | ||||||
|  | -    # 32-bit ruby
 | ||||||
|  | -    libdir = '/lib32' if File.directory? '/lib32'
 | ||||||
|  | -  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 = "/usr/lib/libc.dylib"
 | ||||||
|  | -  libm_so = "/usr/lib/libm.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 [0].pack('L!').size
 | ||||||
|  | -  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))
 | ||||||
|  | -
 | ||||||
|  |  if !libc_so || !libm_so | ||||||
|  |    ruby = EnvUtil.rubybin | ||||||
|  |    ldd = `ldd #{ruby}` | ||||||
|  | -- 
 | ||||||
|  | 2.9.2 | ||||||
|  | 
 | ||||||
							
								
								
									
										10
									
								
								ruby.spec
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ruby.spec
									
									
									
									
									
								
							| @ -21,7 +21,7 @@ | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %global release 57 | %global release 58 | ||||||
| %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} | %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} | ||||||
| 
 | 
 | ||||||
| # The RubyGems library has to stay out of Ruby directory three, since the | # The RubyGems library has to stay out of Ruby directory three, since the | ||||||
| @ -125,6 +125,10 @@ Patch7: ruby-2.2.3-Generate-preludes-using-miniruby.patch | |||||||
| # Prevent test failures on ARM. | # Prevent test failures on ARM. | ||||||
| # https://bugs.ruby-lang.org/issues/12331 | # https://bugs.ruby-lang.org/issues/12331 | ||||||
| Patch8: ruby-2.4.0-increase-timeout-for-ARMv7.patch | Patch8: ruby-2.4.0-increase-timeout-for-ARMv7.patch | ||||||
|  | # Workaround "an invalid stdio handle" error on PPC, due to recently introduced | ||||||
|  | # hardening features of glibc (rhbz#1361037). | ||||||
|  | # https://bugs.ruby-lang.org/issues/12666 | ||||||
|  | Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch | ||||||
| 
 | 
 | ||||||
| Requires: %{name}-libs%{?_isa} = %{version}-%{release} | Requires: %{name}-libs%{?_isa} = %{version}-%{release} | ||||||
| Suggests: rubypick | Suggests: rubypick | ||||||
| @ -473,6 +477,7 @@ rm -rf ext/fiddle/libffi* | |||||||
| %patch6 -p1 | %patch6 -p1 | ||||||
| %patch7 -p1 | %patch7 -p1 | ||||||
| %patch8 -p1 | %patch8 -p1 | ||||||
|  | %patch9 -p1 | ||||||
| 
 | 
 | ||||||
| # Provide an example of usage of the tapset: | # Provide an example of usage of the tapset: | ||||||
| cp -a %{SOURCE3} . | cp -a %{SOURCE3} . | ||||||
| @ -958,6 +963,9 @@ make check TESTS="-v $DISABLE_TESTS" | |||||||
| %{ruby_libdir}/tkextlib | %{ruby_libdir}/tkextlib | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Wed Aug 10 2016 Vít Ondruch <vondruch@redhat.com> - 2.3.1-58 | ||||||
|  | - Workaround "an invalid stdio handle" error on PPC (rhbz#1361037). | ||||||
|  | 
 | ||||||
| * Tue Jul 12 2016 Vít Ondruch <vondruch@redhat.com> - 2.3.1-57 | * Tue Jul 12 2016 Vít Ondruch <vondruch@redhat.com> - 2.3.1-57 | ||||||
| - Make symlinks for json gem. | - Make symlinks for json gem. | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user