RFR: JDK-8180202: -XXaltjvm is not working anymore on MacOSX
Kumar Srinivasan
kumar.x.srinivasan at oracle.com
Mon May 15 14:21:36 UTC 2017
Hi David,
>>
>> Please review simple fix for JDK-8180202, recall we hard coded "server",
>> this is incorrect because the function CheckJvmType will determin
>> the correct jvmtype based on jvm.cfg *or* path/jvmtype specified by
>> -XXaltjvm. IMO all this needs to be cleaned up when jvm.cfg is removed.
>
> So this original change was wrong:
>
> ! const char *jvmtypeUsed = ((bitsWanted == 64) &&
> (strcmp(jvmtype, "client") == 0)) ? "server" : jvmtype;
> ! const char *jvmtypeUsed = "server";
>
> because jvmType might still be something other than "server"? Not sure
> how but okay.
>
> However I don't see the connection to -XXaltjvm as that should be
> setting a full path itself and not relying on jvmType within the
> well-known path ??
Ah, please see
http://hg.openjdk.java.net/jdk10/jdk10/jdk/file/51214dadd48f/src/java.base/macosx/native/libjli/java_md_macosx.c#l420
What is happening is if XXaltjvm contains a slash then it treats it as a
path,
ex: -XXaltjvm /tmp/myvm
if not then jvmtype, and uses it choose the VM variant, the latter seems to
be an override for jvm.cfg, ex: -XXaltjvm minimal
Not sure of the historical background, all this needs some cleanup, and
removing jvm.cfg will help clean some of this mess up.
Hope that clarifies.
Kumar
>
>> Thanks
>> Kumar
>>
>> PS: please also approve the removal of the test from the internal
>> ProblemList.txt
>
> Ok.
>
> Thanks,
> David
>
>> diff in the JBS issue.
>>
>> diff --git a/src/java.base/macosx/native/libjli/java_md_macosx.c
>> b/src/java.base/macosx/native/libjli/java_md_macosx.c
>> --- a/src/java.base/macosx/native/libjli/java_md_macosx.c
>> +++ b/src/java.base/macosx/native/libjli/java_md_macosx.c
>> @@ -424,7 +424,7 @@
>> * macosx client library is built thin, i386 only.
>> * 64 bit client requests must load server library
>> */
>> - JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/server/" JVM_DLL,
>> jrepath);
>> + JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL,
>> jrepath, jvmtype);
>> }
>>
>> JLI_TraceLauncher("Does `%s' exist ... ", jvmpath);
>>
>>
>>
>>
>>
>>
More information about the core-libs-dev
mailing list