8054717: SJavac should track changes in the public apis of classpath classes!
authoralundblad
Tue, 09 Jun 2015 16:08:38 +0200
changeset 31014 a3b1e5a584bd
parent 31013 03705c62af66
child 31015 babc2e8b3e97
8054717: SJavac should track changes in the public apis of classpath classes! Summary: Adjusted Java compilation to accomodate for changes to sjavac. Reviewed-by: erikj
make/CompileJavaModules.gmk
make/common/JavaCompilation.gmk
--- a/make/CompileJavaModules.gmk	Mon Jun 08 11:11:46 2015 -0700
+++ b/make/CompileJavaModules.gmk	Tue Jun 09 16:08:38 2015 +0200
@@ -507,6 +507,10 @@
 # space separated list.
 JDK_USER_DEFINED_FILTER := $(strip $(subst $(COMMA),$(SPACE), $(JDK_FILTER)))
 
+# Create an empty directory to set the bootclasspath to.
+EMPTY_BOOTCLASSPATH := $(SUPPORT_OUTPUTDIR)/empty-dir
+$(call MakeDir, $(EMPTY_BOOTCLASSPATH))
+
 # This macro sets up compilation of a module and declares dependencies for it.
 # Param 1 - module name
 define SetupModuleCompilation
@@ -525,7 +529,7 @@
     $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent)
   endif
   $1_CLASSPATH := $$(subst $$(SPACE),$$(PATH_SEP),$$($1_CLASSPATH))
-  $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)" $$($1_ADD_JAVAC_FLAGS)
+  $1_JAVAC_FLAGS := -bootclasspath $(EMPTY_BOOTCLASSPATH) -classpath "$$($1_CLASSPATH)" $$($1_ADD_JAVAC_FLAGS)
 
   $$(eval $$(call SetupJavaCompilation,$1, \
       SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \
--- a/make/common/JavaCompilation.gmk	Mon Jun 08 11:11:46 2015 -0700
+++ b/make/common/JavaCompilation.gmk	Tue Jun 09 16:08:38 2015 +0200
@@ -561,10 +561,6 @@
 
     $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE)
 	$(MKDIR) -p $$(@D) $$(dir $$($1_SJAVAC_PORTFILE))
-        # As a workaround for sjavac not tracking api changed from the classpath, force full
-        # recompile if an external dependency, which is something other than a source
-        # change, triggered this compilation.
-	$$(if $$(filter-out $$($1_SRCS), $$?), $(FIND) $$(@D) -name "*.class" $(FIND_DELETE))
 	$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
 	$(ECHO) Compiling $1
 	($$($1_JVM) $$($1_SJAVAC) \