RFR: JDK-8026773: Failing compilation in Corba does not fail the build

Tim Bell tim.bell at oracle.com
Wed Feb 5 06:29:29 UTC 2014


Hi Erik:

> On 2014-01-22 16:21, Magnus Ihse Bursie wrote:
>> It looks not only good, but excellent! Thank you for fixing this!
>>
>> There is one old minor bug that I noticed. Now might be a good time 
>> to fix it, if you want. In GensrcLangtools.gmk, line 89, tries to 
>> count processed properties, and adds the specially treated files by 
>> adding "v1 v2 v"3. It was not obvious what this was. I believe once 
>> there were three special files, now there are five. Replacing "v1 v2 
>> v3" with "javac javah ..." will make that clearer, and the count 
>> correct.
> While not directly related to this patch, I fixed it anyway. Here is 
> the final version:
>
> http://cr.openjdk.java.net/~erikj/8026773/webrev.03/
>
> Would be nice if a jdk9 reviewer could take a look at it too.

That's a lot of changes, but they look good to me.

Tim



> /Erik
>
>>
>>
>> /Magnus
>>
>>> On 22 jan 2014, at 15:37, Erik Joelsson <erik.joelsson at oracle.com> 
>>> wrote:
>>>
>>> After discussing this with Magnus offline and some prototyping work 
>>> for the future of the jdk9 build, I changed my mind and would like 
>>> to solve this in a way more similar to how the jdk build is done 
>>> today. (This will eventually pave the road for a more fine grained 
>>> dependency graph of the whole build, cross repos.)
>>>
>>> Luckily nobody reviewed the old version, but here is my new attempt:
>>> http://cr.openjdk.java.net/~erikj/8026773/webrev.02/
>>>
>>> Another consequence of these changes is that make -n should start 
>>> working.
>>>
>>> /Erik
>>>
>>>
>>>> On 2014-01-17 14:03, Erik Joelsson wrote:
>>>> Here is a patch which has the primary purpose of eliminating a 
>>>> certain makefile construct that was introduced in build-infra and 
>>>> used in langtools and corba. The trick was clever, but 
>>>> unfortunately had the drawback of the build not always failing on 
>>>> errors, or giving very weird error messages. Here is the bug and 
>>>> the patch:
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8026773
>>>> Webrev: http://cr.openjdk.java.net/~erikj/8026773/webrev.01/
>>>>
>>>> A bit of background is probably needed. The problem that needs to 
>>>> be solved is that when we use SetupJavaCompilation to compile java, 
>>>> all the source files must exist on disk when make starts parsing 
>>>> the makefile. Any non existing java files will not be discovered by 
>>>> the macro and will then not be compiled. So if there are java 
>>>> sources being generated by a rule in the same makefile, these will 
>>>> not be visible to SetupJavaCompilation.
>>>>
>>>> In the jdk repo this is solved by separating source generation and 
>>>> java compilation into different makefiles and make explicit calls 
>>>> to them in order. While this would work here to, I don't think we 
>>>> should enforce separation for implementation purposes when it 
>>>> doesn't really make sense from a logical grouping point of view. In 
>>>> the case of Corba and Langtools, I do not think this separation 
>>>> makes sense for code readability, so I chose to solve it with a 
>>>> recursive call back to the same makefile for specific parts of the 
>>>> file.
>>>>
>>>> While working in this area, I couldn't help but spend some time 
>>>> cleaning up. The Langtools and Corba repos were the first to be 
>>>> converted to build-infra, and didn't follow styles and conventions 
>>>> that were introduced later. I also cleaned up comments.
>>>>
>>>> /Erik
>




More information about the build-dev mailing list