Issue #5193 has been updated by Usaku NAKAMURA.
Status changed from Open to Assigned
Assignee set to Nobuyoshi Nakada
nobu changed the name of this variable at r30783, and I guess that
he has intended to make this variable public.
nobu, is this correct?
and do you have any opinion about this request?
----------------------------------------
Bug #5193: ruby_thread_data_type linker errors fixed with RUBY_EXTERN
http://redmine.ruby-lang.org/issues/5193
Author: Charlie Savage
Status: Assigned
Priority: Normal
Assignee: Nobuyoshi Nakada
Category: core
Target version: 1.9.3
ruby -v: ruby 1.9.3dev (2011-08-10 revision 32904) [i386-mswin32_100]
ruby-debug-base19x fails to compile with VC++ 2010 with this error:
ruby_debug.obj : error LNK2001: unresolved external symbol _ruby_thread_data_type
ruby_thread_data_type is declared in vm_core.h as:
extern const rb_data_type_t ruby_thread_data_type;
ruby-debug calls GetThreadPtr which is defined as:
#define GetThreadPtr(obj, ptr) \
TypedData_Get_Struct((obj), rb_thread_t, &ruby_thread_data_type, (ptr))
What makes this interesting is that ruby_thread_data_type is properly included in the msvcr100-ruby191.def file and is exported from msvcr100-ruby191.dll. Somehow the &ruby_thread_data_type causes problems for VC++ (mingw works correctly).
Some Ubuntu users seem to be having a similar issue. See:
http://rubyforge.org/tracker/index.php?func=detail&aid=29222&group_id=8883&atid=34290
The problem is resolved for VC++ by changing the definition to:
RUBY_EXTERN const rb_data_type_t ruby_thread_data_type;
Any chance this change could be made?
Thanks - Charlie
--
http://redmine.ruby-lang.org