RFR: JDK-6604021: RMIC is defaulting to BOOT jdk version, needs to be rmic.jar
Chris Hegarty
chris.hegarty at oracle.com
Wed Oct 16 11:07:56 UTC 2013
On 16/10/2013 11:35, David Holmes wrote:
> Ship it! Quickly! :)
+1 looks good to me.
Thanks Erik,
-Chris.
>
> Thanks,
> David
>
> On 16/10/2013 8:19 PM, Erik Joelsson wrote:
>> New webrev: http://cr.openjdk.java.net/~erikj/6604021/webrev.02/
>>
>> * Changed Node.java as David suggested.
>> * Added comment suggested by Martin to Setup.gmk, where the compiler
>> setup is done. Couldn't think of a better place.
>> * Changed comment in JavaCompilation.
>>
>> A note on Corba. While the corba classes are linked against the bootjdk
>> APIs, the current compilation of those classes produce jdk8 version
>> classfiles, which cannot be run on the bootjdk. That's why we have to
>> compile two times, to produce jdk7 classfiles.
>>
>> /Erik
>>
>> On 2013-10-16 02:12, David Holmes wrote:
>>> On 16/10/2013 10:02 AM, David Holmes wrote:
>>>> Hi Erik,
>>>>
>>>> Many thanks for jumping on this!
>>>>
>>>> On 16/10/2013 12:30 AM, Erik Joelsson wrote:
>>>>> Currently the RMI stubs in the jdk are built with the newly built rmic
>>>>> binary at the end of the build. This patch changes that and instead
>>>>> builds a bootstrap version of the rmic classes, much like bootstrap
>>>>> javac in langtools, which runs on the bootjdk, but generates classes
>>>>> for
>>>>> the new jdk. The new solution is more friendly to cross compilation.
>>>>>
>>>>> A few notes on the patch:
>>>>>
>>>>> * In src/share/classes/sun/tools/tree/Node.java, I had to change a
>>>>> call
>>>>> to a jdk8 only constructor in java.lang.InternalError.
>>>>
>>>> A better fix to preserve the cause is:
>>>>
>>>> throw new InternalError().initCause(e);
>>>
>>> That should be
>>>
>>> throw (InternalError) new InternalError().initCause(e);
>>>
>>> David
>>> -----
>>>
>>>>> * The packages included when compiling rmic were just picked by
>>>>> extending for each missing class until the compilation succeeded. If
>>>>> someone knows of a crucial package or class that needs to be included,
>>>>> please say so.
>>>>> * I renamed a parameter to SetupJavaCompilation. I do not consider the
>>>>> parameter a hack anymore, but a necessary option for this case.
>>>>
>>>> So should "Don't use this. " say "Use with care." or something like
>>>> that? :)
>>>>
>>>>> * In RMICompilation, the dependency file is now a real touch file
>>>>> instead of a virtual one. This was needed for proper dependencies in
>>>>> GenerateClasses.gmk.
>>>>> * All of corba is compiled twice since I have no idea which parts
>>>>> would
>>>>> actually be needed. This doesn't add much build time since it can be
>>>>> run
>>>>> effectively in parallel with the rest of the corba build.
>>>>
>>>> I don't understand the need for changes here given that this is Java
>>>> compilation and it is already using GENERATE_OLDBYTECODE ??
>>>>
>>>>> * I put the compilation of bootstrap rmic in GenerateClasses.gmk
>>>>> directly instead of Tools.gmk. This was to not add much compile time,
>>>>> since Tools.gmk is included and therefore parsed a lot.
>>>>
>>>> Seems okay - the proof of course is in the building.
>>>>
>>>> Thanks,
>>>> David
>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-6604021
>>>>> Webrev: http://cr.openjdk.java.net/~erikj/6604021/webrev.01/
>>>>>
>>>>> /Erik
>>
More information about the build-dev
mailing list