RFR: JDK-8073166: Unable to successfully build the merge of jdk9/hs with jdk9/dev

Erik Joelsson erik.joelsson at oracle.com
Mon Feb 16 10:57:54 UTC 2015


When merging jdk9/dev and jdk9/hs, the following message appears and the 
build fails:

gmake[2]: *** No rule to make target 'jdk.runtime-java', needed by 
'jdk.runtime-libs'. Stop.
gmake[2]: *** Waiting for unfinished jobs....

The cause of this error is the combination of JDK-8071338 and 
JDK-8062303 which left the jdk.runtime module empty of java source and 
so, a native only module. In make/Main.gmk, we dynamically create 
targets for building the java and native parts of modules and the 
dependencies between them. This code assumed that all modules with 
native parts also had a java part, with one explicit exception. With 
this fix, the dependencies are only created for modules that actually 
have both a native and a java part.

Bug: https://bugs.openjdk.java.net/browse/JDK-8073166
Patch inline:
diff -r a67cf596b4fd make/Main.gmk
--- a/make/Main.gmk
+++ b/make/Main.gmk
@@ -347,8 +347,8 @@
    $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java))

    # Declare dependencies from <module>-lib to <module>-java
-  # Skip jdk.jdwp.agent as it contains no java code.
-  $(foreach m, $(filter-out jdk.jdwp.agent, $(LIBS_MODULES)), $(eval 
$m-libs: $m-java))
+  # Skip modules that do not have java source.
+  $(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval 
$m-libs: $m-java))

    # Declare dependencies from all other <module>-lib to java.base-lib
    $(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \


More information about the build-dev mailing list