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

Erik Joelsson erik.joelsson at oracle.com
Wed Apr 10 12:46:36 UTC 2013



On 2013-04-09 20:38, Tim Bell wrote:
> 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!
>
Thanks! It turned out there was a flaw however. On Solaris sparc, there 
is some assembly being compiled, and this trick needs to be disabled 
properly for that. New webrev:

http://cr.openjdk.java.net/~erikj/8011687/webrev.02/

/Erik



More information about the build-dev mailing list