RFR: 8054717: SJavac should track changes in the public apis of classpath classes!

Andreas Lundblad andreas.lundblad at oracle.com
Thu Feb 12 21:50:47 UTC 2015

On Mon, Dec 15, 2014 at 11:49:06PM +0100, Andreas Lundblad wrote:
> [...]
> Link to web review:
> http://cr.openjdk.java.net/~alundblad/8054717
> Link to bug report:
> http://bugs.openjdk.java.net/browse/JDK-8054717
Attach: /home/alundbla/Downloads/langtools_v0.diff JDK-8066725 patch

Version 5 up for review. (See links above.)

A few remarks:

1. The attached langtools patch (currently under review) needs to be applied as well.

2. Two changes to CompileJavaModules.gmk are required:
    - The classpath should be used instead of the bootclasspath (and the bootclasspath should be set to an empty direcotry)

        -  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)"
        +  $1_JAVAC_FLAGS := -bootclasspath "/home/alundbla/bootcp" -classpath "$$($1_CLASSPATH)"

    - Eriks current workaround should be disabled:

        -   $$(if $$(filter-out $$($1_SRCS), $$?), $(FIND) $$(@D) -name "*.class" $(FIND_DELETE))
        +#  $$(if $$(filter-out $$($1_SRCS), $$?), $(FIND) $$(@D) -name "*.class" $(FIND_DELETE))

I've tested the following:

- make clean / make images
- touch 40 random JDK source files + recompile
- change public api of Object (add / remove method or variable) + make sure everything is recompiled
- touch Object.java and make sure only java.lang is recompiled
- do the same with java/util/logging/Formatter.java and make sure it only affects related modules
- build-only job on jprt
- all langtools, including sjavac, regression tests

best regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: langtools_v0.diff
Type: text/x-diff
Size: 15494 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20150212/495bba31/langtools_v0.diff>

More information about the compiler-dev mailing list