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


Reply via email to