RFR: JDK-8241463 Move build tools to respective modules
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Tue Mar 24 12:12:45 UTC 2020
On 2020-03-23 23:15, naoto.sato at oracle.com wrote:
> Hi Magnus,
>
> I looked at i18n related changes:
>
> make/CopyInterimTZDB.gmk
> make/ToolsJdk.gmk
> make/gendata/Gendata-java.base.gmk
> make/gendata/GendataBreakIterator.gmk
> make/gendata/GendataTZDB.gmk
> make/gensrc/GensrcCharacterData.gmk
> make/gensrc/GensrcEmojiData.gmk
>
> They look ok to me.
Thank you!
>
> The *.java changes should have copyright year update.
Ok, I'll update them.
>
> As to charsetmapping and cldrconverter, I believe they can reside in
> java.base, as jdk.charsets and jdk.localedata modules depend on it.
Okay. It's not ideal, but I think you're right. I'll move them as well.
I'll publish an updated webrev with these changes when there's agreement
on where in the source code tree to move the files.
/Magnus
>
> Naoto
>
> On 3/23/20 12:03 PM, Magnus Ihse Bursie wrote:
>> The build tools (small java tools that are run during the build to
>> generate source code, or data, needed in the JDK) have historically
>> been placed in the "make" directory. This maybe made sense long time
>> ago, but does not do so anymore.
>>
>> Instead, the build tools source code should move the the module that
>> needs them. For instance, compilefontconfig should move to
>> java.desktop, etc.
>>
>> There are multiple reasons for this:
>>
>> * Currently we build *all* build tools at once, which mean that we
>> cannot compile java.base until e.g. the compilefontconfig tool is
>> compiled, even though it is not needed.
>>
>> * If a build tool, e.g. compilefontconfig is modified, all build
>> tools are recompiled, which triggers a rebuild of more or less the
>> entire JDK. This makes development of the build tools unnecessary
>> tedious.
>>
>> * When the build tools are modified, the group owning the
>> corresponding module is the proper review instance, not the build
>> team. But since they reside under "make", the review mails often
>> include build-dev, but this is mostly noise for us. With this move,
>> the ownership is made clear.
>>
>> In this patch, I have not modified how and when the build tools are
>> compiled, but this shuffle is the prerequisite for continuing with
>> that in a follow-up patch.
>>
>> I have also moved the build tools to the org.openjdk.buildtools.*
>> package name space (inspired by Skara), instead of the strangely
>> named build.tools.* name space.
>>
>> A few build tools are not moved in this patch. Two of them,
>> charsetmapping and cldrconverter, are shared between two modules. (I
>> think they should move to modules nevertheless, but they need some
>> more thought to make sure I do this right.) The rest are tools that
>> are needed for the build in general, like linking or javadoc support.
>> I'll move this to a better location too, but in a separate patch.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8241463
>> WebRev:
>> http://cr.openjdk.java.net/~ihse/JDK-8241463-move-build-tools-to-modules/webrev.01
>>
>>
>> /Magnus
>>
More information about the build-dev
mailing list