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