RFR: JDK-8011687: Support correct dependencies from header files on windows and solaris
erik.joelsson at oracle.com
Wed Apr 10 12:46:36 UTC 2013
On 2013-04-09 20:38, Tim Bell wrote:
>> 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.
> 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:
More information about the build-dev