Hi Jon, I've attached bug.zip which should reproduce the issue (assuming jdk 9 javac is on your path):
unzip bug.zip cd bug ./run.sh find bin The last command above should show the extra class files from jdk.internal.vm.ci.jar in bin. -Doug
> On 7 Mar 2017, at 18:55, Jonathan Gibbons <jonathan.gibb...@oracle.com> wrote: > > > > On 03/07/2017 08:06 AM, Doug Simon wrote: >> To be able to develop Graal on JDK 9, we're using the `--release 8` javac >> option and providing jar files for API that is either not in 9 or is not >> exported in 9. Here is a simplified form of a javac command: >> >> javac -cp jdk.internal.vm.ci.jar:jdk.unsupported_sun.misc.Unsafe.jar -d bin/ >> --release 8 >> graal/org.graalvm.compiler.api.runtime/src/org/graalvm/compiler/api/runtime/*.java >> >> where: >> >> dsimon@kurz-3 ~/h/graal-core> ls >> graal/org.graalvm.compiler.api.runtime/src/org/graalvm/compiler/api/runtime/*.java >> graal/org.graalvm.compiler.api.runtime/src/org/graalvm/compiler/api/runtime/GraalJVMCICompiler.java >> graal/org.graalvm.compiler.api.runtime/src/org/graalvm/compiler/api/runtime/GraalRuntime.java >> >> I expect 2 class files to be written to bin/. However, I see a number of >> files from jdk.internal.vm.ci.jar in bin: >> >> dsimon@kurz-3 ~/h/graal-core> jar tf jdk.internal.vm.ci.jar | wc -l >> 444 >> dsimon@kurz-3 ~/h/graal-core> find bin/jdk/vm/ci | wc -l >> 55 >> >> I'm guessing that these are the classes in jdk.internal.vm.ci.jar referenced >> (transitively?) from the Graal sources. >> >> Why is this happening? That is, why is javac extracting classes from a jar >> on the classpath and putting them in the output directory? >> >> -Doug > > Doug, > > Can you provide a more complete test case? > > -- Jon