# HG changeset patch # User erikj # Date 1448363904 -3600 # Node ID b746e382da183792a7b2b50027f79f277fbb3667 # Parent 00b704eed6b5f2041b6a0436012c3046d25686bd 8142336: Convert the SA agent build to modular build-infra makefiles Reviewed-by: ihse, sla, dsamersoff, twisti diff -r 00b704eed6b5 -r b746e382da18 make/CompileJavaModules.gmk --- a/make/CompileJavaModules.gmk Mon Nov 23 14:41:54 2015 -0500 +++ b/make/CompileJavaModules.gmk Tue Nov 24 12:18:24 2015 +0100 @@ -361,6 +361,29 @@ ################################################################################ +jdk.hotspot.agent_SRC += \ + $(SUPPORT_OUTPUTDIR)/gensrc/jdk.hotspot.agent \ + $(HOTSPOT_TOPDIR)/agent/src/share/classes \ + # +jdk.hotspot.agent_ADD_JAVAC_FLAGS := $(DISABLE_WARNINGS),-overrides +jdk.hotspot.agent_COPY := .png sa.js .properties + +ifeq ($(MODULE), jdk.hotspot.agent) + ### Copy gif files + # Special handling to copy gif files in images/toolbarButtonGraphics \ + # -> classes/toolbarButtonGraphics. + # These can't be handled by COPY to SetupJavaCompilation since they chop off + # one directory level. + $(eval $(call SetupCopyFiles, COPY_SA_IMAGES, \ + SRC := $(HOTSPOT_TOPDIR)/agent/src/share/classes/images, \ + DEST := $(JDK_OUTPUTDIR)/modules/$(MODULE), \ + FILES := $(wildcard $(HOTSPOT_TOPDIR)/agent/src/share/classes/images/*/*/*.gif), \ + )) + jdk.hotspot.agent: $(COPY_SA_IMAGES) +endif + +################################################################################ + jdk.internal.le_COPY := .properties ################################################################################ @@ -535,11 +558,6 @@ ifneq ($(BUILD_CRYPTO), true) $1_CLASSPATH += $(JDK_OUTPUTDIR)/modules/$1 endif - ifeq ($1, jdk.hotspot.agent) - ## The source of this module is compiled elsewhere, hotspot, and imported. - ## Service types are required in the classpath when compiing module-info - $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent) - endif $1_JAVAC_FLAGS := -bootclasspath $(EMPTY_DIR) -extdirs $(EMPTY_DIR) -endorseddirs $(EMPTY_DIR) $$($1_ADD_JAVAC_FLAGS) $$(eval $$(call SetupJavaCompilation,$1, \ diff -r 00b704eed6b5 -r b746e382da18 make/Images.gmk --- a/make/Images.gmk Mon Nov 23 14:41:54 2015 -0500 +++ b/make/Images.gmk Tue Nov 24 12:18:24 2015 +0100 @@ -27,6 +27,7 @@ include $(SPEC) include MakeBase.gmk +include Modules.gmk TOOL_TARGETS := JDK_TARGETS := @@ -64,8 +65,8 @@ MAIN_MODULES += jdk.deploy.osx endif -JRE_MODULES := $(MAIN_MODULES) $(PROVIDER_MODULES) -JDK_MODULES := $(JRE_MODULES) $(TOOLS_MODULES) +JRE_MODULES := $(filter-out $(MODULES_FILTER), $(MAIN_MODULES) $(PROVIDER_MODULES)) +JDK_MODULES := $(filter-out $(MODULES_FILTER), $(JRE_MODULES) $(TOOLS_MODULES)) # compact3 builds have additional modules JDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \ diff -r 00b704eed6b5 -r b746e382da18 make/Main.gmk --- a/make/Main.gmk Mon Nov 23 14:41:54 2015 -0500 +++ b/make/Main.gmk Tue Nov 24 12:18:24 2015 +0100 @@ -53,8 +53,7 @@ $(eval $(call IncludeCustomExtension, , Main.gmk)) # All modules for the current target platform. -# Manually add jdk.hotspot.agent for now. -ALL_MODULES := $(call FindAllModules) jdk.hotspot.agent +ALL_MODULES := $(call FindAllModules) ################################################################################ ################################################################################ @@ -423,11 +422,6 @@ # virtual target. jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc - # Until the module system is in place, jdk.jdi-gensrc needs to combine service - # loader configuration with jdk.hotspot.agent so is dependent on importing - # hotspot. - jdk.jdi-gensrc-jdk: import-hotspot - # The swing beans need to have java base properly generated to avoid errors # in javadoc. java.desktop-gensrc-jdk: java.base-gensrc diff -r 00b704eed6b5 -r b746e382da18 make/common/Modules.gmk --- a/make/common/Modules.gmk Mon Nov 23 14:41:54 2015 -0500 +++ b/make/common/Modules.gmk Tue Nov 24 12:18:24 2015 +0100 @@ -30,6 +30,12 @@ include SetupJavaCompilers.gmk ################################################################################ +# Some platforms don't have the serviceability agent +ifeq ($(INCLUDE_SA), false) + MODULES_FILTER += jdk.hotspot.agent +endif + +################################################################################ # Module list macros ALL_TOP_SRC_DIRS := \ @@ -43,21 +49,25 @@ # # Find all modules with java sources by looking in the source dirs +# jdk.hotspot.agent currently doesn't comply with source dir policy. define FindJavaModules $(filter-out $(MODULES_FILTER), $(sort $(notdir \ $(patsubst %/,%, $(dir $(patsubst %/,%, $(dir $(patsubst %/,%, $(dir \ $(wildcard $(patsubst %,%/*/share/classes/*, $(ALL_TOP_SRC_DIRS)) \ $(patsubst %,%/*/$(OPENJDK_TARGET_OS)/classes/*, $(ALL_TOP_SRC_DIRS)) \ - $(patsubst %,%/*/$(OPENJDK_TARGET_OS_TYPE)/classes/*, $(ALL_TOP_SRC_DIRS)))))))))))) + $(patsubst %,%/*/$(OPENJDK_TARGET_OS_TYPE)/classes/*, $(ALL_TOP_SRC_DIRS))))))))))) \ + jdk.hotspot.agent) endef # Find all modules with source for the target platform. +# jdk.hotspot.agent currently doesn't comply with source dir policy. define FindAllModules $(sort $(filter-out $(MODULES_FILTER) closed demo sample, \ $(notdir $(patsubst %/,%, $(dir \ $(wildcard $(patsubst %, %/*/share, $(ALL_TOP_SRC_DIRS)) \ $(patsubst %, %/*/$(OPENJDK_TARGET_OS), $(ALL_TOP_SRC_DIRS)) \ - $(patsubst %, %/*/$(OPENJDK_TARGET_OS_TYPE), $(ALL_TOP_SRC_DIRS)))))))) + $(patsubst %, %/*/$(OPENJDK_TARGET_OS_TYPE), $(ALL_TOP_SRC_DIRS)))))) \ + jdk.hotspot.agent)) endef ################################################################################ diff -r 00b704eed6b5 -r b746e382da18 make/common/NativeCompilation.gmk --- a/make/common/NativeCompilation.gmk Mon Nov 23 14:41:54 2015 -0500 +++ b/make/common/NativeCompilation.gmk Tue Nov 24 12:18:24 2015 +0100 @@ -294,6 +294,10 @@ # LD the linker to use, default is $(LD) # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST # DISABLED_WARNINGS_ Disable the given warnings for the specified toolchain +# DISABLED_WARNINGS_C_ Disable the given warnings for the specified toolchain +# when compiling C code +# DISABLED_WARNINGS_CXX_ Disable the given warnings for the specified +# toolchain when compiling C++ code # STRIP_SYMBOLS Set to true to strip the final binary if the toolchain allows for it # STRIPFLAGS Optionally change the flags given to the strip command SetupNativeCompilation = $(NamedParamsMacroTemplate) @@ -537,8 +541,12 @@ # Pick up disabled warnings, if possible on this platform. ifneq ($(DISABLE_WARNING_PREFIX),) - $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) - $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) + $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \ + $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \ + $$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE))) + $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \ + $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \ + $$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE))) endif # Check if warnings should be considered errors.