RFR: JDK-8047177: JDK build should make use of the new -XXuserPathsFirst
Erik Joelsson
erik.joelsson at oracle.com
Tue Oct 28 10:40:49 UTC 2014
Hello,
Please review this small fix when using sjavac. When using a bootjdk
that was built at a later date than when the source tree was initially
cloned, there is a risk that sjavac will pick up classes from the boot
classpath (rt.jar of boot jdk) instead of the source files, concluding
that the source files won't need to be built. This is only an issue when
building classes that are also present in the boot classpath of the
bootjdk, which we normally do since we are building the jdk.
The fix is to add a special option for this use case, which forces
sjavac to build source files if found, regardless of class file dates.
Bug: https://bugs.openjdk.java.net/browse/JDK-8047177
Patch inline:
diff -r 12d3dc35f0e8 make/common/JavaCompilation.gmk
--- a/make/common/JavaCompilation.gmk
+++ b/make/common/JavaCompilation.gmk
@@ -583,8 +583,12 @@
$$(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
+ # Run with -XXuserPathsFirst to always build source files even
if there happens to
+ # be class files in the boot classpath (rt.jar of boot jdk)
with a newer modified
+ # time.
($$($1_JVM) $$($1_SJAVAC) \
$$($1_REMOTE) \
+ -XXuserPathsFirst \
-j 1 \
--permit-unidentified-artifacts \
--permit-sources-without-package \
/Erik
More information about the build-dev
mailing list