jruby::Handle declarations use 'extern "C"', causing linker symbol mismatches
-----------------------------------------------------------------------------
Key: JRUBY-6192
URL: https://jira.codehaus.org/browse/JRUBY-6192
Project: JRuby
Issue Type: Bug
Components: C Extensions
Affects Versions: JRuby 1.6.6, JRuby 1.7
Environment: OpenIndiana 151a (illumos), x86, gcc version 3.4.3
(csl-sol210-3_4-20050802).
Reporter: Albert Lee
Assignee: Thomas E Enebo
The contents of cext/src/Handle.h are wrapped in an 'extern "C"' block to
request C calling conventions, even though it only contains declarations (and
definitions) inside C++ namespaces, including class declarations, which should
only make sense with C++ name mangling.
The 'extern' declarations inside the jruby namespace are thus treated as
unmangled, un-scoped (C-style) symbols, and the method definitions also present
in the header produce undefined references to symbols like 'liveHandles and
'symbols' which conflict with their actual definitions other files using normal
C++ calling conventions.
The 'extern "C"' block should probably be removed from this header.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email