From 2322723f9141a55dac1be2db6fbe6d21fb4e3783 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Tue, 24 Nov 2015 12:18:24 +0100 Subject: [PATCH] 8142336: Convert the SA agent build to modular build-infra makefiles Reviewed-by: ihse, sla, dsamersoff, twisti --- make/CompileJavaModules.gmk | 28 +++++++++++++++++++++++----- make/Images.gmk | 5 +++-- make/Main.gmk | 8 +------- make/common/Modules.gmk | 14 ++++++++++++-- make/common/NativeCompilation.gmk | 12 ++++++++++-- 5 files changed, 49 insertions(+), 18 deletions(-) diff --git a/make/CompileJavaModules.gmk b/make/CompileJavaModules.gmk index ccba0bc06a1..a662be1fb35 100644 --- a/make/CompileJavaModules.gmk +++ b/make/CompileJavaModules.gmk @@ -361,6 +361,29 @@ jdk.compiler_CLEAN_FILES := $(wildcard \ ################################################################################ +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 @@ define SetupModuleCompilation 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 --git a/make/Images.gmk b/make/Images.gmk index 7653421d590..32ab5c77ba0 100644 --- a/make/Images.gmk +++ b/make/Images.gmk @@ -27,6 +27,7 @@ default: all include $(SPEC) include MakeBase.gmk +include Modules.gmk TOOL_TARGETS := JDK_TARGETS := @@ -64,8 +65,8 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) 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 --git a/make/Main.gmk b/make/Main.gmk index 16fc2836bd9..47fd8d0e285 100644 --- a/make/Main.gmk +++ b/make/Main.gmk @@ -53,8 +53,7 @@ ALL_TARGETS := $(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 @@ else # 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 --git a/make/common/Modules.gmk b/make/common/Modules.gmk index 007634c18cb..c90e505b040 100644 --- a/make/common/Modules.gmk +++ b/make/common/Modules.gmk @@ -29,6 +29,12 @@ _MODULES_GMK := 1 include JavaCompilation.gmk include SetupJavaCompilers.gmk +################################################################################ +# Some platforms don't have the serviceability agent +ifeq ($(INCLUDE_SA), false) + MODULES_FILTER += jdk.hotspot.agent +endif + ################################################################################ # Module list macros @@ -43,21 +49,25 @@ ALL_TOP_SRC_DIRS := \ # # 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 --git a/make/common/NativeCompilation.gmk b/make/common/NativeCompilation.gmk index d5521713448..bf461b3ec0c 100644 --- a/make/common/NativeCompilation.gmk +++ b/make/common/NativeCompilation.gmk @@ -294,6 +294,10 @@ endef # 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 @@ define SetupNativeCompilationBody # 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.