Forum: Ruby-core [ruby-trunk - Bug #6127][Open] IO#ioctl range error in 1.9.3

Posted by Donovan Lampa (bubbadean123)
on 2012-03-09 22:33
(Received via mailing list)
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.
Posted by Koichi Sasada (Guest)
on 2012-03-11 09:51
(Received via mailing list)
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.
Posted by Yui NARUSE (Guest)
on 2012-03-11 10:29
(Received via mailing list)
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.
Posted by Donovan Lampa (bubbadean123)
on 2012-03-16 16:17
(Received via mailing list)
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.
Posted by naruse (Yui NARUSE) (Guest)
on 2012-04-14 20:03
(Received via mailing list)
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.
Posted by Donovan Lampa (bubbadean123)
on 2012-06-01 16:41
(Received via mailing list)
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.
Posted by naruse (Yui NARUSE) (Guest)
on 2012-06-02 09:08
(Received via mailing list)
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.
Posted by fahmisetiawand (Fahmi Setiawan) (Guest)
on 2012-10-03 11:21
(Received via mailing list)
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.
Posted by Donovan Lampa (bubbadean123)
on 2012-10-10 16:20
(Received via mailing list)
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.
Posted by h.shirosaki (Hiroshi Shirosaki) (Guest)
on 2012-10-12 03:16
(Received via mailing list)
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
No account? Register here.