RFR: JDK-8202920: jvm.cfg generation incorrect

David Holmes david.holmes at oracle.com
Thu May 10 22:52:36 UTC 2018


On 11/05/2018 8:41 AM, Erik Joelsson wrote:
> Here is a new webrev where the IGNORED are added last.
> 
> http://cr.openjdk.java.net/~erikj/8202920/webrev.02/
> 
> It will still change the default on windows-x86 however. If we really 
> care about this, then perhaps we need to add a configure flag that 
> allows the builder to pick the default variant.

For 32-bit, client was always the default. That should be easy enough to 
maintain.

Given these jvm.cfg files have been slated for removal for a very long 
time, I don't think you want to add new configure options related to 
them. Even this current work is rather a waste of everyone's time in the 
circumstance.

David

> /Erik
> 
> On 2018-05-10 15:32, Erik Joelsson wrote:
>> On 2018-05-10 15:12, David Holmes wrote:
>>> Hi Erik,
>>>
>>> cc'ing Kumar as he is nominally the owner of the jvm.cfg files.
>>>
>>> On 11/05/2018 3:38 AM, Erik Joelsson wrote:
>>>> I took a further look at the jvm.cfg generation and reworked it 
>>>> completely. This change removes all the predefined jvm.cfg files and 
>>>> replaces them with a simple generation script. This should produce 
>>>> the same files as before JDK-8202683 for any configuration Oracle 
>>>> builds officially and zero. For special jvm variant combinations, it 
>>>> will stay closer to the official ones. See bug comments for details.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8202920
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~erikj/8202920/webrev.01/
>>>
>>> I'm not sure of the details here. You no longer alias any flags for 
>>> VMs not present, but list them as "ignore". IIUC that means the 
>>> default VM will be selected - so as long as the default VM is the one 
>>> previously aliased to then it is equivalent. I also thought that the 
>>> first line in the file defined the default VM and so had to be a 
>>> known VM - with these changes a client-only build, for example, will 
>>> have a first entry of "-server ignore".
>>>
>> I wasn't sure about the ordering and default, but if the first one 
>> matters, then I need to rework this a bit. In particular the order is 
>> now reversed for windows x86 (if that is something we would want to 
>> preserve). Inserting the KNOWN should also be moved last as you point 
>> out.
>>> There is always some debate as to whether a non-present VM should be 
>>> ignored or cause an error. For the minimal VM builds we used to do 
>>> for SE Embedded it was chosen to ignore them and just use the Minimal 
>>> VM. This isn't necessarily what everyone would want.
>>>
>> For that part, this change is not changing behavior for any 
>> configuration that we really care about. (Note that you need to 
>> compare to the behavior previous to Shipilev's change which did indeed 
>> move things around.) All the static jvm.cfg files should be equivalent 
>> as none of them had ALIAS in them anymore (since your change way back 
>> in JDK 8). There will only be a difference if you explicitly build a 
>> non standard combination, like only client or only minimal. In those 
>> cases, the old generation logic would kick in and generate aliases. Do 
>> we want to keep aliases in those cases? Does it really matter?
>>
>> /Erik
>>> David
>>>
>>>> /Erik
>>>>
>>
> 



More information about the build-dev mailing list