RFR: JDK-8168108: lib/classlist should be packaged in java.base.jmod

Erik Joelsson erik.joelsson at oracle.com
Mon Nov 7 13:13:09 UTC 2016


Hello,

On 2016-11-07 13:40, Magnus Ihse Bursie wrote:
> Hi,
>
> The webrev haven't picked up the relationship between the LinkOpt and 
> Classlist files. It seems that it is a rename + modifications. Can you 
> please redo it using hg mv? And update the webrev so the changes in 
> the file is visible.
>
The file was moved between repositories. I'm not aware of a way to get 
webrev to display that as a diff.
> The name "LinkOptData", is it supposed to be read "link optional 
> data"? I'm not sure in what way it is an improvement of Classlist 
> (even though this name was no good either).
Opt -> optimization. We are creating data that is used for optimizing 
the images in the jlink step.
>
> Why do you pass JMODS_DIR and _TEMPDIR in Main.gmk to CreateJmods.gmk? 
> I understand that you need to specify the module and that we're 
> building interim jmods, but the rest seems to be redundant.
>
Right, it started out as sending in specific modifications to existing 
variables in CreateJmods.gmk, but then I converted one of them to an 
explicit "interim" setting. It would make sense to let CreateJmods.gmk 
just use this "interim" setting to pick the correct directories.

I have however already pushed this so further changes will need to be 
done in a followup cleanup change.

/Erik
> /Magnus
>
> On 2016-11-03 13:01, Erik Joelsson wrote:
>> Hello,
>>
>> New webrev: http://cr.openjdk.java.net/~erikj/8168108/webrev.02/
>>
>>
>> On 2016-11-02 18:52, Mandy Chung wrote:
>>>> On Nov 2, 2016, at 9:55 AM, Erik Joelsson 
>>>> <erik.joelsson at oracle.com> wrote:
>>>>
>>>> This patch changes how the dynamically generated lib/classlist is 
>>>> packaged. We already create an interim-image from java.base and 
>>>> java.logging to generate the classlist during the build. We then 
>>>> copy it into the jdk and jre images using makefile logic after 
>>>> jlinking those images. With this patch, lib/classlist is instead 
>>>> included in java.base.jmod.
>>>>
>>>> To achieve this, I have introduced the concept of interim jmods for 
>>>> the jmods used to create the interim-image. These can be built 
>>>> explicitly from the top level using targets <module>-interim-jmod. 
>>>> It adds a little bit of build time, but it's hardly noticeable.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8168108
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~erikj/8168108/webrev.01/
>>> I like the interim jmods idea.  The solution is clean.
>>>
>>> jdk/make/GenerateClasslist.gmk
>>>    62         $(call MakeDir, $(@D) $(SUPPORT_OUTPUTDIR)/classlist)
>>>
>>> Is the directory $(SUPPORT_OUTPUTDIR)/classlist needed?  I can’t 
>>> tell why this line needs to be changed.
>> Yes it was, since jli_trace.out is also generated by this target. I 
>> realize this becomes a bit convoluted so renamed the output dir, the 
>> makefile and the top level target to reflect that more things than 
>> classlist are generated here. I fixed the make rules so that both the 
>> classlist and jli_trace.out works correctly if either is removed 
>> before a rebuild.
>>>
>>>    63         $(call LogInfo, Generating lib/classlist)
>>>
>>> It might be better to print $(CLASSLIST_FILE) in the log instead?
>> Fixed the log messages.
>>
>> /Erik
>>> Otherwise, looks fine.
>>>
>>> Mandy
>>
>




More information about the build-dev mailing list