Tue, 27 May 2014 08:44:23 -0700
8038422: CDS test failed: assert((size % os::vm_allocation_granularity()) == 0) failed when limiting SharedMiscDataSize
Summary: In debug version, the assert is against os::vm_allocation_granularity(), but in initialization, we use os::vm_page_size() to align the allocation size. In windows, _vm_page_size and _vm_allocation_granularity may not be same. In debug version, the assert is against os::vm_allocation_granularity(), but in initialization, we use os::vm_page_size() to align the allocation size. In windows, _vm_page_size and _vm_allocation_granularity may not be same.
Reviewed-by: dholmes, iklam, jiangli, coleenp
Contributed-by: yumin.qi@oracle.com
1 #
2 # Copyright (c) 2006, 2014, 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 # macosx universal builds
26 universal_product:
27 $(MAKE) MACOSX_UNIVERSAL=true all_product_universal
28 universal_optimized:
29 $(MAKE) MACOSX_UNIVERSAL=true all_optimized_universal
30 universal_fastdebug:
31 $(MAKE) MACOSX_UNIVERSAL=true all_fastdebug_universal
32 universal_debug:
33 $(MAKE) MACOSX_UNIVERSAL=true all_debug_universal
36 # Universal builds include 1 or more architectures in a single binary
37 all_product_universal:
38 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_PRODUCT_TARGETS)
39 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_PRODUCT_TARGETS)
40 $(QUIETLY) $(MAKE) BUILD_FLAVOR=product EXPORT_SUBDIR= universalize
41 all_optimized_universal:
42 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_OPTIMIZED_TARGETS)
43 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_OPTIMIZED_TARGETS)
44 $(QUIETLY) $(MAKE) BUILD_FLAVOR=optimized EXPORT_SUBDIR=/optimized universalize
45 all_fastdebug_universal:
46 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_FASTDEBUG_TARGETS)
47 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_FASTDEBUG_TARGETS)
48 $(QUIETLY) $(MAKE) BUILD_FLAVOR=fastdebug EXPORT_SUBDIR=/fastdebug universalize
49 all_debug_universal:
50 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_DEBUG_TARGETS)
51 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_DEBUG_TARGETS)
52 $(QUIETLY) $(MAKE) BUILD_FLAVOR=debug EXPORT_SUBDIR=/debug universalize
55 # Consolidate architecture builds into a single Universal binary
56 universalize: $(UNIVERSAL_LIPO_LIST) $(UNIVERSAL_COPY_LIST)
57 $(RM) -r $(EXPORT_PATH)/jre/lib/{i386,amd64}
60 # Package built libraries in a universal binary
61 $(UNIVERSAL_LIPO_LIST):
62 BUILT_LIPO_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) 2>/dev/null`"; \
63 if [ -n "$${BUILT_LIPO_FILES}" ]; then \
64 $(MKDIR) -p $(shell dirname $@); \
65 lipo -create -output $@ $${BUILT_LIPO_FILES}; \
66 fi
69 # Copy built non-universal binaries in place
70 # - copies directories; including empty dirs
71 # - copies files, symlinks, other non-directory files
72 $(UNIVERSAL_COPY_LIST):
73 BUILT_COPY_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) -prune 2>/dev/null`"; \
74 if [ -n "$${BUILT_COPY_FILES}" ]; then \
75 for i in $${BUILT_COPY_FILES}; do \
76 $(MKDIR) -p $(shell dirname $@); \
77 $(CP) -R $${i} $@; \
78 done; \
79 fi
82 # Replace arch specific binaries with universal binaries
83 # Do not touch jre/lib/{client,server}/libjsig.$(LIBRARY_SUFFIX)
84 # That symbolic link belongs to the 'jdk' build.
85 export_universal:
86 $(RM) -r $(EXPORT_PATH)/jre/lib/{i386,amd64}
87 $(RM) -r $(JDK_IMAGE_DIR)/jre/lib/{i386,amd64}
88 ($(CD) $(EXPORT_PATH) && \
89 $(TAR) -cf - *) | \
90 ($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xpf -)
93 # Overlay universal binaries
94 # Do not touch jre/lib/{client,server}/libjsig.$(LIBRARY_SUFFIX)
95 # That symbolic link belongs to the 'jdk' build.
96 copy_universal:
97 $(RM) -r $(JDK_IMAGE_DIR)$(COPY_SUBDIR)/jre/lib/{i386,amd64}
98 ($(CD) $(EXPORT_PATH)$(COPY_SUBDIR) && \
99 $(TAR) -cf - *) | \
100 ($(CD) $(JDK_IMAGE_DIR)$(COPY_SUBDIR) && $(TAR) -xpf -)
103 # Additional processing for universal builds
104 export_product_jdk::
105 $(MAKE) EXPORT_SUBDIR= export_universal
106 export_optimized_jdk::
107 $(MAKE) EXPORT_SUBDIR=/optimized export_universal
108 export_fastdebug_jdk::
109 $(MAKE) EXPORT_SUBDIR=/fastdebug export_universal
110 export_debug_jdk::
111 $(MAKE) EXPORT_SUBDIR=/debug export_universal
112 copy_product_jdk::
113 $(MAKE) COPY_SUBDIR= copy_universal
114 copy_optimized_jdk::
115 $(MAKE) COPY_SUBDIR=/optimized copy_universal
116 copy_fastdebug_jdk::
117 $(MAKE) COPY_SUBDIR=/fastdebug copy_universal
118 copy_debug_jdk::
119 $(MAKE) COPY_SUBDIR=/debug copy_universal
121 .PHONY: universal_product universal_fastdebug universal_debug \
122 all_product_universal all_fastdebug_universal all_debug_universal \
123 universal_optimized all_optimized_universal \
124 universalize export_universal copy_universal \
125 $(UNIVERSAL_LIPO_LIST) $(UNIVERSAL_COPY_LIST)