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

bootstrap and recompile builds leave results in same directory

    XMLWordPrintable

    Details

    • Subcomponent:
    • CPU:
      generic
    • OS:
      generic, solaris_8

      Description

      The rebuild of various classes after bootstrapping should place the
      results in a separate directory from the original build. That is
      because the set of class files produced during the rebuild may be
      different from the set of class files produced during the bootstrap.
      We don't want to keep the temporary bootstrap class files in the final
      output. Rather, we want all files in rt.jar to have been built by the
      compiler that has been bootstrapped.
      Turns out that the copying of classes from newclasses to classes is also a problem. This newclasses tree can contain more classes that those identified by the java sources list.
      Classes should probably not be copied in a blind tar file way like it is now in common/Classes.gmk.
      Additional problem is that there is a tar copy of classes from some newclasses directory to the classes directory in the recompile makefiles. These newclasses sometimes contain class files not in the recompile lists explicitly, but part of the java compilation needed for the explicit list. When the entire newclasses tree is copied over to the classes tree it can clobber some class files that were newer, resulting in two situations, A) Repeated recompiles of some java source files because the newclasses class files have older time stamps yet the newclasses classfiles keep getting tar on top of the newly compiled classes, and B) The classes tree can end up with previously compiled classfiles that don't reflect the actual state of the source files.

      If the recompile source list included every possible java source used and compiled in the recompile area this would be solved, but better yet, we should NEVER tar class files into the classes tree. It's too blind a copy action.
      See 6377350 for examples of how the recompile of touched java sources doesn't work on incremental builds.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              ohair Kelly Ohair (Inactive)
              Reporter:
              gafter Neal Gafter
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: