Wed, 11 Jan 2012 17:34:02 -0500
7115199: Add event tracing hooks and Java Flight Recorder infrastructure
Summary: Added a nop tracing infrastructure, JFR makefile changes and other infrastructure used only by JFR.
Reviewed-by: acorn, sspitsyn
Contributed-by: markus.gronlund@oracle.com
1 #
2 # Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation.
8 #
9 # This code is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 # version 2 for more details (a copy is included in the LICENSE file that
13 # accompanied this code).
14 #
15 # You should have received a copy of the GNU General Public License version
16 # 2 along with this work; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 #
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 # or visit www.oracle.com if you need additional information or have any
21 # questions.
22 #
23 #
25 !include $(WorkSpace)/make/windows/makefiles/rules.make
27 # This is used externally by both batch and IDE builds, so can't
28 # reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE,
29 # HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables.
31 ProjectCreatorSources=\
32 $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTree.java \
33 $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTreeNode.java \
34 $(WorkSpace)\src\share\tools\ProjectCreator\FileFormatException.java \
35 $(WorkSpace)\src\share\tools\ProjectCreator\ProjectCreator.java \
36 $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatform.java \
37 $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC6.java \
38 $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC7.java \
39 $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC8.java \
40 $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC9.java \
41 $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC10.java \
42 $(WorkSpace)\src\share\tools\ProjectCreator\Util.java \
43 $(WorkSpace)\src\share\tools\ProjectCreator\BuildConfig.java \
44 $(WorkSpace)\src\share\tools\ProjectCreator\ArgsParser.java
46 # This is only used internally
47 ProjectCreatorIncludesPRIVATE=\
48 -relativeInclude src\closed\share\vm \
49 -relativeInclude src\closed\os\windows\vm \
50 -relativeInclude src\closed\os_cpu\windows_$(Platform_arch)\vm \
51 -relativeInclude src\closed\cpu\$(Platform_arch)\vm \
52 -relativeInclude src\share\vm \
53 -relativeInclude src\share\vm\precompiled \
54 -relativeInclude src\share\vm\prims \
55 -relativeInclude src\os\windows\vm \
56 -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \
57 -relativeInclude src\cpu\$(Platform_arch)\vm \
58 -absoluteInclude $(HOTSPOTBUILDSPACE)/%f/generated \
59 -ignorePath $(HOTSPOTBUILDSPACE)/%f/generated \
60 -ignorePath src\share\vm\adlc \
61 -ignorePath src\share\vm\shark \
62 -ignorePath posix
64 # This is referenced externally by both the IDE and batch builds
65 ProjectCreatorOptions=
67 # This is used externally, but only by the IDE builds, so we can
68 # reference environment variables which aren't defined in the batch
69 # build process.
71 ProjectCreatorIDEOptions = \
72 -useToGeneratePch java.cpp \
73 -disablePch os_windows.cpp \
74 -disablePch os_windows_$(Platform_arch).cpp \
75 -disablePch osThread_windows.cpp \
76 -disablePch bytecodeInterpreter.cpp \
77 -disablePch bytecodeInterpreterWithChecks.cpp \
78 -disablePch getThread_windows_$(Platform_arch).cpp \
79 -disablePch_compiler2 opcodes.cpp
81 # Common options for the IDE builds for core, c1, and c2
82 ProjectCreatorIDEOptions=\
83 $(ProjectCreatorIDEOptions) \
84 -sourceBase $(HOTSPOTWORKSPACE) \
85 -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \
86 -startAt src \
87 -compiler $(VcVersion) \
88 -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \
89 -jdkTargetRoot $(HOTSPOTJDKDIST) \
90 -define ALIGN_STACK_FRAMES \
91 -define VM_LITTLE_ENDIAN \
92 -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) set JAVA_HOME=$(HOTSPOTJDKDIST) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \
93 -postbuild "" "Building hotspot.exe..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) nmake -f $(HOTSPOTWORKSPACE)\make\windows\projectfiles\common\Makefile LOCAL_MAKE=$(HOTSPOTBUILDSPACE)\%f\local.make JAVA_HOME=$(HOTSPOTJDKDIST) launcher" \
94 -ignoreFile jsig.c \
95 -ignoreFile jvmtiEnvRecommended.cpp \
96 -ignoreFile jvmtiEnvStub.cpp \
97 -ignoreFile globalDefinitions_gcc.hpp \
98 -ignoreFile globalDefinitions_sparcWorks.hpp \
99 -ignoreFile version.rc \
100 -ignoreFile Xusage.txt \
101 -define TARGET_ARCH_x86 \
102 -define TARGET_OS_ARCH_windows_x86 \
103 -define TARGET_OS_FAMILY_windows \
104 -define TARGET_COMPILER_visCPP \
105 $(ProjectCreatorIncludesPRIVATE)
107 # Add in build-specific options
108 !if "$(BUILDARCH)" == "i486"
109 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
110 -platformName Win32 \
111 -define IA32 \
112 -ignorePath x86_64 \
113 -define TARGET_ARCH_MODEL_x86_32
114 !else
115 !if "$(BUILDARCH)" == "amd64"
116 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
117 -platformName x64 \
118 -define AMD64 \
119 -define _LP64 \
120 -ignorePath x86_32 \
121 -define TARGET_ARCH_MODEL_x86_64 \
122 -define TARGET_OS_ARCH_MODEL_windows_x86_64
123 !endif
124 !endif
126 ProjectCreatorIDEOptionsIgnoreCompiler1=\
127 -ignorePath_TARGET c1_
129 ProjectCreatorIDEOptionsIgnoreCompiler2=\
130 -ignorePath_TARGET src/share/vm/opto \
131 -ignorePath_TARGET src/share/vm/libadt \
132 -ignorePath_TARGET adfiles \
133 -ignoreFile_TARGET bcEscapeAnalyzer.cpp \
134 -ignoreFile_TARGET bcEscapeAnalyzer.hpp \
135 -ignorePath_TARGET chaitin \
136 -ignorePath_TARGET c2_ \
137 -ignorePath_TARGET runtime_ \
138 -ignoreFile_TARGET ciTypeFlow.cpp \
139 -ignoreFile_TARGET ciTypeFlow.hpp \
140 -ignoreFile_TARGET $(Platform_arch_model).ad
142 ##################################################
143 # Without compiler(core) specific options
144 ##################################################
145 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
146 $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \
147 $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core)
149 ##################################################
150 # JKERNEL specific options
151 ##################################################
152 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
153 -define_kernel KERNEL \
154 $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \
155 -ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \
156 -ignorePath_kernel src/share/vm/gc_implementation/parNew \
157 -ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \
158 -ignorePath_kernel src/share/vm/gc_implementation/g1 \
159 -ignoreFile_kernel attachListener.cpp \
160 -ignoreFile_kernel attachListener_windows.cpp \
161 -ignoreFile_kernel dump.cpp \
162 -ignoreFile_kernel dump_$(Platform_arch_model).cpp \
163 -ignoreFile_kernel forte.cpp \
164 -ignoreFile_kernel fprofiler.cpp \
165 -ignoreFile_kernel heapDumper.cpp \
166 -ignoreFile_kernel heapInspection.cpp \
167 -ignoreFile_kernel jniCheck.cpp \
168 -ignoreFile_kernel jvmtiCodeBlobEvents.cpp \
169 -ignoreFile_kernel jvmtiExtensions.cpp \
170 -ignoreFile_kernel jvmtiImpl.cpp \
171 -ignoreFile_kernel jvmtiRawMonitor.cpp \
172 -ignoreFile_kernel jvmtiTagMap.cpp \
173 -ignoreFile_kernel jvmtiTrace.cpp \
174 -ignoreFile_kernel jvmtiTrace.hpp \
175 -ignoreFile_kernel restore.cpp \
176 -ignoreFile_kernel serialize.cpp \
177 -ignoreFile_kernel vmStructs.cpp \
178 -ignoreFile_kernel g1MemoryPool.cpp \
179 -ignoreFile_kernel g1MemoryPool.hpp \
180 -ignoreFile_kernel psMemoryPool.cpp \
181 -ignoreFile_kernel psMemoryPool.hpp \
182 -ignoreFile_kernel gcAdaptivePolicyCounters.cpp \
183 -ignoreFile_kernel concurrentGCThread.cpp \
184 -ignoreFile_kernel mutableNUMASpace.cpp \
185 -ignoreFile_kernel ciTypeFlow.cpp \
186 -ignoreFile_kernel ciTypeFlow.hpp \
187 -ignoreFile_kernel oop.pcgc.inline.hpp \
188 -ignoreFile_kernel oop.psgc.inline.hpp \
189 -ignoreFile_kernel allocationStats.cpp \
190 -ignoreFile_kernel allocationStats.hpp \
191 -ignoreFile_kernel concurrentGCThread.hpp \
192 -ignoreFile_kernel gSpaceCounters.cpp \
193 -ignoreFile_kernel gSpaceCounters.hpp \
194 -ignoreFile_kernel gcAdaptivePolicyCounters.hpp \
195 -ignoreFile_kernel immutableSpace.cpp \
196 -ignoreFile_kernel mutableNUMASpace.hpp \
197 -ignoreFile_kernel mutableSpace.cpp \
198 -ignoreFile_kernel spaceCounters.cpp \
199 -ignoreFile_kernel spaceCounters.hpp \
200 -ignoreFile_kernel yieldingWorkgroup.cpp \
201 -ignoreFile_kernel yieldingWorkgroup.hpp \
202 -ignorePath_kernel vmStructs_ \
203 -ignoreFile_kernel $(Platform_arch_model).ad \
204 -additionalFile_kernel gcTaskManager.hpp
206 ##################################################
207 # Client(C1) compiler specific options
208 ##################################################
209 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
210 -define_compiler1 COMPILER1 \
211 $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
213 ##################################################
214 # Server(C2) compiler specific options
215 ##################################################
216 #NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
217 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
218 -define_compiler2 COMPILER2 \
219 -additionalFile_compiler2 $(Platform_arch_model).ad \
220 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).cpp \
221 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).hpp \
222 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_clone.cpp \
223 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_expand.cpp \
224 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_format.cpp \
225 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_gen.cpp \
226 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_misc.cpp \
227 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_peephole.cpp \
228 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_pipeline.cpp \
229 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles adGlobals_$(Platform_arch_model).hpp \
230 -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles dfa_$(Platform_arch_model).cpp \
231 $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=compiler2)
233 # Add in the jvmti (JSR-163) options
234 # NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated
235 # so the programmer can diff it with jvmtiEnv.cpp to be sure the
236 # code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java).
237 # If so, they would then check it in as a new version of jvmtiEnv.cpp.
238 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
239 -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnv.hpp \
240 -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnter.cpp \
241 -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnterTrace.cpp \
242 -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmti.h \
243 -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles bytecodeInterpreterWithChecks.cpp