RFR: JDK-8079344: Allow custom or platform specific java source to automatically override shared source

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue May 5 19:29:30 UTC 2015


On 2015-05-05 16:03, Erik Joelsson wrote:
> Hello,
>
> Currently it's possible to do this:
>
> src/$module/share/native/libfoo/foo.c
> src/$module/linux/native/libfoo/foo.c
>
> And the result will be that the most specific file, linux in this 
> case, file will get compiled and the other one ignored. The same works 
> for custom (closed) files overriding open. In addition to native code, 
> this also works for files being copied by the SetupJavaCompilation 
> macro, typically properties or other resources.
>
> For java code this does not work however and in the cases where such 
> overrides are used, the makefiles need explicit excludes of the 
> overridden file. I have implemented a solution for this that covers 
> java files and cleaned files in addition to the copied files in 
> SetupJavaCompilation, so we get consistent behavior for all sorts of 
> sources.
>
> Along with the new functionality I removed all the now redundant 
> excludes. I've added tests for the new functionality in 
> SetupJavaCompilation as well as the new macro in MakeBase.
>
> I've also added a debugging convenience macro in MakeBase that isn't 
> currently used, but makes my life easier when needing to print 
> variables. Now I can write:
>
> $(call PrintVar, VARNAME)
>
> and it will print:
>
> VARNAME >$(VARNAME)<
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8079344
> Webrev: http://cr.openjdk.java.net/~erikj/8079344/webrev.01/

Looks good to me. I'm happy to see that you are implementing test cases 
for this! (And also, of course, that we finally get this behavior 
consistent across macros.)

/Magnus




More information about the build-dev mailing list