Tue, 17 Jun 2008 13:08:15 -0700
6714758: hotspot: provide an entry point to the BootStrap Class loader[dholmes,acorn]
Summary: adds JVM_FindClassFromBootLoader entry point, for jdk's use
Reviewed-by: dholmes, acorn
1 #
2 # Copyright 1997-2007 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 # CA 95054 USA or visit www.sun.com if you need additional information or
21 # have any questions.
22 #
23 #
25 # Resource file containing VERSIONINFO
26 Res_Files=.\version.res
28 !ifdef RELEASE
29 !ifdef DEVELOP
30 CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG"
31 !else
32 CPP_FLAGS=$(CPP_FLAGS) /D "PRODUCT"
33 !endif
34 !else
35 CPP_FLAGS=$(CPP_FLAGS) /D "ASSERT"
36 !endif
38 !if "$(Variant)" == "core"
39 # No need to define anything, CORE is defined as !COMPILER1 && !COMPILER2
40 !endif
42 !if "$(Variant)" == "kernel"
43 CPP_FLAGS=$(CPP_FLAGS) /D "KERNEL"
44 !endif
46 !if "$(Variant)" == "compiler1"
47 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1"
48 !endif
50 !if "$(Variant)" == "compiler2"
51 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER2"
52 !endif
54 !if "$(Variant)" == "tiered"
55 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1" /D "COMPILER2"
56 !endif
58 # The following variables are defined in the generated local.make file.
59 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
60 CPP_FLAGS=$(CPP_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
61 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(BUILDARCH)\""
62 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
63 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
64 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
66 CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS" $(CPP_INCLUDE_DIRS)
68 # Must specify this for sharedRuntimeTrig.cpp
69 CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
71 # Define that so jni.h is on correct side
72 CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_"
74 !if "$(BUILDARCH)" == "ia64"
75 STACK_SIZE="/STACK:1048576,262144"
76 !else
77 STACK_SIZE=
78 !endif
80 !if "$(BUILDARCH)" == "ia64"
81 # AsyncGetCallTrace is not supported on IA64 yet
82 AGCT_EXPORT=
83 !else
84 !if "$(Variant)" == "kernel"
85 AGCT_EXPORT=
86 !else
87 AGCT_EXPORT=/export:AsyncGetCallTrace
88 !endif
89 !endif
91 LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
92 /export:JNI_GetDefaultJavaVMInitArgs \
93 /export:JNI_CreateJavaVM \
94 /export:JVM_FindClassFromBootLoader \
95 /export:JNI_GetCreatedJavaVMs \
96 /export:jio_snprintf \
97 /export:jio_printf \
98 /export:jio_fprintf \
99 /export:jio_vfprintf \
100 /export:jio_vsnprintf \
101 $(AGCT_EXPORT) \
102 /export:JVM_GetVersionInfo \
103 /export:JVM_GetThreadStateNames \
104 /export:JVM_GetThreadStateValues \
105 /export:JVM_InitAgentProperties
107 CPP_INCLUDE_DIRS=\
108 /I "..\generated" \
109 /I "..\generated\jvmtifiles" \
110 /I "$(WorkSpace)\src\share\vm\c1" \
111 /I "$(WorkSpace)\src\share\vm\compiler" \
112 /I "$(WorkSpace)\src\share\vm\code" \
113 /I "$(WorkSpace)\src\share\vm\interpreter" \
114 /I "$(WorkSpace)\src\share\vm\ci" \
115 /I "$(WorkSpace)\src\share\vm\classfile" \
116 /I "$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge"\
117 /I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\
118 /I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\
119 /I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\
120 /I "$(WorkSpace)\src\share\vm\gc_interface"\
121 /I "$(WorkSpace)\src\share\vm\asm" \
122 /I "$(WorkSpace)\src\share\vm\memory" \
123 /I "$(WorkSpace)\src\share\vm\oops" \
124 /I "$(WorkSpace)\src\share\vm\prims" \
125 /I "$(WorkSpace)\src\share\vm\runtime" \
126 /I "$(WorkSpace)\src\share\vm\services" \
127 /I "$(WorkSpace)\src\share\vm\utilities" \
128 /I "$(WorkSpace)\src\share\vm\libadt" \
129 /I "$(WorkSpace)\src\share\vm\opto" \
130 /I "$(WorkSpace)\src\os\windows\vm" \
131 /I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \
132 /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm"
134 CPP_USE_PCH=/Fp"vm.pch" /Yu"incls/_precompiled.incl"
136 # Where to find the source code for the virtual machine
137 VM_PATH=../generated/incls
138 VM_PATH=$(VM_PATH);../generated/jvmtifiles
139 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
140 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
141 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code
142 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter
143 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci
144 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile
145 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge
146 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared
147 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew
148 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep
149 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface
150 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm
151 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory
152 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops
153 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims
154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime
155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services
156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities
157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt
158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm
159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm
160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm
161 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto
163 VM_PATH={$(VM_PATH)}
165 # Special case files not using precompiled header files.
167 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
168 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
170 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
171 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
173 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
174 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
176 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
177 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
179 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
180 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
182 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
183 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
185 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
186 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
188 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
189 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
191 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
192 $(CPP) $(CPP_FLAGS) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
194 # Default rules for the Virtual Machine
195 {$(WorkSpace)\src\share\vm\c1}.cpp.obj::
196 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
198 {$(WorkSpace)\src\share\vm\compiler}.cpp.obj::
199 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
201 {$(WorkSpace)\src\share\vm\code}.cpp.obj::
202 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
204 {$(WorkSpace)\src\share\vm\interpreter}.cpp.obj::
205 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
207 {$(WorkSpace)\src\share\vm\ci}.cpp.obj::
208 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
210 {$(WorkSpace)\src\share\vm\classfile}.cpp.obj::
211 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
213 {$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
214 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
216 {$(WorkSpace)\src\share\vm\gc_implementation\shared}.cpp.obj::
217 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
219 {$(WorkSpace)\src\share\vm\gc_implementation\parNew}.cpp.obj::
220 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
222 {$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
223 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
225 {$(WorkSpace)\src\share\vm\gc_interface}.cpp.obj::
226 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
228 {$(WorkSpace)\src\share\vm\asm}.cpp.obj::
229 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
231 {$(WorkSpace)\src\share\vm\memory}.cpp.obj::
232 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
234 {$(WorkSpace)\src\share\vm\oops}.cpp.obj::
235 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
237 {$(WorkSpace)\src\share\vm\prims}.cpp.obj::
238 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
240 {$(WorkSpace)\src\share\vm\runtime}.cpp.obj::
241 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
243 {$(WorkSpace)\src\share\vm\services}.cpp.obj::
244 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
246 {$(WorkSpace)\src\share\vm\utilities}.cpp.obj::
247 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
249 {$(WorkSpace)\src\share\vm\libadt}.cpp.obj::
250 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
252 {$(WorkSpace)\src\share\vm\opto}.cpp.obj::
253 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
255 {$(WorkSpace)\src\os\windows\vm}.cpp.obj::
256 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
258 # This guy should remain a single colon rule because
259 # otherwise we can't specify the output filename.
260 {$(WorkSpace)\src\os\windows\vm}.rc.res:
261 @$(RC) $(RC_FLAGS) /fo"$@" $<
263 {$(WorkSpace)\src\cpu\$(Platform_arch)\vm}.cpp.obj::
264 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
266 {$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
267 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
269 {..\generated\incls}.cpp.obj::
270 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
272 {..\generated\jvmtifiles}.cpp.obj::
273 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
275 default::
277 _build_pch_file.obj:
278 @echo #include "incls/_precompiled.incl" > ../generated/_build_pch_file.cpp
279 $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"incls/_precompiled.incl" /c ../generated/_build_pch_file.cpp