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

Erik Joelsson erik.joelsson at oracle.com
Wed Jan 22 14:37:56 UTC 2014


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