Symbols in libjvm.so

S. Bharadwaj Yadavalli bharadwaj.yadavalli at oracle.com
Fri Sep 5 20:14:52 UTC 2014


Looking at the command that links Hotspot object files to generate 
libjvm.so, it appears to use a generated version script called 
mapfile_reorder to restrict the symbols that can be global.

However, despite the list containing several C++ mangled symbols, these 
symbols are not generated as global symbols in the resulting libjvm.so. 
Can some one please tell me why the symbols listed in mapfile_reorder as 
global do not show up as global symbols in libjvm.so?

I tried a sample version script to link a test object file and it 
appears that the linker does honor the symbol visibility specification 
in the version script. So, it appears not to be a linker/script issue. 
Is there some other place in the build procedure that scuttles the 
marking of symbols listed as global in mapfile_reorder? I notice that 
(most of) the global symbols in libjvm.so (did not check each one) are 
those that are marked JNIEXPORT. If that is the case, what is the 
purpose of creating vm.def and the version script mapfile_reorder?

Thanks,

Bharadwaj

P.S: Please let me know if this is not the appropriate ML for the 
question and point me to the right one. Thx.



More information about the build-dev mailing list