Small change triggers 8990 file compiling?

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Oct 12 02:06:51 PDT 2012


On 2012-10-12 04:57, Weijun Wang wrote:
> Hi All
>
> I'm using the new build on a Ubuntu 12.04 64 bit. Configure runs ok, 
> and make runs ok. Now I have a good build output directory. Running 
> make again costs no time at all.
>
> Then I qpush a mq patch, which only touches 30 or so files deep inside 
> src/share/classes/com/sun/security and src/share/classes/sun/security 
> of the jdk repo, and running make shows
>
>    Compiling 8990 files for BUILD_JDK
>
> and a while bunch of other c files which costs 00:01:20.
>
> Is that an expected behavior?

Unfortunately, yes, at the moment. As you've seen by previous replies, 
smart javac will help this massively.

There is another workaround, which might be removed if smartjavac gets 
enabled by default in the future, but might help until then. You can 
specify JDK_FILTER="com/sun/security sun/security" on the make command 
line, and get the BUILD_JDK pass to only recompile files with a path 
starting with these patterns.

Note that this will break dependency tracking and might produce broken 
builds if used incorrectly!

/Magnus



More information about the build-infra-dev mailing list