Question about os::getenv()

Jeremy Manson jeremymanson at google.com
Thu Mar 5 18:10:54 UTC 2015


Martin points out that getenv on Windows isn't portable (which is to say,
it doesn't work on WindowsRT).  Do we care?  If so, then I'll have
os::getenv do an allocation on Windows, and have it return a unique pointer
like thing.  (Of course, I have no way of testing that).

Jeremy

On Wed, Mar 4, 2015 at 5:12 PM, David Holmes <david.holmes at oracle.com>
wrote:

> On 5/03/2015 10:07 AM, Jeremy Manson wrote:
>
>> I'm happy to s/os::getenv/getenv/g if we know it works on Windows.  I
>> assumed that there was some safety / security reason for requiring the
>> copying - otherwise, why does this interface exist at all?
>>
>
> I don't know. Someone else (perhaps on hotspot list rather than
> serviceability) may, but I'd have to do a bit of archaeology to find out.
>
>  If everyone's happy about this, I'll go ahead and file a bug / send in a
>> patch, with the understanding that someone else has to test on non-Linux
>> platforms...
>>
>
> Sure. Do the patch and I'll run it through JPRT. If you need testing other
> than Solaris and Windows then others will need to step up. :)
>
> Cheers,
> David
>
>  Jeremy
>>
>> On Wed, Mar 4, 2015 at 3:45 PM, David Holmes <david.holmes at oracle.com
>> <mailto:david.holmes at oracle.com>> wrote:
>>
>>     Hi Jeremy,
>>
>>
>>     On 5/03/2015 6:14 AM, Jeremy Manson wrote:
>>
>>         Hey folks,
>>
>>         We had a request internally to make it so that JAVA_TOOL_OPTIONS
>>         could
>>         accept something longer than 1024 characters.  See:
>>
>>         Arguments::parse_options___environment_variable(const char* name,
>>         SysClassPath* scp_p, bool* scp_assembly_required_p)
>>
>>         in
>>
>>         http://hg.openjdk.java.net/__jdk9/jdk9/hotspot/file/__
>> 27f0413cbea3/src/share/vm/__runtime/arguments.cpp
>>         <http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/
>> 27f0413cbea3/src/share/vm/runtime/arguments.cpp>
>>
>>         Would you folks be amenable to a refactoring so that getenv
>>         returns a
>>         newly allocated array with the contents of the envvar, which the
>>         caller
>>         has to delete?
>>
>>
>>     I think this gets used too early in the VM startup to use the VM's
>>     allocation routines (ie with NMT support) - not 100% sure though.
>>
>>     But I think I have to agree with Martin and wonder why we have this
>>     copying interface around getenv, rather than using the result of
>>     getenv directly? Any code that really wants to modify the returned
>>     value can copy it for themselves. That would alleviate the hard
>>     wired limits.
>>
>>     getenv is available on Windows too.
>>
>>     David
>>
>>         Jeremy
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20150305/4a0eb7db/attachment-0001.html>


More information about the serviceability-dev mailing list