|
1 | 1 | # |
2 | | -# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. |
| 2 | +# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. |
3 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 | 4 | # |
5 | 5 | # This code is free software; you can redistribute it and/or modify it |
@@ -114,67 +114,66 @@ $(eval $(call SetupExecute, jlink_jre, \ |
114 | 114 |
|
115 | 115 | JLINK_JRE_TARGETS := $(jlink_jre) |
116 | 116 |
|
117 | | -ifeq ($(BUILD_CDS_ARCHIVE), true) |
| 117 | +# Optimize CDS shared heap for small heap sizes, which are typically used |
| 118 | +# for small cloud-based apps that have the most critical start-up requirement. |
| 119 | +# The trade-off is that when larger heap sizes are used, the shared heap |
| 120 | +# may need to be relocated at runtime. |
| 121 | +CDS_DUMP_FLAGS = -Xmx128M -Xms128M |
| 122 | + |
| 123 | +# Helper function for creating the CDS archives for the JDK and JRE |
| 124 | +# |
| 125 | +# Param1 - VM variant (e.g., server, client, zero, ...) |
| 126 | +# Param2 - _nocoops, or empty |
| 127 | +define CreateCDSArchive |
| 128 | + $1_$2_DUMP_EXTRA_ARG := $(if $(filter _nocoops, $2),-XX:-UseCompressedOops,) |
| 129 | + $1_$2_DUMP_TYPE := $(if $(filter _nocoops, $2),-NOCOOPS,) |
| 130 | + |
| 131 | + # Only G1 supports dumping the shared heap, so explicitly use G1 if the JVM supports it. |
| 132 | + $1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)),-XX:+UseG1GC) |
| 133 | + |
118 | 134 | ifeq ($(OPENJDK_TARGET_OS), windows) |
119 | | - CDS_ARCHIVE := bin/server/classes.jsa |
120 | | - CDS_NOCOOPS_ARCHIVE := bin/server/classes_nocoops.jsa |
| 135 | + $1_$2_CDS_ARCHIVE := bin/$1/classes$2.jsa |
121 | 136 | else |
122 | | - CDS_ARCHIVE := lib/server/classes.jsa |
123 | | - CDS_NOCOOPS_ARCHIVE := lib/server/classes_nocoops.jsa |
| 137 | + $1_$2_CDS_ARCHIVE := lib/$1/classes$2.jsa |
124 | 138 | endif |
125 | 139 |
|
126 | | - $(eval $(call SetupExecute, gen_cds_archive_jdk, \ |
127 | | - WARN := Creating CDS archive for jdk image, \ |
128 | | - DEPS := $(jlink_jdk), \ |
129 | | - OUTPUT_FILE := $(JDK_IMAGE_DIR)/$(CDS_ARCHIVE), \ |
130 | | - SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jdk, \ |
131 | | - COMMAND := $(FIXPATH) $(JDK_IMAGE_DIR)/bin/java -Xshare:dump \ |
132 | | - -XX:SharedArchiveFile=$(JDK_IMAGE_DIR)/$(CDS_ARCHIVE) \ |
133 | | - -Xmx128M -Xms128M $(LOG_INFO), \ |
| 140 | + $$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jdk, \ |
| 141 | + WARN := Creating CDS$$($1_$2_DUMP_TYPE) archive for jdk image for $1, \ |
| 142 | + INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \ |
| 143 | + DEPS := $$(jlink_jdk), \ |
| 144 | + OUTPUT_FILE := $$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \ |
| 145 | + SUPPORT_DIR := $$(SUPPORT_OUTPUTDIR)/images/jdk, \ |
| 146 | + COMMAND := $$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java -Xshare:dump \ |
| 147 | + -XX:SharedArchiveFile=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \ |
| 148 | + -$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \ |
134 | 149 | )) |
135 | 150 |
|
136 | | - JDK_TARGETS += $(gen_cds_archive_jdk) |
137 | | - |
138 | | - $(eval $(call SetupExecute, gen_cds_archive_jre, \ |
139 | | - WARN := Creating CDS archive for jre image, \ |
140 | | - DEPS := $(jlink_jre), \ |
141 | | - OUTPUT_FILE := $(JRE_IMAGE_DIR)/$(CDS_ARCHIVE), \ |
142 | | - SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jre, \ |
143 | | - COMMAND := $(FIXPATH) $(JRE_IMAGE_DIR)/bin/java -Xshare:dump \ |
144 | | - -XX:SharedArchiveFile=$(JRE_IMAGE_DIR)/$(CDS_ARCHIVE) \ |
145 | | - -Xmx128M -Xms128M $(LOG_INFO), \ |
| 151 | + JDK_TARGETS += $$($1_$2_gen_cds_archive_jdk) |
| 152 | + |
| 153 | + $$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jre, \ |
| 154 | + WARN := Creating CDS$$($1_$2_DUMP_TYPE) archive for jre image for $1, \ |
| 155 | + INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \ |
| 156 | + DEPS := $$(jlink_jre), \ |
| 157 | + OUTPUT_FILE := $$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \ |
| 158 | + SUPPORT_DIR := $$(SUPPORT_OUTPUTDIR)/images/jre, \ |
| 159 | + COMMAND := $$(FIXPATH) $$(JRE_IMAGE_DIR)/bin/java -Xshare:dump \ |
| 160 | + -XX:SharedArchiveFile=$$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \ |
| 161 | + -$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \ |
146 | 162 | )) |
147 | 163 |
|
148 | | - JRE_TARGETS += $(gen_cds_archive_jre) |
| 164 | + JRE_TARGETS += $$($1_$2_gen_cds_archive_jre) |
| 165 | +endef |
| 166 | + |
| 167 | +ifeq ($(BUILD_CDS_ARCHIVE), true) |
| 168 | + $(foreach v, $(JVM_VARIANTS), \ |
| 169 | + $(eval $(call CreateCDSArchive,$v,)) \ |
| 170 | + ) |
149 | 171 |
|
150 | 172 | ifeq ($(call isTargetCpuBits, 64), true) |
151 | | - $(eval $(call SetupExecute, gen_cds_nocoops_archive_jdk, \ |
152 | | - WARN := Creating CDS-NOCOOPS archive for jdk image, \ |
153 | | - DEPS := $(jlink_jdk), \ |
154 | | - OUTPUT_FILE := $(JDK_IMAGE_DIR)/$(CDS_NOCOOPS_ARCHIVE), \ |
155 | | - SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jdk, \ |
156 | | - COMMAND := $(FIXPATH) $(JDK_IMAGE_DIR)/bin/java -Xshare:dump \ |
157 | | - -XX:SharedArchiveFile=$(JDK_IMAGE_DIR)/$(CDS_NOCOOPS_ARCHIVE) \ |
158 | | - -XX:-UseCompressedOops \ |
159 | | - -Xmx128M -Xms128M $(LOG_INFO), \ |
160 | | - )) |
161 | | - |
162 | | - JDK_TARGETS += $(gen_cds_nocoops_archive_jdk) |
163 | | - |
164 | | - $(eval $(call SetupExecute, gen_cds_nocoops_archive_jre, \ |
165 | | - WARN := Creating CDS-NOCOOPS archive for jre image, \ |
166 | | - DEPS := $(jlink_jre), \ |
167 | | - OUTPUT_FILE := $(JRE_IMAGE_DIR)/$(CDS_NOCOOPS_ARCHIVE), \ |
168 | | - SUPPORT_DIR := $(SUPPORT_OUTPUTDIR)/images/jre, \ |
169 | | - COMMAND := $(FIXPATH) $(JRE_IMAGE_DIR)/bin/java -Xshare:dump \ |
170 | | - -XX:SharedArchiveFile=$(JRE_IMAGE_DIR)/$(CDS_NOCOOPS_ARCHIVE) \ |
171 | | - -XX:-UseCompressedOops \ |
172 | | - -Xmx128M -Xms128M $(LOG_INFO), \ |
173 | | - )) |
174 | | - |
175 | | - JRE_TARGETS += $(gen_cds_nocoops_archive_jre) |
| 173 | + $(foreach v, $(JVM_VARIANTS), \ |
| 174 | + $(eval $(call CreateCDSArchive,$v,_nocoops)) \ |
| 175 | + ) |
176 | 176 | endif |
177 | | - |
178 | 177 | endif |
179 | 178 |
|
180 | 179 | ################################################################################ |
|
0 commit comments