Issue #6127 has been reported by Donovan Lampa. ---------------------------------------- Bug #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127 Author: Donovan Lampa Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p125 (2012-02-16 revision 34643) 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-03-09 22:33
on 2012-03-11 09:51
Issue #6127 has been updated by Koichi Sasada. Assignee set to Yui NARUSE ---------------------------------------- Bug #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127 Author: Donovan Lampa Status: Open Priority: Normal Assignee: Yui NARUSE Category: Target version: ruby -v: ruby 1.9.3p125 (2012-02-16 revision 34643) 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-03-11 10:29
Issue #6127 has been updated by Yui NARUSE. This is fixed on trunk with commits 33711,33713,33714,33715,33716,33717,33718,33719,33720,33721,33724,33727,33728,33752,33753. But can't apply as is. Anyone can apply it? ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127 Author: Donovan Lampa Status: Open Priority: Normal Assignee: 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-03-16 16:17
Issue #6127 has been updated by Donovan Lampa. Any updates on this? Has it been applied or is there a scheduled date for application? ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127#change-24652 Author: Donovan Lampa Status: Open Priority: Normal Assignee: 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-04-14 20:03
Issue #6127 has been updated by naruse (Yui NARUSE). Status changed from Open to Feedback ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127#change-25907 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-06-01 16:41
Issue #6127 has been updated by dlampa (Donovan Lampa). Apologies for the hiatus also apologies if I've misunderstood the meaning of the Feedback status. 1.9.3-p194 doesn't seem to have addressed this: ruby-1.9.3-p194 :002 > a,b = IO.pipe => [#<IO:fd 5>, #<IO:fd 6>] ruby-1.9.3-p194 :003 > a.ioctl(0x80044270, "\x01") RangeError: bignum too big to convert into `long' from (irb):3:in `ioctl' from (irb):3 from /Users/dlampa/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>' ruby-1.9.3-p194 :003 > 0x80044270.class => Bignum ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127#change-26955 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-06-02 09:08
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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-10-03 11:21
Issue #6127 has been updated by fahmisetiawand (Fahmi Setiawan). http://alkian.blogspot.com/2012/09/cara-menyembuhk... http://alkian.blogspot.com/2012/09/keretamini-kere... http://alkian.blogspot.com/2012/10/kata-kata-mutia... http://alkian.blogspot.com/2012/08/personil-coboy-... http://alkian.blogspot.com/2012/10/hasil-dan-klase... ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127#change-29967 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-10-10 16:20
Issue #6127 has been updated by dlampa (Donovan Lampa). File ruby-io-c.patch added For those that are interested, I've taken the liberty of putting a patch together for this issue (attached). The patch is confirmed to work and address the issue as it exists in 1.9.3-p194. Thanks to Naruse for providing all the relevant commits for this issue. ---------------------------------------- Backport #6127: IO#ioctl range error in 1.9.3 https://bugs.ruby-lang.org/issues/6127#change-30170 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 => [#<IO:fd 5>, #<IO:fd 6>] 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 `<main>' 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 => [#<IO:0x202fefc>, #<IO:0x202fec4>] 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 `<main>' 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.
on 2012-10-12 03:16
Issue #6127 has been updated by h.shirosaki (Hiroshi Shirosaki).
I have a build error of ruby_1_9_3 branch at r37146 with mingw.
It seems due to r37138.
compiling ../io.c
../io.c: In function 'rb_cloexec_fcntl_dupfd':
../io.c:213:21: error: 'F_DUPFD' undeclared (first use in this function)
../io.c:213:21: note: each undeclared identifier is reported only once
for each function it appears in
../io.c: In function 'rb_io_each_byte':
../io.c:3081:15: warning: variable 'e' set but not used
[-Wunused-but-set-variable]
../io.c: In function 'rb_io_advise':
../io.c:7892:16: warning: variable 'l' set but not used
[-Wunused-but-set-variable]
../io.c:7892:11: warning: variable 'off' set but not used
[-Wunused-but-set-variable]
../io.c: At top level:
../io.c:1575:14: warning: 'nogvl_fsync' defined but not used
[-Wunused-function]
make: *** [io.o] Error 1
Here is a patch.
Index: io.c
===================================================================
--- io.c (revision 37146)
+++ io.c (working copy)
@@ -209,8 +209,10 @@
else {
ret = fcntl(fd, F_DUPFD, minfd);
}
+#elif defined(F_DUPFD)
+ ret = fcntl(fd, F_DUPFD, minfd);
#else
- ret = fcntl(fd, F_DUPFD, minfd);
+ ret = -1;
#endif
if (ret == -1) return -1;
rb_maygvl_fd_fix_cloexec(ret);
----------------------------------------
Backport #6127: IO#ioctl range error in 1.9.3
https://bugs.ruby-lang.org/issues/6127#change-30360
Author: dlampa (Donovan Lampa)
Status: Closed
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
=> [#<IO:fd 5>, #<IO:fd 6>]
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 `<main>'
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
=> [#<IO:0x202fefc>, #<IO:0x202fec4>]
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 `<main>'
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.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.