Mercurial > hg > graal-jvmci-8
annotate make/defs.make @ 2368:dde920245681
6896099: Integrate CMS heap ergo with default heap sizing ergo
6627787: CMS: JVM refuses to start up with -Xms16m -Xmx16m
7000125: CMS: Anti-monotone young gen sizing with respect to maximum whole heap size specification
7027529: CMS: retire CMSUseOldDefaults flag
Summary: Simplify CMS heap sizing code, relying on ergonomic initial sizing consistent with other collectors for the most part, controlling only young gen sizing to rein in pause times. Make CMS young gen sizing default statically cpu-dependant. Remove inconsistencies wrt generation sizing and policy code, allowing for the fixing for 6627787 and 7000125. For 7027529, retire the flag CMSUseOldDefaults which had been introduced as a bridge from JDK 5 to JDK 6 a number of years ago.
Reviewed-by: brutisso, poonam
author | ysr |
---|---|
date | Wed, 16 Mar 2011 10:37:08 -0700 |
parents | b76d12f4ab2d |
children | f08d439fab8c |
rev | line source |
---|---|
0 | 1 # |
2237
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
2 # Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. |
0 | 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 # | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1185
diff
changeset
|
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1185
diff
changeset
|
20 # or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1185
diff
changeset
|
21 # questions. |
0 | 22 # |
23 # | |
24 | |
25 # The common definitions for hotspot builds. | |
26 | |
27 # Default to verbose build logs (show all compile lines): | |
28 MAKE_VERBOSE=y | |
29 | |
30 # Make macros for install files or preparing targets | |
31 CD=cd | |
32 CP=cp | |
33 ECHO=echo | |
34 GREP=grep | |
35 MKDIR=mkdir | |
36 MV=mv | |
37 PWD=pwd | |
38 RM=rm -f | |
39 SED=sed | |
40 TAR=tar | |
41 ZIPEXE=zip | |
42 | |
43 define install-file | |
44 @$(MKDIR) -p $(@D) | |
45 @$(RM) $@ | |
46 $(CP) $< $@ | |
47 endef | |
48 define prep-target | |
49 @$(MKDIR) -p $(@D) | |
50 @$(RM) $@ | |
51 endef | |
52 | |
53 # Directory paths and user name | |
54 # Unless GAMMADIR is set on the command line, search upward from | |
55 # the current directory for a parent directory containing "src/share/vm". | |
56 # If that fails, look for $GAMMADIR in the environment. | |
57 # When the tree of subdirs is built, this setting is stored in each flags.make. | |
58 GAMMADIR := $(shell until ([ -d dev ]&&echo $${GAMMADIR:-/GAMMADIR/}) || ([ -d src/share/vm ]&&pwd); do cd ..; done) | |
59 HS_SRC_DIR=$(GAMMADIR)/src | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
60 HS_MAKE_DIR=$(GAMMADIR)/make |
0 | 61 HS_BUILD_DIR=$(GAMMADIR)/build |
62 | |
63 ifeq ($(USER),) | |
64 USER=$(USERNAME) | |
65 endif | |
66 | |
67 # hotspot version definitions | |
68 include $(GAMMADIR)/make/hotspot_version | |
69 | |
70 # Java versions needed | |
71 ifeq ($(PREVIOUS_JDK_VERSION),) | |
72 PREVIOUS_JDK_VERSION=$(JDK_PREVIOUS_VERSION) | |
73 endif | |
74 ifeq ($(JDK_MAJOR_VERSION),) | |
75 JDK_MAJOR_VERSION=$(JDK_MAJOR_VER) | |
76 endif | |
77 ifeq ($(JDK_MINOR_VERSION),) | |
78 JDK_MINOR_VERSION=$(JDK_MINOR_VER) | |
79 endif | |
80 ifeq ($(JDK_MICRO_VERSION),) | |
81 JDK_MICRO_VERSION=$(JDK_MICRO_VER) | |
82 endif | |
83 ifeq ($(JDK_MKTG_VERSION),) | |
84 JDK_MKTG_VERSION=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION) | |
85 endif | |
86 ifeq ($(JDK_VERSION),) | |
87 JDK_VERSION=$(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION) | |
88 endif | |
89 ifeq ($(FULL_VERSION),) | |
90 FULL_VERSION="$(JDK_VERSION)" | |
91 endif | |
92 | |
93 # FULL_VERSION is only used to define JRE_RELEASE_VERSION which is used | |
94 # as JRE version in VM -Xinternalversion output. | |
95 ifndef JRE_RELEASE_VERSION | |
96 JRE_RELEASE_VERSION=$(FULL_VERSION) | |
97 endif | |
98 | |
99 ifndef HOTSPOT_RELEASE_VERSION | |
100 HOTSPOT_RELEASE_VERSION=$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER) | |
101 endif | |
102 | |
103 ifdef HOTSPOT_BUILD_VERSION | |
1977
c7db7adb83b4
6987107: Add variable to add to but not modify non-fcs version string
ohair
parents:
1681
diff
changeset
|
104 # specified in command line |
0 | 105 else |
1977
c7db7adb83b4
6987107: Add variable to add to but not modify non-fcs version string
ohair
parents:
1681
diff
changeset
|
106 ifdef COOKED_BUILD_NUMBER |
c7db7adb83b4
6987107: Add variable to add to but not modify non-fcs version string
ohair
parents:
1681
diff
changeset
|
107 # JRE build |
c7db7adb83b4
6987107: Add variable to add to but not modify non-fcs version string
ohair
parents:
1681
diff
changeset
|
108 HOTSPOT_BUILD_VERSION= |
0 | 109 else |
1977
c7db7adb83b4
6987107: Add variable to add to but not modify non-fcs version string
ohair
parents:
1681
diff
changeset
|
110 ifdef USER_RELEASE_SUFFIX |
c7db7adb83b4
6987107: Add variable to add to but not modify non-fcs version string
ohair
parents:
1681
diff
changeset
|
111 HOTSPOT_BUILD_VERSION=internal-$(USER_RELEASE_SUFFIX) |
0 | 112 else |
113 HOTSPOT_BUILD_VERSION=internal | |
114 endif | |
115 endif | |
116 endif | |
117 | |
118 # Windows should have OS predefined | |
119 ifeq ($(OS),) | |
120 OS := $(shell uname -s) | |
121 HOST := $(shell uname -n) | |
122 endif | |
123 | |
124 # If not SunOS and not Linux, assume Windows | |
125 ifneq ($(OS), Linux) | |
126 ifneq ($(OS), SunOS) | |
127 OSNAME=windows | |
128 else | |
129 OSNAME=solaris | |
130 endif | |
131 else | |
132 OSNAME=linux | |
133 endif | |
134 | |
135 # Determinations of default make arguments and platform specific settings | |
136 MAKE_ARGS= | |
137 | |
138 # ARCH_DATA_MODEL==64 is equivalent to LP64=1 | |
139 ifeq ($(ARCH_DATA_MODEL), 64) | |
140 ifndef LP64 | |
141 LP64 := 1 | |
142 endif | |
143 endif | |
144 | |
145 # Defaults set for product build | |
146 EXPORT_SUBDIR= | |
147 | |
148 # Change default /java path if requested | |
149 ifneq ($(ALT_SLASH_JAVA),) | |
150 SLASH_JAVA=$(ALT_SLASH_JAVA) | |
151 endif | |
152 | |
153 # Default OUTPUTDIR | |
154 OUTPUTDIR=$(HS_BUILD_DIR)/$(OSNAME) | |
155 ifneq ($(ALT_OUTPUTDIR),) | |
156 OUTPUTDIR=$(ALT_OUTPUTDIR) | |
157 endif | |
158 | |
159 # Find latest promoted JDK area | |
160 JDK_IMPORT_PATH=$(SLASH_JAVA)/re/j2se/$(JDK_VERSION)/promoted/latest/binaries/$(PLATFORM) | |
161 ifneq ($(ALT_JDK_IMPORT_PATH),) | |
162 JDK_IMPORT_PATH=$(ALT_JDK_IMPORT_PATH) | |
163 endif | |
164 | |
2237
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
165 # Other parts of JDK build may require an import JDK that can be executed |
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
166 # on the build host. For cross-compile builds we also need an import JDK |
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
167 # that matches the target arch, so for that we set ALT_JDK_TARGET_IMPORT_PATH |
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
168 ifneq ($(ALT_JDK_TARGET_IMPORT_PATH),) |
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
169 JDK_IMPORT_PATH=$(ALT_JDK_TARGET_IMPORT_PATH) |
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
170 endif |
b76d12f4ab2d
7018429: JPRT: Update Makefile to use ALT_JDK_TARGET_IMPORT_PATH for copying JDK
dholmes
parents:
1977
diff
changeset
|
171 |
0 | 172 # Find JDK used for javac compiles |
173 BOOTDIR=$(SLASH_JAVA)/re/j2se/$(PREVIOUS_JDK_VERSION)/latest/binaries/$(PLATFORM) | |
174 ifneq ($(ALT_BOOTDIR),) | |
175 BOOTDIR=$(ALT_BOOTDIR) | |
176 endif | |
177 | |
178 # The platform dependent defs.make defines platform specific variable such | |
179 # as ARCH, EXPORT_LIST etc. We must place the include here after BOOTDIR is defined. | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
180 include $(GAMMADIR)/make/$(OSNAME)/makefiles/defs.make |
0 | 181 |
182 # We are trying to put platform specific defintions | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
183 # files to make/$(OSNAME)/makefiles dictory. However |
0 | 184 # some definitions are common for both linux and solaris, |
185 # so we put them here. | |
186 ifneq ($(OSNAME),windows) | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
187 ABS_OUTPUTDIR := $(shell mkdir -p $(OUTPUTDIR); $(CD) $(OUTPUTDIR); $(PWD)) |
0 | 188 ABS_BOOTDIR := $(shell $(CD) $(BOOTDIR); $(PWD)) |
189 ABS_GAMMADIR := $(shell $(CD) $(GAMMADIR); $(PWD)) | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
190 ABS_OS_MAKEFILE := $(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME); $(PWD))/Makefile |
0 | 191 |
192 # uname, HotSpot source directory, build directory and JDK use different names | |
193 # for CPU architectures. | |
194 # ARCH - uname output | |
195 # SRCARCH - where to find HotSpot cpu and os_cpu source files | |
196 # BUILDARCH - build directory | |
197 # LIBARCH - directory name in JDK/JRE | |
198 | |
199 # Use uname output for SRCARCH, but deal with platform differences. If ARCH | |
200 # is not explicitly listed below, it is treated as x86. | |
1681
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
201 SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc zero,$(ARCH))) |
0 | 202 ARCH/ = x86 |
203 ARCH/sparc = sparc | |
204 ARCH/sparc64= sparc | |
205 ARCH/ia64 = ia64 | |
206 ARCH/amd64 = x86 | |
207 ARCH/x86_64 = x86 | |
1681
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
208 ARCH/ppc64 = ppc |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
209 ARCH/ppc = ppc |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
210 ARCH/arm = arm |
1010 | 211 ARCH/zero = zero |
0 | 212 |
213 # BUILDARCH is usually the same as SRCARCH, except for sparcv9 | |
214 BUILDARCH = $(SRCARCH) | |
215 ifeq ($(BUILDARCH), x86) | |
216 ifdef LP64 | |
217 BUILDARCH = amd64 | |
218 else | |
219 BUILDARCH = i486 | |
220 endif | |
221 endif | |
222 ifeq ($(BUILDARCH), sparc) | |
223 ifdef LP64 | |
224 BUILDARCH = sparcv9 | |
225 endif | |
226 endif | |
227 | |
228 # LIBARCH is 1:1 mapping from BUILDARCH | |
229 LIBARCH = $(LIBARCH/$(BUILDARCH)) | |
230 LIBARCH/i486 = i386 | |
231 LIBARCH/amd64 = amd64 | |
232 LIBARCH/sparc = sparc | |
233 LIBARCH/sparcv9 = sparcv9 | |
234 LIBARCH/ia64 = ia64 | |
1681
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
235 LIBARCH/ppc64 = ppc |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
236 LIBARCH/ppc = ppc |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
237 LIBARCH/arm = arm |
1010 | 238 LIBARCH/zero = $(ZERO_LIBARCH) |
0 | 239 |
1010 | 240 LP64_ARCH = sparcv9 amd64 ia64 zero |
0 | 241 endif |
242 | |
243 # Required make macro settings for all platforms | |
244 MAKE_ARGS += JAVA_HOME=$(ABS_BOOTDIR) | |
228
f232d7d67023
6717128: Using relative path for ALT_OUTPUTDIR does not work properly
xlu
parents:
198
diff
changeset
|
245 MAKE_ARGS += OUTPUTDIR=$(ABS_OUTPUTDIR) |
0 | 246 MAKE_ARGS += GAMMADIR=$(ABS_GAMMADIR) |
247 MAKE_ARGS += MAKE_VERBOSE=$(MAKE_VERBOSE) | |
248 MAKE_ARGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) | |
249 MAKE_ARGS += JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) | |
250 | |
251 # Pass HOTSPOT_BUILD_VERSION as argument to OS specific Makefile | |
252 # to overwrite the default definition since OS specific Makefile also | |
253 # includes this make/defs.make file. | |
254 MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) | |
255 | |
256 # Select name of export directory | |
257 EXPORT_PATH=$(OUTPUTDIR)/export-$(PLATFORM)$(EXPORT_SUBDIR) | |
258 ifneq ($(ALT_EXPORT_PATH),) | |
259 EXPORT_PATH=$(ALT_EXPORT_PATH) | |
260 endif | |
261 | |
262 # Default jdk image if one is created for you with create_jdk | |
263 JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-$(PLATFORM) | |
264 | |
265 # Various export sub directories | |
266 EXPORT_INCLUDE_DIR = $(EXPORT_PATH)/include | |
267 EXPORT_DOCS_DIR = $(EXPORT_PATH)/docs | |
268 EXPORT_LIB_DIR = $(EXPORT_PATH)/lib | |
269 EXPORT_JRE_DIR = $(EXPORT_PATH)/jre | |
270 EXPORT_JRE_BIN_DIR = $(EXPORT_JRE_DIR)/bin | |
271 EXPORT_JRE_LIB_DIR = $(EXPORT_JRE_DIR)/lib | |
272 EXPORT_JRE_LIB_ARCH_DIR = $(EXPORT_JRE_LIB_DIR)/$(LIBARCH) | |
273 | |
274 # Common export list of files | |
275 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jvmti.h | |
1184
7fbf850d87b7
6580131: 3/4 CompiledMethodLoad events don't produce the expected extra notifications to describe inlining
dcubed
parents:
235
diff
changeset
|
276 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jvmticmlr.h |
0 | 277 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jni.h |
278 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h | |
279 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jmm.h |