RFR: JDK-8011687: Support correct dependencies from header files on windows and solaris

Tim Bell tim.bell at oracle.com
Tue Apr 9 18:38:23 UTC 2013


Erik:

> This patch adds workarounds for the way make dependencies are 
> generated in the Solaris and Windows compilers. What this means is 
> that if you touch a header file, the relevant c files will be 
> recompiled as expected.
>
> On Solaris, there is support for generating make dependencies, and it 
> was used, but the object file is printed with just the filename and no 
> directory. This works if the makefile is executing in the same 
> directory as the object file is put in, but this isn't the case in the 
> new jdk build. A simple sed expression fixes this.
>
> On Windows it's more complicated. Two possible solutions were 
> available, -showIncludes parameter to the compiler and the utility 
> makedepends. Having experimented with both, I found the first 
> alternative easiest to get working all the way with a smaller impact 
> on makefile complexity. The parameter -showIncludes prints messages 
> about all included files on stdout (contrary to the documentation) 
> which are then filtered out to a file and parsed to create a makefile.
>
> http://cr.openjdk.java.net/~erikj/8011687/webrev.01/

common/makefiles/NativeCompilation.gmk has a minor typo ('and and'):

  108         # setting -showIncludes, all included files are printed. 
These are filtered out and
  109         # and parsed into make dependences.

Otherwise looks good.  Approved!

Tim




More information about the build-dev mailing list