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