Should we get rid of libnpt.so ?
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Mon Apr 7 07:12:15 UTC 2014
On 4/6/14 11:13 PM, Staffan Larsen wrote:
> Curious: What does NPT stand for?
This is from Kelly:
> The original purpose of this library was to provide some generic*native platform tools*
> for dealing with things that will happen BEFORE the JVM is started and Java code can be called.
Thanks,
Serguei
>
> On 4 apr 2014, at 18:52, Kelly O'Hair <kellyohair at gmail.com> wrote:
>
>> Just as background information...
>>
>> The serviceability team should do what they think is right here, I'll just provide some history... ;)
>>
>> The original purpose of this library was to provide some generic native platform tools for dealing with things that will happen BEFORE the JVM is started and Java code can be called.
>>
>> This was necessary for JVM agents (hprof, debugger backend, jvmti demo agents) and any native code that was executed before the JVM had gotten off the ground.
>> Doing arbitrary character encoding conversions to/from the various flavors of UTF-8 is a nightmare outside Java.
>> And since the characters typed in on a java commandline is in the OS's default platform encoding, and not in UTF-8, they need to be converted.
>> Since this native code was not part of hotspot, and was written in C, using the hotspot functionality for this was not possible at the time.
>>
>> This logic was isolated because it was so OS specific and ugly, and we (maybe just me) had visions of needed more in this library, and that maybe we could limit the ifdef-mania to this library rather than scatter the same ifdef-mania all over the rest of the JDK native code that lives outside hotspot.
>> So it seemed natural to isolate it as a separate little library that could be unit tested on it's own.
>>
>> It's extremely likely that it could be trimmed down, and as more and more OS default encodings become UTF-8, maybe it' will eventually become obsolete.
>>
>> Hope this helps.
>>
>> -kto
>>
>> On Apr 4, 2014, at 9:28 AM, Dmitry Samersoff wrote:
>>
>>> Hi Everybody,
>>>
>>> We have an libnpt.so[1] in JDK. This library contains bunch of UTF
>>> related functions. On a brief investigation it looks like most of these
>>> functions are not used. Six functions below called one time each from
>>> share/back/* and hprof_init.c [2]
>>>
>>> Should I file a CR to have it cleaned up - remove npt library as a
>>> separate entity and move few utf functions that really used to place
>>> where it actually called.
>>>
>>>
>>> [1] Library sources location
>>>
>>> src/share/npt
>>> src/solaris/npt
>>> src/windows/npt
>>>
>>> [2] Library usage
>>>
>>> src/share/back/transport.c:
>>>
>>> utf8FromPlatform
>>> utf8ToPlatform
>>>
>>> src/share/back/inStream.c:
>>>
>>> utf8sToUtf8m
>>> utf8sToUtf8mLength
>>>
>>> src/share/back/outStream.c:
>>>
>>> utf8mToUtf8s
>>> utf8mToUtf8sLength
>>>
>>>
>>> src/share/demo/jvmti/hprof/hprof_init.c
>>>
>>> utf8ToPlatform
>>>
>>>
>>> -Dmitry
>>>
>>> --
>>> Dmitry Samersoff
>>> Oracle Java development team, Saint Petersburg, Russia
>>> * I would love to change the world, but they won't give me the sources.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20140407/0011a3c9/attachment-0001.html>
More information about the serviceability-dev
mailing list