Merge
This commit is contained in:
commit
3f92d0764c
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* @(#)BinaryTreeDictionary.java
|
||||
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,7 +30,7 @@ import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.types.*;
|
||||
import sun.jvm.hotspot.runtime.*;
|
||||
|
||||
public class BinaryTreeDictionary extends VMObject {
|
||||
public class AFLBinaryTreeDictionary extends VMObject {
|
||||
static {
|
||||
VM.registerVMInitializedObserver(new Observer() {
|
||||
public void update(Observable o, Object data) {
|
||||
@ -40,8 +40,8 @@ public class BinaryTreeDictionary extends VMObject {
|
||||
}
|
||||
|
||||
private static synchronized void initialize(TypeDataBase db) {
|
||||
Type type = db.lookupType("BinaryTreeDictionary");
|
||||
totalSizeField = type.getCIntegerField("_totalSize");
|
||||
Type type = db.lookupType("AFLBinaryTreeDictionary");
|
||||
totalSizeField = type.getCIntegerField("_total_size");
|
||||
}
|
||||
|
||||
// Fields
|
||||
@ -53,7 +53,7 @@ public class BinaryTreeDictionary extends VMObject {
|
||||
}
|
||||
|
||||
// Constructor
|
||||
public BinaryTreeDictionary(Address addr) {
|
||||
public AFLBinaryTreeDictionary(Address addr) {
|
||||
super(addr);
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -117,9 +117,9 @@ public class CompactibleFreeListSpace extends CompactibleSpace {
|
||||
}
|
||||
|
||||
// large block
|
||||
BinaryTreeDictionary bfbd = (BinaryTreeDictionary) VMObjectFactory.newObject(BinaryTreeDictionary.class,
|
||||
AFLBinaryTreeDictionary aflbd = (AFLBinaryTreeDictionary) VMObjectFactory.newObject(AFLBinaryTreeDictionary.class,
|
||||
dictionaryField.getValue(addr));
|
||||
size += bfbd.size();
|
||||
size += aflbd.size();
|
||||
|
||||
|
||||
// linear block in TLAB
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @(#)FreeList.java
|
||||
*
|
||||
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -41,7 +41,7 @@ public class FreeList extends VMObject {
|
||||
}
|
||||
|
||||
private static synchronized void initialize(TypeDataBase db) {
|
||||
Type type = db.lookupType("FreeList");
|
||||
Type type = db.lookupType("FreeList<FreeChunk>");
|
||||
sizeField = type.getCIntegerField("_size");
|
||||
countField = type.getCIntegerField("_count");
|
||||
headerSize = type.getSize();
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -87,7 +87,6 @@ endif
|
||||
# Typical C1/C2 targets made available with this Makefile
|
||||
C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1
|
||||
C2_VM_TARGETS=product fastdebug optimized jvmg
|
||||
KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel
|
||||
ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
|
||||
SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark
|
||||
MINIMAL1_VM_TARGETS=productminimal1 fastdebugminimal1 jvmgminimal1
|
||||
@ -161,11 +160,6 @@ $(C2_VM_TARGETS):
|
||||
$(CD) $(GAMMADIR)/make; \
|
||||
$(MAKE) BUILD_FLAVOR=$@ VM_TARGET=$@ generic_build2 $(ALT_OUT)
|
||||
|
||||
$(KERNEL_VM_TARGETS):
|
||||
$(CD) $(GAMMADIR)/make; \
|
||||
$(MAKE) BUILD_FLAVOR=$(@:%kernel=%) VM_TARGET=$@ \
|
||||
generic_buildkernel $(ALT_OUT)
|
||||
|
||||
$(ZERO_VM_TARGETS):
|
||||
$(CD) $(GAMMADIR)/make; \
|
||||
$(MAKE) BUILD_FLAVOR=$(@:%zero=%) VM_TARGET=$@ \
|
||||
@ -223,24 +217,6 @@ else
|
||||
$(MAKE_ARGS) $(VM_TARGET)
|
||||
endif
|
||||
|
||||
generic_buildkernel:
|
||||
$(MKDIR) -p $(OUTPUTDIR)
|
||||
ifeq ($(OSNAME),windows)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
$(CD) $(OUTPUTDIR); \
|
||||
$(NMAKE) -f $(ABS_OS_MAKEFILE) \
|
||||
Variant=kernel \
|
||||
WorkSpace=$(ABS_GAMMADIR) \
|
||||
BootStrapDir=$(ABS_BOOTDIR) \
|
||||
BuildUser=$(USERNAME) \
|
||||
$(MAKE_ARGS) $(VM_TARGET:%kernel=%)
|
||||
else
|
||||
@$(ECHO) "No kernel ($(VM_TARGET)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
|
||||
endif
|
||||
else
|
||||
@$(ECHO) "No kernel ($(VM_TARGET)) for OS_NAME=$(OSNAME)"
|
||||
endif
|
||||
|
||||
generic_buildzero:
|
||||
$(MKDIR) -p $(OUTPUTDIR)
|
||||
$(CD) $(OUTPUTDIR); \
|
||||
@ -314,12 +290,10 @@ XUSAGE=$(HS_SRC_DIR)/share/vm/Xusage.txt
|
||||
DOCS_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_docs
|
||||
C1_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler1
|
||||
C2_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler2
|
||||
KERNEL_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_kernel
|
||||
ZERO_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_zero
|
||||
SHARK_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_shark
|
||||
C1_DIR=$(C1_BASE_DIR)/$(VM_SUBDIR)
|
||||
C2_DIR=$(C2_BASE_DIR)/$(VM_SUBDIR)
|
||||
KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR)
|
||||
ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR)
|
||||
SHARK_DIR=$(SHARK_BASE_DIR)/$(VM_SUBDIR)
|
||||
MINIMAL1_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_minimal1
|
||||
@ -333,10 +307,6 @@ ifeq ($(JVM_VARIANT_CLIENT), true)
|
||||
MISC_DIR=$(C1_DIR)
|
||||
GEN_DIR=$(C1_BASE_DIR)/generated
|
||||
endif
|
||||
ifeq ($(JVM_VARIANT_KERNEL), true)
|
||||
MISC_DIR=$(C2_DIR)
|
||||
GEN_DIR=$(C2_BASE_DIR)/generated
|
||||
endif
|
||||
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||
MISC_DIR=$(SHARK_DIR)
|
||||
GEN_DIR=$(SHARK_BASE_DIR)/generated
|
||||
@ -386,16 +356,6 @@ $(EXPORT_SERVER_DIR)/%.pdb: $(C2_DIR)/%.pdb
|
||||
$(install-file)
|
||||
$(EXPORT_SERVER_DIR)/%.map: $(C2_DIR)/%.map
|
||||
$(install-file)
|
||||
|
||||
# Kernel files always come from kernel area
|
||||
$(EXPORT_KERNEL_DIR)/%.diz: $(KERNEL_DIR)/%.diz
|
||||
$(install-file)
|
||||
$(EXPORT_KERNEL_DIR)/%.dll: $(KERNEL_DIR)/%.dll
|
||||
$(install-file)
|
||||
$(EXPORT_KERNEL_DIR)/%.pdb: $(KERNEL_DIR)/%.pdb
|
||||
$(install-file)
|
||||
$(EXPORT_KERNEL_DIR)/%.map: $(KERNEL_DIR)/%.map
|
||||
$(install-file)
|
||||
endif
|
||||
|
||||
# Minimal JVM files always come from minimal area
|
||||
@ -538,7 +498,7 @@ $(EXPORT_DOCS_DIR)/platform/jvmti/%: $(DOCS_DIR)/%
|
||||
$(install-file)
|
||||
|
||||
# Xusage file
|
||||
$(EXPORT_SERVER_DIR)/Xusage.txt $(EXPORT_CLIENT_DIR)/Xusage.txt $(EXPORT_KERNEL_DIR)/Xusage.txt $(EXPORT_MINIMAL_DIR)/Xusage.txt: $(XUSAGE)
|
||||
$(EXPORT_SERVER_DIR)/Xusage.txt $(EXPORT_CLIENT_DIR)/Xusage.txt $(EXPORT_MINIMAL_DIR)/Xusage.txt: $(XUSAGE)
|
||||
$(prep-target)
|
||||
$(RM) $@.temp
|
||||
$(SED) 's/\(separated by \)[;:]/\1$(PATH_SEP)/g' $< > $@.temp
|
||||
@ -551,7 +511,6 @@ clobber clean: clean_build clean_export clean_jdk
|
||||
clean_build:
|
||||
$(RM) -r $(C1_DIR)
|
||||
$(RM) -r $(C2_DIR)
|
||||
$(RM) -r $(KERNEL_DIR)
|
||||
$(RM) -r $(ZERO_DIR)
|
||||
$(RM) -r $(SHARK_DIR)
|
||||
$(RM) -r $(MINIMAL1_DIR)
|
||||
@ -586,10 +545,6 @@ test_jdk:
|
||||
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -server -Xinternalversion
|
||||
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -server -version
|
||||
endif
|
||||
ifeq ($(JVM_VARIANT_KERNEL), true)
|
||||
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -kernel -Xinternalversion
|
||||
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -kernel -version
|
||||
endif
|
||||
|
||||
copy_product_jdk::
|
||||
$(RM) -r $(JDK_IMAGE_DIR)
|
||||
@ -665,7 +620,6 @@ target_help:
|
||||
@$(ECHO) "Other targets are:"
|
||||
@$(ECHO) " $(C1_VM_TARGETS)"
|
||||
@$(ECHO) " $(C2_VM_TARGETS)"
|
||||
@$(ECHO) " $(KERNEL_VM_TARGETS)"
|
||||
@$(ECHO) " $(MINIMAL1_VM_TARGETS)"
|
||||
|
||||
# Variable help (only common ones used by this workspace)
|
||||
@ -761,8 +715,8 @@ endif
|
||||
include $(GAMMADIR)/make/jprt.gmk
|
||||
|
||||
.PHONY: all world clobber clean help $(C1_VM_TARGETS) $(C2_VM_TARGETS) \
|
||||
$(KERNEL_VM_TARGETS) $(MINIMAL1_VM_TARGETS) \
|
||||
generic_build1 generic_build2 generic_buildkernel generic_buildminimal1 generic_export \
|
||||
$(MINIMAL1_VM_TARGETS) \
|
||||
generic_build1 generic_build2 generic_buildminimal1 generic_export \
|
||||
export_product export_fastdebug export_debug export_optimized \
|
||||
export_jdk_product export_jdk_fastdebug export_jdk_debug \
|
||||
create_jdk copy_jdk update_jdk test_jdk \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,10 +25,9 @@
|
||||
# Rules to build jvm_db/dtrace, used by vm.make
|
||||
|
||||
# We build libjvm_dtrace/libjvm_db/dtrace for COMPILER1 and COMPILER2
|
||||
# but not for CORE or KERNEL configurations.
|
||||
# but not for CORE configuration.
|
||||
|
||||
ifneq ("${TYPE}", "CORE")
|
||||
ifneq ("${TYPE}", "KERNEL")
|
||||
|
||||
ifeq ($(OS_VENDOR), Darwin)
|
||||
# we build dtrace for macosx using USDT2 probes
|
||||
@ -280,13 +279,6 @@ endif # ifneq ("${dtraceFound}", "")
|
||||
endif # ifeq ($(OS_VENDOR), Darwin)
|
||||
|
||||
|
||||
else # KERNEL build
|
||||
|
||||
dtraceCheck:
|
||||
$(QUIETLY) echo "**NOTICE** Dtrace support disabled for KERNEL builds"
|
||||
|
||||
endif # ifneq ("${TYPE}", "KERNEL")
|
||||
|
||||
else # CORE build
|
||||
|
||||
dtraceCheck:
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -157,13 +157,11 @@ SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS))
|
||||
SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS))
|
||||
SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS))
|
||||
SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS))
|
||||
SUBDIRS_KERNEL = $(addprefix $(OSNAME)_$(BUILDARCH)_kernel/,$(TARGETS))
|
||||
|
||||
TARGETS_C2 = $(TARGETS)
|
||||
TARGETS_C1 = $(addsuffix 1,$(TARGETS))
|
||||
TARGETS_TIERED = $(addsuffix tiered,$(TARGETS))
|
||||
TARGETS_CORE = $(addsuffix core,$(TARGETS))
|
||||
TARGETS_KERNEL = $(addsuffix kernel,$(TARGETS))
|
||||
|
||||
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
|
||||
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
|
||||
@ -229,10 +227,6 @@ $(SUBDIRS_CORE): $(BUILDTREE_MAKE)
|
||||
$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
|
||||
$(BUILDTREE) VARIANT=core
|
||||
|
||||
$(SUBDIRS_KERNEL): $(BUILDTREE_MAKE)
|
||||
$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
|
||||
$(BUILDTREE) VARIANT=kernel
|
||||
|
||||
# Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
|
||||
|
||||
$(TARGETS_C2): $(SUBDIRS_C2)
|
||||
@ -271,20 +265,10 @@ ifdef INSTALL
|
||||
cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
endif
|
||||
|
||||
$(TARGETS_KERNEL): $(SUBDIRS_KERNEL)
|
||||
cd $(OSNAME)_$(BUILDARCH)_kernel/$(patsubst %kernel,%,$@) && $(MAKE) $(MFLAGS)
|
||||
ifeq ($(TEST_IN_BUILD),true)
|
||||
cd $(OSNAME)_$(BUILDARCH)_kernel/$(patsubst %kernel,%,$@) && ./test_gamma
|
||||
endif
|
||||
ifdef INSTALL
|
||||
cd $(OSNAME)_$(BUILDARCH)_kernel/$(patsubst %kernel,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
endif
|
||||
|
||||
# Just build the tree, and nothing else:
|
||||
tree: $(SUBDIRS_C2)
|
||||
tree1: $(SUBDIRS_C1)
|
||||
treecore: $(SUBDIRS_CORE)
|
||||
treekernel: $(SUBDIRS_KERNEL)
|
||||
|
||||
# Doc target. This is the same for all build options.
|
||||
# Hence create a docs directory beside ...$(ARCH)_[...]
|
||||
@ -304,10 +288,10 @@ core: jvmgcore productcore
|
||||
clean_docs:
|
||||
rm -rf $(SUBDIR_DOCS)
|
||||
|
||||
clean_compiler1 clean_compiler2 clean_core clean_kernel:
|
||||
clean_compiler1 clean_compiler2 clean_core:
|
||||
rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@)
|
||||
|
||||
clean: clean_compiler2 clean_compiler1 clean_core clean_docs clean_kernel
|
||||
clean: clean_compiler2 clean_compiler1 clean_core clean_docs
|
||||
|
||||
include $(GAMMADIR)/make/cscope.make
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,10 +25,9 @@
|
||||
# Rules to build jvm_db/dtrace, used by vm.make
|
||||
|
||||
# We build libjvm_dtrace/libjvm_db/dtrace for COMPILER1 and COMPILER2
|
||||
# but not for CORE or KERNEL configurations.
|
||||
# but not for CORE configuration.
|
||||
|
||||
ifneq ("${TYPE}", "CORE")
|
||||
ifneq ("${TYPE}", "KERNEL")
|
||||
|
||||
ifdef USE_GCC
|
||||
|
||||
@ -362,13 +361,6 @@ endif # ifneq ("${dtraceFound}", "")
|
||||
|
||||
endif # ifdef USE_GCC
|
||||
|
||||
else # KERNEL build
|
||||
|
||||
dtraceCheck:
|
||||
$(QUIETLY) echo "**NOTICE** Dtrace support disabled for KERNEL builds"
|
||||
|
||||
endif # ifneq ("${TYPE}", "KERNEL")
|
||||
|
||||
else # CORE build
|
||||
|
||||
dtraceCheck:
|
||||
|
@ -1,32 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
#
|
||||
#
|
||||
# Sets make macros for making kernel version of VM.
|
||||
# This target on solaris is just tempoarily for debugging the kernel build.
|
||||
|
||||
TYPE=KERNEL
|
||||
|
||||
VM_SUBDIR = client
|
||||
|
||||
CFLAGS += -DKERNEL
|
@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
REM
|
||||
REM Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
REM Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
@ -67,7 +67,6 @@ goto usage
|
||||
|
||||
:test1
|
||||
if "%2" == "core" goto test2
|
||||
if "%2" == "kernel" goto test2
|
||||
if "%2" == "compiler1" goto test2
|
||||
if "%2" == "compiler2" goto test2
|
||||
if "%2" == "tiered" goto test2
|
||||
@ -109,7 +108,7 @@ echo Usage: build flavor version workspace bootstrap_dir [build_id] [windbg_home
|
||||
echo.
|
||||
echo where:
|
||||
echo flavor is "product", "debug" or "fastdebug",
|
||||
echo version is "core", "kernel", "compiler1", "compiler2", or "tiered",
|
||||
echo version is "core", "compiler1", "compiler2", or "tiered",
|
||||
echo workspace is source directory without trailing slash,
|
||||
echo bootstrap_dir is a full path to a JDK in which bin/java
|
||||
echo and bin/javac are present and working, and build_id is an
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -107,7 +107,6 @@ COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles"
|
||||
# Include dirs per type.
|
||||
case "${TYPE}" in
|
||||
"core") Src_Dirs="${CORE_PATHS}" ;;
|
||||
"kernel") Src_Dirs="${BASE_PATHS} ${COMPILER1_PATHS}" ;;
|
||||
"compiler1") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS}" ;;
|
||||
"compiler2") Src_Dirs="${CORE_PATHS} ${COMPILER2_PATHS}" ;;
|
||||
"tiered") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS} ${COMPILER2_PATHS}" ;;
|
||||
@ -120,16 +119,12 @@ COMPILER1_SPECIFIC_FILES="c1_*"
|
||||
SHARK_SPECIFIC_FILES="shark"
|
||||
ZERO_SPECIFIC_FILES="zero"
|
||||
|
||||
# These files need to be excluded when building the kernel target.
|
||||
KERNEL_EXCLUDED_FILES="attachListener.cpp attachListener_windows.cpp metaspaceShared_${Platform_arch_model}.cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiRawMonitor.cpp jvmtiTagMap.cpp jvmtiTrace.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp metaspaceShared.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp"
|
||||
|
||||
# Always exclude these.
|
||||
Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp"
|
||||
|
||||
# Exclude per type.
|
||||
case "${TYPE}" in
|
||||
"core") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
|
||||
"kernel") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ${KERNEL_EXCLUDED_FILES} ciTypeFlow.cpp" ;;
|
||||
"compiler1") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;;
|
||||
"compiler2") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;;
|
||||
"tiered") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;;
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -157,7 +157,7 @@ endif
|
||||
MAKE_ARGS += RM="$(RM)"
|
||||
MAKE_ARGS += ZIPEXE=$(ZIPEXE)
|
||||
|
||||
# On 32 bit windows we build server, client and kernel, on 64 bit just server.
|
||||
# On 32 bit windows we build server and client, on 64 bit just server.
|
||||
ifeq ($(JVM_VARIANTS),)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
JVM_VARIANTS:=client,server
|
||||
@ -250,7 +250,6 @@ endif
|
||||
|
||||
EXPORT_SERVER_DIR = $(EXPORT_JRE_BIN_DIR)/server
|
||||
EXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
|
||||
EXPORT_KERNEL_DIR = $(EXPORT_JRE_BIN_DIR)/kernel
|
||||
|
||||
ifeq ($(JVM_VARIANT_SERVER),true)
|
||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
||||
@ -277,18 +276,6 @@ ifeq ($(JVM_VARIANT_CLIENT),true)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq ($(JVM_VARIANT_KERNEL),true)
|
||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/Xusage.txt
|
||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.$(LIBRARY_SUFFIX)
|
||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.diz
|
||||
else
|
||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb
|
||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -166,63 +166,6 @@ ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core)
|
||||
|
||||
##################################################
|
||||
# JKERNEL specific options
|
||||
##################################################
|
||||
ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
|
||||
-define_kernel KERNEL \
|
||||
$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/parNew \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \
|
||||
-ignorePath_kernel src/share/vm/gc_implementation/g1 \
|
||||
-ignoreFile_kernel attachListener.cpp \
|
||||
-ignoreFile_kernel attachListener_windows.cpp \
|
||||
-ignoreFile_kernel dump.cpp \
|
||||
-ignoreFile_kernel dump_$(Platform_arch_model).cpp \
|
||||
-ignoreFile_kernel forte.cpp \
|
||||
-ignoreFile_kernel fprofiler.cpp \
|
||||
-ignoreFile_kernel heapDumper.cpp \
|
||||
-ignoreFile_kernel heapInspection.cpp \
|
||||
-ignoreFile_kernel jniCheck.cpp \
|
||||
-ignoreFile_kernel jvmtiCodeBlobEvents.cpp \
|
||||
-ignoreFile_kernel jvmtiExtensions.cpp \
|
||||
-ignoreFile_kernel jvmtiImpl.cpp \
|
||||
-ignoreFile_kernel jvmtiRawMonitor.cpp \
|
||||
-ignoreFile_kernel jvmtiTagMap.cpp \
|
||||
-ignoreFile_kernel jvmtiTrace.cpp \
|
||||
-ignoreFile_kernel jvmtiTrace.hpp \
|
||||
-ignoreFile_kernel restore.cpp \
|
||||
-ignoreFile_kernel serialize.cpp \
|
||||
-ignoreFile_kernel vmStructs.cpp \
|
||||
-ignoreFile_kernel g1MemoryPool.cpp \
|
||||
-ignoreFile_kernel g1MemoryPool.hpp \
|
||||
-ignoreFile_kernel psMemoryPool.cpp \
|
||||
-ignoreFile_kernel psMemoryPool.hpp \
|
||||
-ignoreFile_kernel gcAdaptivePolicyCounters.cpp \
|
||||
-ignoreFile_kernel concurrentGCThread.cpp \
|
||||
-ignoreFile_kernel mutableNUMASpace.cpp \
|
||||
-ignoreFile_kernel ciTypeFlow.cpp \
|
||||
-ignoreFile_kernel ciTypeFlow.hpp \
|
||||
-ignoreFile_kernel oop.pcgc.inline.hpp \
|
||||
-ignoreFile_kernel oop.psgc.inline.hpp \
|
||||
-ignoreFile_kernel allocationStats.cpp \
|
||||
-ignoreFile_kernel allocationStats.hpp \
|
||||
-ignoreFile_kernel concurrentGCThread.hpp \
|
||||
-ignoreFile_kernel gSpaceCounters.cpp \
|
||||
-ignoreFile_kernel gSpaceCounters.hpp \
|
||||
-ignoreFile_kernel gcAdaptivePolicyCounters.hpp \
|
||||
-ignoreFile_kernel immutableSpace.cpp \
|
||||
-ignoreFile_kernel mutableNUMASpace.hpp \
|
||||
-ignoreFile_kernel mutableSpace.cpp \
|
||||
-ignoreFile_kernel spaceCounters.cpp \
|
||||
-ignoreFile_kernel spaceCounters.hpp \
|
||||
-ignoreFile_kernel yieldingWorkgroup.cpp \
|
||||
-ignoreFile_kernel yieldingWorkgroup.hpp \
|
||||
-ignorePath_kernel vmStructs_ \
|
||||
-ignoreFile_kernel $(Platform_arch_model).ad \
|
||||
-additionalFile_kernel gcTaskManager.hpp
|
||||
|
||||
##################################################
|
||||
# Client(C1) compiler specific options
|
||||
##################################################
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -44,10 +44,6 @@ CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT"
|
||||
# No need to define anything, CORE is defined as !COMPILER1 && !COMPILER2
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "kernel"
|
||||
CXX_FLAGS=$(CXX_FLAGS) /D "KERNEL"
|
||||
!endif
|
||||
|
||||
!if "$(Variant)" == "compiler1"
|
||||
CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1"
|
||||
!endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -543,7 +543,7 @@ class Assembler : public AbstractAssembler {
|
||||
// of instructions are freely declared without the need for wrapping them an ifdef.
|
||||
// (Some dangerous instructions are ifdef's out of inappropriate jvm's.)
|
||||
// In the .cpp file the implementations are wrapped so that they are dropped out
|
||||
// of the resulting jvm. This is done mostly to keep the footprint of KERNEL
|
||||
// of the resulting jvm. This is done mostly to keep the footprint of MINIMAL
|
||||
// to the size it was prior to merging up the 32bit and 64bit assemblers.
|
||||
//
|
||||
// This does mean you'll get a linker/runtime error if you use a 64bit only instruction
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,11 +50,12 @@
|
||||
#include "classfile/classLoaderData.hpp"
|
||||
#include "classfile/classLoaderData.inline.hpp"
|
||||
#include "classfile/javaClasses.hpp"
|
||||
#include "classfile/metadataOnStackMark.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
#include "memory/metadataFactory.hpp"
|
||||
#include "memory/metaspaceShared.hpp"
|
||||
#include "prims/jvmtiRedefineClasses.hpp"
|
||||
#include "memory/oopFactory.hpp"
|
||||
#include "runtime/jniHandles.hpp"
|
||||
#include "runtime/mutex.hpp"
|
||||
#include "runtime/safepoint.hpp"
|
||||
|
69
hotspot/src/share/vm/classfile/metadataOnStackMark.cpp
Normal file
69
hotspot/src/share/vm/classfile/metadataOnStackMark.cpp
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "classfile/metadataOnStackMark.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
#include "compiler/compileBroker.hpp"
|
||||
#include "oops/metadata.hpp"
|
||||
#include "runtime/synchronizer.hpp"
|
||||
#include "runtime/thread.hpp"
|
||||
#include "utilities/growableArray.hpp"
|
||||
|
||||
|
||||
// Keep track of marked on-stack metadata so it can be cleared.
|
||||
GrowableArray<Metadata*>* _marked_objects = NULL;
|
||||
NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;)
|
||||
|
||||
// Walk metadata on the stack and mark it so that redefinition doesn't delete
|
||||
// it. Class unloading also walks the previous versions and might try to
|
||||
// delete it, so this class is used by class unloading also.
|
||||
MetadataOnStackMark::MetadataOnStackMark() {
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
|
||||
NOT_PRODUCT(_is_active = true;)
|
||||
if (_marked_objects == NULL) {
|
||||
_marked_objects = new (ResourceObj::C_HEAP, mtClass) GrowableArray<Metadata*>(1000, true);
|
||||
}
|
||||
Threads::metadata_do(Metadata::mark_on_stack);
|
||||
CodeCache::alive_nmethods_do(nmethod::mark_on_stack);
|
||||
CompileBroker::mark_on_stack();
|
||||
}
|
||||
|
||||
MetadataOnStackMark::~MetadataOnStackMark() {
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
|
||||
// Unmark everything that was marked. Can't do the same walk because
|
||||
// redefine classes messes up the code cache so the set of methods
|
||||
// might not be the same.
|
||||
for (int i = 0; i< _marked_objects->length(); i++) {
|
||||
_marked_objects->at(i)->set_on_stack(false);
|
||||
}
|
||||
_marked_objects->clear(); // reuse growable array for next time.
|
||||
NOT_PRODUCT(_is_active = false;)
|
||||
}
|
||||
|
||||
// Record which objects are marked so we can unmark the same objects.
|
||||
void MetadataOnStackMark::record(Metadata* m) {
|
||||
assert(_is_active, "metadata on stack marking is active");
|
||||
_marked_objects->push(m);
|
||||
}
|
45
hotspot/src/share/vm/classfile/metadataOnStackMark.hpp
Normal file
45
hotspot/src/share/vm/classfile/metadataOnStackMark.hpp
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
|
||||
#define SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
|
||||
class Metadata;
|
||||
|
||||
// Helper class to mark and unmark metadata used on the stack as either handles
|
||||
// or executing methods, so that it can't be deleted during class redefinition
|
||||
// and class unloading.
|
||||
// This is also used for other things that can be deallocated, like class
|
||||
// metadata during parsing, relocated methods, and methods in backtraces.
|
||||
class MetadataOnStackMark : public StackObj {
|
||||
NOT_PRODUCT(static bool _is_active;)
|
||||
public:
|
||||
MetadataOnStackMark();
|
||||
~MetadataOnStackMark();
|
||||
static void record(Metadata* m);
|
||||
};
|
||||
|
||||
#endif // SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
|
@ -1199,66 +1199,6 @@ instanceKlassHandle SystemDictionary::load_shared_class(
|
||||
return ik;
|
||||
}
|
||||
|
||||
#ifdef KERNEL
|
||||
// Some classes on the bootstrap class path haven't been installed on the
|
||||
// system yet. Call the DownloadManager method to make them appear in the
|
||||
// bootstrap class path and try again to load the named class.
|
||||
// Note that with delegation class loaders all classes in another loader will
|
||||
// first try to call this so it'd better be fast!!
|
||||
static instanceKlassHandle download_and_retry_class_load(
|
||||
Symbol* class_name,
|
||||
TRAPS) {
|
||||
|
||||
Klass* dlm = SystemDictionary::DownloadManager_klass();
|
||||
instanceKlassHandle nk;
|
||||
|
||||
// If download manager class isn't loaded just return.
|
||||
if (dlm == NULL) return nk;
|
||||
|
||||
{ HandleMark hm(THREAD);
|
||||
ResourceMark rm(THREAD);
|
||||
Handle s = java_lang_String::create_from_symbol(class_name, CHECK_(nk));
|
||||
Handle class_string = java_lang_String::externalize_classname(s, CHECK_(nk));
|
||||
|
||||
// return value
|
||||
JavaValue result(T_OBJECT);
|
||||
|
||||
// Call the DownloadManager. We assume that it has a lock because
|
||||
// multiple classes could be not found and downloaded at the same time.
|
||||
// class sun.misc.DownloadManager;
|
||||
// public static String getBootClassPathEntryForClass(String className);
|
||||
JavaCalls::call_static(&result,
|
||||
KlassHandle(THREAD, dlm),
|
||||
vmSymbols::getBootClassPathEntryForClass_name(),
|
||||
vmSymbols::string_string_signature(),
|
||||
class_string,
|
||||
CHECK_(nk));
|
||||
|
||||
// Get result.string and add to bootclasspath
|
||||
assert(result.get_type() == T_OBJECT, "just checking");
|
||||
oop obj = (oop) result.get_jobject();
|
||||
if (obj == NULL) { return nk; }
|
||||
|
||||
Handle h_obj(THREAD, obj);
|
||||
char* new_class_name = java_lang_String::as_platform_dependent_str(h_obj,
|
||||
CHECK_(nk));
|
||||
|
||||
// lock the loader
|
||||
// we use this lock because JVMTI does.
|
||||
Handle loader_lock(THREAD, SystemDictionary::system_loader_lock());
|
||||
|
||||
ObjectLocker ol(loader_lock, THREAD);
|
||||
// add the file to the bootclasspath
|
||||
ClassLoader::update_class_path_entry_list(new_class_name, true);
|
||||
} // end HandleMark
|
||||
|
||||
if (TraceClassLoading) {
|
||||
ClassLoader::print_bootclasspath();
|
||||
}
|
||||
return ClassLoader::load_classfile(class_name, CHECK_(nk));
|
||||
}
|
||||
#endif // KERNEL
|
||||
|
||||
|
||||
instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Handle class_loader, TRAPS) {
|
||||
instanceKlassHandle nh = instanceKlassHandle(); // null Handle
|
||||
@ -1278,15 +1218,6 @@ instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Ha
|
||||
k = ClassLoader::load_classfile(class_name, CHECK_(nh));
|
||||
}
|
||||
|
||||
#ifdef KERNEL
|
||||
// If the VM class loader has failed to load the class, call the
|
||||
// DownloadManager class to make it magically appear on the classpath
|
||||
// and try again. This is only configured with the Kernel VM.
|
||||
if (k.is_null()) {
|
||||
k = download_and_retry_class_load(class_name, CHECK_(nh));
|
||||
}
|
||||
#endif // KERNEL
|
||||
|
||||
// find_or_define_instance_class may return a different InstanceKlass
|
||||
if (!k.is_null()) {
|
||||
k = find_or_define_instance_class(class_name, class_loader, k, CHECK_(nh));
|
||||
@ -1822,13 +1753,7 @@ bool SystemDictionary::initialize_wk_klass(WKID id, int init_opt, TRAPS) {
|
||||
Symbol* symbol = vmSymbols::symbol_at((vmSymbols::SID)sid);
|
||||
Klass** klassp = &_well_known_klasses[id];
|
||||
bool must_load = (init_opt < SystemDictionary::Opt);
|
||||
bool try_load = true;
|
||||
if (init_opt == SystemDictionary::Opt_Kernel) {
|
||||
#ifndef KERNEL
|
||||
try_load = false;
|
||||
#endif //KERNEL
|
||||
}
|
||||
if ((*klassp) == NULL && try_load) {
|
||||
if ((*klassp) == NULL) {
|
||||
if (must_load) {
|
||||
(*klassp) = resolve_or_fail(symbol, true, CHECK_0); // load required class
|
||||
} else {
|
||||
@ -1918,12 +1843,6 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
||||
//_box_klasses[T_OBJECT] = WK_KLASS(object_klass);
|
||||
//_box_klasses[T_ARRAY] = WK_KLASS(object_klass);
|
||||
|
||||
#ifdef KERNEL
|
||||
if (DownloadManager_klass() == NULL) {
|
||||
warning("Cannot find sun/jkernel/DownloadManager");
|
||||
}
|
||||
#endif // KERNEL
|
||||
|
||||
{ // Compute whether we should use loadClass or loadClassInternal when loading classes.
|
||||
Method* method = InstanceKlass::cast(ClassLoader_klass())->find_method(vmSymbols::loadClassInternal_name(), vmSymbols::string_class_signature());
|
||||
_has_loadClassInternal = (method != NULL);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -168,8 +168,6 @@ class SymbolPropertyTable;
|
||||
/* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \
|
||||
do_klass(nio_Buffer_klass, java_nio_Buffer, Opt ) \
|
||||
\
|
||||
do_klass(DownloadManager_klass, sun_jkernel_DownloadManager, Opt_Kernel ) \
|
||||
\
|
||||
do_klass(PostVMInitHook_klass, sun_misc_PostVMInitHook, Opt ) \
|
||||
\
|
||||
/* Preload boxing klasses */ \
|
||||
@ -211,7 +209,6 @@ class SystemDictionary : AllStatic {
|
||||
Opt, // preload tried; NULL if not present
|
||||
Opt_Only_JDK14NewRef, // preload tried; use only with NewReflection
|
||||
Opt_Only_JDK15, // preload tried; use only with JDK1.5+
|
||||
Opt_Kernel, // preload tried only #ifdef KERNEL
|
||||
OPTION_LIMIT,
|
||||
CEIL_LG_OPTION_LIMIT = 4 // OPTION_LIMIT <= (1<<CEIL_LG_OPTION_LIMIT)
|
||||
};
|
||||
@ -394,7 +391,6 @@ public:
|
||||
static Klass* check_klass_Pre( Klass* k) { return check_klass(k); }
|
||||
static Klass* check_klass_Pre_JSR292(Klass* k) { return EnableInvokeDynamic ? check_klass(k) : k; }
|
||||
static Klass* check_klass_Opt( Klass* k) { return k; }
|
||||
static Klass* check_klass_Opt_Kernel(Klass* k) { return k; } //== Opt
|
||||
static Klass* check_klass_Opt_Only_JDK15(Klass* k) {
|
||||
assert(JDK_Version::is_gte_jdk15x_version(), "JDK 1.5 only");
|
||||
return k;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -108,7 +108,6 @@
|
||||
template(java_lang_Compiler, "java/lang/Compiler") \
|
||||
template(sun_misc_Signal, "sun/misc/Signal") \
|
||||
template(java_lang_AssertionStatusDirectives, "java/lang/AssertionStatusDirectives") \
|
||||
template(sun_jkernel_DownloadManager, "sun/jkernel/DownloadManager") \
|
||||
template(getBootClassPathEntryForClass_name, "getBootClassPathEntryForClass") \
|
||||
template(sun_misc_PostVMInitHook, "sun/misc/PostVMInitHook") \
|
||||
template(sun_misc_Launcher_ExtClassLoader, "sun/misc/Launcher$ExtClassLoader") \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -34,16 +34,17 @@ typedef BinaryTreeDictionary<FreeChunk, AdaptiveFreeList> AFLBinaryTreeDictionar
|
||||
nonstatic_field(CompactibleFreeListSpace, _bt, BlockOffsetArrayNonContigSpace) \
|
||||
\
|
||||
nonstatic_field(CMSBitMap, _bmWordSize, size_t) \
|
||||
nonstatic_field(CMSBitMap, _shifter, const int) \
|
||||
nonstatic_field(CMSBitMap, _bm, BitMap) \
|
||||
nonstatic_field(CMSBitMap, _virtual_space, VirtualSpace) \
|
||||
nonstatic_field(CMSBitMap, _shifter, const int) \
|
||||
nonstatic_field(CMSBitMap, _bm, BitMap) \
|
||||
nonstatic_field(CMSBitMap, _virtual_space, VirtualSpace) \
|
||||
nonstatic_field(CMSCollector, _markBitMap, CMSBitMap) \
|
||||
nonstatic_field(ConcurrentMarkSweepGeneration, _cmsSpace, CompactibleFreeListSpace*) \
|
||||
static_field(ConcurrentMarkSweepThread, _collector, CMSCollector*) \
|
||||
nonstatic_field(LinearAllocBlock, _word_size, size_t) \
|
||||
nonstatic_field(AFLBinaryTreeDictionary, _total_size, size_t) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0], FreeList<FreeChunk>) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock, LinearAllocBlock)
|
||||
nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock, LinearAllocBlock) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _dictionary, FreeBlockDictionary<FreeChunk>*)
|
||||
|
||||
|
||||
#define VM_TYPES_CMS(declare_type, \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -1241,7 +1241,7 @@ void LinkResolver::resolve_handle_call(CallInfo& result, KlassHandle resolved_kl
|
||||
|
||||
void LinkResolver::resolve_invokedynamic(CallInfo& result, constantPoolHandle pool, int index, TRAPS) {
|
||||
assert(EnableInvokeDynamic, "");
|
||||
pool->set_invokedynamic(); // mark header to flag active call sites
|
||||
pool->set_has_invokedynamic(); // mark header to flag active call sites
|
||||
|
||||
//resolve_pool(<resolved_klass>, method_name, method_signature, current_klass, pool, index, CHECK);
|
||||
Symbol* method_name = pool->name_ref_at(index);
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "precompiled.hpp"
|
||||
#include "classfile/classLoaderData.hpp"
|
||||
#include "classfile/javaClasses.hpp"
|
||||
#include "classfile/metadataOnStackMark.hpp"
|
||||
#include "classfile/symbolTable.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "classfile/vmSymbols.hpp"
|
||||
@ -34,7 +35,6 @@
|
||||
#include "oops/constantPool.hpp"
|
||||
#include "oops/instanceKlass.hpp"
|
||||
#include "oops/objArrayKlass.hpp"
|
||||
#include "prims/jvmtiRedefineClasses.hpp"
|
||||
#include "runtime/fieldType.hpp"
|
||||
#include "runtime/init.hpp"
|
||||
#include "runtime/javaCalls.hpp"
|
||||
@ -65,11 +65,10 @@ ConstantPool::ConstantPool(Array<u1>* tags) {
|
||||
set_operands(NULL);
|
||||
set_pool_holder(NULL);
|
||||
set_flags(0);
|
||||
|
||||
// only set to non-zero if constant pool is merged by RedefineClasses
|
||||
set_version(0);
|
||||
set_lock(new Monitor(Monitor::nonleaf + 2, "A constant pool lock"));
|
||||
// all fields are initialized; needed for GC
|
||||
set_on_stack(false);
|
||||
|
||||
// initialize tag array
|
||||
int length = tags->length();
|
||||
@ -100,18 +99,6 @@ void ConstantPool::release_C_heap_structures() {
|
||||
set_lock(NULL);
|
||||
}
|
||||
|
||||
void ConstantPool::set_flag_at(FlagBit fb) {
|
||||
const int MAX_STATE_CHANGES = 2;
|
||||
for (int i = MAX_STATE_CHANGES + 10; i > 0; i--) {
|
||||
int oflags = _flags;
|
||||
int nflags = oflags | (1 << (int)fb);
|
||||
if (Atomic::cmpxchg(nflags, &_flags, oflags) == oflags)
|
||||
return;
|
||||
}
|
||||
assert(false, "failed to cmpxchg flags");
|
||||
_flags |= (1 << (int)fb); // better than nothing
|
||||
}
|
||||
|
||||
objArrayOop ConstantPool::resolved_references() const {
|
||||
return (objArrayOop)JNIHandles::resolve(_resolved_references);
|
||||
}
|
||||
@ -1111,32 +1098,9 @@ bool ConstantPool::compare_entry_to(int index1, constantPoolHandle cp2,
|
||||
} // end compare_entry_to()
|
||||
|
||||
|
||||
// Copy this constant pool's entries at start_i to end_i (inclusive)
|
||||
// to the constant pool to_cp's entries starting at to_i. A total of
|
||||
// (end_i - start_i) + 1 entries are copied.
|
||||
void ConstantPool::copy_cp_to_impl(constantPoolHandle from_cp, int start_i, int end_i,
|
||||
constantPoolHandle to_cp, int to_i, TRAPS) {
|
||||
|
||||
int dest_i = to_i; // leave original alone for debug purposes
|
||||
|
||||
for (int src_i = start_i; src_i <= end_i; /* see loop bottom */ ) {
|
||||
copy_entry_to(from_cp, src_i, to_cp, dest_i, CHECK);
|
||||
|
||||
switch (from_cp->tag_at(src_i).value()) {
|
||||
case JVM_CONSTANT_Double:
|
||||
case JVM_CONSTANT_Long:
|
||||
// double and long take two constant pool entries
|
||||
src_i += 2;
|
||||
dest_i += 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
// all others take one constant pool entry
|
||||
src_i++;
|
||||
dest_i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
void ConstantPool::copy_operands(constantPoolHandle from_cp,
|
||||
constantPoolHandle to_cp,
|
||||
TRAPS) {
|
||||
|
||||
int from_oplen = operand_array_length(from_cp->operands());
|
||||
int old_oplen = operand_array_length(to_cp->operands());
|
||||
@ -1192,8 +1156,39 @@ void ConstantPool::copy_cp_to_impl(constantPoolHandle from_cp, int start_i, int
|
||||
to_cp->set_operands(new_operands);
|
||||
}
|
||||
}
|
||||
} // end copy_operands()
|
||||
|
||||
} // end copy_cp_to()
|
||||
|
||||
// Copy this constant pool's entries at start_i to end_i (inclusive)
|
||||
// to the constant pool to_cp's entries starting at to_i. A total of
|
||||
// (end_i - start_i) + 1 entries are copied.
|
||||
void ConstantPool::copy_cp_to_impl(constantPoolHandle from_cp, int start_i, int end_i,
|
||||
constantPoolHandle to_cp, int to_i, TRAPS) {
|
||||
|
||||
|
||||
int dest_i = to_i; // leave original alone for debug purposes
|
||||
|
||||
for (int src_i = start_i; src_i <= end_i; /* see loop bottom */ ) {
|
||||
copy_entry_to(from_cp, src_i, to_cp, dest_i, CHECK);
|
||||
|
||||
switch (from_cp->tag_at(src_i).value()) {
|
||||
case JVM_CONSTANT_Double:
|
||||
case JVM_CONSTANT_Long:
|
||||
// double and long take two constant pool entries
|
||||
src_i += 2;
|
||||
dest_i += 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
// all others take one constant pool entry
|
||||
src_i++;
|
||||
dest_i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
copy_operands(from_cp, to_cp, CHECK);
|
||||
|
||||
} // end copy_cp_to_impl()
|
||||
|
||||
|
||||
// Copy this constant pool's entry at from_i to the constant pool
|
||||
@ -1755,7 +1750,11 @@ int ConstantPool::copy_cpool_bytes(int cpool_size,
|
||||
|
||||
|
||||
void ConstantPool::set_on_stack(const bool value) {
|
||||
_on_stack = value;
|
||||
if (value) {
|
||||
_flags |= _on_stack;
|
||||
} else {
|
||||
_flags &= ~_on_stack;
|
||||
}
|
||||
if (value) MetadataOnStackMark::record(this);
|
||||
}
|
||||
|
||||
@ -1827,6 +1826,7 @@ void ConstantPool::print_on(outputStream* st) const {
|
||||
if (has_pseudo_string()) st->print(" has_pseudo_string");
|
||||
if (has_invokedynamic()) st->print(" has_invokedynamic");
|
||||
if (has_preresolution()) st->print(" has_preresolution");
|
||||
if (on_stack()) st->print(" on_stack");
|
||||
st->cr();
|
||||
}
|
||||
if (pool_holder() != NULL) {
|
||||
|
@ -95,10 +95,15 @@ class ConstantPool : public Metadata {
|
||||
jobject _resolved_references;
|
||||
Array<u2>* _reference_map;
|
||||
|
||||
int _flags; // a few header bits to describe contents for GC
|
||||
int _length; // number of elements in the array
|
||||
enum {
|
||||
_has_invokedynamic = 1, // Flags
|
||||
_has_pseudo_string = 2,
|
||||
_has_preresolution = 4,
|
||||
_on_stack = 8
|
||||
};
|
||||
|
||||
bool _on_stack; // Redefined method still executing refers to this constant pool.
|
||||
int _flags; // old fashioned bit twiddling
|
||||
int _length; // number of elements in the array
|
||||
|
||||
union {
|
||||
// set for CDS to restore resolved references
|
||||
@ -115,17 +120,8 @@ class ConstantPool : public Metadata {
|
||||
|
||||
void set_operands(Array<u2>* operands) { _operands = operands; }
|
||||
|
||||
enum FlagBit {
|
||||
FB_has_invokedynamic = 1,
|
||||
FB_has_pseudo_string = 2,
|
||||
FB_has_preresolution = 3
|
||||
};
|
||||
|
||||
int flags() const { return _flags; }
|
||||
void set_flags(int f) { _flags = f; }
|
||||
bool flag_at(FlagBit fb) const { return (_flags & (1 << (int)fb)) != 0; }
|
||||
void set_flag_at(FlagBit fb);
|
||||
// no clear_flag_at function; they only increase
|
||||
int flags() const { return _flags; }
|
||||
void set_flags(int f) { _flags = f; }
|
||||
|
||||
private:
|
||||
intptr_t* base() const { return (intptr_t*) (((char*) this) + sizeof(ConstantPool)); }
|
||||
@ -178,18 +174,20 @@ class ConstantPool : public Metadata {
|
||||
Array<u1>* tags() const { return _tags; }
|
||||
Array<u2>* operands() const { return _operands; }
|
||||
|
||||
bool has_pseudo_string() const { return flag_at(FB_has_pseudo_string); }
|
||||
bool has_invokedynamic() const { return flag_at(FB_has_invokedynamic); }
|
||||
bool has_preresolution() const { return flag_at(FB_has_preresolution); }
|
||||
void set_pseudo_string() { set_flag_at(FB_has_pseudo_string); }
|
||||
void set_invokedynamic() { set_flag_at(FB_has_invokedynamic); }
|
||||
void set_preresolution() { set_flag_at(FB_has_preresolution); }
|
||||
bool has_invokedynamic() const { return (_flags & _has_invokedynamic) != 0; }
|
||||
void set_has_invokedynamic() { _flags |= _has_invokedynamic; }
|
||||
|
||||
bool has_pseudo_string() const { return (_flags & _has_pseudo_string) != 0; }
|
||||
void set_has_pseudo_string() { _flags |= _has_pseudo_string; }
|
||||
|
||||
bool has_preresolution() const { return (_flags & _has_preresolution) != 0; }
|
||||
void set_has_preresolution() { _flags |= _has_preresolution; }
|
||||
|
||||
// Redefine classes support. If a method refering to this constant pool
|
||||
// is on the executing stack, or as a handle in vm code, this constant pool
|
||||
// can't be removed from the set of previous versions saved in the instance
|
||||
// class.
|
||||
bool on_stack() const { return _on_stack; }
|
||||
bool on_stack() const { return (_flags &_on_stack) != 0; }
|
||||
void set_on_stack(const bool value);
|
||||
|
||||
// Klass holding pool
|
||||
@ -457,7 +455,7 @@ class ConstantPool : public Metadata {
|
||||
|
||||
void pseudo_string_at_put(int which, int obj_index, oop x) {
|
||||
assert(EnableInvokeDynamic, "");
|
||||
set_pseudo_string(); // mark header
|
||||
set_has_pseudo_string(); // mark header
|
||||
assert(tag_at(which).is_string(), "Corrupted constant pool");
|
||||
string_at_put(which, obj_index, x); // this works just fine
|
||||
}
|
||||
@ -783,6 +781,7 @@ class ConstantPool : public Metadata {
|
||||
}
|
||||
static void copy_cp_to_impl(constantPoolHandle from_cp, int start_i, int end_i, constantPoolHandle to_cp, int to_i, TRAPS);
|
||||
static void copy_entry_to(constantPoolHandle from_cp, int from_i, constantPoolHandle to_cp, int to_i, TRAPS);
|
||||
static void copy_operands(constantPoolHandle from_cp, constantPoolHandle to_cp, TRAPS);
|
||||
int find_matching_entry(int pattern_i, constantPoolHandle search_cp, TRAPS);
|
||||
int version() const { return _saved._version; }
|
||||
void set_version(int version) { _saved._version = version; }
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "classfile/metadataOnStackMark.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "code/debugInfoRec.hpp"
|
||||
#include "gc_interface/collectedHeap.inline.hpp"
|
||||
@ -41,7 +42,6 @@
|
||||
#include "oops/oop.inline.hpp"
|
||||
#include "oops/symbol.hpp"
|
||||
#include "prims/jvmtiExport.hpp"
|
||||
#include "prims/jvmtiRedefineClasses.hpp"
|
||||
#include "prims/methodHandles.hpp"
|
||||
#include "prims/nativeLookup.hpp"
|
||||
#include "runtime/arguments.hpp"
|
||||
@ -1027,7 +1027,7 @@ methodHandle Method::make_method_handle_intrinsic(vmIntrinsics::ID iid,
|
||||
cp->set_pool_holder(InstanceKlass::cast(holder()));
|
||||
cp->symbol_at_put(_imcp_invoke_name, name);
|
||||
cp->symbol_at_put(_imcp_invoke_signature, signature);
|
||||
cp->set_preresolution();
|
||||
cp->set_has_preresolution();
|
||||
|
||||
// decide on access bits: public or not?
|
||||
int flags_bits = (JVM_ACC_NATIVE | JVM_ACC_SYNTHETIC | JVM_ACC_FINAL);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,9 +25,7 @@
|
||||
#ifndef SHARE_VM_PRIMS_JNICHECK_HPP
|
||||
#define SHARE_VM_PRIMS_JNICHECK_HPP
|
||||
|
||||
#ifndef KERNEL
|
||||
#include "runtime/thread.hpp"
|
||||
#endif
|
||||
|
||||
extern "C" {
|
||||
// Report a JNI failure caught by -Xcheck:jni. Perform a core dump.
|
||||
|
@ -4519,10 +4519,6 @@ JVM_ENTRY(void, JVM_GetVersionInfo(JNIEnv* env, jvm_version_info* info, size_t i
|
||||
// consider to expose this new capability in the sun.rt.jvmCapabilities jvmstat
|
||||
// counter defined in runtimeService.cpp.
|
||||
info->is_attachable = AttachListener::is_attach_supported();
|
||||
#ifdef KERNEL
|
||||
info->is_kernel_jvm = 1; // true;
|
||||
#else // KERNEL
|
||||
info->is_kernel_jvm = 0; // false;
|
||||
#endif // KERNEL
|
||||
}
|
||||
JVM_END
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,9 +25,7 @@
|
||||
#ifndef SHARE_VM_PRIMS_JVMTICODEBLOBEVENTS_HPP
|
||||
#define SHARE_VM_PRIMS_JVMTICODEBLOBEVENTS_HPP
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
#include "jvmtifiles/jvmti.h"
|
||||
#endif
|
||||
|
||||
// forward declaration
|
||||
class JvmtiEnv;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -647,8 +647,6 @@ JvmtiEnv::GetJLocationFormat(jvmtiJlocationFormat* format_ptr) {
|
||||
return JVMTI_ERROR_NONE;
|
||||
} /* end GetJLocationFormat */
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
|
||||
//
|
||||
// Thread functions
|
||||
//
|
||||
@ -3436,5 +3434,3 @@ JvmtiEnv::SetSystemProperty(const char* property, const char* value_ptr) {
|
||||
}
|
||||
return err;
|
||||
} /* end SetSystemProperty */
|
||||
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -74,10 +74,8 @@ JvmtiEnvBase::globally_initialize() {
|
||||
|
||||
JvmtiManageCapabilities::initialize();
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
// register extension functions and events
|
||||
JvmtiExtensions::register_extensions();
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
||||
#ifdef JVMTI_TRACE
|
||||
JvmtiTrace::initialize();
|
||||
@ -236,14 +234,12 @@ JvmtiEnvBase::env_dispose() {
|
||||
// Same situation as with events (see above)
|
||||
set_native_method_prefixes(0, NULL);
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
JvmtiTagMap* tag_map_to_deallocate = _tag_map;
|
||||
set_tag_map(NULL);
|
||||
// A tag map can be big, deallocate it now
|
||||
if (tag_map_to_deallocate != NULL) {
|
||||
delete tag_map_to_deallocate;
|
||||
}
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
||||
_needs_clean_up = true;
|
||||
}
|
||||
@ -255,14 +251,12 @@ JvmtiEnvBase::~JvmtiEnvBase() {
|
||||
// There is a small window of time during which the tag map of a
|
||||
// disposed environment could have been reallocated.
|
||||
// Make sure it is gone.
|
||||
#ifndef JVMTI_KERNEL
|
||||
JvmtiTagMap* tag_map_to_deallocate = _tag_map;
|
||||
set_tag_map(NULL);
|
||||
// A tag map can be big, deallocate it now
|
||||
if (tag_map_to_deallocate != NULL) {
|
||||
delete tag_map_to_deallocate;
|
||||
}
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
||||
_magic = BAD_MAGIC;
|
||||
}
|
||||
@ -593,8 +587,6 @@ JvmtiEnvBase::get_jni_class_non_null(Klass* k) {
|
||||
return (jclass)jni_reference(k->java_mirror());
|
||||
}
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
|
||||
//
|
||||
// Field Information
|
||||
//
|
||||
@ -1482,5 +1474,3 @@ JvmtiMonitorClosure::do_monitor(ObjectMonitor* mon) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -677,7 +677,6 @@ void JvmtiExport::report_unsupported(bool on) {
|
||||
}
|
||||
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
static inline Klass* oop_to_klass(oop obj) {
|
||||
Klass* k = obj->klass();
|
||||
|
||||
@ -2178,7 +2177,6 @@ extern "C" {
|
||||
typedef jint (JNICALL *OnAttachEntry_t)(JavaVM*, char *, void *);
|
||||
}
|
||||
|
||||
#ifndef SERVICES_KERNEL
|
||||
jint JvmtiExport::load_agent_library(AttachOperation* op, outputStream* st) {
|
||||
char ebuf[1024];
|
||||
char buffer[JVM_MAXPATHLEN];
|
||||
@ -2259,7 +2257,6 @@ jint JvmtiExport::load_agent_library(AttachOperation* op, outputStream* st) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif // SERVICES_KERNEL
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -2457,4 +2454,3 @@ JvmtiGCMarker::~JvmtiGCMarker() {
|
||||
JvmtiExport::post_garbage_collection_finish();
|
||||
}
|
||||
}
|
||||
#endif // JVMTI_KERNEL
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,11 +25,9 @@
|
||||
#ifndef SHARE_VM_PRIMS_JVMTIEXTENSIONS_HPP
|
||||
#define SHARE_VM_PRIMS_JVMTIEXTENSIONS_HPP
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
#include "jvmtifiles/jvmti.h"
|
||||
#include "jvmtifiles/jvmtiEnv.hpp"
|
||||
#include "memory/allocation.hpp"
|
||||
#endif
|
||||
|
||||
// JvmtiExtensions
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -905,8 +905,6 @@ void JvmtiSuspendControl::print() {
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef KERNEL
|
||||
|
||||
JvmtiDeferredEvent JvmtiDeferredEvent::compiled_method_load_event(
|
||||
nmethod* nm) {
|
||||
JvmtiDeferredEvent event = JvmtiDeferredEvent(TYPE_COMPILED_METHOD_LOAD);
|
||||
@ -1098,5 +1096,3 @@ void JvmtiDeferredEventQueue::process_pending_events() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // ndef KERNEL
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,8 +25,6 @@
|
||||
#ifndef SHARE_VM_PRIMS_JVMTIIMPL_HPP
|
||||
#define SHARE_VM_PRIMS_JVMTIIMPL_HPP
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "jvmtifiles/jvmti.h"
|
||||
#include "oops/objArrayOop.hpp"
|
||||
@ -435,7 +433,6 @@ public:
|
||||
static void print();
|
||||
};
|
||||
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
||||
/**
|
||||
* When a thread (such as the compiler thread or VM thread) cannot post a
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,10 +25,8 @@
|
||||
#ifndef SHARE_VM_PRIMS_JVMTIRAWMONITOR_HPP
|
||||
#define SHARE_VM_PRIMS_JVMTIRAWMONITOR_HPP
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
#include "runtime/objectMonitor.hpp"
|
||||
#include "utilities/growableArray.hpp"
|
||||
#endif
|
||||
|
||||
//
|
||||
// class JvmtiRawMonitor
|
||||
|
@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "classfile/metadataOnStackMark.hpp"
|
||||
#include "classfile/systemDictionary.hpp"
|
||||
#include "classfile/verifier.hpp"
|
||||
#include "code/codeCache.hpp"
|
||||
@ -115,43 +116,6 @@ bool VM_RedefineClasses::doit_prologue() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Keep track of marked on-stack metadata so it can be cleared.
|
||||
GrowableArray<Metadata*>* _marked_objects = NULL;
|
||||
NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;)
|
||||
|
||||
// Walk metadata on the stack and mark it so that redefinition doesn't delete
|
||||
// it. Class unloading also walks the previous versions and might try to
|
||||
// delete it, so this class is used by class unloading also.
|
||||
MetadataOnStackMark::MetadataOnStackMark() {
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
|
||||
NOT_PRODUCT(_is_active = true;)
|
||||
if (_marked_objects == NULL) {
|
||||
_marked_objects = new (ResourceObj::C_HEAP, mtClass) GrowableArray<Metadata*>(1000, true);
|
||||
}
|
||||
Threads::metadata_do(Metadata::mark_on_stack);
|
||||
CodeCache::alive_nmethods_do(nmethod::mark_on_stack);
|
||||
CompileBroker::mark_on_stack();
|
||||
}
|
||||
|
||||
MetadataOnStackMark::~MetadataOnStackMark() {
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
|
||||
// Unmark everything that was marked. Can't do the same walk because
|
||||
// redefine classes messes up the code cache so the set of methods
|
||||
// might not be the same.
|
||||
for (int i = 0; i< _marked_objects->length(); i++) {
|
||||
_marked_objects->at(i)->set_on_stack(false);
|
||||
}
|
||||
_marked_objects->clear(); // reuse growable array for next time.
|
||||
NOT_PRODUCT(_is_active = false;)
|
||||
}
|
||||
|
||||
// Record which objects are marked so we can unmark the same objects.
|
||||
void MetadataOnStackMark::record(Metadata* m) {
|
||||
assert(_is_active, "metadata on stack marking is active");
|
||||
_marked_objects->push(m);
|
||||
}
|
||||
|
||||
|
||||
void VM_RedefineClasses::doit() {
|
||||
Thread *thread = Thread::current();
|
||||
|
||||
@ -1158,6 +1122,8 @@ bool VM_RedefineClasses::merge_constant_pools(constantPoolHandle old_cp,
|
||||
}
|
||||
} // end for each old_cp entry
|
||||
|
||||
ConstantPool::copy_operands(old_cp, *merge_cp_p, CHECK_0);
|
||||
|
||||
// We don't need to sanity check that *merge_cp_length_p is within
|
||||
// *merge_cp_p bounds since we have the minimum on-entry check above.
|
||||
(*merge_cp_length_p) = old_i;
|
||||
@ -1341,8 +1307,12 @@ jvmtiError VM_RedefineClasses::merge_cp_and_rewrite(
|
||||
_index_map_count = 0;
|
||||
_index_map_p = new intArray(scratch_cp->length(), -1);
|
||||
|
||||
// reference to the cp holder is needed for copy_operands()
|
||||
merge_cp->set_pool_holder(scratch_class());
|
||||
bool result = merge_constant_pools(old_cp, scratch_cp, &merge_cp,
|
||||
&merge_cp_length, THREAD);
|
||||
merge_cp->set_pool_holder(NULL);
|
||||
|
||||
if (!result) {
|
||||
// The merge can fail due to memory allocation failure or due
|
||||
// to robustness checks.
|
||||
@ -2416,13 +2386,14 @@ void VM_RedefineClasses::set_new_constant_pool(
|
||||
assert(version != 0, "sanity check");
|
||||
smaller_cp->set_version(version);
|
||||
|
||||
// attach klass to new constant pool
|
||||
// reference to the cp holder is needed for copy_operands()
|
||||
smaller_cp->set_pool_holder(scratch_class());
|
||||
|
||||
scratch_cp->copy_cp_to(1, scratch_cp_length - 1, smaller_cp, 1, THREAD);
|
||||
scratch_cp = smaller_cp;
|
||||
|
||||
// attach new constant pool to klass
|
||||
scratch_cp->set_pool_holder(scratch_class());
|
||||
|
||||
// attach klass to new constant pool
|
||||
scratch_class->set_constants(scratch_cp());
|
||||
|
||||
int i; // for portability
|
||||
@ -3140,11 +3111,9 @@ void VM_RedefineClasses::redefine_single_class(jclass the_jclass,
|
||||
Klass* the_class_oop = java_lang_Class::as_Klass(the_class_mirror);
|
||||
instanceKlassHandle the_class = instanceKlassHandle(THREAD, the_class_oop);
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
// Remove all breakpoints in methods of this class
|
||||
JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints();
|
||||
jvmti_breakpoints.clearall_in_class_at_safepoint(the_class_oop);
|
||||
#endif // !JVMTI_KERNEL
|
||||
|
||||
if (the_class_oop == Universe::reflect_invoke_cache()->klass()) {
|
||||
// We are redefining java.lang.reflect.Method. Method.invoke() is
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -487,17 +487,4 @@ class VM_RedefineClasses: public VM_Operation {
|
||||
// and redefine implementation
|
||||
static bool is_modifiable_class(oop klass_mirror);
|
||||
};
|
||||
|
||||
|
||||
// Helper class to mark and unmark metadata used on the stack as either handles
|
||||
// or executing methods, so that it can't be deleted during class redefinition
|
||||
// and class unloading.
|
||||
class MetadataOnStackMark : public StackObj {
|
||||
NOT_PRODUCT(static bool _is_active;)
|
||||
public:
|
||||
MetadataOnStackMark() NOT_JVMTI_RETURN;
|
||||
~MetadataOnStackMark() NOT_JVMTI_RETURN;
|
||||
static void record(Metadata* m) NOT_JVMTI_RETURN;
|
||||
};
|
||||
|
||||
#endif // SHARE_VM_PRIMS_JVMTIREDEFINECLASSES_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,14 +27,12 @@
|
||||
#ifndef SHARE_VM_PRIMS_JVMTITAGMAP_HPP
|
||||
#define SHARE_VM_PRIMS_JVMTITAGMAP_HPP
|
||||
|
||||
#ifndef JVMTI_KERNEL
|
||||
#include "gc_interface/collectedHeap.hpp"
|
||||
#include "jvmtifiles/jvmti.h"
|
||||
#include "jvmtifiles/jvmtiEnv.hpp"
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/genCollectedHeap.hpp"
|
||||
#include "memory/universe.hpp"
|
||||
#endif
|
||||
|
||||
// forward references
|
||||
class JvmtiTagHashmap;
|
||||
|
@ -2472,10 +2472,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
|
||||
// -Xshare:dump
|
||||
} else if (match_option(option, "-Xshare:dump", &tail)) {
|
||||
#if defined(KERNEL)
|
||||
vm_exit_during_initialization(
|
||||
"Dumping a shared archive is not supported on the Kernel JVM.", NULL);
|
||||
#elif !INCLUDE_CDS
|
||||
#if !INCLUDE_CDS
|
||||
vm_exit_during_initialization(
|
||||
"Dumping a shared archive is not supported in this VM.", NULL);
|
||||
#else
|
||||
@ -3463,36 +3460,6 @@ void Arguments::PropertyList_unique_add(SystemProperty** plist, const char* k, c
|
||||
PropertyList_add(plist, k, v);
|
||||
}
|
||||
|
||||
#ifdef KERNEL
|
||||
char *Arguments::get_kernel_properties() {
|
||||
// Find properties starting with kernel and append them to string
|
||||
// We need to find out how long they are first because the URL's that they
|
||||
// might point to could get long.
|
||||
int length = 0;
|
||||
SystemProperty* prop;
|
||||
for (prop = _system_properties; prop != NULL; prop = prop->next()) {
|
||||
if (strncmp(prop->key(), "kernel.", 7 ) == 0) {
|
||||
length += (strlen(prop->key()) + strlen(prop->value()) + 5); // "-D ="
|
||||
}
|
||||
}
|
||||
// Add one for null terminator.
|
||||
char *props = AllocateHeap(length + 1, mtInternal);
|
||||
if (length != 0) {
|
||||
int pos = 0;
|
||||
for (prop = _system_properties; prop != NULL; prop = prop->next()) {
|
||||
if (strncmp(prop->key(), "kernel.", 7 ) == 0) {
|
||||
jio_snprintf(&props[pos], length-pos,
|
||||
"-D%s=%s ", prop->key(), prop->value());
|
||||
pos = strlen(props);
|
||||
}
|
||||
}
|
||||
}
|
||||
// null terminate props in case of null
|
||||
props[length] = '\0';
|
||||
return props;
|
||||
}
|
||||
#endif // KERNEL
|
||||
|
||||
// Copies src into buf, replacing "%%" with "%" and "%p" with pid
|
||||
// Returns true if all of the source pointed by src has been copied over to
|
||||
// the destination buffer pointed by buf. Otherwise, returns false.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -540,11 +540,6 @@ class Arguments : AllStatic {
|
||||
|
||||
// Utility: copies src into buf, replacing "%%" with "%" and "%p" with pid.
|
||||
static bool copy_expand_pid(const char* src, size_t srclen, char* buf, size_t buflen);
|
||||
|
||||
#ifdef KERNEL
|
||||
// For java kernel vm, return property string for kernel properties.
|
||||
static char *get_kernel_properties();
|
||||
#endif // KERNEL
|
||||
};
|
||||
|
||||
#endif // SHARE_VM_RUNTIME_ARGUMENTS_HPP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -3739,28 +3739,6 @@ static OnLoadEntry_t lookup_on_load(AgentLibrary* agent, const char *on_load_sym
|
||||
name)) {
|
||||
library = os::dll_load(buffer, ebuf, sizeof ebuf);
|
||||
}
|
||||
#ifdef KERNEL
|
||||
// Download instrument dll
|
||||
if (library == NULL && strcmp(name, "instrument") == 0) {
|
||||
char *props = Arguments::get_kernel_properties();
|
||||
char *home = Arguments::get_java_home();
|
||||
const char *fmt = "%s/bin/java %s -Dkernel.background.download=false"
|
||||
" sun.jkernel.DownloadManager -download client_jvm";
|
||||
size_t length = strlen(props) + strlen(home) + strlen(fmt) + 1;
|
||||
char *cmd = NEW_C_HEAP_ARRAY(char, length, mtThread);
|
||||
jio_snprintf(cmd, length, fmt, home, props);
|
||||
int status = os::fork_and_exec(cmd);
|
||||
FreeHeap(props);
|
||||
if (status == -1) {
|
||||
warning(cmd);
|
||||
vm_exit_during_initialization("fork_and_exec failed: %s",
|
||||
strerror(errno));
|
||||
}
|
||||
FREE_C_HEAP_ARRAY(char, cmd, mtThread);
|
||||
// when this comes back the instrument.dll should be where it belongs.
|
||||
library = os::dll_load(buffer, ebuf, sizeof ebuf);
|
||||
}
|
||||
#endif // KERNEL
|
||||
if (library == NULL) { // Try the local directory
|
||||
char ns[1] = {0};
|
||||
if (os::dll_build_name(buffer, sizeof(buffer), ns, name)) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,9 +25,7 @@
|
||||
#ifndef SHARE_VM_RUNTIME_VMSTRUCTS_HPP
|
||||
#define SHARE_VM_RUNTIME_VMSTRUCTS_HPP
|
||||
|
||||
#ifndef VM_STRUCTS_KERNEL
|
||||
#include "utilities/debug.hpp"
|
||||
#endif
|
||||
#ifdef COMPILER1
|
||||
#include "c1/c1_Runtime1.hpp"
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -111,9 +111,6 @@ void Abstract_VM_Version::initialize() {
|
||||
#endif
|
||||
|
||||
#ifndef VMTYPE
|
||||
#ifdef KERNEL
|
||||
#define VMTYPE "Kernel"
|
||||
#else // KERNEL
|
||||
#ifdef TIERED
|
||||
#define VMTYPE "Server"
|
||||
#else // TIERED
|
||||
@ -128,7 +125,6 @@ void Abstract_VM_Version::initialize() {
|
||||
COMPILER2_PRESENT("Server")
|
||||
#endif // ZERO
|
||||
#endif // TIERED
|
||||
#endif // KERNEL
|
||||
#endif
|
||||
|
||||
#ifndef HOTSPOT_VM_DISTRO
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -170,7 +170,6 @@ static jint jcmd(AttachOperation* op, outputStream* out) {
|
||||
return JNI_OK;
|
||||
}
|
||||
|
||||
#ifndef SERVICES_KERNEL // Heap dumping not supported
|
||||
// Implementation of "dumpheap" command.
|
||||
// See also: HeapDumpDCmd class
|
||||
//
|
||||
@ -212,7 +211,6 @@ jint dump_heap(AttachOperation* op, outputStream* out) {
|
||||
}
|
||||
return JNI_OK;
|
||||
}
|
||||
#endif // SERVICES_KERNEL
|
||||
|
||||
// Implementation of "inspectheap" command
|
||||
// See also: ClassHistogramDCmd class
|
||||
@ -382,9 +380,7 @@ static jint print_flag(AttachOperation* op, outputStream* out) {
|
||||
static AttachOperationFunctionInfo funcs[] = {
|
||||
{ "agentProperties", get_agent_properties },
|
||||
{ "datadump", data_dump },
|
||||
#ifndef SERVICES_KERNEL
|
||||
{ "dumpheap", dump_heap },
|
||||
#endif // SERVICES_KERNEL
|
||||
{ "load", JvmtiExport::load_agent_library },
|
||||
{ "properties", get_system_properties },
|
||||
{ "threaddump", thread_dump },
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,8 +38,6 @@
|
||||
// complets the result value and any result data is returned to the client
|
||||
// tool.
|
||||
|
||||
#ifndef SERVICES_KERNEL
|
||||
|
||||
class AttachOperation;
|
||||
|
||||
typedef jint (*AttachOperationFunction)(AttachOperation* op, outputStream* out);
|
||||
@ -48,7 +46,6 @@ struct AttachOperationFunctionInfo {
|
||||
const char* name;
|
||||
AttachOperationFunction func;
|
||||
};
|
||||
#endif // SERVICES_KERNEL
|
||||
|
||||
class AttachListener: AllStatic {
|
||||
public:
|
||||
|
Loading…
Reference in New Issue
Block a user