What to do about jvmti.h

Kelly O'Hair Kelly.Ohair at Sun.COM
Wed Dec 9 13:31:23 PST 2009


Concerning:

6784084: jvmti.h created during the build differs from file in jdk repo and should not

Several issues here, all need to be solved.

1. The jdk repository manages a copy of the hotspot generated file jvmti.h

2. The jdk Makefile sanity checks are trying to verify that the copy of jvmti.h
    matches the one created by the hotspot build. This logic is complicated and
    currently broken for jdk7.

3. In general, Hotspot express could be used in any jdk release, and we need to
    make sure the right jvmti.h is placed in the jdk install image include/
    directory. Even if a hotspot can support multiple jvmti.h versions,
    we need to make sure the right release of jvmti.h is delivered, to
    preserve the interface versioning.
    (Or we need some kind of super jvmti.h??? Exercise left to the reader.)

For jdk7, 1 & 2 are easily solved, but that isn't a complete answer, so
consider this webrev just a start:
   http://cr.openjdk.java.net/~ohair/openjdk7/jdk7-tl-jvmti-6784084/webrev/

My opinion is that jvmti.h is a hotspot interface, and belongs to hotspot.
But who should control which version of jvmti.h goes into what jdk release?

My above webrev will have the jdk build use and deliver in include/ the
jvmti.h provided by the hotspot build.
We could have the hotspot build be sensitive to the java version being
built and deliver a single correct jvmti.h file, or we could have hotspot
provide a set of jvmti.h files and the jdk makefiles would pick the one
it wants based on the java version.

Other ideas?

-kto


More information about the serviceability-dev mailing list