From: "naruse (Yui NARUSE)" Date: 2012-06-02T16:08:14+09:00 Subject: [ruby-core:45379] [Backport93 - Backport #6127] IO#ioctl range error in 1.9.3 Issue #6127 has been updated by naruse (Yui NARUSE). dlampa (Donovan Lampa) wrote: > Apologies for the hiatus also apologies if I've misunderstood the meaning of the Feedback status. In general, "Feedback" means that an action of other than assignee is required. In this ticket, I need a patch for backport which covers r33711, r33713-r33721, r33724, r33727, r33728, r33752, and r33753. ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127#change-26970 Author: dlampa (Donovan Lampa) Status: Feedback Priority: Normal Assignee: naruse (Yui NARUSE) Category: Target version: In 32-bit implementations of 1.9.3 passing an (apparently) unsigned value (BIOCIMMEDIATE = 0x80044270) to ioctl throws range error: ruby-1.9.3-p125 :001 > a,b = IO.pipe => [#, #] ruby-1.9.3-p125 :002 > a.ioctl(0x80044270, "\x01") RangeError: bignum too big to convert into `long' from (irb):2:in `ioctl' from (irb):2 from /Users/dlampa/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `
' ruby-1.9.3-p125 :001 > 0x80044270.class => Bignum When in 32-bit 1.9.1 and 1.9.2 it does not: ruby-1.9.1-p243 :001 > a,b = IO.pipe => [#, #] ruby-1.9.1-p243 :002 > a.ioctl(0x80044270, "\x01") Errno::ENOTTY: Inappropriate ioctl for device from (irb):2:in `ioctl' from (irb):2 from /Users/dlampa/.rvm/rubies/ruby-1.9.1-p243/bin/irb:16:in `
' ruby-1.9.1-p243 :001 > 0x80044270.class => Bignum OS is [x86_64-darwin10.8.0] however ruby was compiled as 32-bit through rvm using: rvm_archflags="-arch i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" rvm install [ruby-version] --patch osx-arch-fix The patch is installed in ~/.rvm/patches/ruby/1.9.3/ and is as follows: --- a/Makefile.in 2010-11-11 15:54:26.000000000 -0600 +++ b/Makefile.in 2010-11-11 15:55:24.000000000 -0600 @@ -55,7 +55,7 @@ XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS) EXTLIBS = LIBS = @LIBS@ $(EXTLIBS) MISSING = @LIBOBJS@ @ALLOCA@ -LDSHARED = @LIBRUBY_LDSHARED@ +LDSHARED = @LIBRUBY_LDSHARED@ $(LDFLAGS) DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) @ARCH_FLAG@ SOLIBS = @SOLIBS@ MAINLIBS = @MAINLIBS@ this issue appears to be related (http://bugs.ruby-lang.org/issues/5429), but I don't speak Japanese. -- http://bugs.ruby-lang.org/