< prev index next >

make/hotspot/gensrc/GensrcDtrace.gmk

Print this page

        

*** 52,57 **** --- 52,109 ---- # Process all .d files in DTRACE_SOURCE_DIR. They are: # hotspot_jni.d hotspot.d hs_private.d TARGETS += $(patsubst $(DTRACE_SOURCE_DIR)/%.d, \ $(DTRACE_GENSRC_DIR)/%.h, $(wildcard $(DTRACE_SOURCE_DIR)/*.d)) + ifeq ($(OPENJDK_TARGET_OS), solaris) + ############################################################################ + # First we need to generate the dtraceGenOffsets tool. When run, this will + # produce two header files and a C++ file. Note that generateJvmOffsets.cpp + # is using the same JVM_CFLAGS as libjvm.so. + + # Include support files that will setup JVM compiler flags. + include lib/JvmFeatures.gmk + include lib/JvmFlags.gmk + + # We cannot compile until the JVMTI gensrc has finished + JVMTI_H := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jvmtifiles/jvmti.h + + $(eval $(call SetupNativeCompilation, BUILD_DTRACE_GEN_OFFSETS, \ + NAME := dtraceGenOffsets, \ + TYPE := EXECUTABLE, \ + SRC := $(TOPDIR)/make/hotspot/src/native/dtrace, \ + TOOLCHAIN := $(TOOLCHAIN_BUILD), \ + LDFLAGS := -m64, \ + CFLAGS := -m64 $(JVM_CFLAGS), \ + EXTRA_DEPS := $(JVMTI_H), \ + OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets/objs, \ + OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets, \ + )) + + DTRACE_GEN_OFFSETS_TOOL := $(BUILD_DTRACE_GEN_OFFSETS_TARGET) + + # Argument 1: Output filename + # Argument 2: dtrace-gen-offset tool command line option + define SetupDtraceOffsetsGeneration + $1: $$(BUILD_DTRACE_GEN_OFFSETS) + $$(call LogInfo, Generating dtrace $2 file $$(@F)) + $$(call MakeDir, $$(@D)) + $$(call ExecuteWithLog, $$@, ( $$(DTRACE_GEN_OFFSETS_TOOL) -$$(strip $2) > $$@ ) ) + + TARGETS += $1 + endef + + JVM_OFFSETS_H := $(DTRACE_GENSRC_DIR)/JvmOffsets.h + JVM_OFFSETS_CPP := $(DTRACE_GENSRC_DIR)/JvmOffsets.cpp + JVM_OFFSETS_INDEX_H := $(DTRACE_GENSRC_DIR)/JvmOffsetsIndex.h + + ############################################################################ + # Run the dtrace-gen-offset tool to generate these three files. + # The generated JvmOffsets.cpp is compiled with the rest of libjvm. + # The header files are used by libjvm_db and jhelper.d, respectively. + + $(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_H), header)) + $(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_INDEX_H), index)) + $(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_CPP), table)) + endif + endif
< prev index next >