-
Bug
-
Resolution: Unresolved
-
P4
-
25
When cross compiling and incrementally building make images, even if no source files have been changed, the build system will rebuild parts of the JDK.
This seems to happen because the definition of the generated (gensrc) PlatformProperties.java file in make/modules/java.base/gensrc/GensrcMisc.gmk doesn't take cross compilation into account when setting up BUILD_PLATFORMPROPERTIES_JAVA.
More specifically, it seems like the same exact VARDEPS file BUILD_PLATFORMPROPERTIES_JAVA_VARDEPS) will be used for both the builjdk and the targetjdk. Since the contents of PlatformProperties.java differs in the case of cross compilation, the file will be updated (twice) and considered old, leading to rebuilding the target and the downstream dependencies.
This seems to happen because the definition of the generated (gensrc) PlatformProperties.java file in make/modules/java.base/gensrc/GensrcMisc.gmk doesn't take cross compilation into account when setting up BUILD_PLATFORMPROPERTIES_JAVA.
More specifically, it seems like the same exact VARDEPS file BUILD_PLATFORMPROPERTIES_JAVA_VARDEPS) will be used for both the builjdk and the targetjdk. Since the contents of PlatformProperties.java differs in the case of cross compilation, the file will be updated (twice) and considered old, leading to rebuilding the target and the downstream dependencies.