Hello,

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)), \

/Erik

Reply via email to