Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6964311

Build regression due to rt.jar contents change

XMLWordPrintable

    • b102
    • generic
    • generic

      The fix for 6933622: Duplicate class files in rt.jar and charsets.jar
      Changeset http://hg.openjdk.java.net/jdk7/tl/jdk/rev/848e69fcf2f3

      Has regressed the control builds... more details...

      This is a workaround fix, and a more permanent and correct fix will be to undo this workaround and do it right, but for now the control builds are broken and need to be restored.
      -----------
      email sent on this:


      Looks like I need to undo the removal of the sun/nio/cs/ext classes from rt.jar
      (they supposedly belonged in charsets.jar). Control builds of jdk7-tl are broken.

      Apparently in the short time that they have been in jdk7 rt.jar, we seem to have
      created a dependency on some of the sun/nio/cs/ext classes that we did not have before.

      The build error happens when CreateSymbols is run during the jdk images creation,
      missing class sun.nio.cs.ext.DoubleByte. When doing a control build, this is a run
      of the bootstrap langtools javac.jar, and charsets.jar is not in the classpath.

      The error looks like:

      error: sun.nio.cs.ext.DoubleByte.Encoder: class file for sun.nio.cs.ext.DoubleByte not found
      error: class file for sun.nio.cs.ext.DoubleByte not found 1 error
      gmake[3]: *** [initial-image-jdk] Error 1
      gmake[3]: Leaving directory `/tmp/jprt/P1/B/153854.ohair/source/jdk/make'
      gmake[2]: *** [jdk-build] Error 2

      A workaround fix is to reverse the change I made to explicitly exclude the sun/nio/cs/ext
      classes from rt.jar:

      ---------------------
      diff --git a/make/common/Release.gmk b/make/common/Release.gmk
      --- a/make/common/Release.gmk
      +++ b/make/common/Release.gmk
      @@ -549,7 +549,6 @@

      ######################################################
      # List of directories in classes directory that should NOT be in rt.jar
      -# sun/nio/cs/ext/ will go into charsets.jar
      ######################################################

      NOT_RT_JAR_LIST = $(ABS_TEMPDIR)/not_rt_jar.list
      @@ -572,7 +571,6 @@
        $(ECHO) "META-INF/services/com.sun.tools.xjc.Plugin" >> $@
        $(ECHO) "com/sun/tools/" >> $@
        $(ECHO) "sun/jvmstat/" >> $@
      - $(ECHO) "sun/nio/cs/ext/" >> $@
        $(ECHO) "sun/rmi/rmic/" >> $@
        $(ECHO) "sun/tools/asm/" >> $@
        $(ECHO) "sun/tools/java/" >> $@
      -----------------------

      I'm not exactly sure what the right fix is here, or if the real fix is to track down the
      change that added in the new dependence and remove that dependence.
      Any help anyone can provide, especially charsets.jar experts would be welcome.

            ohair Kelly Ohair (Inactive)
            ohair Kelly Ohair (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: