https://bugs.openjdk.java.net/browse/JDK-8139935
The reason this “works” for a non-bootcycle build is because a JDK 9 javac won't enforce the “hidden packages” rules when running on a non-JDK 9 platform. diff -r a8a8604f890f make/gensrc/Gensrc-jdk.vm.ci.gmk --- a/make/gensrc/Gensrc-jdk.vm.ci.gmk Sat Oct 17 19:40:30 2015 -0400 +++ b/make/gensrc/Gensrc-jdk.vm.ci.gmk Tue Oct 20 09:57:02 2015 -1000 @@ -77,6 +77,7 @@ PROCESSOR_PATH := $(call PathList, \ $(MKDIR) -p $(@D) $(eval $(call ListPathsSafely,PROC_SRCS,$(@D)/_gensrc_proc_files)) $(JAVA_SMALL) $(NEW_JAVAC) \ + -XDignore.symbol.file \ -sourcepath $(SOURCEPATH) \ -implicit:none \ -proc:only \