Tue, 13 Nov 2012 15:54:33 -0800
8003274: build-infra: Makefile changes needed for sjavac
Summary: changes left in build-infra that are related to sjavac
Reviewed-by: ohair, tbell
Contributed-by: erik.joelsson@oracle.com, fredrik.ohrstrom@oracle.com
1.1 --- a/common/autoconf/spec.gmk.in Mon Nov 12 12:34:11 2012 -0800 1.2 +++ b/common/autoconf/spec.gmk.in Tue Nov 13 15:54:33 2012 -0800 1.3 @@ -246,12 +246,6 @@ 1.4 # Store sjavac server synchronization files here, and 1.5 # the sjavac server log files. 1.6 SJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@ 1.7 -# We can block the Javac server to never use more cores than this. 1.8 -# This is not for performance reasons, but for memory usage, since each 1.9 -# core requires its own JavaCompiler. We might have 64 cores and 4GB 1.10 -# of memory, 64 JavaCompilers will currently not fit in a 3GB heap. 1.11 -# Since there is no sharing of data between the JavaCompilers. 1.12 -SJAVAC_SERVER_CORES:=@SJAVAC_SERVER_CORES@ 1.13 1.14 # The OpenJDK makefiles should be changed to using the standard 1.15 # configure output ..._CFLAGS and ..._LIBS. In the meantime we 1.16 @@ -496,7 +490,14 @@ 1.17 # Where the build output is stored for your convenience. 1.18 BUILD_LOG:=@BUILD_LOG@ 1.19 BUILD_LOG_PREVIOUS:=@BUILD_LOG_PREVIOUS@ 1.20 -BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@ 1.21 +# Disable the build log wrapper on sjavac+winapi until 1.22 +# we have solved how to prevent the log wrapper to wait 1.23 +# for the background sjavac server process. 1.24 +ifeq (@ENABLE_SJAVAC@X@OPENJDK_BUILD_OS_API@,yesXwinapi) 1.25 + BUILD_LOG_WRAPPER:= 1.26 +else 1.27 + BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@ 1.28 +endif 1.29 1.30 # Build setup 1.31 ENABLE_JFR=@ENABLE_JFR@
2.1 --- a/common/makefiles/JavaCompilation.gmk Mon Nov 12 12:34:11 2012 -0800 2.2 +++ b/common/makefiles/JavaCompilation.gmk Tue Nov 13 15:54:33 2012 -0800 2.3 @@ -170,9 +170,10 @@ 2.4 # tells us what to remove from the jar-file. 2.5 $1_CAPTURE_DELETES=$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.deleted -newer $$@ -exec $(SED) 's|$$(src)||g' \{\} >> $$($1_DELETES_FILE) \;) $$(NEWLINE)) 2.6 # The update contents macro updates the jar file with the previously capture contents. 2.7 + # xargs is used to trim the whitespace from the contents file, to see if it is empty. 2.8 $1_UPDATE_CONTENTS=$$(foreach src,$$($1_SRCS),\ 2.9 (cd $$(src) && \ 2.10 - if [ -s _the.$$($1_JARNAME)_contents ]; then \ 2.11 + if [ -n "`$(CAT) _the.$$($1_JARNAME)_contents | $(XARGS)`" ]; then \ 2.12 $(ECHO) " updating" `$(WC) -l _the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'` files && \ 2.13 $(JAR) $$($1_JAR_UPDATE_OPTIONS) $$@ @_the.$$($1_JARNAME)_contents; \ 2.14 fi) $$(NEWLINE))
3.1 --- a/common/makefiles/MakeHelpers.gmk Mon Nov 12 12:34:11 2012 -0800 3.2 +++ b/common/makefiles/MakeHelpers.gmk Tue Nov 13 15:54:33 2012 -0800 3.3 @@ -157,7 +157,7 @@ 3.4 3.5 # Hook to be called as the very last thing for targets that are "top level" targets 3.6 define AtMakeEnd 3.7 - $(if $(SJAVAC_SERVER_DIR),@$(RM) -rf $(SJAVAC_SERVER_DIR)/*.port) 3.8 + [ -f $(SJAVAC_SERVER_DIR)/server.port ] && echo Stopping sjavac server && $(TOUCH) $(SJAVAC_SERVER_DIR)/server.port.stop; true 3.9 $(call StopGlobalTimer) 3.10 $(call ReportBuildTimes) 3.11 @$(PRINTF) "Finished building $(PRODUCT_NAME) for target '$(call GetRealTarget)'\n" 3.12 @@ -174,8 +174,8 @@ 3.13 define ParseLogLevel 3.14 ifeq ($$(origin VERBOSE),undefined) 3.15 # Setup logging according to LOG (but only if VERBOSE is not given) 3.16 - 3.17 - # If the "nofile" argument is given, act on it and strip it away 3.18 + 3.19 + # If the "nofile" argument is given, act on it and strip it away 3.20 ifneq ($$(findstring nofile,$$(LOG)),) 3.21 # Reset the build log wrapper, regardless of other values 3.22 override BUILD_LOG_WRAPPER=