On 2020-04-30 21:10, Erik Joelsson wrote:
Hello,
A minor mistake in JDK-8244036 is causing the javac server to never be
used, which is rather severly increasing build times.
Before that change, the global variable ENABLE_SJAVAC was used to
determine if the server should be activated. After the change, the
global variable has changed names to ENABLE_JAVAC_SERVER. The
conditional in JavaCompilation.gmk tries to check the value of the
local variable/parameter $1_ENABLE_JAVAC_SERVER instead, but this
parameter is never set or given a default. I don't think we need a
local variable/parameter for this as there is currently no need to
disable the server for any specific SetupJavaCompilation call, so I my
fix is to just refer directly to the global variable from
configure/spec.gmk instead.
Bug: https://bugs.openjdk.java.net/browse/JDK-8244210
Webrev: http://cr.openjdk.java.net/~erikj/8244210/webrev.01/webrev/
Thank you for fixing this!
I really scratched my head on how this came to be. I messed up since I
did development in parallel in both a branch in the sandbox, and just
experimentally, without any version tracking, in a checked out jdk repo.
The very last commit to the sandbox, with a fix copied from my
experimental repo, was:
- ifeq ($$(ENABLE_JAVAC_SERVER), true)
+ # Use java server if it is enabled, and the user do not want a
specialized
+ # class path.
+ ifeq ($$($1_ENABLE_JAVAC_SERVER+$$($1_CLASSPATH)), true+)
which were obviously broken. But I only verified that it the patch
worked --as in, not using the server -- for the cases which specified
CLASSPATH. *doh*
I'm not sure what the lesson here is. I really liked having a wild
playground and a structured progress in parallel, and I don't think I
should stop using that method. But I obviously need to test the end
product better, even after the last patch. And when copying unreadable
make syntax, I need to double and triple check.
/Magnus
/Erik