Project

General

Profile

Actions

Bug #12284

closed

io-console gem >= 0.4.3 breaks on Windows ruby < 2.2.0 due to needing rb_sym2str

Added by hobart (Jon Bailey) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.1.8p440 (2015-12-16 revision 53160) [x64-mingw32]
[ruby-core:74953]

Description

Ruby 2.1.x users (on Windows) who do "gem update" and try to build io-console 0.4.3 or later fail at link-time.

rb_sym2str was first used in console.c in r50427

rb_sym2str was implemented in ruby 2.20

Excerpt of build failure:
current directory: C:/rubytest/ruby-2.1.8-x64-mingw32/lib/ruby/gems/2.1.0/gems/io-console-0.4.5
make "DESTDIR="
generating console-x64-mingw32.def
compiling console.c
console.c: In function 'console_key_pressed_p':
console.c:722:6: warning: implicit declaration of function 'rb_sym2str' [-Wimplicit-function-declaration]
linking shared-object io/console.so
console.o: In function
console_key_pressed_p':
C:\rubytest\ruby-2.1.8-x64-mingw32\lib\ruby\gems\2.1.0\gems\io-console-0.4.5/console.c:722: undefined reference to
rb_sym2str'
collect2.exe: error: ld returned 1 exit status
make: *** [console.so] Error 1


Files

ruby-issue-12284-proposed.patch (526 Bytes) ruby-issue-12284-proposed.patch Change required_ruby_version to 2.2.0 in io-console.gemspec hobart (Jon Bailey), 04/14/2016 09:20 PM
io-console-0.4.6.gem (21 KB) io-console-0.4.6.gem nobu (Nobuyoshi Nakada), 04/15/2016 07:07 AM
Actions #2

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

  • Status changed from Open to Closed

Applied in changeset r54587.


io/console: rb_sym2str

  • ext/io/console/console.c (rb_sym2str): fallback definition for older ruby. [ruby-core:74953] [Bug #12284]

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

I can't push the new gem to rubygems.org.
Could you try the attached file?

Updated by hobart (Jon Bailey) over 5 years ago

The new gem appears to have installed without problems, thank you! Will rubygems pick it up when the version number is next bumped?

PS C:\test-gem> gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.5
  - RUBY VERSION: 2.1.8 (2015-12-16 patchlevel 440) [x64-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby21-x64/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: C:/Ruby21-x64/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby21-x64/bin
  - SPEC CACHE DIRECTORY: C:/Users/passp/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x64-mingw32
  - GEM PATHS:
     - C:/Ruby21-x64/lib/ruby/gems/2.1.0
     - C:/Users/passp/.gem/ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - C:\DevKit-mingw64-64-4.7.2-20130224-1432\bin
     - C:\DevKit-mingw64-64-4.7.2-20130224-1432\mingw\bin
     - C:\Ruby21-x64\bin
     - C:\WINDOWS\system32
     - C:\WINDOWS
     - C:\WINDOWS\System32\Wbem
     - C:\WINDOWS\System32\WindowsPowerShell\v1.0\
     - C:\Program Files\SysinternalsSuite
PS C:\test-gem> gem install --local --verbose io-console
C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/io-console-0.4.6/console.c
C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/io-console-0.4.6/depend
C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/io-console-0.4.6/extconf.rb
C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/io-console-0.4.6/lib/console/size.rb
C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/io-console-0.4.6/win32_vk.inc
Building native extensions.  This could take a while...
C:/Ruby21-x64/bin/ruby.exe extconf.rb
checking for rb_funcallv()... yes
checking for rb_sym2str()... no
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
generating console-x64-mingw32.def
compiling console.c
linking shared-object io/console.so
make "DESTDIR=" install
/usr/bin/install -c -m 0755 console.so ./.gem.20160419-3528-1r28flb/io
installing default console libraries

Successfully installed io-console-0.4.6
Parsing documentation for io-console-0.4.6
Parsing sources...
100% [ 8/ 8]  lib/io/console/size.rb
Installing ri documentation for io-console-0.4.6
Done installing documentation for io-console after 0 seconds
1 gem installed
PS C:\test-gem>

Updated by hsbt (Hiroshi SHIBATA) over 5 years ago

Note:

rubygems prevents to ship to default gem now.

see. https://github.com/rubygems/rubygems.org/pull/1221

Actions

Also available in: Atom PDF