Symbol compression?, linking problems.

Shane Nay shane@minirl.com
Mon May 14 15:54:00 GMT 2001


I'm having some problems with getting some Java code to link to some native 
code libraries that I've written.  It seems that it's related to this bit of 
code in mangle.c :

  match = find_compression_record_match (type, &current);
  if (match >= 0)
    {
      /* If we had a pointer, and there's more, we need to emit
	 'N' after 'P' (for_pointer tells us we already emitted it.) */
      if (for_pointer && current)
	ADD_N();
      emit_compression_string (match);
    }

So.., what I noticed was everytime a "compression match" was found for a 
specific symbol that was related to a native function, things got ugly.  
Basically, "gcj" when mangling the symbol names to encode object type 
parameters mangled them differently than g++ when compiling my native 
code..., so they wouldn't link.  Is there something new in the ABI that 
allows for references to objects encoded in symbols to be compressed somehow? 
 And if so..., what does one need other than the newer gcc's to be able to 
use this? (Updated bintools?)  (Or am I reading this wrong, and compression 
match is a caching mechanism that went wrong in my specific case.., but it 
doesn't look like it digits[] doesn't have enough characters in it to express 
all the possibilities in a symbol caching system)

Thanks,
Shane Nay.



More information about the Java mailing list