From: Nobuyoshi Nakada Date: 2011-08-18T15:37:09+09:00 Subject: [ruby-core:39014] Re: [Ruby 1.9 - Bug #5193] ruby_thread_data_type linker errors fixed with RUBY_EXTERN Hi, At Wed, 17 Aug 2011 14:48:59 +0900, Charlie Savage wrote in [ruby-core:39003]: > rb_thread_t is *not* public. ruby-debug-base includes > vm_core.h directly to get access to rb_thread_t. So I would > guess the developers are well aware that it could change at > any time. But given the alternative of no debugger at all, > that seems like a good risk (note that ruby-debug is the ruby > debugger for RubyMine, Netbeans, Eclipse/Aptana and probably > any other IDE that is used for Ruby). Then if ruby-debug can work, do those work all? But ruby-debug code seems quite outdated; the check for rb_method_entry_t in extconf.rb doesn't work since 2 years ago. > So back to the original request. ruby_thread_data_type is > already marked as extern and is already publicly exported via > the *.def file generated when compiling ruby from source. > But even with this, it doesn't work on VC++ unless the extern > is changed to RUBY_EXTERN (because RUBY_EXTERN becomes > __declpec(dllimport) when used by a client). It was accidentally left exported on only mswin version. Cygwin and mingw versions don't export it, and fixed now. -- Nobu Nakada