8152666: The new Hotspot Build System
Co-authored-by: Magnus Ihse Bursie <magnus.ihse.bursie@oracle.com> Co-authored-by: Ingemar Aberg <ingemar.aberg@oracle.com> Reviewed-by: ihse, dcubed, erikj
This commit is contained in:
parent
20330031f4
commit
87d68625af
@ -237,19 +237,21 @@ else
|
|||||||
$(MAKE_ARGS) $(VM_TARGET)
|
$(MAKE_ARGS) $(VM_TARGET)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# NOTE: Changes in this file was just to facilitate comparison when
|
||||||
|
# developing the new build, and should not be integrated.
|
||||||
generic_buildcore: $(HOTSPOT_SCRIPT)
|
generic_buildcore: $(HOTSPOT_SCRIPT)
|
||||||
ifeq ($(HS_ARCH),ppc)
|
#ifeq ($(HS_ARCH),ppc)
|
||||||
ifeq ($(ARCH_DATA_MODEL),64)
|
# ifeq ($(ARCH_DATA_MODEL),64)
|
||||||
$(MKDIR) -p $(OUTPUTDIR)
|
$(MKDIR) -p $(OUTPUTDIR)
|
||||||
$(CD) $(OUTPUTDIR); \
|
$(CD) $(OUTPUTDIR); \
|
||||||
$(MAKE) -f $(ABS_OS_MAKEFILE) \
|
$(MAKE) -f $(ABS_OS_MAKEFILE) \
|
||||||
$(MAKE_ARGS) $(VM_TARGET)
|
$(MAKE_ARGS) $(VM_TARGET)
|
||||||
else
|
# else
|
||||||
@$(ECHO) "No ($(VM_TARGET)) for ppc ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
|
# @$(ECHO) "No ($(VM_TARGET)) for ppc ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
|
||||||
endif
|
# endif
|
||||||
else
|
#else
|
||||||
@$(ECHO) "No ($(VM_TARGET)) for $(HS_ARCH)"
|
# @$(ECHO) "No ($(VM_TARGET)) for $(HS_ARCH)"
|
||||||
endif
|
#endif
|
||||||
|
|
||||||
generic_buildzero: $(HOTSPOT_SCRIPT)
|
generic_buildzero: $(HOTSPOT_SCRIPT)
|
||||||
$(MKDIR) -p $(OUTPUTDIR)
|
$(MKDIR) -p $(OUTPUTDIR)
|
||||||
|
@ -30,3 +30,8 @@ TYPE = ZERO
|
|||||||
|
|
||||||
# Install libjvm.so, etc in in server directory.
|
# Install libjvm.so, etc in in server directory.
|
||||||
VM_SUBDIR = server
|
VM_SUBDIR = server
|
||||||
|
|
||||||
|
# Disable trace for zero builds
|
||||||
|
# NOTE: This is used for simple comparison with the new build system, and
|
||||||
|
# should not be merged into mainline with build-infra.
|
||||||
|
INCLUDE_TRACE := false
|
||||||
|
@ -270,7 +270,7 @@ $(DTRACE.o): $(DTRACE).d $(DTraced_Files)
|
|||||||
@echo $(LOG_INFO) Compiling $(DTRACE).d
|
@echo $(LOG_INFO) Compiling $(DTRACE).d
|
||||||
|
|
||||||
$(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -xlazyload -o $@ -s $(DTRACE).d \
|
$(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -xlazyload -o $@ -s $(DTRACE).d \
|
||||||
$(DTraced_Files) ||\
|
$(sort $(DTraced_Files)) ||\
|
||||||
STATUS=$$?;\
|
STATUS=$$?;\
|
||||||
if [ x"$$STATUS" = x"1" ]; then \
|
if [ x"$$STATUS" = x"1" ]; then \
|
||||||
if [ x`uname -r` = x"5.10" -a \
|
if [ x`uname -r` = x"5.10" -a \
|
||||||
|
@ -48,10 +48,10 @@ HS_BUILD_ID=$(HOTSPOT_VERSION_STRING)-debug
|
|||||||
# Force resources to be rebuilt every time
|
# Force resources to be rebuilt every time
|
||||||
$(Res_Files): FORCE
|
$(Res_Files): FORCE
|
||||||
|
|
||||||
|
# NOTE: Changes in this file was just to give a proper command line when linking
|
||||||
|
# for use when developing the new build, and should not be integrated.
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
$(LD) @<<
|
$(LD) $(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||||
$(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
|
||||||
<<
|
|
||||||
!if "$(MT)" != ""
|
!if "$(MT)" != ""
|
||||||
# The previous link command created a .manifest file that we want to
|
# The previous link command created a .manifest file that we want to
|
||||||
# insert into the linked artifact so we do not need to track it
|
# insert into the linked artifact so we do not need to track it
|
||||||
|
@ -47,10 +47,10 @@ HS_BUILD_ID=$(HOTSPOT_VERSION_STRING)-fastdebug
|
|||||||
# Force resources to be rebuilt every time
|
# Force resources to be rebuilt every time
|
||||||
$(Res_Files): FORCE
|
$(Res_Files): FORCE
|
||||||
|
|
||||||
|
# NOTE: Changes in this file was just to give a proper command line when linking
|
||||||
|
# for use when developing the new build, and should not be integrated.
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
$(LD) @<<
|
$(LD) $(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||||
$(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
|
||||||
<<
|
|
||||||
!if "$(MT)" != ""
|
!if "$(MT)" != ""
|
||||||
# The previous link command created a .manifest file that we want to
|
# The previous link command created a .manifest file that we want to
|
||||||
# insert into the linked artifact so we do not need to track it
|
# insert into the linked artifact so we do not need to track it
|
||||||
|
@ -51,10 +51,11 @@ HS_BUILD_ID=$(HOTSPOT_VERSION_STRING)
|
|||||||
# Force resources to be rebuilt every time
|
# Force resources to be rebuilt every time
|
||||||
$(Res_Files): FORCE
|
$(Res_Files): FORCE
|
||||||
|
|
||||||
|
# NOTE: Changes in this file was just to give a proper command line when linking
|
||||||
|
# for use when developing the new build, and should not be integrated.
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
$(LD) @<<
|
$(LD) $(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||||
$(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
|
||||||
<<
|
|
||||||
!if "$(MT)" != ""
|
!if "$(MT)" != ""
|
||||||
# The previous link command created a .manifest file that we want to
|
# The previous link command created a .manifest file that we want to
|
||||||
# insert into the linked artifact so we do not need to track it
|
# insert into the linked artifact so we do not need to track it
|
||||||
|
@ -41,6 +41,12 @@ HAS_ALT_SRC = true
|
|||||||
!endif
|
!endif
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!ifndef OPENJDK
|
||||||
|
!if EXISTS($(TraceAltSrcDir))
|
||||||
|
HAS_ALT_SRC = true
|
||||||
|
!endif
|
||||||
|
!endif
|
||||||
|
|
||||||
TraceGeneratedNames = \
|
TraceGeneratedNames = \
|
||||||
traceEventClasses.hpp \
|
traceEventClasses.hpp \
|
||||||
traceEventIds.hpp \
|
traceEventIds.hpp \
|
||||||
|
@ -305,8 +305,10 @@ bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWi
|
|||||||
|
|
||||||
# This guy should remain a single colon rule because
|
# This guy should remain a single colon rule because
|
||||||
# otherwise we can't specify the output filename.
|
# otherwise we can't specify the output filename.
|
||||||
|
# NOTE: Changes in this file was just to give a proper command line when linking
|
||||||
|
# for use when developing the new build, and should not be integrated.
|
||||||
{$(COMMONSRC)\os\windows\vm}.rc.res:
|
{$(COMMONSRC)\os\windows\vm}.rc.res:
|
||||||
@$(RC) $(RC_FLAGS) /fo"$@" $<
|
$(RC) $(RC_FLAGS) /fo"$@" $<
|
||||||
|
|
||||||
{$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
|
{$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
|
||||||
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
54
hotspot/makefiles/BuildHotspot.gmk
Normal file
54
hotspot/makefiles/BuildHotspot.gmk
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2015, 2016 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This must be the first rule
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
|
||||||
|
VARIANT_TARGETS := $(foreach v, $(JVM_VARIANTS), variant-$v)
|
||||||
|
VARIANT_GENSRC_TARGETS := $(addsuffix -gensrc, $(VARIANT_TARGETS))
|
||||||
|
VARIANT_LIBS_TARGETS := $(addsuffix -libs, $(VARIANT_TARGETS))
|
||||||
|
|
||||||
|
$(VARIANT_GENSRC_TARGETS): variant-%-gensrc:
|
||||||
|
$(call LogWarn, Building JVM variant '$*' with features '$(JVM_FEATURES_$*)')
|
||||||
|
+$(MAKE) -f gensrc/GenerateSources.gmk JVM_VARIANT=$*
|
||||||
|
|
||||||
|
$(VARIANT_LIBS_TARGETS): variant-%-libs: variant-%-gensrc
|
||||||
|
+$(MAKE) -f lib/CompileLibraries.gmk JVM_VARIANT=$*
|
||||||
|
|
||||||
|
$(VARIANT_TARGETS): variant-%: variant-%-gensrc variant-%-libs
|
||||||
|
|
||||||
|
jsig:
|
||||||
|
+$(MAKE) -f lib/CompileLibjsig.gmk
|
||||||
|
|
||||||
|
dist: $(VARIANT_TARGETS) jsig
|
||||||
|
+$(MAKE) -f Dist.gmk
|
||||||
|
|
||||||
|
all: dist
|
||||||
|
|
||||||
|
.PHONY: $(VARIANT_TARGETS) $(VARIANT_GENSRC_TARGETS) $(VARIANT_LIBS_TARGETS) \
|
||||||
|
jsig dist all
|
239
hotspot/makefiles/Dist.gmk
Normal file
239
hotspot/makefiles/Dist.gmk
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Copy the generated output into well-defined places in the dist directory.
|
||||||
|
|
||||||
|
# This must be the first rule
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, Dist.gmk))
|
||||||
|
|
||||||
|
DIST_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/dist
|
||||||
|
|
||||||
|
# Unfortunately, all platforms have different target subdirs.
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
LIB_SUBDIR := bin
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
LIB_SUBDIR := lib
|
||||||
|
else
|
||||||
|
LIB_SUBDIR := lib$(OPENJDK_TARGET_CPU_LIBDIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Functions to setup copying of files for variants
|
||||||
|
|
||||||
|
# Support macro for SetupDistLibFile
|
||||||
|
define macosx_universalize
|
||||||
|
$(MKDIR) -p $(@D)
|
||||||
|
$(LIPO) -create -output $@ $<
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup make rules to copy a native library and associated data.
|
||||||
|
#
|
||||||
|
# Parameter 1 is the name of the rule. This name is used as variable prefix,
|
||||||
|
# and the targets generated are listed in a variable by that name.
|
||||||
|
#
|
||||||
|
# Remaining parameters are named arguments. These include:
|
||||||
|
# NAME -- The base name of the native library (e.g. 'jvm')
|
||||||
|
# VARIANT -- The variant to copy from
|
||||||
|
# VARIANT_TARGET_DIR -- The variant target sub dir, with trailing slash, optional
|
||||||
|
SetupDistLibFile = $(NamedParamsMacroTemplate)
|
||||||
|
define SetupDistLibFileBody
|
||||||
|
ifneq ($$($1_VARIANT), )
|
||||||
|
$1_SRC_DIR := $$(HOTSPOT_OUTPUTDIR)/variant-$$($1_VARIANT)/lib$$($1_NAME)
|
||||||
|
else
|
||||||
|
$1_SRC_DIR := $$(HOTSPOT_OUTPUTDIR)/lib$$($1_NAME)
|
||||||
|
endif
|
||||||
|
$1_LIB_NAME := $(LIBRARY_PREFIX)$$($1_NAME)
|
||||||
|
$1_TARGET_DIR := $$(DIST_OUTPUTDIR)/$$(LIB_SUBDIR)/$$($1_VARIANT_TARGET_DIR)
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# We must use the 'universalize' macro to run lipo on shared libraries, at
|
||||||
|
# least until JDK-8069540 is fixed.
|
||||||
|
$1_MACRO := macosx_universalize
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Copy the the native library.
|
||||||
|
$$(eval $$(call SetupCopyFiles, $1_COPY_LIB, \
|
||||||
|
DEST := $$($1_TARGET_DIR), \
|
||||||
|
MACRO := $$($1_MACRO), \
|
||||||
|
FILES := $$(wildcard \
|
||||||
|
$$($1_SRC_DIR)/$$($1_LIB_NAME)$(SHARED_LIBRARY_SUFFIX)), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$($1_COPY_LIB)
|
||||||
|
|
||||||
|
# Copy related data (debug symbols, static-build symbols file etc)
|
||||||
|
$$(eval $$(call SetupCopyFiles, $1_COPY_FILES, \
|
||||||
|
DEST := $$($1_TARGET_DIR), \
|
||||||
|
FILES := $$(wildcard \
|
||||||
|
$$(addprefix $$($1_SRC_DIR)/$$($1_LIB_NAME), \
|
||||||
|
.diz .debuginfo .pdb .map .symbols)), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$($1_COPY_FILES)
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# Debug symbols on macosx is a directory, not a single file, per library.
|
||||||
|
$1_DSYM_SRC := $$($1_SRC_DIR)/$$($1_LIB_NAME)$(SHARED_LIBRARY_SUFFIX).dSYM)
|
||||||
|
ifneq ($$(wildcard $$($1_DSYM_SRC)), )
|
||||||
|
$$(eval $$(call SetupCopyFiles, $1_COPY_DSYM_DIR, \
|
||||||
|
DEST := $$($1_TARGET_DIR), \
|
||||||
|
SRC := $$($1_SRC_DIR), \
|
||||||
|
FILES := $$(shell $(FIND) $$($1_DSYM_SRC) -type f), \
|
||||||
|
))
|
||||||
|
TARGETS += $$($1_COPY_DSYM_DIR)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Copy common files, which are independent on the jvm variant(s) being built.
|
||||||
|
# For files that were generated during the build, we assume all versions of
|
||||||
|
# these files are identical, and just pick one arbitrarily to use as source.
|
||||||
|
|
||||||
|
ANY_JVM_VARIANT := $(firstword $(JVM_VARIANTS))
|
||||||
|
JVM_VARIANT_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/variant-$(ANY_JVM_VARIANT)
|
||||||
|
|
||||||
|
### Copy platform-independent .h files
|
||||||
|
INCLUDE_FILES_SRC_DIR := $(HOTSPOT_TOPDIR)/src/share/vm
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_INCLUDE, \
|
||||||
|
SRC := $(INCLUDE_FILES_SRC_DIR), \
|
||||||
|
DEST := $(DIST_OUTPUTDIR)/include, \
|
||||||
|
FLATTEN := true, \
|
||||||
|
FILES := $(INCLUDE_FILES_SRC_DIR)/prims/jni.h \
|
||||||
|
$(INCLUDE_FILES_SRC_DIR)/code/jvmticmlr.h \
|
||||||
|
$(INCLUDE_FILES_SRC_DIR)/services/jmm.h))
|
||||||
|
|
||||||
|
TARGETS += $(COPY_INCLUDE)
|
||||||
|
|
||||||
|
### Copy jni_md.h
|
||||||
|
|
||||||
|
# This might have been defined in a custom extension
|
||||||
|
ifeq ($(JNI_MD_H_SRC), )
|
||||||
|
JNI_MD_H_SRC := $(HOTSPOT_TOPDIR)/src/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/vm/jni_$(HOTSPOT_TARGET_CPU_ARCH).h
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# NOTE: This should most likely be darwin, but the old hotspot build uses bsd
|
||||||
|
JNI_MD_SUBDIR := bsd
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
JNI_MD_SUBDIR := win32
|
||||||
|
else
|
||||||
|
JNI_MD_SUBDIR := $(OPENJDK_TARGET_OS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# SetupCopyFiles is not used here since it's non-trivial to copy a single
|
||||||
|
# file with a different target name.
|
||||||
|
$(DIST_OUTPUTDIR)/include/$(JNI_MD_SUBDIR)/jni_md.h: $(JNI_MD_H_SRC)
|
||||||
|
$(call LogInfo, Copying hotspot/dist/include/$(JNI_MD_SUBDIR)/jni_md.h)
|
||||||
|
$(install-file)
|
||||||
|
|
||||||
|
TARGETS += $(DIST_OUTPUTDIR)/include/$(JNI_MD_SUBDIR)/jni_md.h
|
||||||
|
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_JVMTI_H, \
|
||||||
|
DEST := $(DIST_OUTPUTDIR)/include, \
|
||||||
|
FLATTEN := true, \
|
||||||
|
FILES := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jvmtifiles/jvmti.h))
|
||||||
|
|
||||||
|
TARGETS += $(COPY_JVMTI_H)
|
||||||
|
|
||||||
|
# NOTE: In the old build, this file was not copied on Windows.
|
||||||
|
ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_JVMTI_HTML, \
|
||||||
|
DEST := $(DIST_OUTPUTDIR)/docs/platform/jvmti, \
|
||||||
|
FILES := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jvmtifiles/jvmti.html))
|
||||||
|
endif
|
||||||
|
|
||||||
|
TARGETS += $(COPY_JVMTI_HTML)
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_JVM_LIB, \
|
||||||
|
DEST := $(DIST_OUTPUTDIR)/lib, \
|
||||||
|
FILES :=$(JVM_VARIANT_OUTPUTDIR)/libjvm/objs/jvm.lib))
|
||||||
|
|
||||||
|
TARGETS += $(COPY_JVM_LIB)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Copy libjsig, if it exists
|
||||||
|
$(eval $(call SetupDistLibFile, DIST_jsig, \
|
||||||
|
NAME := jsig, \
|
||||||
|
))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Copy variant-specific files
|
||||||
|
|
||||||
|
# Setup make rules to copy a single variant to dist.
|
||||||
|
# $1: The name of the variant
|
||||||
|
define SetupDistForVariant
|
||||||
|
ifneq ($$(filter client minimal, $1), )
|
||||||
|
VARIANT_TARGET_DIR := $1
|
||||||
|
else
|
||||||
|
# Use 'server' as default target directory name for all other variants.
|
||||||
|
VARIANT_TARGET_DIR := server
|
||||||
|
endif
|
||||||
|
|
||||||
|
$$(eval $$(call SetupDistLibFile, DIST_$(strip $1)_jvm, \
|
||||||
|
NAME := jvm, \
|
||||||
|
VARIANT := $1, \
|
||||||
|
VARIANT_TARGET_DIR := $$(VARIANT_TARGET_DIR)/, \
|
||||||
|
))
|
||||||
|
|
||||||
|
# Copy the dtrace libraries, if they exist
|
||||||
|
$$(eval $$(call SetupDistLibFile, DIST_$(strip $1)_jvm_db, \
|
||||||
|
NAME := jvm_db, \
|
||||||
|
VARIANT := $1, \
|
||||||
|
VARIANT_TARGET_DIR := $$(VARIANT_TARGET_DIR)/, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$$(eval $$(call SetupDistLibFile, DIST_$(strip $1)_jvm_dtrace, \
|
||||||
|
NAME := jvm_dtrace, \
|
||||||
|
VARIANT := $1, \
|
||||||
|
VARIANT_TARGET_DIR := $$(VARIANT_TARGET_DIR)/, \
|
||||||
|
))
|
||||||
|
|
||||||
|
# Copy the Xusage.txt file
|
||||||
|
$$(eval $$(call SetupCopyFiles, DIST_$(strip $1)_Xusage, \
|
||||||
|
DEST := $$(DIST_OUTPUTDIR)/$$(LIB_SUBDIR)/$(strip $1), \
|
||||||
|
FILES := $$(HOTSPOT_OUTPUTDIR)/variant-$(strip $1)/support/misc/Xusage.txt, \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $$(DIST_$(strip $1)_Xusage)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach variant, $(JVM_VARIANTS), \
|
||||||
|
$(eval $(call SetupDistForVariant, $(variant))) \
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
.PHONY: all
|
45
hotspot/makefiles/HotspotCommon.gmk
Normal file
45
hotspot/makefiles/HotspotCommon.gmk
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
ifeq ($(JVM_VARIANT), )
|
||||||
|
$(error This makefile must be called with JVM_VARIANT set)
|
||||||
|
endif
|
||||||
|
|
||||||
|
JVM_VARIANT_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/variant-$(JVM_VARIANT)
|
||||||
|
JVM_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm
|
||||||
|
JVM_SUPPORT_DIR := $(JVM_VARIANT_OUTPUTDIR)/support
|
||||||
|
|
||||||
|
DTRACE_SUPPORT_DIR := $(JVM_SUPPORT_DIR)/dtrace
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Test if a feature is available in the present build of JVM_VARIANT. Will return
|
||||||
|
# 'true' or 'false'.
|
||||||
|
# $1 - the feature to test for
|
||||||
|
check-jvm-feature = \
|
||||||
|
$(strip \
|
||||||
|
$(if $(filter-out $(VALID_JVM_FEATURES), $1), \
|
||||||
|
$(error Internal error: Invalid feature tested: $1)) \
|
||||||
|
$(if $(filter $1, $(JVM_FEATURES_$(JVM_VARIANT))), true, false))
|
75
hotspot/makefiles/gensrc/GenerateSources.gmk
Normal file
75
hotspot/makefiles/gensrc/GenerateSources.gmk
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
include JavaCompilation.gmk
|
||||||
|
include NativeCompilation.gmk
|
||||||
|
include TextFileProcessing.gmk
|
||||||
|
|
||||||
|
include HotspotCommon.gmk
|
||||||
|
|
||||||
|
# The real work is done in these files
|
||||||
|
|
||||||
|
include gensrc/GensrcAdlc.gmk
|
||||||
|
include gensrc/GensrcDtrace.gmk
|
||||||
|
include gensrc/GensrcJvmti.gmk
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, gensrc/GenerateSources.gmk))
|
||||||
|
|
||||||
|
# While technically the rules below are "gendata" which can be done in parallel
|
||||||
|
# with native compilation, let's keep it here for simplicity.
|
||||||
|
|
||||||
|
# The Xusage.txt file needs to have platform specific path separator
|
||||||
|
$(eval $(call SetupTextFileProcessing, CREATE_XUSAGE, \
|
||||||
|
SOURCE_FILES := $(HOTSPOT_TOPDIR)/src/share/vm/Xusage.txt, \
|
||||||
|
OUTPUT_FILE := $(JVM_SUPPORT_DIR)/misc/Xusage.txt, \
|
||||||
|
REPLACEMENTS := separated by ;> => separated by $(PATH_SEP)> ; , \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $(CREATE_XUSAGE)
|
||||||
|
|
||||||
|
# Setup the hotspot launcher script for developer use
|
||||||
|
$(eval $(call SetupTextFileProcessing, CREATE_HOTSPOT_LAUNCHER, \
|
||||||
|
SOURCE_FILES := $(HOTSPOT_TOPDIR)/make/hotspot.script, \
|
||||||
|
OUTPUT_FILE := $(JVM_OUTPUTDIR)/hotspot, \
|
||||||
|
REPLACEMENTS := \
|
||||||
|
@@LIBARCH@@ => $(OPENJDK_TARGET_CPU_LEGACY_LIB) ; \
|
||||||
|
@@JDK_IMPORT_PATH@@ => $(JDK_OUTPUTDIR) ; , \
|
||||||
|
))
|
||||||
|
|
||||||
|
CHMOD_HOTSPOT_LAUNCHER := $(JVM_VARIANT_OUTPUTDIR)/libjvm/_hotspot-script-chmod.marker
|
||||||
|
|
||||||
|
$(CHMOD_HOTSPOT_LAUNCHER): $(CREATE_HOTSPOT_LAUNCHER)
|
||||||
|
$(CHMOD) +x $<
|
||||||
|
$(TOUCH) $@
|
||||||
|
|
||||||
|
TARGETS += $(CREATE_HOTSPOT_LAUNCHER) $(CHMOD_HOTSPOT_LAUNCHER)
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
.PHONY: all
|
192
hotspot/makefiles/gensrc/GensrcAdlc.gmk
Normal file
192
hotspot/makefiles/gensrc/GensrcAdlc.gmk
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, gensrc/GensrcAdlc.gmk))
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, compiler2), true)
|
||||||
|
|
||||||
|
ADLC_SUPPORT_DIR := $(JVM_SUPPORT_DIR)/adlc
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Build the ad compiler (the adlc build tool)
|
||||||
|
|
||||||
|
# Flags depending on the build platform/tool chain
|
||||||
|
# NOTE: No optimization or debug flags set here
|
||||||
|
ifeq ($(OPENJDK_BUILD_OS), linux)
|
||||||
|
ADLC_CFLAGS := -fno-exceptions -DLINUX
|
||||||
|
else ifeq ($(OPENJDK_BUILD_OS), solaris)
|
||||||
|
ADLC_LDFLAGS := -m64
|
||||||
|
ADLC_CFLAGS := -m64
|
||||||
|
ADLC_CFLAGS_WARNINGS := +w
|
||||||
|
else ifeq ($(OPENJDK_BUILD_OS), aix)
|
||||||
|
# FIXME: Not implemented. These flags are likely, however
|
||||||
|
# ADLC_LDFLAGS := -q64
|
||||||
|
# ADLC_CFLAGS := -qnortti -qnoeh -q64
|
||||||
|
else ifeq ($(OPENJDK_BUILD_OS), windows)
|
||||||
|
ADLC_LDFLAGS := -nologo
|
||||||
|
ADLC_CFLAGS := -nologo -EHsc
|
||||||
|
# NOTE: The old build also have -D_CRT_SECURE_NO_DEPRECATE but it doesn't
|
||||||
|
# seem needed any more.
|
||||||
|
ADLC_CFLAGS_WARNINGS := -W3 -D_CRT_SECURE_NO_WARNINGS
|
||||||
|
endif
|
||||||
|
|
||||||
|
# NOTE: The old build didn't set -DASSERT for windows but it doesn't seem to
|
||||||
|
# hurt.
|
||||||
|
ADLC_CFLAGS += -DASSERT
|
||||||
|
|
||||||
|
ADLC_CFLAGS += -D$(HOTSPOT_TARGET_CPU_DEFINE)
|
||||||
|
|
||||||
|
ADLC_CFLAGS += -I$(HOTSPOT_TOPDIR)/src/share/vm
|
||||||
|
|
||||||
|
$(eval $(call SetupNativeCompilation, BUILD_ADLC, \
|
||||||
|
TOOLCHAIN := TOOLCHAIN_BUILD_LINK_CXX, \
|
||||||
|
SRC := $(HOTSPOT_TOPDIR)/src/share/vm/adlc, \
|
||||||
|
EXTRA_FILES := $(HOTSPOT_TOPDIR)/src/share/vm/opto/opcodes.cpp, \
|
||||||
|
CFLAGS := $(ADLC_CFLAGS) $(ADLC_CFLAGS_WARNINGS), \
|
||||||
|
LDFLAGS := $(ADLC_LDFLAGS), \
|
||||||
|
LIBS := $(ADLC_LIBS), \
|
||||||
|
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc/objs, \
|
||||||
|
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/adlc, \
|
||||||
|
PROGRAM := adlc, \
|
||||||
|
DEBUG_SYMBOLS := false, \
|
||||||
|
DISABLED_WARNINGS_clang := parentheses tautological-compare, \
|
||||||
|
DISABLED_WARNINGS_solstudio := notemsource, \
|
||||||
|
))
|
||||||
|
|
||||||
|
ADLC_TOOL := $(BUILD_ADLC_TARGET)
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Transform the ad source files into C++ source files using adlc
|
||||||
|
|
||||||
|
# Setup flags for the adlc build tool (ADLCFLAGS).
|
||||||
|
ADLCFLAGS += -q -T
|
||||||
|
|
||||||
|
# ADLC flags depending on target OS
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
|
ADLCFLAGS += -DLINUX=1 -D_GNU_SOURCE=1
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
ADLCFLAGS += -DSOLARIS=1 -DSPARC_WORKS=1
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||||
|
# FIXME: Not implemented
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
ADLCFLAGS += -D_ALLBSD_SOURCE=1 -D_GNU_SOURCE=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
# NOTE: Windows adlc flags was different in the old build. Is this really
|
||||||
|
# correct?
|
||||||
|
|
||||||
|
# -g makes #line directives in the generated C++ files.
|
||||||
|
ADLCFLAGS += -g
|
||||||
|
|
||||||
|
ADLCFLAGS += -D$(HOTSPOT_TARGET_CPU_DEFINE)=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
# This generates checks in the generated C++ files that _LP64 is correctly
|
||||||
|
# (un)defined when compiling them.
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
|
||||||
|
ADLCFLAGS += -D_LP64=1
|
||||||
|
else
|
||||||
|
ADLCFLAGS += -U_LP64
|
||||||
|
endif
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Concatenate all ad source files into a single file, which will be fed to
|
||||||
|
# adlc. Also include a #line directive at the start of every included file
|
||||||
|
# (after the initial header block), stating the original source file name.
|
||||||
|
#
|
||||||
|
# Normally, debugging is done directly on the ad_<arch>*.cpp files, but the
|
||||||
|
# #line directives in those files will be pointing back to <arch>.ad.
|
||||||
|
|
||||||
|
# AD_SRC_ROOTS might have been added to by a custom extension
|
||||||
|
AD_SRC_ROOTS += $(HOTSPOT_TOPDIR)/src
|
||||||
|
|
||||||
|
AD_SRC_FILES := $(call uniq, $(wildcard $(foreach d, $(AD_SRC_ROOTS), \
|
||||||
|
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/vm/$(HOTSPOT_TARGET_CPU).ad \
|
||||||
|
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/vm/$(HOTSPOT_TARGET_CPU_ARCH).ad \
|
||||||
|
$d/os_cpu/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH)/vm/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH).ad \
|
||||||
|
)))
|
||||||
|
|
||||||
|
SINGLE_AD_SRCFILE := $(ADLC_SUPPORT_DIR)/all-ad-src.ad
|
||||||
|
|
||||||
|
INSERT_FILENAME_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
|
||||||
|
if (need_lineno && $$0 !~ /\/\//) \
|
||||||
|
{ print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
|
||||||
|
print \
|
||||||
|
}'
|
||||||
|
|
||||||
|
$(SINGLE_AD_SRCFILE): $(AD_SRC_FILES)
|
||||||
|
$(call LogInfo, Preprocessing adlc files $(^F))
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(NAWK) $(INSERT_FILENAME_AWK_SCRIPT) $^ > $@
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Run the adlc tool on the single concatenated ad source file, and store the
|
||||||
|
# output in support/adlc for further processing.
|
||||||
|
ADLC_RUN_MARKER := $(ADLC_SUPPORT_DIR)/_adlc_run.marker
|
||||||
|
|
||||||
|
$(ADLC_RUN_MARKER): $(BUILD_ADLC) $(SINGLE_AD_SRCFILE)
|
||||||
|
$(call LogInfo, Generating adlc files)
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(call ExecuteWithLog, $(ADLC_SUPPORT_DIR)/adlc_run, \
|
||||||
|
$(FIXPATH) $(ADLC_TOOL) $(ADLCFLAGS) $(SINGLE_AD_SRCFILE) \
|
||||||
|
-c$(ADLC_SUPPORT_DIR)/ad_$(HOTSPOT_TARGET_CPU).cpp \
|
||||||
|
-h$(ADLC_SUPPORT_DIR)/ad_$(HOTSPOT_TARGET_CPU).hpp \
|
||||||
|
-a$(ADLC_SUPPORT_DIR)/dfa_$(HOTSPOT_TARGET_CPU).cpp \
|
||||||
|
-v$(ADLC_SUPPORT_DIR)/adGlobals_$(HOTSPOT_TARGET_CPU).hpp)
|
||||||
|
$(TOUCH) $@
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Finally copy the generated files from support/adlc into gensrc/adfiles,
|
||||||
|
# and postprocess them by fixing dummy #line directives.
|
||||||
|
|
||||||
|
ADLC_GENERATED_FILES := $(addprefix $(JVM_VARIANT_OUTPUTDIR)/gensrc/adfiles/, \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU).cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU).hpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_clone.cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_expand.cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_format.cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_gen.cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_misc.cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_peephole.cpp \
|
||||||
|
ad_$(HOTSPOT_TARGET_CPU)_pipeline.cpp \
|
||||||
|
adGlobals_$(HOTSPOT_TARGET_CPU).hpp \
|
||||||
|
dfa_$(HOTSPOT_TARGET_CPU).cpp \
|
||||||
|
)
|
||||||
|
|
||||||
|
$(JVM_VARIANT_OUTPUTDIR)/gensrc/adfiles/%: $(ADLC_RUN_MARKER)
|
||||||
|
$(call LogInfo, Postprocessing adlc file $*)
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(NAWK) \
|
||||||
|
'BEGIN { print "#line 1 \"$*\""; } \
|
||||||
|
/^#line 999999$$/ {print "#line " (NR+1) " \"$*\""; next} \
|
||||||
|
{print}' \
|
||||||
|
< $(ADLC_SUPPORT_DIR)/$* > $@
|
||||||
|
|
||||||
|
TARGETS := $(ADLC_GENERATED_FILES)
|
||||||
|
|
||||||
|
endif
|
56
hotspot/makefiles/gensrc/GensrcDtrace.gmk
Normal file
56
hotspot/makefiles/gensrc/GensrcDtrace.gmk
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Gensrc support for dtrace. The files generated here are included by dtrace.hpp
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, dtrace), true)
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
DTRACE_FLAGS := -64
|
||||||
|
DTRACE_CPP_FLAGS := -D_LP64
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
DTRACE_CPP_FLAGS := -D_LP64 -x c
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
|
DTRACE_CPP_FLAGS := -x c
|
||||||
|
endif
|
||||||
|
|
||||||
|
DTRACE_SOURCE_DIR := $(HOTSPOT_TOPDIR)/src/os/posix/dtrace
|
||||||
|
DTRACE_GENSRC_DIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/dtracefiles
|
||||||
|
|
||||||
|
# Make sure we run our selected compiler for preprocessing instead of letting
|
||||||
|
# the dtrace tool pick it on it's own.
|
||||||
|
$(DTRACE_GENSRC_DIR)/%.h: $(DTRACE_SOURCE_DIR)/%.d
|
||||||
|
$(call LogInfo, Generating dtrace header file $(@F))
|
||||||
|
$(call MakeDir, $(@D) $(DTRACE_SUPPORT_DIR))
|
||||||
|
$(call ExecuteWithLog, $(DTRACE_SUPPORT_DIR)/$(@F).d, $(CC) -E $(DTRACE_CPP_FLAGS) $< > $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||||
|
$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -h -o $@ -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||||
|
|
||||||
|
# Process all .d files in DTRACE_SOURCE_DIR. They are:
|
||||||
|
# hotspot_jni.d hotspot.d hs_private.d
|
||||||
|
TARGETS += $(patsubst $(DTRACE_SOURCE_DIR)/%.d, \
|
||||||
|
$(DTRACE_GENSRC_DIR)/%.h, $(wildcard $(DTRACE_SOURCE_DIR)/*.d))
|
||||||
|
|
||||||
|
endif
|
174
hotspot/makefiles/gensrc/GensrcJvmti.gmk
Normal file
174
hotspot/makefiles/gensrc/GensrcJvmti.gmk
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, gensrc/GensrcJvmti.gmk))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Build tools needed for the JVMTI source code generation
|
||||||
|
|
||||||
|
JVMTI_TOOLS_SRCDIR := $(HOTSPOT_TOPDIR)/src/share/vm/prims
|
||||||
|
JVMTI_TOOLS_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/tools/jvmti
|
||||||
|
|
||||||
|
$(eval $(call SetupJavaCompiler, GENERATE_OLDBYTECODE, \
|
||||||
|
JAVAC := $(JAVAC), \
|
||||||
|
FLAGS := $(DISABLE_WARNINGS), \
|
||||||
|
SERVER_DIR := $(SJAVAC_SERVER_DIR), \
|
||||||
|
SERVER_JVM := $(SJAVAC_SERVER_JAVA), \
|
||||||
|
DISABLE_SJAVAC := true, \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call SetupJavaCompilation, BUILD_JVMTI_TOOLS, \
|
||||||
|
SETUP := GENERATE_OLDBYTECODE, \
|
||||||
|
SRC := $(JVMTI_TOOLS_SRCDIR), \
|
||||||
|
INCLUDE_FILES := jvmtiGen.java jvmtiEnvFill.java, \
|
||||||
|
BIN := $(JVMTI_TOOLS_OUTPUTDIR), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TOOL_JVMTI_GEN := $(JAVA_SMALL) -cp $(JVMTI_TOOLS_OUTPUTDIR) jvmtiGen
|
||||||
|
TOOL_JVMTI_ENV_FILL := $(JAVA_SMALL) -cp $(JVMTI_TOOLS_OUTPUTDIR) jvmtiEnvFill
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup make rules for an xml transform for jvmti/trace file generation.
|
||||||
|
#
|
||||||
|
# Parameter 1 is the name of the rule. This name is used as variable prefix,
|
||||||
|
# and the targets generated are listed in a variable by that name. This name is
|
||||||
|
# also used as the name of the output file.
|
||||||
|
#
|
||||||
|
# Remaining parameters are named arguments. These include:
|
||||||
|
# XML_FILE -- The input source file to use
|
||||||
|
# XSL_FILE -- The xsl file to use
|
||||||
|
# OUTPUT_DIR -- The directory to put the generated file in
|
||||||
|
# ARGS -- Additional arguments to the jvmtiGen tool
|
||||||
|
# DEPS -- Additional dependencies
|
||||||
|
SetupXslTransform = $(NamedParamsMacroTemplate)
|
||||||
|
define SetupXslTransformBody
|
||||||
|
$$($1_OUTPUT_DIR)/$1: $$($1_XML_FILE) $$($1_XSL_FILE) $$($1_DEPS) $$(BUILD_JVMTI_TOOLS)
|
||||||
|
$$(call LogInfo, Generating $$(@F))
|
||||||
|
$$(call MakeDir, $$(@D))
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(TOOL_JVMTI_GEN) -IN $$($1_XML_FILE) -XSL $$($1_XSL_FILE) -OUT $$@ $$($1_ARGS))
|
||||||
|
# jvmtiGen does not return error code properly on fail.
|
||||||
|
# NOTE: We should really fix jvmtiGen.java instead.
|
||||||
|
test -f $$@
|
||||||
|
|
||||||
|
TARGETS += $$($1_OUTPUT_DIR)/$1
|
||||||
|
endef
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Create JVMTI files in gensrc/jvmtifiles
|
||||||
|
|
||||||
|
JVMTI_SRCDIR := $(HOTSPOT_TOPDIR)/src/share/vm/prims
|
||||||
|
JVMTI_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/jvmtifiles
|
||||||
|
|
||||||
|
# Setup rule for generating a jvmti file
|
||||||
|
#
|
||||||
|
# $1 is generated source file name in $(JVMTI_OUTPUTDIR)
|
||||||
|
# $2 is XSL file to use in $(JVMTI_SRCDIR)
|
||||||
|
# $3 is optional extra arguments to jvmtiGen
|
||||||
|
define SetupJvmtiGeneration
|
||||||
|
$$(eval $$(call SetupXslTransform, $1, \
|
||||||
|
XML_FILE := $$(JVMTI_SRCDIR)/jvmti.xml, \
|
||||||
|
XSL_FILE := $$(JVMTI_SRCDIR)/$(strip $2), \
|
||||||
|
OUTPUT_DIR := $$(JVMTI_OUTPUTDIR), \
|
||||||
|
ARGS := $3, \
|
||||||
|
DEPS := $$(JVMTI_SRCDIR)/jvmtiLib.xsl, \
|
||||||
|
))
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call SetupJvmtiGeneration, jvmtiEnter.cpp, jvmtiEnter.xsl, \
|
||||||
|
-PARAM interface jvmti))
|
||||||
|
$(eval $(call SetupJvmtiGeneration, jvmtiEnterTrace.cpp, jvmtiEnter.xsl, \
|
||||||
|
-PARAM interface jvmti -PARAM trace Trace))
|
||||||
|
$(eval $(call SetupJvmtiGeneration, jvmtiEnv.hpp, jvmtiHpp.xsl))
|
||||||
|
$(eval $(call SetupJvmtiGeneration, jvmti.h, jvmtiH.xsl))
|
||||||
|
$(eval $(call SetupJvmtiGeneration, jvmti.html, jvmti.xsl))
|
||||||
|
$(eval $(call SetupJvmtiGeneration, jvmtiEnvStub.cpp, jvmtiEnv.xsl))
|
||||||
|
|
||||||
|
JVMTI_BC_SRCDIR := $(HOTSPOT_TOPDIR)/src/share/vm/interpreter
|
||||||
|
|
||||||
|
$(eval $(call SetupXslTransform, bytecodeInterpreterWithChecks.cpp, \
|
||||||
|
XML_FILE := $(JVMTI_BC_SRCDIR)/bytecodeInterpreterWithChecks.xml, \
|
||||||
|
XSL_FILE := $(JVMTI_BC_SRCDIR)/bytecodeInterpreterWithChecks.xsl, \
|
||||||
|
OUTPUT_DIR := $(JVMTI_OUTPUTDIR), \
|
||||||
|
DEPS := $(JVMTI_BC_SRCDIR)/bytecodeInterpreter.cpp, \
|
||||||
|
))
|
||||||
|
|
||||||
|
# We need $(JVMTI_OUTPUTDIR)/jvmtiEnvStub.cpp (generated above) as input
|
||||||
|
$(JVMTI_OUTPUTDIR)/jvmtiEnvRecommended.cpp: $(JVMTI_SRCDIR)/jvmtiEnv.cpp \
|
||||||
|
$(JVMTI_OUTPUTDIR)/jvmtiEnvStub.cpp $(BUILD_JVMTI_TOOLS)
|
||||||
|
$(call LogInfo, Generating $(@F))
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(call ExecuteWithLog, $@, $(TOOL_JVMTI_ENV_FILL) $(JVMTI_SRCDIR)/jvmtiEnv.cpp \
|
||||||
|
$(JVMTI_OUTPUTDIR)/jvmtiEnvStub.cpp \
|
||||||
|
$(JVMTI_OUTPUTDIR)/jvmtiEnvRecommended.cpp)
|
||||||
|
# jvmtiEnvFill does not necessarily return an error code on failure.
|
||||||
|
# NOTE: We should really fix jvmtiEnvFill.java instead.
|
||||||
|
test -f $@
|
||||||
|
|
||||||
|
TARGETS += $(JVMTI_OUTPUTDIR)/jvmtiEnvRecommended.cpp
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Create trace files in gensrc/tracefiles
|
||||||
|
|
||||||
|
TRACE_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/tracefiles
|
||||||
|
TRACE_SRCDIR := $(HOTSPOT_TOPDIR)/src/share/vm/trace
|
||||||
|
|
||||||
|
# Append directories to search (might have been set by custom extensions)
|
||||||
|
TRACE_SEARCH_DIRS += $(TRACE_SRCDIR)
|
||||||
|
|
||||||
|
TRACE_XML ?= $(TRACE_SRCDIR)/trace.xml
|
||||||
|
|
||||||
|
# Changing these will trigger a rebuild of generated trace files.
|
||||||
|
TRACE_DEPS += \
|
||||||
|
$(TRACE_XML) \
|
||||||
|
$(TRACE_SRCDIR)/tracetypes.xml \
|
||||||
|
$(TRACE_SRCDIR)/tracerelationdecls.xml \
|
||||||
|
$(TRACE_SRCDIR)/traceevents.xml \
|
||||||
|
$(TRACE_SRCDIR)/trace.dtd \
|
||||||
|
$(TRACE_SRCDIR)/xinclude.mod \
|
||||||
|
#
|
||||||
|
|
||||||
|
# Setup rule for generating a trace file
|
||||||
|
#
|
||||||
|
# $1 is generated source file name in $(TRACE_OUTPUTDIR)
|
||||||
|
define SetupTraceGeneration
|
||||||
|
$$(eval $$(call SetupXslTransform, $1, \
|
||||||
|
XML_FILE := $$(TRACE_XML), \
|
||||||
|
XSL_FILE := $$(firstword $$(wildcard $$(addsuffix /$$(basename $1).xsl, $$(TRACE_SEARCH_DIRS)))), \
|
||||||
|
OUTPUT_DIR := $$(TRACE_OUTPUTDIR), \
|
||||||
|
DEPS := $$(TRACE_DEPS), \
|
||||||
|
))
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Append files to generated (might have been set by custom extensions)
|
||||||
|
TRACE_GENSRC_FILES += \
|
||||||
|
traceEventClasses.hpp \
|
||||||
|
traceEventIds.hpp \
|
||||||
|
traceTypes.hpp \
|
||||||
|
#
|
||||||
|
|
||||||
|
# Call SetupTraceGeneration for all trace gensrc files
|
||||||
|
$(foreach tracefile, $(TRACE_GENSRC_FILES), \
|
||||||
|
$(eval $(call SetupTraceGeneration, $(tracefile))) \
|
||||||
|
)
|
153
hotspot/makefiles/ide/CreateVSProject.gmk
Normal file
153
hotspot/makefiles/ide/CreateVSProject.gmk
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This must be the first rule
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
include JavaCompilation.gmk
|
||||||
|
include SetupJavaCompilers.gmk
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
# The next part is a bit hacky. We include the CompileJvm.gmk to be
|
||||||
|
# able to extact flags, but we do not wish to execute the rules.
|
||||||
|
|
||||||
|
# Use client as base for defines and includes
|
||||||
|
JVM_VARIANT=client
|
||||||
|
|
||||||
|
include HotspotCommon.gmk
|
||||||
|
include lib/CompileJvm.gmk
|
||||||
|
|
||||||
|
# Reset targets so we don't build libjvm.
|
||||||
|
TARGETS :=
|
||||||
|
|
||||||
|
# Helper macro to convert a unix path to a Windows path, suitable for
|
||||||
|
# inclusion in a command line.
|
||||||
|
FixPath = \
|
||||||
|
$(strip $(subst \,\\,$(shell $(CYGPATH) -w $1)))
|
||||||
|
|
||||||
|
JVM_DEFINES_client := $(patsubst -D%,%, $(filter -D%, $(JVM_CFLAGS)))
|
||||||
|
EXTRACTED_DEFINES_client := $(addprefix -define , $(JVM_DEFINES_client))
|
||||||
|
|
||||||
|
JVM_INCLUDES_client := $(patsubst -I%,%, $(filter -I%, $(JVM_CFLAGS)))
|
||||||
|
EXTRACTED_INCLUDES_client := $(foreach path, $(JVM_INCLUDES_client), -absoluteInclude $(call FixPath, $(path)))
|
||||||
|
|
||||||
|
# Hand-code variant-specific arguments, based on the fact that we use
|
||||||
|
# client for general arguments. Not optimal but other solutions require
|
||||||
|
# major changes in ProjectCreator.
|
||||||
|
ADDITIONAL_VARIANT_ARGS := \
|
||||||
|
-define_server COMPILER2 \
|
||||||
|
-ignorePath_client adfiles \
|
||||||
|
-ignorePath_client c2_ \
|
||||||
|
-ignorePath_client runtime_ \
|
||||||
|
-ignorePath_client libadt \
|
||||||
|
-ignorePath_client opto \
|
||||||
|
#
|
||||||
|
|
||||||
|
IGNORED_PLATFORMS_ARGS := \
|
||||||
|
-ignorePath aarch64 \
|
||||||
|
-ignorePath aix \
|
||||||
|
-ignorePath arm \
|
||||||
|
-ignorePath bsd \
|
||||||
|
-ignorePath linux \
|
||||||
|
-ignorePath posix \
|
||||||
|
-ignorePath ppc \
|
||||||
|
-ignorePath shark \
|
||||||
|
-ignorePath solaris \
|
||||||
|
-ignorePath sparc \
|
||||||
|
-ignorePath x86_32 \
|
||||||
|
-ignorePath zero \
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Build the ProjectCreator java tool.
|
||||||
|
|
||||||
|
TOOLS_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/support/tools_classes
|
||||||
|
|
||||||
|
$(eval $(call SetupJavaCompilation, BUILD_PROJECT_CREATOR, \
|
||||||
|
SETUP := GENERATE_OLDBYTECODE, \
|
||||||
|
ADD_JAVAC_FLAGS := -Xlint:-auxiliaryclass, \
|
||||||
|
SRC := $(HOTSPOT_TOPDIR)/makefiles/src/classes, \
|
||||||
|
BIN := $(TOOLS_OUTPUTDIR), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $(BUILD_PROJECT_CREATOR)
|
||||||
|
|
||||||
|
# Run the ProjectCreator tool
|
||||||
|
PROJECT_CREATOR_TOOL := $(JAVA_SMALL) -cp $(TOOLS_OUTPUTDIR) build.tools.projectcreator.ProjectCreator
|
||||||
|
|
||||||
|
IDE_OUTPUTDIR := $(BUILD_OUTPUT)/ide/hotspot-visualstudio
|
||||||
|
|
||||||
|
VCPROJ_FILE := $(IDE_OUTPUTDIR)/jvm.vcxproj
|
||||||
|
|
||||||
|
PROJECT_CREATOR_CLASS := build.tools.projectcreator.WinGammaPlatformVC10
|
||||||
|
|
||||||
|
# We hard-code gensrc dir to server (since this includes adfiles)
|
||||||
|
PROJECT_CREATOR_ARGS := \
|
||||||
|
-sourceBase $(call FixPath, $(HOTSPOT_TOPDIR)) \
|
||||||
|
-startAt src \
|
||||||
|
-relativeSrcInclude src \
|
||||||
|
-hidePath .hg \
|
||||||
|
-hidePath .jcheck \
|
||||||
|
-hidePath jdk.hotspot.agent \
|
||||||
|
-hidePath jdk.vm.ci \
|
||||||
|
-hidePath jdk.jfr \
|
||||||
|
-compiler VC10 \
|
||||||
|
-jdkTargetRoot $(call FixPath, $(JDK_OUTPUTDIR)) \
|
||||||
|
-platformName x64 \
|
||||||
|
-buildBase $(call FixPath, $(IDE_OUTPUTDIR)/vs-output) \
|
||||||
|
-buildSpace $(call FixPath, $(IDE_OUTPUTDIR)) \
|
||||||
|
-makeBinary $(call FixPath, $(MAKE)) \
|
||||||
|
-makeOutput $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-%f/libjvm) \
|
||||||
|
-absoluteInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
|
||||||
|
-absoluteSrcInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
|
||||||
|
$(EXTRACTED_DEFINES_client) \
|
||||||
|
$(EXTRACTED_INCLUDES_client) \
|
||||||
|
$(ADDITIONAL_VARIANT_ARGS) \
|
||||||
|
$(IGNORED_PLATFORMS_ARGS) \
|
||||||
|
#
|
||||||
|
|
||||||
|
VCPROJ_VARDEPS := $(PROJECT_CREATOR_CLASS) $(PROJECT_CREATOR_ARGS)
|
||||||
|
VCPROJ_VARDEPS_FILE := $(call DependOnVariable, VCPROJ_VARDEPS, \
|
||||||
|
$(VCPROJ_FILE).vardeps)
|
||||||
|
|
||||||
|
$(VCPROJ_FILE): $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE)
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(call ExecuteWithLog, $@, \
|
||||||
|
$(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \
|
||||||
|
$(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $@)) \
|
||||||
|
$(LOG_INFO)
|
||||||
|
|
||||||
|
TARGETS += $(VCPROJ_FILE)
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
else
|
||||||
|
all:
|
||||||
|
$(info Hotspot Visual Studio generation only supported on Windows)
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: all
|
217
hotspot/makefiles/lib/CompileDtracePostJvm.gmk
Normal file
217
hotspot/makefiles/lib/CompileDtracePostJvm.gmk
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Support for dtrace integration with libjvm, and stand-alone dtrace library
|
||||||
|
# compilation.
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, dtrace), true)
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
############################################################################
|
||||||
|
# Integrate with libjvm. Here we generate three object files which are
|
||||||
|
# linked with libjvm.so. This step is complicated from a dependency
|
||||||
|
# perspective, since it needs the rest of the compiled object files from the
|
||||||
|
# libjvm compilation, but the output is object files that are to be included
|
||||||
|
# when linking libjvm.so. So this generation must happen as a part of the
|
||||||
|
# libjvm compilation.
|
||||||
|
|
||||||
|
# First we need to generate the dtraceGenOffsets tool. When run, this will
|
||||||
|
# produce more header files and a C++ file.
|
||||||
|
|
||||||
|
# Note that generateJvmOffsets.cpp must be compiled as if it were a file
|
||||||
|
# in the libjvm.so, using JVM_CFLAGS as setup in CompileJvm.gmk. Otherwise
|
||||||
|
# this would preferrably have been done as a part of GensrcDtrace.gmk.
|
||||||
|
$(eval $(call SetupNativeCompilation, BUILD_DTRACE_GEN_OFFSETS, \
|
||||||
|
SRC := $(HOTSPOT_TOPDIR)/src/os/$(OPENJDK_TARGET_OS)/dtrace, \
|
||||||
|
INCLUDE_FILES := generateJvmOffsets.cpp generateJvmOffsetsMain.c, \
|
||||||
|
CC := $(BUILD_CXX), \
|
||||||
|
CXX := $(BUILD_CXX), \
|
||||||
|
LDEXE := $(BUILD_CXX), \
|
||||||
|
generateJvmOffsets.cpp_CXXFLAGS := $(JVM_CFLAGS) -mt -xnolib -norunpath, \
|
||||||
|
generateJvmOffsetsMain.c_CFLAGS := -library=%none -mt -m64 -norunpath -z nodefs, \
|
||||||
|
LDFLAGS := -m64, \
|
||||||
|
LIBS := -lc, \
|
||||||
|
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets/objs, \
|
||||||
|
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets, \
|
||||||
|
PROGRAM := dtraceGenOffsets, \
|
||||||
|
))
|
||||||
|
|
||||||
|
DTRACE_GEN_OFFSETS_TOOL := $(BUILD_DTRACE_GEN_OFFSETS_TARGET)
|
||||||
|
|
||||||
|
# Argument 1: Output filename
|
||||||
|
# Argument 2: dtrace-gen-offset tool command line option
|
||||||
|
define SetupDtraceOffsetsGeneration
|
||||||
|
$1: $$(BUILD_DTRACE_GEN_OFFSETS)
|
||||||
|
$$(call LogInfo, Generating dtrace $2 file $$(@F))
|
||||||
|
$$(call MakeDir, $$(@D))
|
||||||
|
$$(call ExecuteWithLog, $$@, $$(DTRACE_GEN_OFFSETS_TOOL) -$$(strip $2) > $$@)
|
||||||
|
|
||||||
|
TARGETS += $1
|
||||||
|
endef
|
||||||
|
|
||||||
|
JVM_OFFSETS_H := $(DTRACE_SUPPORT_DIR)/JvmOffsets.h
|
||||||
|
JVM_OFFSETS_CPP := $(DTRACE_SUPPORT_DIR)/JvmOffsets.cpp
|
||||||
|
JVM_OFFSETS_INDEX_H := $(DTRACE_SUPPORT_DIR)/JvmOffsetsIndex.h
|
||||||
|
|
||||||
|
# Run the dtrace-gen-offset tool to generate these three files.
|
||||||
|
$(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_H), header))
|
||||||
|
$(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_INDEX_H), index))
|
||||||
|
$(eval $(call SetupDtraceOffsetsGeneration, $(JVM_OFFSETS_CPP), table))
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# Compile JVM_OFFSETS_OBJ which is linked with libjvm.so.
|
||||||
|
|
||||||
|
# JvmOffsets.cpp is compiled without the common JVM_CFLAGS. Otherwise, the
|
||||||
|
# natural way would have been to included this source code in BUILD_LIBJVM.
|
||||||
|
JVM_OFFSETS_CFLAGS := -m64
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
|
||||||
|
JVM_OFFSETS_CFLAGS += -xarch=sparc
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(JVM_OFFSETS_OBJ): $(JVM_OFFSETS_CPP) $(JVM_OFFSETS_H)
|
||||||
|
$(call LogInfo, Compiling dtrace file JvmOffsets.cpp (for libjvm.so))
|
||||||
|
$(call ExecuteWithLog, $@, $(CXX) -c -I$(<D) -o $@ $(JVM_OFFSETS_CFLAGS) $<)
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# Generate DTRACE_OBJ which is linked with libjvm.so.
|
||||||
|
|
||||||
|
# Concatenate all *.d files into a single file
|
||||||
|
DTRACE_SOURCE_FILES := $(addprefix $(HOTSPOT_TOPDIR)/src/os/posix/dtrace/, \
|
||||||
|
hotspot_jni.d \
|
||||||
|
hotspot.d \
|
||||||
|
hs_private.d \
|
||||||
|
)
|
||||||
|
|
||||||
|
$(JVM_OUTPUTDIR)/objs/dtrace.d: $(DTRACE_SOURCE_FILES)
|
||||||
|
$(call LogInfo, Generating $(@F))
|
||||||
|
$(call MakeDir, $(@D))
|
||||||
|
$(CAT) $^ > $@
|
||||||
|
|
||||||
|
DTRACE_INSTRUMENTED_OBJS := $(addprefix $(JVM_OUTPUTDIR)/objs/, \
|
||||||
|
ciEnv.o \
|
||||||
|
classLoadingService.o \
|
||||||
|
compileBroker.o \
|
||||||
|
hashtable.o \
|
||||||
|
instanceKlass.o \
|
||||||
|
java.o \
|
||||||
|
jni.o \
|
||||||
|
jvm.o \
|
||||||
|
memoryManager.o \
|
||||||
|
nmethod.o \
|
||||||
|
objectMonitor.o \
|
||||||
|
runtimeService.o \
|
||||||
|
sharedRuntime.o \
|
||||||
|
synchronizer.o \
|
||||||
|
thread.o \
|
||||||
|
unsafe.o \
|
||||||
|
vmThread.o \
|
||||||
|
vmGCOperations.o \
|
||||||
|
)
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, all-gcs), true)
|
||||||
|
DTRACE_INSTRUMENTED_OBJS += $(addprefix $(JVM_OUTPUTDIR)/objs/, \
|
||||||
|
vmCMSOperations.o \
|
||||||
|
vmPSOperations.o \
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
|
DTRACE_FLAGS := -64 -G
|
||||||
|
DTRACE_CPP_FLAGS := -D_LP64
|
||||||
|
|
||||||
|
# Make sure we run our selected compiler for preprocessing instead of letting
|
||||||
|
# the dtrace tool pick it on it's own.
|
||||||
|
$(DTRACE_OBJ): $(JVM_OUTPUTDIR)/objs/dtrace.d $(DTRACE_INSTRUMENTED_OBJS)
|
||||||
|
$(call LogInfo, Generating $(@F) from $(<F) and object files)
|
||||||
|
$(call MakeDir, $(DTRACE_SUPPORT_DIR))
|
||||||
|
$(call ExecuteWithLog, $(DTRACE_SUPPORT_DIR)/$(@F).d, $(CC) -E \
|
||||||
|
$(DTRACE_CPP_FLAGS) $< > $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||||
|
$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -xlazyload -o $@ \
|
||||||
|
-s $(DTRACE_SUPPORT_DIR)/$(@F).d $(sort $(DTRACE_INSTRUMENTED_OBJS)))
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# Generate DTRACE_JHELPER_OBJ which is linked with libjvm.so.
|
||||||
|
|
||||||
|
# Unfortunately dtrace generates incorrect types for some symbols in
|
||||||
|
# dtrace_jhelper.o, resulting in "warning: symbol X has differing types"
|
||||||
|
# This is tracked in JDK-6890703.
|
||||||
|
$(DTRACE_JHELPER_OBJ): $(HOTSPOT_TOPDIR)/src/os/solaris/dtrace/jhelper.d \
|
||||||
|
$(JVM_OFFSETS_INDEX_H)
|
||||||
|
$(call LogInfo, Running dtrace for $(<F))
|
||||||
|
$(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) $(DTRACE_CPP_FLAGS) -C \
|
||||||
|
-I$(DTRACE_SUPPORT_DIR) -o $@ -s $<)
|
||||||
|
|
||||||
|
# NOTE: We should really do something like this, but unfortunately this
|
||||||
|
# results in a compilation error. :-(
|
||||||
|
# $(call MakeDir, $(DTRACE_SUPPORT_DIR))
|
||||||
|
# $(call ExecuteWithLog, $(DTRACE_SUPPORT_DIR)/$(@F).d, $(CC) -E \
|
||||||
|
# $(DTRACE_CPP_FLAGS) -I$(DTRACE_SUPPORT_DIR) $^ \
|
||||||
|
# > $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||||
|
# $(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -o $@ \
|
||||||
|
# -s $(DTRACE_SUPPORT_DIR)/$(@F).d)
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# Build the stand-alone dtrace libraries
|
||||||
|
|
||||||
|
LIBJVM_DTRACE_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm_dtrace
|
||||||
|
|
||||||
|
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DTRACE, \
|
||||||
|
LIBRARY := jvm_dtrace, \
|
||||||
|
OUTPUT_DIR := $(LIBJVM_DTRACE_OUTPUTDIR), \
|
||||||
|
SRC := $(HOTSPOT_TOPDIR)/src/os/solaris/dtrace, \
|
||||||
|
INCLUDE_FILES := jvm_dtrace.c, \
|
||||||
|
CFLAGS := -m64 -G -mt -KPIC, \
|
||||||
|
LDFLAGS := -m64 -mt -xnolib $(SHARED_LIBRARY_FLAGS), \
|
||||||
|
LIBS := $(LIBDL) -lc -lthread -ldoor, \
|
||||||
|
MAPFILE := $(HOTSPOT_TOPDIR)/makefiles/mapfiles/libjvm_dtrace/mapfile-vers, \
|
||||||
|
OBJECT_DIR := $(LIBJVM_DTRACE_OUTPUTDIR)/objs, \
|
||||||
|
STRIP_SYMBOLS := true, \
|
||||||
|
))
|
||||||
|
|
||||||
|
LIBJVM_DB_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm_db
|
||||||
|
|
||||||
|
# Note that libjvm_db.c has tests for COMPILER2, but this was never set by
|
||||||
|
# the old build.
|
||||||
|
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DB, \
|
||||||
|
LIBRARY := jvm_db, \
|
||||||
|
OUTPUT_DIR := $(LIBJVM_DB_OUTPUTDIR), \
|
||||||
|
SRC := $(HOTSPOT_TOPDIR)/src/os/solaris/dtrace, \
|
||||||
|
INCLUDE_FILES := libjvm_db.c, \
|
||||||
|
CFLAGS := -I$(JVM_VARIANT_OUTPUTDIR)/gensrc -I$(DTRACE_SUPPORT_DIR) \
|
||||||
|
-m64 -G -mt -KPIC, \
|
||||||
|
LDFLAGS := -m64 -mt -xnolib $(SHARED_LIBRARY_FLAGS), \
|
||||||
|
LIBS := -lc, \
|
||||||
|
MAPFILE := $(HOTSPOT_TOPDIR)/makefiles/mapfiles/libjvm_db/mapfile-vers, \
|
||||||
|
OBJECT_DIR := $(LIBJVM_DB_OUTPUTDIR)/objs, \
|
||||||
|
STRIP_SYMBOLS := true, \
|
||||||
|
))
|
||||||
|
|
||||||
|
# We need the generated JvmOffsets.h before we can compile the libjvm_db source code.
|
||||||
|
$(BUILD_LIBJVM_DB_ALL_OBJS): $(JVM_OFFSETS_H)
|
||||||
|
|
||||||
|
TARGETS += $(BUILD_LIBJVM_DTRACE) $(BUILD_LIBJVM_DB)
|
||||||
|
endif
|
||||||
|
endif
|
36
hotspot/makefiles/lib/CompileDtracePreJvm.gmk
Normal file
36
hotspot/makefiles/lib/CompileDtracePreJvm.gmk
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, dtrace), true)
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
# These files are are generated by CompileDtrace.gmk but consumed by
|
||||||
|
# CompileJvm.gmk
|
||||||
|
DTRACE_OBJ := $(JVM_OUTPUTDIR)/objs/dtrace.o
|
||||||
|
DTRACE_JHELPER_OBJ := $(JVM_OUTPUTDIR)/objs/dtrace_jhelper.o
|
||||||
|
JVM_OFFSETS_OBJ := $(JVM_OUTPUTDIR)/objs/JvmOffsets.o
|
||||||
|
|
||||||
|
DTRACE_EXTRA_OBJECT_FILES := $(DTRACE_OBJ) $(DTRACE_JHELPER_OBJ) $(JVM_OFFSETS_OBJ)
|
||||||
|
endif
|
||||||
|
endif
|
242
hotspot/makefiles/lib/CompileJvm.gmk
Normal file
242
hotspot/makefiles/lib/CompileJvm.gmk
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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 support files that will setup compiler flags due to the selected
|
||||||
|
# jvm feature set, and specific file overrides.
|
||||||
|
include lib/JvmFeatures.gmk
|
||||||
|
include lib/JvmOverrideFiles.gmk
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, lib/CompileJvm.gmk))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup compilation of the main Hotspot native library (libjvm).
|
||||||
|
|
||||||
|
JVM_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm
|
||||||
|
JVM_MAPFILE := $(JVM_OUTPUTDIR)/mapfile
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Platform independent setup
|
||||||
|
|
||||||
|
# This variable may be added to by a custom extension
|
||||||
|
JVM_SRC_ROOTS += $(HOTSPOT_TOPDIR)/src
|
||||||
|
|
||||||
|
JVM_SRC_DIRS += $(call uniq, $(wildcard $(foreach d, $(JVM_SRC_ROOTS), \
|
||||||
|
$d/share/vm \
|
||||||
|
$d/os/$(HOTSPOT_TARGET_OS)/vm \
|
||||||
|
$d/os/$(HOTSPOT_TARGET_OS_TYPE)/vm \
|
||||||
|
$d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/vm \
|
||||||
|
$d/os_cpu/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH)/vm \
|
||||||
|
))) \
|
||||||
|
$(JVM_VARIANT_OUTPUTDIR)/gensrc/jvmtifiles \
|
||||||
|
$(JVM_VARIANT_OUTPUTDIR)/gensrc/tracefiles \
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_CFLAGS_INCLUDES += \
|
||||||
|
$(patsubst %,-I%,$(filter-out $(JVM_VARIANT_OUTPUTDIR)/gensrc/%, $(JVM_SRC_DIRS))) \
|
||||||
|
-I$(JVM_VARIANT_OUTPUTDIR)/gensrc \
|
||||||
|
-I$(HOTSPOT_TOPDIR)/src/share/vm/precompiled \
|
||||||
|
-I$(HOTSPOT_TOPDIR)/src/share/vm/prims \
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_CFLAGS_TARGET_DEFINES += \
|
||||||
|
-DTARGET_OS_FAMILY_$(HOTSPOT_TARGET_OS) \
|
||||||
|
-DTARGET_ARCH_MODEL_$(HOTSPOT_TARGET_CPU) \
|
||||||
|
-DTARGET_ARCH_$(HOTSPOT_TARGET_CPU_ARCH) \
|
||||||
|
-DTARGET_OS_ARCH_MODEL_$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU) \
|
||||||
|
-DTARGET_OS_ARCH_$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH) \
|
||||||
|
-DTARGET_COMPILER_$(HOTSPOT_TOOLCHAIN_TYPE) \
|
||||||
|
-D$(HOTSPOT_TARGET_CPU_DEFINE) \
|
||||||
|
-DHOTSPOT_LIB_ARCH='"$(OPENJDK_TARGET_CPU_LEGACY_LIB)"' \
|
||||||
|
#
|
||||||
|
|
||||||
|
ifeq ($(DEBUG_LEVEL), release)
|
||||||
|
# For hotspot, release builds differ internally between "optimized" and "product"
|
||||||
|
# in that "optimize" does not define PRODUCT.
|
||||||
|
ifneq ($(HOTSPOT_DEBUG_LEVEL), optimized)
|
||||||
|
JVM_CFLAGS_DEBUGLEVEL := -DPRODUCT
|
||||||
|
endif
|
||||||
|
else ifeq ($(DEBUG_LEVEL), fastdebug)
|
||||||
|
JVM_CFLAGS_DEBUGLEVEL := -DASSERT
|
||||||
|
ifeq ($(filter $(OPENJDK_TARGET_OS), windows aix), )
|
||||||
|
# NOTE: Old build did not define CHECK_UNHANDLED_OOPS on Windows and AIX.
|
||||||
|
JVM_CFLAGS_DEBUGLEVEL += -DCHECK_UNHANDLED_OOPS
|
||||||
|
endif
|
||||||
|
else ifeq ($(DEBUG_LEVEL), slowdebug)
|
||||||
|
# _NMT_NOINLINE_ informs NMT that no inlining is done by the compiler
|
||||||
|
JVM_CFLAGS_DEBUGLEVEL := -DASSERT -D_NMT_NOINLINE_
|
||||||
|
endif
|
||||||
|
|
||||||
|
JVM_CFLAGS += \
|
||||||
|
$(JVM_CFLAGS_DEBUGLEVEL) \
|
||||||
|
$(JVM_CFLAGS_TARGET_DEFINES) \
|
||||||
|
$(JVM_CFLAGS_FEATURES) \
|
||||||
|
$(JVM_CFLAGS_INCLUDES) \
|
||||||
|
$(EXTRA_CFLAGS) \
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_LDFLAGS += \
|
||||||
|
$(SHARED_LIBRARY_FLAGS) \
|
||||||
|
$(JVM_LDFLAGS_FEATURES) \
|
||||||
|
$(EXTRA_LDFLAGS) \
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_LIBS += \
|
||||||
|
$(JVM_LIBS_FEATURES) \
|
||||||
|
#
|
||||||
|
|
||||||
|
# These files and directories are always excluded
|
||||||
|
JVM_EXCLUDE_FILES += jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp args.cc
|
||||||
|
JVM_EXCLUDES += adlc
|
||||||
|
|
||||||
|
# Needed by vm_version.cpp
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||||
|
OPENJDK_TARGET_CPU_VM_VERSION := amd64
|
||||||
|
else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
|
||||||
|
OPENJDK_TARGET_CPU_VM_VERSION := sparc
|
||||||
|
else
|
||||||
|
OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
|
||||||
|
endif
|
||||||
|
|
||||||
|
CFLAGS_VM_VERSION := \
|
||||||
|
$(VERSION_CFLAGS) \
|
||||||
|
-DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
|
||||||
|
-DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
|
||||||
|
-DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
|
||||||
|
-DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
|
||||||
|
-DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
|
||||||
|
#
|
||||||
|
|
||||||
|
# -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
|
||||||
|
ifeq ($(USE_PRECOMPILED_HEADER), 0)
|
||||||
|
JVM_CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
|
||||||
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Platform specific setup
|
||||||
|
|
||||||
|
ifneq ($(filter $(OPENJDK_TARGET_OS), linux macosx windows), )
|
||||||
|
JVM_PRECOMPILED_HEADER := $(HOTSPOT_TOPDIR)/src/share/vm/precompiled/precompiled.hpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(filter $(OPENJDK_TARGET_OS), macosx aix solaris), )
|
||||||
|
# On macosx, aix and solaris we have to link with the C++ compiler
|
||||||
|
JVM_TOOLCHAIN := TOOLCHAIN_LINK_CXX
|
||||||
|
else
|
||||||
|
JVM_TOOLCHAIN := TOOLCHAIN_DEFAULT
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), x86)
|
||||||
|
JVM_EXCLUDE_PATTERNS += x86_64
|
||||||
|
else ifeq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||||
|
JVM_EXCLUDE_PATTERNS += x86_32
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Inline assembly for solaris
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||||
|
JVM_CFLAGS += $(HOTSPOT_TOPDIR)/src/os_cpu/solaris_x86/vm/solaris_x86_64.il
|
||||||
|
else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
|
||||||
|
JVM_CFLAGS += $(HOTSPOT_TOPDIR)/src/os_cpu/solaris_sparc/vm/solaris_sparc.il
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
|
||||||
|
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), false)
|
||||||
|
# NOTE: In the old build, we weirdly enough set -g/-g0 always, regardless
|
||||||
|
# of if debug symbols were needed. Without it, compilation fails on
|
||||||
|
# sparc! :-(
|
||||||
|
JVM_CFLAGS += -g0
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
|
||||||
|
RC_DESC := 64-Bit$(SPACE)
|
||||||
|
endif
|
||||||
|
JVM_RCFLAGS += -D"HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(RC_DESC)$(JVM_VARIANT) VM"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# NOTE: The old build did not strip binaries on macosx.
|
||||||
|
JVM_STRIP_SYMBOLS := false
|
||||||
|
else
|
||||||
|
JVM_STRIP_SYMBOLS := true
|
||||||
|
endif
|
||||||
|
|
||||||
|
JVM_OPTIMIZATION ?= HIGHEST_JVM
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Now set up the actual compilation of the main hotspot native library
|
||||||
|
|
||||||
|
$(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
|
||||||
|
TOOLCHAIN := $(JVM_TOOLCHAIN), \
|
||||||
|
LIBRARY := jvm, \
|
||||||
|
OUTPUT_DIR := $(JVM_OUTPUTDIR), \
|
||||||
|
SRC := $(JVM_SRC_DIRS), \
|
||||||
|
EXCLUDES := $(JVM_EXCLUDES), \
|
||||||
|
EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
|
||||||
|
EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
|
||||||
|
EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
|
||||||
|
CFLAGS := $(JVM_CFLAGS), \
|
||||||
|
CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
|
||||||
|
CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
|
||||||
|
vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
|
||||||
|
DISABLED_WARNINGS_clang := delete-non-virtual-dtor dynamic-class-memaccess \
|
||||||
|
empty-body format logical-op-parentheses parentheses \
|
||||||
|
parentheses-equality switch tautological-compare, \
|
||||||
|
DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
|
||||||
|
1540-1088 1500-010, \
|
||||||
|
ASFLAGS := $(JVM_ASFLAGS), \
|
||||||
|
LDFLAGS := $(JVM_LDFLAGS), \
|
||||||
|
LIBS := $(JVM_LIBS), \
|
||||||
|
OPTIMIZATION := $(JVM_OPTIMIZATION), \
|
||||||
|
OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
|
||||||
|
MAPFILE := $(JVM_MAPFILE), \
|
||||||
|
USE_MAPFILE_FOR_SYMBOLS := true, \
|
||||||
|
STRIP_SYMBOLS := $(JVM_STRIP_SYMBOLS), \
|
||||||
|
EMBED_MANIFEST := true, \
|
||||||
|
RC_FLAGS := $(JVM_RCFLAGS), \
|
||||||
|
VERSIONINFO_RESOURCE := $(HOTSPOT_TOPDIR)/src/os/windows/vm/version.rc, \
|
||||||
|
PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
|
||||||
|
PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
|
||||||
|
))
|
||||||
|
|
||||||
|
# AIX warning explanation:
|
||||||
|
# 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop.
|
||||||
|
# There are several infinite loops in the vm, so better suppress.
|
||||||
|
# 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...".
|
||||||
|
# 1540-0216 : (W) An expression of type .. cannot be converted to type ..
|
||||||
|
# In hotspot this fires for functionpointer to pointer conversions
|
||||||
|
# 1540-1088 : (W) The exception specification is being ignored.
|
||||||
|
# In hotspot this is caused by throw() in declaration of new() in nmethod.hpp.
|
||||||
|
# 1540-1090 : (I) The destructor of "..." might not be called.
|
||||||
|
# 1540-1639 : (I) The behavior of long type bit fields has changed ...
|
||||||
|
|
||||||
|
# Include mapfile generation. It relies on BUILD_LIBJVM_ALL_OBJS which is only
|
||||||
|
# defined after the above call to BUILD_LIBJVM. Mapfile will be generated
|
||||||
|
# after all object files are built, but before the jvm library is linked.
|
||||||
|
include lib/JvmMapfile.gmk
|
||||||
|
|
||||||
|
TARGETS += $(BUILD_LIBJVM)
|
106
hotspot/makefiles/lib/CompileLibjsig.gmk
Normal file
106
hotspot/makefiles/lib/CompileLibjsig.gmk
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Create the libjsig.so shared library
|
||||||
|
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
include NativeCompilation.gmk
|
||||||
|
|
||||||
|
ifneq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
ifeq ($(STATIC_BUILD), false)
|
||||||
|
LIBJSIG_STRIP_SYMBOLS := true
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
|
LIBJSIG_CFLAGS := -fPIC -D_GNU_SOURCE -D_REENTRANT $(EXTRA_CFLAGS)
|
||||||
|
LIBJSIG_LDFLAGS := $(LDFLAGS_HASH_STYLE) $(EXTRA_CFLAGS)
|
||||||
|
LIBJSIG_LIBS := $(LIBDL)
|
||||||
|
|
||||||
|
# NOTE: The old build compiled this library without -soname.
|
||||||
|
# To emulate this, we need to clear out SET_SHARED_LIBRARY_NAME.
|
||||||
|
SET_SHARED_LIBRARY_NAME :=
|
||||||
|
|
||||||
|
# Flags for other CPUs can be provided in EXTRA_CFLAGS
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||||
|
LIBJSIG_CPU_FLAGS := -m64
|
||||||
|
else ifeq ($(OPENJDK_TARGET_CPU), x86)
|
||||||
|
LIBJSIG_CPU_FLAGS := -m32 -march=i586
|
||||||
|
endif
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
LIBJSIG_CFLAGS := -m64 -KPIC -mt
|
||||||
|
LIBJSIG_LDFLAGS := -m64 -mt -xnolib
|
||||||
|
LIBJSIG_LIBS := $(LIBDL)
|
||||||
|
|
||||||
|
# NOTE: The old build compiled this library without -soname.
|
||||||
|
# To emulate this, we need to clear out SET_SHARED_LIBRARY_NAME.
|
||||||
|
SET_SHARED_LIBRARY_NAME :=
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||||
|
LIBJSIG_CFLAGS := -q64 -D_GNU_SOURCE -D_REENTRANT -qpic=large
|
||||||
|
LIBJSIG_LDFLAGS := -b64 -bexpall -G -bnoentry -qmkshrobj -brtl -bnolibpath -bernotok
|
||||||
|
LIBJSIG_LIBS := $(LIBDL)
|
||||||
|
|
||||||
|
# NOTE: The old build compiled this library without -soname.
|
||||||
|
# To emulate this, we need to clear out SET_SHARED_LIBRARY_NAME.
|
||||||
|
SET_SHARED_LIBRARY_NAME :=
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
LIBJSIG_CFLAGS := -m64 -D_GNU_SOURCE -pthread -mno-omit-leaf-frame-pointer -mstack-alignment=16 -fPIC
|
||||||
|
LIBJSIG_LDFLAGS := $(LDFLAGS_HASH_STYLE)
|
||||||
|
# NOTE: This lib is not stripped on macosx in old build. Looks like a mistake.
|
||||||
|
LIBJSIG_STRIP_SYMBOLS := false
|
||||||
|
else
|
||||||
|
$(error Unknown target OS $(OPENJDK_TARGET_OS) in CompileLibjsig.gmk)
|
||||||
|
endif
|
||||||
|
|
||||||
|
LIBJSIG_SRC_FILE := $(HOTSPOT_TOPDIR)/src/os/$(HOTSPOT_TARGET_OS)/vm/jsig.c
|
||||||
|
LIBJSIG_MAPFILE := $(wildcard $(HOTSPOT_TOPDIR)/makefiles/mapfiles/libjsig/mapfile-vers-$(OPENJDK_TARGET_OS))
|
||||||
|
LIBJSIG_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/libjsig
|
||||||
|
|
||||||
|
LIBJSIG_LDFLAGS += $(SHARED_LIBRARY_FLAGS)
|
||||||
|
|
||||||
|
$(eval $(call SetupNativeCompilation, BUILD_LIBJSIG, \
|
||||||
|
LIBRARY := jsig, \
|
||||||
|
EXTRA_FILES := $(LIBJSIG_SRC_FILE), \
|
||||||
|
OUTPUT_DIR := $(LIBJSIG_OUTPUTDIR), \
|
||||||
|
LANG := C, \
|
||||||
|
CFLAGS := $(LIBJSIG_CFLAGS) $(LIBJSIG_CPU_FLAGS), \
|
||||||
|
LDFLAGS := $(LIBJSIG_LDFLAGS) $(LIBJSIG_CPU_FLAGS), \
|
||||||
|
LIBS := $(LIBJSIG_LIBS), \
|
||||||
|
MAPFILE := $(LIBJSIG_MAPFILE), \
|
||||||
|
OBJECT_DIR := $(LIBJSIG_OUTPUTDIR)/objs, \
|
||||||
|
STRIP_SYMBOLS := $(LIBJSIG_STRIP_SYMBOLS), \
|
||||||
|
))
|
||||||
|
|
||||||
|
TARGETS += $(BUILD_LIBJSIG)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
.PHONY: all
|
42
hotspot/makefiles/lib/CompileLibraries.gmk
Normal file
42
hotspot/makefiles/lib/CompileLibraries.gmk
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
default: all
|
||||||
|
|
||||||
|
include $(SPEC)
|
||||||
|
include MakeBase.gmk
|
||||||
|
include NativeCompilation.gmk
|
||||||
|
|
||||||
|
include HotspotCommon.gmk
|
||||||
|
|
||||||
|
# The dtrace setup must be done both before and after CompileJvm.gmk, due to
|
||||||
|
# intricate dependencies.
|
||||||
|
include lib/CompileDtracePreJvm.gmk
|
||||||
|
include lib/CompileJvm.gmk
|
||||||
|
include lib/CompileDtracePostJvm.gmk
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
.PHONY: all
|
144
hotspot/makefiles/lib/JvmFeatures.gmk
Normal file
144
hotspot/makefiles/lib/JvmFeatures.gmk
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, lib/JvmFeatures.gmk))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup CFLAGS and EXCLUDES for the libjvm compilation, depending on which
|
||||||
|
# jvm features are selected for this jvm variant.
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, compiler1), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DCOMPILER1
|
||||||
|
else
|
||||||
|
JVM_EXCLUDE_PATTERNS += c1_
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, compiler2), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DCOMPILER2
|
||||||
|
JVM_SRC_DIRS += $(JVM_VARIANT_OUTPUTDIR)/gensrc/adfiles
|
||||||
|
else
|
||||||
|
JVM_EXCLUDES += opto libadt
|
||||||
|
JVM_EXCLUDE_FILES += bcEscapeAnalyzer.cpp ciTypeFlow.cpp
|
||||||
|
JVM_EXCLUDE_PATTERNS += c2_ runtime_
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, zero), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DZERO -DCC_INTERP -DZERO_LIBARCH='"$(OPENJDK_TARGET_CPU_LEGACY_LIB)"' $(LIBFFI_CFLAGS)
|
||||||
|
JVM_LIBS_FEATURES += $(LIBFFI_LIBS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, shark), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DSHARK $(LLVM_CFLAGS)
|
||||||
|
JVM_LDFLAGS_FEATURES += $(LLVM_LDFLAGS)
|
||||||
|
JVM_LIBS_FEATURES += $(LLVM_LIBS)
|
||||||
|
else
|
||||||
|
JVM_EXCLUDES += shark
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, minimal), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DMINIMAL_JVM -DVMTYPE=\"Minimal\"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, dtrace), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DDTRACE_ENABLED
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(call check-jvm-feature, static-build), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DSTATIC_BUILD=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, jvmti), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_JVMTI=0
|
||||||
|
JVM_EXCLUDE_FILES += jvmtiGetLoadedClasses.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \
|
||||||
|
jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp \
|
||||||
|
jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp \
|
||||||
|
jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp \
|
||||||
|
jvmtiClassFileReconstituter.cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, jvmci), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_JVMCI=0
|
||||||
|
JVM_EXCLUDES += jvmci
|
||||||
|
JVM_EXCLUDE_FILES += jvmciCodeInstaller_$(HOTSPOT_TARGET_CPU_ARCH).cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, fprof), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_FPROF=0
|
||||||
|
JVM_EXCLUDE_FILES += fprofiler.cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, vm-structs), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_VM_STRUCTS=0
|
||||||
|
JVM_EXCLUDE_FILES += vmStructs.cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, jni-check), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_JNI_CHECK=0
|
||||||
|
JVM_EXCLUDE_FILES += jniCheck.cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, services), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_SERVICES=0
|
||||||
|
JVM_EXCLUDE_FILES += heapDumper.cpp heapInspection.cpp \
|
||||||
|
attachListener_$(HOTSPOT_TARGET_OS).cpp attachListener.cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, management), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_MANAGEMENT=0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, cds), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_CDS=0
|
||||||
|
JVM_EXCLUDE_FILES += \
|
||||||
|
classListParser.cpp \
|
||||||
|
classLoaderExt.cpp \
|
||||||
|
filemap.cpp \
|
||||||
|
metaspaceShared.cpp \
|
||||||
|
metaspaceShared_$(HOTSPOT_TARGET_CPU).cpp \
|
||||||
|
metaspaceShared_$(HOTSPOT_TARGET_CPU_ARCH).cpp \
|
||||||
|
sharedClassUtil.cpp \
|
||||||
|
sharedPathsMiscInfo.cpp \
|
||||||
|
systemDictionaryShared.cpp \
|
||||||
|
#
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, all-gcs), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_ALL_GCS=0
|
||||||
|
JVM_EXCLUDE_PATTERNS += \
|
||||||
|
cms/ g1/ parallel/
|
||||||
|
JVM_EXCLUDE_FILES += \
|
||||||
|
concurrentGCThread.cpp \
|
||||||
|
plab.cpp
|
||||||
|
JVM_EXCLUDE_FILES += \
|
||||||
|
g1MemoryPool.cpp \
|
||||||
|
psMemoryPool.cpp
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(call check-jvm-feature, nmt), true)
|
||||||
|
JVM_CFLAGS_FEATURES += -DINCLUDE_NMT=0
|
||||||
|
JVM_EXCLUDE_FILES += \
|
||||||
|
memBaseline.cpp memReporter.cpp mallocTracker.cpp virtualMemoryTracker.cpp nmtCommon.cpp \
|
||||||
|
memTracker.cpp nmtDCmd.cpp mallocSiteTable.cpp
|
||||||
|
endif
|
172
hotspot/makefiles/lib/JvmMapfile.gmk
Normal file
172
hotspot/makefiles/lib/JvmMapfile.gmk
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, lib/JvmMapfile.gmk))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Combine a list of static symbols
|
||||||
|
|
||||||
|
ifneq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), windows-x86_64)
|
||||||
|
# On Windows x86_64, we should not have any symbols at all, since that
|
||||||
|
# results in duplicate warnings from the linker (JDK-8043491).
|
||||||
|
SYMBOLS_SRC += $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-shared
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS_TYPE), unix)
|
||||||
|
SYMBOLS_SRC += $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-unix
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-$(OPENJDK_TARGET_OS)), )
|
||||||
|
SYMBOLS_SRC += $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-$(OPENJDK_TARGET_OS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(findstring debug, $(DEBUG_LEVEL)), )
|
||||||
|
ifneq ($(wildcard $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-$(OPENJDK_TARGET_OS)-debug), )
|
||||||
|
SYMBOLS_SRC += $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-$(OPENJDK_TARGET_OS)-debug
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
ifeq ($(call check-jvm-feature, dtrace), true)
|
||||||
|
# Additional mapfiles that are only used when dtrace is enabled
|
||||||
|
ifeq ($(call check-jvm-feature, compiler2), true)
|
||||||
|
# This also covers the case of compiler1+compiler2.
|
||||||
|
SYMBOLS_SRC += $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-solaris-dtrace-compiler2
|
||||||
|
else ifeq ($(call check-jvm-feature, compiler1), true)
|
||||||
|
SYMBOLS_SRC += $(HOTSPOT_TOPDIR)/makefiles/symbols/symbols-solaris-dtrace-compiler1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Create a dynamic list of symbols from the built object files. This is highly
|
||||||
|
# platform dependent.
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
|
DUMP_SYMBOLS_CMD := $(NM) --defined-only *.o
|
||||||
|
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
||||||
|
endif
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM|^UseSharedSpaces$$
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^_ZN9Arguments17SharedArchivePathE$$
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
||||||
|
}'
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
DUMP_SYMBOLS_CMD := $(NM) -p *.o
|
||||||
|
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
||||||
|
endif
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^__1c.*__vtbl_$$|^gHotSpotVM
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^UseSharedSpaces$$
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^__1cJArgumentsRSharedArchivePath_$$
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$2 == "U") next; \
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
||||||
|
}'
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# nm on macosx prints out "warning: nm: no name list" to stderr for
|
||||||
|
# files without symbols. Hide this, even at the expense of hiding real errors.
|
||||||
|
DUMP_SYMBOLS_CMD := $(NM) -Uj *.o 2> /dev/null
|
||||||
|
ifneq ($(FILTER_SYMBOLS_PATTERN), )
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
|
||||||
|
endif
|
||||||
|
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
|
||||||
|
}'
|
||||||
|
|
||||||
|
# NOTE: The script is from the old build. It is broken and finds no symbols.
|
||||||
|
# The script below might be what was intended, but it failes to link with tons
|
||||||
|
# of 'cannot export hidden symbol vtable for X'.
|
||||||
|
# '{ if ($$1 ~ /^__ZTV/ || $$1 ~ /^_gHotSpotVM/) print substr($$1, 2) }'
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||||
|
# NOTE: The old build had the solution below. This should to be fixed in
|
||||||
|
# configure instead.
|
||||||
|
|
||||||
|
# On AIX we have to prevent that we pick up the 'nm' version from the GNU binutils
|
||||||
|
# which may be installed under /opt/freeware/bin. So better use an absolute path here!
|
||||||
|
# NM=/usr/bin/nm
|
||||||
|
|
||||||
|
DUMP_SYMBOLS_CMD := $(NM) -X64 -B -C *.o
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if (($$2="d" || $$2="D") && ($$3 ~ /^__vft/ || $$3 ~ /^gHotSpotVM/)) print $$3; \
|
||||||
|
if ($$3 ~ /^UseSharedSpaces$$/) print $$3; \
|
||||||
|
if ($$3 ~ /^SharedArchivePath__9Arguments$$/) print $$3; \
|
||||||
|
}'
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
DUMP_SYMBOLS_CMD := $(DUMPBIN) -symbols *.obj
|
||||||
|
FILTER_SYMBOLS_AWK_SCRIPT := \
|
||||||
|
'{ \
|
||||||
|
if ($$7 ~ /??_7.*@@6B@/ && $$7 !~ /type_info/) print $$7; \
|
||||||
|
}'
|
||||||
|
|
||||||
|
else
|
||||||
|
$(error Unknown target OS $(OPENJDK_TARGET_OS) in JvmMapfile.gmk)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# A more correct solution would be to send BUILD_LIBJVM_ALL_OBJS instead of
|
||||||
|
# cd && *.o, but this will result in very long command lines, which is
|
||||||
|
# problematic on some platforms.
|
||||||
|
$(JVM_OUTPUTDIR)/symbols-objects: $(BUILD_LIBJVM_ALL_OBJS)
|
||||||
|
$(call LogInfo, Generating symbol list from object files)
|
||||||
|
$(CD) $(JVM_OUTPUTDIR)/objs && \
|
||||||
|
$(DUMP_SYMBOLS_CMD) | $(NAWK) $(FILTER_SYMBOLS_AWK_SCRIPT) | $(SORT) -u > $@
|
||||||
|
|
||||||
|
SYMBOLS_SRC += $(JVM_OUTPUTDIR)/symbols-objects
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Now concatenate all symbol lists into a single file and remove comments.
|
||||||
|
|
||||||
|
$(JVM_OUTPUTDIR)/symbols: $(SYMBOLS_SRC)
|
||||||
|
$(SED) -e '/^#/d' $^ > $@
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Finally convert the symbol list into a platform-specific mapfile
|
||||||
|
|
||||||
|
$(JVM_MAPFILE): $(JVM_OUTPUTDIR)/symbols
|
||||||
|
$(call LogInfo, Creating mapfile)
|
||||||
|
$(RM) $@
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# On macosx, we need to add a leading underscore
|
||||||
|
$(AWK) '{ if ($$0 ~ ".") { print " _" $$0 } }' < $^ > $@.tmp
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
# On windows, add an 'EXPORTS' header
|
||||||
|
$(ECHO) "EXPORTS" > $@.tmp
|
||||||
|
$(AWK) '{ if ($$0 ~ ".") { print " " $$0 } }' < $^ >> $@.tmp
|
||||||
|
else
|
||||||
|
# Assume standard linker script
|
||||||
|
$(PRINTF) "SUNWprivate_1.1 { \n global: \n" > $@.tmp
|
||||||
|
$(AWK) '{ if ($$0 ~ ".") { print " " $$0 ";" } }' < $^ >> $@.tmp
|
||||||
|
$(PRINTF) " local: \n *; \n }; \n" >> $@.tmp
|
||||||
|
endif
|
||||||
|
$(MV) $@.tmp $@
|
168
hotspot/makefiles/lib/JvmOverrideFiles.gmk
Normal file
168
hotspot/makefiles/lib/JvmOverrideFiles.gmk
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2016, 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. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
$(eval $(call IncludeCustomExtension, hotspot, lib/JvmOverrideFiles.gmk))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# This file contains explicit overrides of CFLAGS and/or precompiled header
|
||||||
|
# status for individual files on specific platforms.
|
||||||
|
|
||||||
|
ifeq ($(TOOLCHAIN_TYPE), gcc)
|
||||||
|
BUILD_LIBJVM_vmStructs.cpp_CXXFLAGS := -fno-var-tracking-assignments -O0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||||
|
BUILD_LIBJVM_ostream.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
|
||||||
|
BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(CXX_O_FLAG_NONE)
|
||||||
|
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(CXX_O_FLAG_NONE)
|
||||||
|
|
||||||
|
ifeq ($(TOOLCHAIN_TYPE), clang)
|
||||||
|
JVM_PRECOMPILED_HEADER_EXCLUDE := \
|
||||||
|
sharedRuntimeTrig.cpp \
|
||||||
|
sharedRuntimeTrans.cpp \
|
||||||
|
#
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), x86)
|
||||||
|
# Performance measurements show that by compiling GC related code, we could
|
||||||
|
# significantly reduce the GC pause time on 32 bit Linux/Unix platforms by
|
||||||
|
# compiling without the PIC flag (-fPIC on linux).
|
||||||
|
# See 6454213 for more details.
|
||||||
|
ALL_SRC := $(filter %.cpp, $(call CacheFind, $(HOTSPOT_TOPDIR)/src/share/vm))
|
||||||
|
NONPIC_FILTER := $(addsuffix %, $(addprefix $(HOTSPOT_TOPDIR)/src/share/vm/, \
|
||||||
|
memory oops gc))
|
||||||
|
# Due to what looks like a bug in the old build implementation of this, add a
|
||||||
|
# couple of more files that were accidentally matched as substrings of GC related
|
||||||
|
# files.
|
||||||
|
NONPIC_SRC := $(filter $(NONPIC_FILTER), $(ALL_SRC)) globals.cpp location.cpp
|
||||||
|
# Declare variables for each source file that needs the pic flag like this:
|
||||||
|
# BUILD_JVM_<srcfile>_CXXFLAGS := -fno-PIC
|
||||||
|
# This will get implicitly picked up by SetupNativeCompilation below.
|
||||||
|
$(foreach s, $(NONPIC_SRC), $(eval BUILD_LIBJVM_$(notdir $s)_CXXFLAGS := -fno-PIC))
|
||||||
|
endif
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||||
|
ifneq ($(DEBUG_LEVEL), slowdebug)
|
||||||
|
# Workaround for a bug in dtrace. If ciEnv::post_compiled_method_load_event()
|
||||||
|
# is inlined, the resulting dtrace object file needs a reference to this
|
||||||
|
# function, whose symbol name is too long for dtrace. So disable inlining
|
||||||
|
# for this method for now. (fix this when dtrace bug 6258412 is fixed)
|
||||||
|
BUILD_LIBJVM_ciEnv.cpp_CXXFLAGS := \
|
||||||
|
-xinline=no%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_
|
||||||
|
# dtrace cannot handle tail call optimization (6672627, 6693876)
|
||||||
|
BUILD_LIBJVM_jni.cpp_CXXFLAGS := -Qoption ube -O~yz
|
||||||
|
BUILD_LIBJVM_stubGenerator_$(HOTSPOT_TARGET_CPU).cpp_CXXFLAGS := -xspace
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||||
|
# Temporary until SS10 C++ compiler is fixed
|
||||||
|
BUILD_LIBJVM_generateOptoStub.cpp_CXXFLAGS := -xO2
|
||||||
|
# Temporary util SS12u1 C++ compiler is fixed
|
||||||
|
BUILD_LIBJVM_c1_LinearScan.cpp_CXXFLAGS := -xO2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Need extra inlining to get oop_ps_push_contents functions to perform well enough.
|
||||||
|
ifeq ($(DEBUG_LEVEL),release)
|
||||||
|
BUILD_LIBJVM_psPromotionManager.cpp_CXXFLAGS := -W2,-Ainline:inc=1000
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(DEBUG_LEVEL), fastdebug)
|
||||||
|
# this hangs in iropt now (7113504)
|
||||||
|
BUILD_LIBJVM_compileBroker.cpp_CXXFLAGS := -xO2
|
||||||
|
|
||||||
|
# Frame size > 100k if we allow inlining via -g0!
|
||||||
|
BUILD_LIBJVM_bytecodeInterpreter.cpp_CXXFLAGS := +d
|
||||||
|
BUILD_LIBJVM_bytecodeInterpreterWithChecks.cpp_CXXFLAGS := +d
|
||||||
|
|
||||||
|
ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
|
||||||
|
# ube explodes on x86
|
||||||
|
BUILD_LIBJVM_bytecodeInterpreter.cpp_CXXFLAGS += -xO1
|
||||||
|
BUILD_LIBJVM_bytecodeInterpreterWithChecks.cpp_CXXFLAGS += -xO1
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||||
|
# The copied fdlibm routines in these files must not be optimized
|
||||||
|
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
ifeq ($(TOOLCHAIN_TYPE), clang)
|
||||||
|
# NOTE: The old build tested clang version to make sure this workaround
|
||||||
|
# for the clang bug was still needed.
|
||||||
|
BUILD_LIBJVM_loopTransform.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
ifneq ($(DEBUG_LEVEL), slowdebug)
|
||||||
|
BUILD_LIBJVM_unsafe.cpp_CXXFLAGS := -O1
|
||||||
|
endif
|
||||||
|
|
||||||
|
# The following files are compiled at various optimization
|
||||||
|
# levels due to optimization issues encountered at the
|
||||||
|
# default level. The Clang compiler issues a compile
|
||||||
|
# time error if there is an optimization level specification
|
||||||
|
# skew between the PCH file and the C++ file. Especially if the
|
||||||
|
# PCH file is compiled at a higher optimization level than
|
||||||
|
# the C++ file. One solution might be to prepare extra optimization
|
||||||
|
# level specific PCH files for the opt build and use them here, but
|
||||||
|
# it's probably not worth the effort as long as only a few files
|
||||||
|
# need this special handling.
|
||||||
|
JVM_PRECOMPILED_HEADER_EXCLUDE := \
|
||||||
|
sharedRuntimeTrig.cpp \
|
||||||
|
sharedRuntimeTrans.cpp \
|
||||||
|
loopTransform.cpp \
|
||||||
|
unsafe.cpp \
|
||||||
|
jvmciCompilerToVM.cpp \
|
||||||
|
#
|
||||||
|
endif
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||||
|
BUILD_LIBJVM_synchronizer.cpp_CXXFLAGS := -qnoinline
|
||||||
|
BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
# Disable aggressive optimizations for functions in sharedRuntimeTrig.cpp
|
||||||
|
# and sharedRuntimeTrans.cpp on ppc64.
|
||||||
|
# -qstrict turns off the following optimizations:
|
||||||
|
# * Performing code motion and scheduling on computations such as loads
|
||||||
|
# and floating-point computations that may trigger an exception.
|
||||||
|
# * Relaxing conformance to IEEE rules.
|
||||||
|
# * Reassociating floating-point expressions.
|
||||||
|
# When using '-qstrict' there still remains one problem
|
||||||
|
# in javasoft.sqe.tests.api.java.lang.Math.sin5Tests when run in compile-all
|
||||||
|
# mode, so don't optimize sharedRuntimeTrig.cpp at all.
|
||||||
|
BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
|
||||||
|
|
||||||
|
# Disable ELF decoder on AIX (AIX uses XCOFF).
|
||||||
|
JVM_EXCLUDE_PATTERNS += elf
|
||||||
|
|
||||||
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
|
JVM_PRECOMPILED_HEADER_EXCLUDE := \
|
||||||
|
bytecodeInterpreter.cpp \
|
||||||
|
bytecodeInterpreterWithChecks.cpp \
|
||||||
|
opcodes.cpp \
|
||||||
|
os_windows.cpp \
|
||||||
|
os_windows_x86.cpp \
|
||||||
|
osThread_windows.cpp \
|
||||||
|
#
|
||||||
|
endif
|
38
hotspot/makefiles/mapfiles/libjsig/mapfile-vers-solaris
Normal file
38
hotspot/makefiles/mapfiles/libjsig/mapfile-vers-solaris
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# 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
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Define library interface.
|
||||||
|
|
||||||
|
SUNWprivate_1.1 {
|
||||||
|
global:
|
||||||
|
JVM_begin_signal_setting;
|
||||||
|
JVM_end_signal_setting;
|
||||||
|
JVM_get_libjsig_version;
|
||||||
|
JVM_get_signal_action;
|
||||||
|
sigaction;
|
||||||
|
signal;
|
||||||
|
sigset;
|
||||||
|
local:
|
||||||
|
*;
|
||||||
|
};
|
38
hotspot/makefiles/mapfiles/libjvm_db/mapfile-vers
Normal file
38
hotspot/makefiles/mapfiles/libjvm_db/mapfile-vers
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2005, 2008, 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Define library interface.
|
||||||
|
|
||||||
|
SUNWprivate_1.1 {
|
||||||
|
global:
|
||||||
|
Jagent_create;
|
||||||
|
Jagent_destroy;
|
||||||
|
Jframe_iter;
|
||||||
|
#Jget_vframe;
|
||||||
|
#Jlookup_by_regs;
|
||||||
|
local:
|
||||||
|
*;
|
||||||
|
};
|
37
hotspot/makefiles/mapfiles/libjvm_dtrace/mapfile-vers
Normal file
37
hotspot/makefiles/mapfiles/libjvm_dtrace/mapfile-vers
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2006, 2008, 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Define library interface for JVM-DTrace interface
|
||||||
|
|
||||||
|
SUNWprivate_1.1 {
|
||||||
|
global:
|
||||||
|
jvm_attach;
|
||||||
|
jvm_get_last_error;
|
||||||
|
jvm_enable_dtprobes;
|
||||||
|
jvm_detach;
|
||||||
|
local:
|
||||||
|
*;
|
||||||
|
};
|
27
hotspot/makefiles/symbols/symbols-aix
Normal file
27
hotspot/makefiles/symbols/symbols-aix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_handle_linux_signal
|
||||||
|
numa_error
|
||||||
|
numa_warn
|
||||||
|
sysThreadAvailableStackWithSlack
|
26
hotspot/makefiles/symbols/symbols-aix-debug
Normal file
26
hotspot/makefiles/symbols/symbols-aix-debug
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_AccessVMBooleanFlag
|
||||||
|
JVM_AccessVMIntFlag
|
||||||
|
JVM_VMBreakPoint
|
27
hotspot/makefiles/symbols/symbols-linux
Normal file
27
hotspot/makefiles/symbols/symbols-linux
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_handle_linux_signal
|
||||||
|
numa_error
|
||||||
|
numa_warn
|
||||||
|
sysThreadAvailableStackWithSlack
|
24
hotspot/makefiles/symbols/symbols-macosx
Normal file
24
hotspot/makefiles/symbols/symbols-macosx
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_handle_bsd_signal
|
35
hotspot/makefiles/symbols/symbols-shared
Normal file
35
hotspot/makefiles/symbols/symbols-shared
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
AsyncGetCallTrace
|
||||||
|
jio_fprintf
|
||||||
|
jio_printf
|
||||||
|
jio_snprintf
|
||||||
|
jio_vfprintf
|
||||||
|
jio_vsnprintf
|
||||||
|
JNI_CreateJavaVM
|
||||||
|
JNI_GetCreatedJavaVMs
|
||||||
|
JNI_GetDefaultJavaVMInitArgs
|
||||||
|
JVM_FindClassFromBootLoader
|
||||||
|
JVM_GetVersionInfo
|
||||||
|
JVM_InitAgentProperties
|
25
hotspot/makefiles/symbols/symbols-solaris
Normal file
25
hotspot/makefiles/symbols/symbols-solaris
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_handle_solaris_signal
|
||||||
|
sysThreadAvailableStackWithSlack
|
34
hotspot/makefiles/symbols/symbols-solaris-dtrace-compiler1
Normal file
34
hotspot/makefiles/symbols/symbols-solaris-dtrace-compiler1
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
__1cGMethodG__vtbl_
|
||||||
|
__1cHnmethodG__vtbl_
|
||||||
|
__1cICodeBlobG__vtbl_
|
||||||
|
__1cIUniverseO_collectedHeap_
|
||||||
|
__1cJCodeCacheG_heaps_
|
||||||
|
__1cKBufferBlobG__vtbl_
|
||||||
|
__1cLRuntimeStubG__vtbl_
|
||||||
|
__1cNSafepointBlobG__vtbl_
|
||||||
|
__1cSDeoptimizationBlobG__vtbl_
|
||||||
|
|
||||||
|
__JvmOffsets
|
36
hotspot/makefiles/symbols/symbols-solaris-dtrace-compiler2
Normal file
36
hotspot/makefiles/symbols/symbols-solaris-dtrace-compiler2
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
__1cGMethodG__vtbl_
|
||||||
|
__1cHnmethodG__vtbl_
|
||||||
|
__1cICodeBlobG__vtbl_
|
||||||
|
__1cIUniverseO_collectedHeap_
|
||||||
|
__1cJCodeCacheG_heaps_
|
||||||
|
__1cKBufferBlobG__vtbl_
|
||||||
|
__1cLRuntimeStubG__vtbl_
|
||||||
|
__1cNSafepointBlobG__vtbl_
|
||||||
|
__1cSDeoptimizationBlobG__vtbl_
|
||||||
|
__1cNExceptionBlobG__vtbl_
|
||||||
|
__1cQUncommonTrapBlobG__vtbl_
|
||||||
|
|
||||||
|
__JvmOffsets
|
195
hotspot/makefiles/symbols/symbols-unix
Normal file
195
hotspot/makefiles/symbols/symbols-unix
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2016, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
JVM_ActiveProcessorCount
|
||||||
|
JVM_ArrayCopy
|
||||||
|
JVM_AssertionStatusDirectives
|
||||||
|
JVM_CallStackWalk
|
||||||
|
JVM_ClassDepth
|
||||||
|
JVM_ClassLoaderDepth
|
||||||
|
JVM_Clone
|
||||||
|
JVM_ConstantPoolGetClassAt
|
||||||
|
JVM_ConstantPoolGetClassAtIfLoaded
|
||||||
|
JVM_ConstantPoolGetClassRefIndexAt
|
||||||
|
JVM_ConstantPoolGetDoubleAt
|
||||||
|
JVM_ConstantPoolGetFieldAt
|
||||||
|
JVM_ConstantPoolGetFieldAtIfLoaded
|
||||||
|
JVM_ConstantPoolGetFloatAt
|
||||||
|
JVM_ConstantPoolGetIntAt
|
||||||
|
JVM_ConstantPoolGetLongAt
|
||||||
|
JVM_ConstantPoolGetMemberRefInfoAt
|
||||||
|
JVM_ConstantPoolGetMethodAt
|
||||||
|
JVM_ConstantPoolGetMethodAtIfLoaded
|
||||||
|
JVM_ConstantPoolGetNameAndTypeRefIndexAt
|
||||||
|
JVM_ConstantPoolGetNameAndTypeRefInfoAt
|
||||||
|
JVM_ConstantPoolGetSize
|
||||||
|
JVM_ConstantPoolGetStringAt
|
||||||
|
JVM_ConstantPoolGetTagAt
|
||||||
|
JVM_ConstantPoolGetUTF8At
|
||||||
|
JVM_CountStackFrames
|
||||||
|
JVM_CurrentClassLoader
|
||||||
|
JVM_CurrentLoadedClass
|
||||||
|
JVM_CurrentThread
|
||||||
|
JVM_CurrentTimeMillis
|
||||||
|
JVM_DefineClass
|
||||||
|
JVM_DefineClassWithSource
|
||||||
|
JVM_DesiredAssertionStatus
|
||||||
|
JVM_DoPrivileged
|
||||||
|
JVM_DumpAllStacks
|
||||||
|
JVM_DumpThreads
|
||||||
|
JVM_FillInStackTrace
|
||||||
|
JVM_FillStackFrames
|
||||||
|
JVM_FindClassFromCaller
|
||||||
|
JVM_FindClassFromClass
|
||||||
|
JVM_FindLibraryEntry
|
||||||
|
JVM_FindLoadedClass
|
||||||
|
JVM_FindPrimitiveClass
|
||||||
|
JVM_FindSignal
|
||||||
|
JVM_FreeMemory
|
||||||
|
JVM_GC
|
||||||
|
JVM_GetAllThreads
|
||||||
|
JVM_GetArrayElement
|
||||||
|
JVM_GetArrayLength
|
||||||
|
JVM_GetCallerClass
|
||||||
|
JVM_GetClassAccessFlags
|
||||||
|
JVM_GetClassAnnotations
|
||||||
|
JVM_GetClassConstantPool
|
||||||
|
JVM_GetClassContext
|
||||||
|
JVM_GetClassCPEntriesCount
|
||||||
|
JVM_GetClassCPTypes
|
||||||
|
JVM_GetClassDeclaredConstructors
|
||||||
|
JVM_GetClassDeclaredFields
|
||||||
|
JVM_GetClassDeclaredMethods
|
||||||
|
JVM_GetClassFieldsCount
|
||||||
|
JVM_GetClassInterfaces
|
||||||
|
JVM_GetClassMethodsCount
|
||||||
|
JVM_GetClassModifiers
|
||||||
|
JVM_GetClassName
|
||||||
|
JVM_GetClassNameUTF
|
||||||
|
JVM_GetClassSignature
|
||||||
|
JVM_GetClassSigners
|
||||||
|
JVM_GetClassTypeAnnotations
|
||||||
|
JVM_GetCPClassNameUTF
|
||||||
|
JVM_GetCPFieldClassNameUTF
|
||||||
|
JVM_GetCPFieldModifiers
|
||||||
|
JVM_GetCPFieldNameUTF
|
||||||
|
JVM_GetCPFieldSignatureUTF
|
||||||
|
JVM_GetCPMethodClassNameUTF
|
||||||
|
JVM_GetCPMethodModifiers
|
||||||
|
JVM_GetCPMethodNameUTF
|
||||||
|
JVM_GetCPMethodSignatureUTF
|
||||||
|
JVM_GetDeclaredClasses
|
||||||
|
JVM_GetDeclaringClass
|
||||||
|
JVM_GetEnclosingMethodInfo
|
||||||
|
JVM_GetFieldIxModifiers
|
||||||
|
JVM_GetFieldTypeAnnotations
|
||||||
|
JVM_GetInheritedAccessControlContext
|
||||||
|
JVM_GetInterfaceVersion
|
||||||
|
JVM_GetManagement
|
||||||
|
JVM_GetMethodIxArgsSize
|
||||||
|
JVM_GetMethodIxByteCode
|
||||||
|
JVM_GetMethodIxByteCodeLength
|
||||||
|
JVM_GetMethodIxExceptionIndexes
|
||||||
|
JVM_GetMethodIxExceptionsCount
|
||||||
|
JVM_GetMethodIxExceptionTableEntry
|
||||||
|
JVM_GetMethodIxExceptionTableLength
|
||||||
|
JVM_GetMethodIxLocalsCount
|
||||||
|
JVM_GetMethodIxMaxStack
|
||||||
|
JVM_GetMethodIxModifiers
|
||||||
|
JVM_GetMethodIxNameUTF
|
||||||
|
JVM_GetMethodIxSignatureUTF
|
||||||
|
JVM_GetMethodParameters
|
||||||
|
JVM_GetMethodTypeAnnotations
|
||||||
|
JVM_GetNanoTimeAdjustment
|
||||||
|
JVM_GetPrimitiveArrayElement
|
||||||
|
JVM_GetProtectionDomain
|
||||||
|
JVM_GetSimpleBinaryName
|
||||||
|
JVM_GetStackAccessControlContext
|
||||||
|
JVM_GetStackTraceElements
|
||||||
|
JVM_GetSystemPackage
|
||||||
|
JVM_GetSystemPackages
|
||||||
|
JVM_GetTemporaryDirectory
|
||||||
|
JVM_GetVmArguments
|
||||||
|
JVM_Halt
|
||||||
|
JVM_HoldsLock
|
||||||
|
JVM_IHashCode
|
||||||
|
JVM_InitProperties
|
||||||
|
JVM_InternString
|
||||||
|
JVM_Interrupt
|
||||||
|
JVM_InvokeMethod
|
||||||
|
JVM_IsArrayClass
|
||||||
|
JVM_IsConstructorIx
|
||||||
|
JVM_IsInterface
|
||||||
|
JVM_IsInterrupted
|
||||||
|
JVM_IsPrimitiveClass
|
||||||
|
JVM_IsSameClassPackage
|
||||||
|
JVM_IsSupportedJNIVersion
|
||||||
|
JVM_IsThreadAlive
|
||||||
|
JVM_IsVMGeneratedMethodIx
|
||||||
|
JVM_LatestUserDefinedLoader
|
||||||
|
JVM_LoadLibrary
|
||||||
|
JVM_MaxMemory
|
||||||
|
JVM_MaxObjectInspectionAge
|
||||||
|
JVM_MonitorNotify
|
||||||
|
JVM_MonitorNotifyAll
|
||||||
|
JVM_MonitorWait
|
||||||
|
JVM_MoreStackWalk
|
||||||
|
JVM_NanoTime
|
||||||
|
JVM_NativePath
|
||||||
|
JVM_NewArray
|
||||||
|
JVM_NewInstanceFromConstructor
|
||||||
|
JVM_NewMultiArray
|
||||||
|
JVM_RaiseSignal
|
||||||
|
JVM_RawMonitorCreate
|
||||||
|
JVM_RawMonitorDestroy
|
||||||
|
JVM_RawMonitorEnter
|
||||||
|
JVM_RawMonitorExit
|
||||||
|
JVM_RegisterSignal
|
||||||
|
JVM_ReleaseUTF
|
||||||
|
JVM_ResumeThread
|
||||||
|
JVM_SetArrayElement
|
||||||
|
JVM_SetClassSigners
|
||||||
|
JVM_SetMethodInfo
|
||||||
|
JVM_SetNativeThreadName
|
||||||
|
JVM_SetPrimitiveArrayElement
|
||||||
|
JVM_SetThreadPriority
|
||||||
|
JVM_Sleep
|
||||||
|
JVM_StartThread
|
||||||
|
JVM_StopThread
|
||||||
|
JVM_SupportsCX8
|
||||||
|
JVM_SuspendThread
|
||||||
|
JVM_TotalMemory
|
||||||
|
JVM_UnloadLibrary
|
||||||
|
JVM_Yield
|
||||||
|
|
||||||
|
# Module related API's
|
||||||
|
JVM_AddModuleExports
|
||||||
|
JVM_AddModuleExportsToAll
|
||||||
|
JVM_AddModuleExportsToAllUnnamed
|
||||||
|
JVM_AddModulePackage
|
||||||
|
JVM_AddReadsModule
|
||||||
|
JVM_CanReadModule
|
||||||
|
JVM_DefineModule
|
||||||
|
JVM_IsExportedToModule
|
||||||
|
JVM_SetBootLoaderUnnamedModule
|
||||||
|
JVM_GetModuleByPackageName
|
Loading…
x
Reference in New Issue
Block a user