RFR: JDK-8210962 Deprecate jdk-variant

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Thu Sep 20 18:42:44 UTC 2018



On 2018-09-20 19:47, Erik Joelsson wrote:
> On 2018-09-20 10:24, Magnus Ihse Bursie wrote:
>>
>>
>> On 2018-09-20 18:59, Aleksey Shipilev wrote:
>>> On 09/20/2018 06:48 PM, Magnus Ihse Bursie wrote:
>>>> A long time ago, we supported different "variants" of the JDK 
>>>> build, like "normal" and "embedded".
>>>> The --with-jdk-variant and associated machinery has been kept in 
>>>> place, even though it's not doing
>>>> anyting. Time to remove it.
>>>>
>>>> I chose to keep the "-normal-" in the build output name so as not 
>>>> to break any scripts. But I'm
>>>> willing to change this if someone has a clear opinion otherwise.
>>> This breakage would happen at some point anyway, unless we accept 
>>> that "-normal-" would linger
>>> forever. It is probably for the best to break it when we purge the 
>>> configure option.
> I concur with Alexsey and say we remove it with the option. For me, 
> removing this is the biggest improvement. :)

Ok, I hear you. :-)

Here is an updated webrev, where I remove the "-normal-" part of the 
build output name.

http://cr.openjdk.java.net/~ihse/JDK-8210962-deprecate-jdk-variant/webrev.02

Let's discuss any further changes to the build output name separately. 
I'll see if I can whip up some prototype and then we can prod it around 
a bit until we are all satisfied.

/Magnus


>> I'm actually not very fond of the build output name format, and have 
>> considered changing it drastically for some time. Maybe this should 
>> be the time.
>>
>> Currently the default format looks like this: 
>> "linux-x86_64-normal-server-release", that is 
>> <OS>-<CPU>-<JDK_VARIANT>-<JVM_VARIANT>-<DEBUG_LEVEL>. The selection 
>> of these configuration parameters feels a bit arbitrary. Some 
>> examples of other parameters we could have included, but don't, are:  
>> abi-profile, jvm-features, version-string, static-build, headless-only.
>>
>> The relevance of including any of these parameters in the build 
>> output name depends on some thought-up scenario were the alternative 
>> configurations that reasonably could be built at the same time. For 
>> instance, in a cross-compilation scenario, os and cpu makes sense to 
>> include, but perhaps not otherwise. The jvm-variant is more or less 
>> reduced to server or zero at this time, and it's unclear if this 
>> needs to be part of the build output directory name.
>>
>> When building with the Oracle jib tool, we get profiles named like 
>> "linux-x64" or "linux-x64-debug". To me, this is not such a mouthful 
>> as the default configure name.
>>
>> Or perhaps we should have names that are more dynamic? Just like the 
>> debug-level is either empty (for release) or "-debug" in the jib 
>> name, maybe we should skip elements if they have a default value? So 
>> linux-x86_64-zero would mean the JVM variant zero, but linux-x86_64 
>> mean the JVM variant server (default)? And 
>> linux-x86_64-zero-static_build-headless_only-fastdebug would be just 
>> that...
>>
> A problem with empty default, which I often curse myself for in the 
> case of the jib named output dirs, is that if you have both linux-x64 
> and linux-x64-debug, you can't easily pick linux-x64 with "make 
> CONF=", you have to work around it by doing "make 
> CONF_NAME=linux-x64", which is very annoying. I regret that naming 
> convention for this reason.
>
> On the other hand, we cannot have an arbitrarily large tuple all the 
> time either.
>
> I think that <OS>-<CPU>-<DEBUG_LEVEL> would be the most common base 
> and that you could add additional parts for other parameters if they 
> deviate from defaults, or perhaps if they are explicitly set, even if 
> matching the default. Several of the parameters you mention above 
> would be good candidates for conditionally changing the output dir.
>
> /Erik




More information about the build-dev mailing list