mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
Merge
This commit is contained in:
commit
20a3f240cd
7317 changed files with 1287210 additions and 45494 deletions
|
@ -3,3 +3,4 @@
|
||||||
/nbproject/private/
|
/nbproject/private/
|
||||||
^webrev
|
^webrev
|
||||||
^.hgtip
|
^.hgtip
|
||||||
|
.DS_Store
|
||||||
|
|
10
.hgtags
10
.hgtags
|
@ -144,3 +144,13 @@ f0eccb2946986fb9626efde7d8ed9c8192623f5c jdk8-b17
|
||||||
6561530ea757c3f3a6fb171c9cc7b3885cdeca85 jdk8-b20
|
6561530ea757c3f3a6fb171c9cc7b3885cdeca85 jdk8-b20
|
||||||
b3a426170188f52981cf4573a2f14d487fddab0d jdk8-b21
|
b3a426170188f52981cf4573a2f14d487fddab0d jdk8-b21
|
||||||
e8f03541af27e38aafb619b96863e17f65ffe53b jdk8-b22
|
e8f03541af27e38aafb619b96863e17f65ffe53b jdk8-b22
|
||||||
|
498124337041ad53cbaa7eb110f3d7acd6d4eac4 jdk8-b23
|
||||||
|
7d3720d8c595d1519c31e9ff7366203fc2c61350 jdk8-b24
|
||||||
|
0071a6d64113a35ba345bb1580c256de5ce17d3e jdk8-b25
|
||||||
|
6c805d8ed4e5449ea5e4d158c7bdbd7b0b70efd1 jdk8-b26
|
||||||
|
c51754cddc037b9609e202b9ed38363d8683e7a8 jdk8-b27
|
||||||
|
16ba58282d117247f480aae7a79b88141ade52a3 jdk8-b28
|
||||||
|
e070119aa56ee4dc5506c19d2c4d2eecab8ad429 jdk8-b29
|
||||||
|
23da7804aca0c9c4e6e86532a1453125a76d95ee jdk8-b30
|
||||||
|
bac81e9f7d57b75fba5ab31b571f3fe0dc08af69 jdk8-b31
|
||||||
|
2c5208ccb863db936eab523f49450b3fcd230348 jdk8-b32
|
||||||
|
|
|
@ -144,3 +144,13 @@ a4f28069d44a379cda99dd1d921d19f819726d22 jdk8-b15
|
||||||
5a5eaf6374bcbe23530899579fed17a05b7705f3 jdk8-b20
|
5a5eaf6374bcbe23530899579fed17a05b7705f3 jdk8-b20
|
||||||
cc771d92284f71765eca14d6d08703c4af254c04 jdk8-b21
|
cc771d92284f71765eca14d6d08703c4af254c04 jdk8-b21
|
||||||
7ad075c809952e355d25030605da6af30456ed74 jdk8-b22
|
7ad075c809952e355d25030605da6af30456ed74 jdk8-b22
|
||||||
|
60d6f64a86b1e511169d264727f6d51415978df0 jdk8-b23
|
||||||
|
1a5f1d6b98d6827cdb529a4abe6e52a886d944f4 jdk8-b24
|
||||||
|
221a378e06a326f45e5d89e2123cd6323e0181d1 jdk8-b25
|
||||||
|
2accafff224ae39caf5f532c305251ba624bf2c0 jdk8-b26
|
||||||
|
1533dfab9903e4edcfead3b0192643f38c418b9b jdk8-b27
|
||||||
|
6e2541d60f4e342b5b67140271d7611643929dc3 jdk8-b28
|
||||||
|
41460de042580bc4a4ce3f863779c66f39cb8578 jdk8-b29
|
||||||
|
6cea54809b51db92979c22fd8aa8fcb1cb13d12e jdk8-b30
|
||||||
|
0b66f43b89a6c0ac1c15d7ec51992c541cdc9089 jdk8-b31
|
||||||
|
88176171e940f02916a312c265a34c32552a8376 jdk8-b32
|
||||||
|
|
|
@ -2,3 +2,4 @@
|
||||||
^dist/
|
^dist/
|
||||||
/nbproject/private/
|
/nbproject/private/
|
||||||
^.hgtip
|
^.hgtip
|
||||||
|
.DS_Store
|
||||||
|
|
|
@ -144,3 +144,13 @@ e1366c5d84ef984095a332bcee70b3938232d07d jdk8-b19
|
||||||
51d8b6cb18c0978ecfa4f33e1537d35ee01b69fa jdk8-b20
|
51d8b6cb18c0978ecfa4f33e1537d35ee01b69fa jdk8-b20
|
||||||
f157fc2a71a38ce44007a6f18d5b011824dce705 jdk8-b21
|
f157fc2a71a38ce44007a6f18d5b011824dce705 jdk8-b21
|
||||||
a11d0062c445d5f36651c78650ab88aa594bcbff jdk8-b22
|
a11d0062c445d5f36651c78650ab88aa594bcbff jdk8-b22
|
||||||
|
5218eb256658442b62b05295aafa5b5f35252972 jdk8-b23
|
||||||
|
b98f0e6dddf987df565029a1f58417fc1844c3f3 jdk8-b24
|
||||||
|
e45d6b406d5f91ff5256a5c82456ab1e7eb8becd jdk8-b25
|
||||||
|
79f709a099f40c08f76567fa6d813f9009a69826 jdk8-b26
|
||||||
|
4fffe75e4edd39a2517f10b743941bf94edb143d jdk8-b27
|
||||||
|
2082eb35d49a9c2aab90b8d4fd31cefb7a23b82e jdk8-b28
|
||||||
|
6117395d422682f89d228347e319fcaac7edc729 jdk8-b29
|
||||||
|
4605f8418bf562e78be79b25b6b8a5110281acae jdk8-b30
|
||||||
|
1954151dfae8f73db24e396380f7c02bdd47c486 jdk8-b31
|
||||||
|
5d820cb6b1afd75b619e7fd69e4f2b0eb1d5d6a1 jdk8-b32
|
||||||
|
|
46
corba/make/common/Defs-bsd.gmk
Normal file
46
corba/make/common/Defs-bsd.gmk
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 1999, 2010, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Makefile to specify compiler flags for programs and libraries
|
||||||
|
# targeted to BSD. Should not contain any rules.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Warning: the following variables are overriden by Defs.gmk. Set
|
||||||
|
# values will be silently ignored:
|
||||||
|
# CFLAGS (set $(OTHER_CFLAGS) instead)
|
||||||
|
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
|
||||||
|
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
|
||||||
|
# LDFLAGS (set $(OTHER_LDFAGS) instead)
|
||||||
|
# LDLIBS (set $(EXTRA_LIBS) instead)
|
||||||
|
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
|
||||||
|
|
||||||
|
# Get shared JDK settings
|
||||||
|
include $(BUILDDIR)/common/shared/Defs.gmk
|
||||||
|
|
||||||
|
ifndef PLATFORM_SRC
|
||||||
|
PLATFORM_SRC = $(TOPDIR)/src/solaris
|
||||||
|
endif # PLATFORM_SRC
|
||||||
|
|
|
@ -149,8 +149,8 @@ strip_prop_options_clean:
|
||||||
# Strip the properties files
|
# Strip the properties files
|
||||||
strip_all_props: $(STRIPPROPERTIES_JARFILE) $(STRIP_PROP_options)
|
strip_all_props: $(STRIPPROPERTIES_JARFILE) $(STRIP_PROP_options)
|
||||||
@if [ -s $(STRIP_PROP_options) ] ; then \
|
@if [ -s $(STRIP_PROP_options) ] ; then \
|
||||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options)" ; \
|
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options)" ; \
|
||||||
$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options) ; \
|
$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options) ; \
|
||||||
fi
|
fi
|
||||||
@$(java-vm-cleanup)
|
@$(java-vm-cleanup)
|
||||||
|
|
||||||
|
|
131
corba/make/common/shared/Defs-bsd.gmk
Normal file
131
corba/make/common/shared/Defs-bsd.gmk
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2005, 2010, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Definitions for Bsd.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Default for COMPILER_WARNINGS_FATAL on Bsd (C & C++ compiler warnings)
|
||||||
|
ifndef COMPILER_WARNINGS_FATAL
|
||||||
|
COMPILER_WARNINGS_FATAL=false
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Bsd should use parallel compilation for best build times
|
||||||
|
ifndef COMPILE_APPROACH
|
||||||
|
COMPILE_APPROACH = parallel
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Indication that we are doing an incremental build.
|
||||||
|
# This may trigger the creation of make depend files.
|
||||||
|
ifndef INCREMENTAL_BUILD
|
||||||
|
INCREMENTAL_BUILD = false
|
||||||
|
endif
|
||||||
|
|
||||||
|
# FullPath just makes sure it never ends with a / and no duplicates
|
||||||
|
define FullPath
|
||||||
|
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# OptFullPath: Absolute path name of a dir that might not initially exist.
|
||||||
|
define OptFullPath
|
||||||
|
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Location on system where jdk installs might be
|
||||||
|
USRJDKINSTANCES_PATH =$(PACKAGE_PATH)
|
||||||
|
|
||||||
|
# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
|
||||||
|
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||||
|
ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
|
||||||
|
UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
|
||||||
|
else
|
||||||
|
UNIXCOMMAND_PATH = /bin/
|
||||||
|
endif
|
||||||
|
|
||||||
|
# USRBIN_PATH: path to where the most common Unix commands are.
|
||||||
|
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||||
|
ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
|
||||||
|
USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
|
||||||
|
else
|
||||||
|
USRBIN_PATH = /usr/bin/
|
||||||
|
endif
|
||||||
|
|
||||||
|
# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
|
||||||
|
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||||
|
ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
|
||||||
|
UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
|
||||||
|
else
|
||||||
|
UNIXCCS_PATH = /usr/ccs/bin/
|
||||||
|
endif
|
||||||
|
|
||||||
|
# SLASH_JAVA: location of all network accessable files
|
||||||
|
ifdef ALT_SLASH_JAVA
|
||||||
|
SLASH_JAVA :=$(ALT_SLASH_JAVA)
|
||||||
|
else
|
||||||
|
SLASH_JAVA := $(call DirExists,/java,/java,/NOT-SET)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# JDK_DEVTOOLS_DIR: common path for all the java devtools
|
||||||
|
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||||
|
JDK_DEVTOOLS_DIR =$(ALT_JDK_DEVTOOLS_DIR)
|
||||||
|
else
|
||||||
|
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
|
||||||
|
endif
|
||||||
|
|
||||||
|
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
|
||||||
|
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||||
|
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
|
||||||
|
DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
|
||||||
|
else
|
||||||
|
DEVTOOLS_PATH =$(PACKAGE_PATH)/bin/
|
||||||
|
endif
|
||||||
|
|
||||||
|
# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
|
||||||
|
# _BOOTDIR2: Second choice
|
||||||
|
ifndef ALT_BOOTDIR
|
||||||
|
_BOOTDIR1 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
||||||
|
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Import JDK images allow for partial builds, components not built are
|
||||||
|
# imported (or copied from) these import areas when needed.
|
||||||
|
|
||||||
|
# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
|
||||||
|
# multiple platforms, e.g. windows-i586, solaris-sparc, bsd-586, etc.
|
||||||
|
ifdef ALT_BUILD_JDK_IMPORT_PATH
|
||||||
|
BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
|
||||||
|
else
|
||||||
|
BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
|
||||||
|
endif
|
||||||
|
BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
|
||||||
|
|
||||||
|
# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
|
||||||
|
ifdef ALT_JDK_IMPORT_PATH
|
||||||
|
JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
|
||||||
|
else
|
||||||
|
JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
|
||||||
|
endif
|
||||||
|
JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
|
||||||
|
|
|
@ -53,6 +53,13 @@ ifeq ($(PLATFORM),linux)
|
||||||
UTILS_DEVTOOL_PATH=$(USRBIN_PATH)
|
UTILS_DEVTOOL_PATH=$(USRBIN_PATH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(PLATFORM),bsd)
|
||||||
|
UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
|
||||||
|
UTILS_USR_BIN_PATH=$(USRBIN_PATH)
|
||||||
|
UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
|
||||||
|
UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(PLATFORM),solaris)
|
ifeq ($(PLATFORM),solaris)
|
||||||
UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
|
UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
|
||||||
UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
|
UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
|
||||||
|
@ -166,15 +173,15 @@ ifeq ($(PLATFORM),linux)
|
||||||
# Also, some distribution (Ubuntu, Debian, others?) place the rpm command
|
# Also, some distribution (Ubuntu, Debian, others?) place the rpm command
|
||||||
# itself in /usr/bin rather than it's traditional home in /bin.
|
# itself in /usr/bin rather than it's traditional home in /bin.
|
||||||
RPM=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
RPM=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
||||||
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
||||||
RPMBUILD=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpmbuild) \
|
RPMBUILD=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpmbuild) \
|
||||||
$(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \
|
$(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \
|
||||||
$(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
$(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
||||||
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
||||||
# Most Linux distros have "sort" in /bin. Ubuntu, Debian and perhaps
|
# Most Linux distros have "sort" in /bin. Ubuntu, Debian and perhaps
|
||||||
# others have it in /usr/bin.
|
# others have it in /usr/bin.
|
||||||
SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \
|
SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \
|
||||||
$(wildcard $(UTILS_USR_BIN_PATH)sort))
|
$(wildcard $(UTILS_USR_BIN_PATH)sort))
|
||||||
NAWK = $(USRBIN_PATH)gawk
|
NAWK = $(USRBIN_PATH)gawk
|
||||||
# Intrinsic unix command, with backslash-escaped character interpretation
|
# Intrinsic unix command, with backslash-escaped character interpretation
|
||||||
ECHO = /bin/echo -e
|
ECHO = /bin/echo -e
|
||||||
|
@ -198,3 +205,34 @@ ifeq ($(PLATFORM),solaris)
|
||||||
ECHO = /usr/bin/echo
|
ECHO = /usr/bin/echo
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# BSD specific
|
||||||
|
ifeq ($(PLATFORM),bsd)
|
||||||
|
BASENAME = $(UTILS_USR_BIN_PATH)basename
|
||||||
|
EGREP = $(UTILS_USR_BIN_PATH)egrep
|
||||||
|
EXPR = $(UTILS_COMMAND_PATH)expr
|
||||||
|
FMT = $(UTILS_USR_BIN_PATH)fmt
|
||||||
|
GREP = $(UTILS_USR_BIN_PATH)grep
|
||||||
|
GUNZIP = $(UTILS_USR_BIN_PATH)gunzip
|
||||||
|
ID = $(UTILS_USR_BIN_PATH)id
|
||||||
|
MSGFMT = $(UTILS_DEVTOOL_PATH)msgfmt
|
||||||
|
SED = $(UTILS_USR_BIN_PATH)sed
|
||||||
|
SORT = $(UTILS_USR_BIN_PATH)sort
|
||||||
|
TEST = $(UTILS_COMMAND_PATH)test
|
||||||
|
TOUCH = $(UTILS_USR_BIN_PATH)touch
|
||||||
|
TRUE = $(UTILS_USR_BIN_PATH)true
|
||||||
|
UNAME = $(UTILS_USR_BIN_PATH)uname
|
||||||
|
# BSD OS_VENDOR specific
|
||||||
|
ifeq ($(OS_VENDOR), Apple)
|
||||||
|
NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||||
|
UNZIPSFX = $(UTILS_USR_BIN_PATH)unzipsfx
|
||||||
|
ZIPEXE = $(UTILS_USR_BIN_PATH)zip
|
||||||
|
else
|
||||||
|
UNZIP = $(UTILS_DEVTOOL_PATH)unzip
|
||||||
|
endif
|
||||||
|
ifeq ($(OS_VENDOR), OpenBSD)
|
||||||
|
NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||||
|
else
|
||||||
|
CPIO = $(UTILS_USR_BIN_PATH)cpio
|
||||||
|
TAR = $(UTILS_USR_BIN_PATH)tar
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
|
@ -231,6 +231,98 @@ ifeq ($(SYSTEM_UNAME), Linux)
|
||||||
MB_OF_MEMORY := $(shell free -m | fgrep Mem: | sed -e 's@\ \ *@ @g' | cut -d' ' -f2)
|
MB_OF_MEMORY := $(shell free -m | fgrep Mem: | sed -e 's@\ \ *@ @g' | cut -d' ' -f2)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(SYSTEM_UNAME), FreeBSD)
|
||||||
|
PLATFORM = bsd
|
||||||
|
OS_NAME = freebsd
|
||||||
|
OS_VENDOR = FreeBSD
|
||||||
|
REQUIRED_OS_VERSION = 6.0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(SYSTEM_UNAME), Darwin)
|
||||||
|
PLATFORM = bsd
|
||||||
|
OS_NAME = darwin
|
||||||
|
OS_VENDOR = Apple
|
||||||
|
REQUIRED_OS_VERSION = 8.0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(SYSTEM_UNAME), NetBSD)
|
||||||
|
PLATFORM = bsd
|
||||||
|
OS_NAME = netbsd
|
||||||
|
OS_VENDOR = NetBSD
|
||||||
|
REQUIRED_OS_VERSION = 3.0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(SYSTEM_UNAME), OpenBSD)
|
||||||
|
PLATFORM = bsd
|
||||||
|
OS_NAME = openbsd
|
||||||
|
OS_VENDOR = OpenBSD
|
||||||
|
REQUIRED_OS_VERSION = 4.9
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Platform settings specific to BSD
|
||||||
|
ifeq ($(PLATFORM), bsd)
|
||||||
|
OS_VERSION := $(shell uname -r)
|
||||||
|
# Arch and OS name/version
|
||||||
|
mach := $(shell uname -m)
|
||||||
|
archExpr = case "$(mach)" in \
|
||||||
|
i[3-9]86) \
|
||||||
|
echo i586 \
|
||||||
|
;; \
|
||||||
|
sparc64) \
|
||||||
|
echo sparcv9 \
|
||||||
|
;; \
|
||||||
|
sparc*) \
|
||||||
|
echo sparc \
|
||||||
|
;; \
|
||||||
|
x86_64) \
|
||||||
|
echo amd64 \
|
||||||
|
;; \
|
||||||
|
"Power Macintosh") \
|
||||||
|
echo ppc \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
echo $(mach) \
|
||||||
|
;; \
|
||||||
|
esac
|
||||||
|
ARCH := $(shell $(archExpr) )
|
||||||
|
ARCH_FAMILY := $(ARCH)
|
||||||
|
|
||||||
|
# Darwin x86 builds are i386/amd64 universal.
|
||||||
|
ifeq ($(SYSTEM_UNAME), Darwin)
|
||||||
|
ifneq ($(ARCH), ppc)
|
||||||
|
ARCH=universal
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64
|
||||||
|
ifneq (,$(findstring $(ARCH), i586 sparc ppc universal))
|
||||||
|
ARCH_DATA_MODEL=32
|
||||||
|
else
|
||||||
|
ARCH_DATA_MODEL=64
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ARCH), i586)
|
||||||
|
LIBARCH = i386
|
||||||
|
else
|
||||||
|
LIBARCH = $(ARCH)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Value of Java os.arch property
|
||||||
|
ARCHPROP = $(LIBARCH)
|
||||||
|
|
||||||
|
# Suffix for file bundles used in previous release
|
||||||
|
BUNDLE_FILE_SUFFIX=.tar.gz
|
||||||
|
# Minimum disk space needed as determined by running 'du -sk' on
|
||||||
|
# a fully built workspace.
|
||||||
|
REQUIRED_FREE_SPACE=1500000
|
||||||
|
# How much RAM does this machine have:
|
||||||
|
ifeq ($(OS_VENDOR), OpenBSD)
|
||||||
|
MB_OF_MEMORY=$(shell sysctl -n hw.physmem | awk '{print int($$NF / 1048576); }' )
|
||||||
|
else
|
||||||
|
MB_OF_MEMORY=$(shell (sysctl -n hw.physmem64 2> /dev/null || sysctl -n hw.physmem) | awk '{print int($$NF / 1048576); }' )
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Windows with and without CYGWIN will be slightly different
|
# Windows with and without CYGWIN will be slightly different
|
||||||
ifeq ($(SYSTEM_UNAME), Windows_NT)
|
ifeq ($(SYSTEM_UNAME), Windows_NT)
|
||||||
PLATFORM = windows
|
PLATFORM = windows
|
||||||
|
@ -335,8 +427,8 @@ ifeq ($(PLATFORM), windows)
|
||||||
MB_OF_MEMORY := $(shell \
|
MB_OF_MEMORY := $(shell \
|
||||||
if [ -f "C:/cygwin/bin/free.exe" ] ; then \
|
if [ -f "C:/cygwin/bin/free.exe" ] ; then \
|
||||||
( C:/cygwin/bin/bash.exe -c "C:/cygwin/bin/free.exe -m" ) | \
|
( C:/cygwin/bin/bash.exe -c "C:/cygwin/bin/free.exe -m" ) | \
|
||||||
grep Mem: | \
|
grep Mem: | \
|
||||||
sed -e 's@\ \ *@ @g' | cut -d' ' -f2 ; \
|
sed -e 's@\ \ *@ @g' | cut -d' ' -f2 ; \
|
||||||
else \
|
else \
|
||||||
echo "512"; \
|
echo "512"; \
|
||||||
fi)
|
fi)
|
||||||
|
|
|
@ -1,280 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2001, 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package build.tools.stripproperties;
|
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.BufferedWriter;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.OutputStreamWriter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reads a properties file from standard input and writes an equivalent
|
|
||||||
* properties file without comments to standard output.
|
|
||||||
*/
|
|
||||||
public class StripProperties {
|
|
||||||
|
|
||||||
private static void error(String msg, Exception e) {
|
|
||||||
System.err.println("ERROR: stripproperties: " + msg);
|
|
||||||
if ( e != null ) {
|
|
||||||
System.err.println("EXCEPTION: " + e.toString());
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<String> parseOptions(String args[]) {
|
|
||||||
List<String> files = new ArrayList<String>();
|
|
||||||
for ( int i = 0; i < args.length ; i++ ) {
|
|
||||||
if ( "-optionsfile".equals(args[i]) && i+1 < args.length ) {
|
|
||||||
String filename = args[++i];
|
|
||||||
FileInputStream finput = null;
|
|
||||||
byte contents[] = null;
|
|
||||||
try {
|
|
||||||
finput = new FileInputStream(filename);
|
|
||||||
int byteCount = finput.available();
|
|
||||||
if ( byteCount <= 0 ) {
|
|
||||||
error("The -optionsfile file is empty", null);
|
|
||||||
files = null;
|
|
||||||
} else {
|
|
||||||
contents = new byte[byteCount];
|
|
||||||
int bytesRead = finput.read(contents);
|
|
||||||
if ( byteCount != bytesRead ) {
|
|
||||||
error("Cannot read all of -optionsfile file", null);
|
|
||||||
files = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
error("cannot open " + filename, e);
|
|
||||||
files = null;
|
|
||||||
}
|
|
||||||
if ( finput != null ) {
|
|
||||||
try {
|
|
||||||
finput.close();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
files = null;
|
|
||||||
error("cannot close " + filename, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( files != null && contents != null ) {
|
|
||||||
String tokens[] = (new String(contents)).split("\\s+");
|
|
||||||
if ( tokens.length > 0 ) {
|
|
||||||
List<String> ofiles = parseOptions(tokens);
|
|
||||||
if ( ofiles != null ) {
|
|
||||||
files.addAll(ofiles);
|
|
||||||
} else {
|
|
||||||
error("No files found in file", null);
|
|
||||||
files = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( files == null ) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
files.add(args[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return files;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean stripFiles(List<String> files) {
|
|
||||||
boolean ok = true;
|
|
||||||
for ( String file : files ) {
|
|
||||||
|
|
||||||
Properties prop = new Properties();
|
|
||||||
InputStream in = null;
|
|
||||||
try {
|
|
||||||
in = new BufferedInputStream(new FileInputStream(file));
|
|
||||||
prop.load(in);
|
|
||||||
} catch ( FileNotFoundException e ) {
|
|
||||||
error("Cannot access file " + file, e);
|
|
||||||
ok = false;
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
error("IO exception processing file " + file, e);
|
|
||||||
ok = false;
|
|
||||||
}
|
|
||||||
if ( in != null ) {
|
|
||||||
try {
|
|
||||||
in.close();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
error("IO exception closing file " + file, e);
|
|
||||||
ok = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( !ok ) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
OutputStream out = null;
|
|
||||||
try {
|
|
||||||
out = new FileOutputStream(file);
|
|
||||||
storeProperties(prop, out);
|
|
||||||
out.flush();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
error("IO exception processing file " + file, e);
|
|
||||||
ok = false;
|
|
||||||
}
|
|
||||||
if ( out != null ) {
|
|
||||||
try {
|
|
||||||
out.close();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
error("IO exception closing file " + file, e);
|
|
||||||
ok = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( !ok ) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Strip the properties filenames supplied, replacing their contents.
|
|
||||||
* @param args Names of properties files to process and replace contents
|
|
||||||
*/
|
|
||||||
public static void main(String args[]) {
|
|
||||||
List<String> files = parseOptions(args);
|
|
||||||
if ( files == null || !stripFiles(files) ) {
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- code below here is adapted from java.util.Properties ---
|
|
||||||
|
|
||||||
private static final String specialSaveChars = "=: \t\r\n\f#!";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Converts unicodes to encoded \uxxxx
|
|
||||||
* and writes out any of the characters in specialSaveChars
|
|
||||||
* with a preceding slash
|
|
||||||
*/
|
|
||||||
private static String saveConvert(String theString, boolean escapeSpace) {
|
|
||||||
int len = theString.length();
|
|
||||||
StringBuffer outBuffer = new StringBuffer(len*2);
|
|
||||||
|
|
||||||
for(int x=0; x<len; x++) {
|
|
||||||
char aChar = theString.charAt(x);
|
|
||||||
switch(aChar) {
|
|
||||||
case ' ':
|
|
||||||
if (x == 0 || escapeSpace) {
|
|
||||||
outBuffer.append('\\');
|
|
||||||
}
|
|
||||||
outBuffer.append(' ');
|
|
||||||
break;
|
|
||||||
case '\\':
|
|
||||||
outBuffer.append('\\');
|
|
||||||
outBuffer.append('\\');
|
|
||||||
break;
|
|
||||||
case '\t':
|
|
||||||
outBuffer.append('\\');
|
|
||||||
outBuffer.append('t');
|
|
||||||
break;
|
|
||||||
case '\n':
|
|
||||||
outBuffer.append('\\');
|
|
||||||
outBuffer.append('n');
|
|
||||||
break;
|
|
||||||
case '\r':
|
|
||||||
outBuffer.append('\\');
|
|
||||||
outBuffer.append('r');
|
|
||||||
break;
|
|
||||||
case '\f':
|
|
||||||
outBuffer.append('\\');
|
|
||||||
outBuffer.append('f');
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if ((aChar < 0x0020) || (aChar == 0x007e) || (aChar > 0x00ff)) {
|
|
||||||
outBuffer.append('\\');
|
|
||||||
outBuffer.append('u');
|
|
||||||
outBuffer.append(toHex((aChar >> 12) & 0xF));
|
|
||||||
outBuffer.append(toHex((aChar >> 8) & 0xF));
|
|
||||||
outBuffer.append(toHex((aChar >> 4) & 0xF));
|
|
||||||
outBuffer.append(toHex( aChar & 0xF));
|
|
||||||
} else {
|
|
||||||
if (specialSaveChars.indexOf(aChar) != -1) {
|
|
||||||
outBuffer.append('\\');
|
|
||||||
}
|
|
||||||
outBuffer.append(aChar);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return outBuffer.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Writes the content of <code>properties</code> to <code>out</code>.
|
|
||||||
* The format is that of Properties.store with the following modifications:
|
|
||||||
* <ul>
|
|
||||||
* <li>No header or date is written
|
|
||||||
* <li>Latin-1 characters are written as single bytes, not escape sequences
|
|
||||||
* <li>Line breaks are indicated by a single \n independent of platform
|
|
||||||
* <ul>
|
|
||||||
*/
|
|
||||||
private static void storeProperties(Properties properties, OutputStream out)
|
|
||||||
throws IOException {
|
|
||||||
BufferedWriter awriter;
|
|
||||||
awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1"));
|
|
||||||
for (Enumeration e = properties.keys(); e.hasMoreElements();) {
|
|
||||||
String key = (String)e.nextElement();
|
|
||||||
String val = (String)properties.get(key);
|
|
||||||
key = saveConvert(key, true);
|
|
||||||
|
|
||||||
/* No need to escape embedded and trailing spaces for value, hence
|
|
||||||
* pass false to flag.
|
|
||||||
*/
|
|
||||||
val = saveConvert(val, false);
|
|
||||||
writeln(awriter, key + "=" + val);
|
|
||||||
}
|
|
||||||
awriter.flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void writeln(BufferedWriter bw, String s) throws IOException {
|
|
||||||
bw.write(s);
|
|
||||||
bw.write("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert a nibble to a hex character
|
|
||||||
* @param nibble the nibble to convert.
|
|
||||||
*/
|
|
||||||
private static char toHex(int nibble) {
|
|
||||||
return hexDigit[(nibble & 0xF)];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A table of hex digits */
|
|
||||||
private static final char[] hexDigit = {
|
|
||||||
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,288 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2001, 2011, 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package build.tools.stripproperties;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.io.OutputStreamWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a properties file from standard input and writes an equivalent
|
||||||
|
* properties file without comments to standard output.
|
||||||
|
*/
|
||||||
|
public class StripPropertiesCorba {
|
||||||
|
|
||||||
|
private static void error(String msg, Exception e) {
|
||||||
|
System.err.println("ERROR: stripproperties: " + msg);
|
||||||
|
if ( e != null ) {
|
||||||
|
System.err.println("EXCEPTION: " + e.toString());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<String> infiles = new ArrayList<String>();
|
||||||
|
private static List<String> outfiles = new ArrayList<String>();
|
||||||
|
|
||||||
|
private static boolean parseOptions(String args[]) {
|
||||||
|
boolean ok = true;
|
||||||
|
|
||||||
|
for ( int i = 0; i < args.length ; i++ ) {
|
||||||
|
if ( "-clean".equals(args[i]) && i+2 < args.length ) {
|
||||||
|
infiles.add(args[++i]);
|
||||||
|
outfiles.add(args[++i]);
|
||||||
|
} else if ( args[i].charAt(0)=='@') {
|
||||||
|
String filename = args[i].substring(1);
|
||||||
|
FileInputStream finput = null;
|
||||||
|
byte contents[] = null;
|
||||||
|
try {
|
||||||
|
finput = new FileInputStream(filename);
|
||||||
|
int byteCount = finput.available();
|
||||||
|
if ( byteCount <= 0 ) {
|
||||||
|
error("The @file is empty", null);
|
||||||
|
ok = false;
|
||||||
|
} else {
|
||||||
|
contents = new byte[byteCount];
|
||||||
|
int bytesRead = finput.read(contents);
|
||||||
|
if ( byteCount != bytesRead ) {
|
||||||
|
error("Cannot read all of @file", null);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch ( IOException e ) {
|
||||||
|
error("cannot open " + filename, e);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
if ( finput != null ) {
|
||||||
|
try {
|
||||||
|
finput.close();
|
||||||
|
} catch ( IOException e ) {
|
||||||
|
ok = false;
|
||||||
|
error("cannot close " + filename, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( ok && contents != null ) {
|
||||||
|
String tokens[] = (new String(contents)).split("\\s+");
|
||||||
|
if ( tokens.length > 0 ) {
|
||||||
|
ok = parseOptions(tokens);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !ok ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
infiles.add(args[i]);
|
||||||
|
outfiles.add(args[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean stripFiles(List<String> infiles, List<String> outfiles) {
|
||||||
|
boolean ok = true;
|
||||||
|
Iterator<String> inIter = infiles.iterator();
|
||||||
|
Iterator<String> outIter = outfiles.iterator();
|
||||||
|
|
||||||
|
for (; inIter.hasNext(); ) {
|
||||||
|
String infile = inIter.next();
|
||||||
|
String outfile = outIter.next();
|
||||||
|
|
||||||
|
Properties prop = new Properties();
|
||||||
|
InputStream in = null;
|
||||||
|
try {
|
||||||
|
in = new BufferedInputStream(new FileInputStream(infile));
|
||||||
|
prop.load(in);
|
||||||
|
} catch ( FileNotFoundException e ) {
|
||||||
|
error("Cannot access file " + infile, e);
|
||||||
|
ok = false;
|
||||||
|
} catch ( IOException e ) {
|
||||||
|
error("IO exception processing file " + infile, e);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
if ( in != null ) {
|
||||||
|
try {
|
||||||
|
in.close();
|
||||||
|
} catch ( IOException e ) {
|
||||||
|
error("IO exception closing file " + infile, e);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !ok ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
OutputStream out = null;
|
||||||
|
try {
|
||||||
|
out = new FileOutputStream(outfile);
|
||||||
|
storeProperties(prop, out);
|
||||||
|
out.flush();
|
||||||
|
} catch ( IOException e ) {
|
||||||
|
error("IO exception processing file " + outfile, e);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
if ( out != null ) {
|
||||||
|
try {
|
||||||
|
out.close();
|
||||||
|
} catch ( IOException e ) {
|
||||||
|
error("IO exception closing file " + outfile, e);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !ok ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Strip the properties filenames supplied, replacing their contents.
|
||||||
|
* @param args Names of properties files to process and replace contents
|
||||||
|
*/
|
||||||
|
public static void main(String args[]) {
|
||||||
|
boolean ok = parseOptions(args);
|
||||||
|
if ( !ok || !stripFiles(infiles, outfiles) ) {
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- code below here is adapted from java.util.Properties ---
|
||||||
|
|
||||||
|
private static final String specialSaveChars = "=: \t\r\n\f#!";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Converts unicodes to encoded \uxxxx
|
||||||
|
* and writes out any of the characters in specialSaveChars
|
||||||
|
* with a preceding slash
|
||||||
|
*/
|
||||||
|
private static String saveConvert(String theString, boolean escapeSpace) {
|
||||||
|
int len = theString.length();
|
||||||
|
StringBuffer outBuffer = new StringBuffer(len*2);
|
||||||
|
|
||||||
|
for(int x=0; x<len; x++) {
|
||||||
|
char aChar = theString.charAt(x);
|
||||||
|
switch(aChar) {
|
||||||
|
case ' ':
|
||||||
|
if (x == 0 || escapeSpace) {
|
||||||
|
outBuffer.append('\\');
|
||||||
|
}
|
||||||
|
outBuffer.append(' ');
|
||||||
|
break;
|
||||||
|
case '\\':
|
||||||
|
outBuffer.append('\\');
|
||||||
|
outBuffer.append('\\');
|
||||||
|
break;
|
||||||
|
case '\t':
|
||||||
|
outBuffer.append('\\');
|
||||||
|
outBuffer.append('t');
|
||||||
|
break;
|
||||||
|
case '\n':
|
||||||
|
outBuffer.append('\\');
|
||||||
|
outBuffer.append('n');
|
||||||
|
break;
|
||||||
|
case '\r':
|
||||||
|
outBuffer.append('\\');
|
||||||
|
outBuffer.append('r');
|
||||||
|
break;
|
||||||
|
case '\f':
|
||||||
|
outBuffer.append('\\');
|
||||||
|
outBuffer.append('f');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if ((aChar < 0x0020) || (aChar == 0x007e) || (aChar > 0x00ff)) {
|
||||||
|
outBuffer.append('\\');
|
||||||
|
outBuffer.append('u');
|
||||||
|
outBuffer.append(toHex((aChar >> 12) & 0xF));
|
||||||
|
outBuffer.append(toHex((aChar >> 8) & 0xF));
|
||||||
|
outBuffer.append(toHex((aChar >> 4) & 0xF));
|
||||||
|
outBuffer.append(toHex( aChar & 0xF));
|
||||||
|
} else {
|
||||||
|
if (specialSaveChars.indexOf(aChar) != -1) {
|
||||||
|
outBuffer.append('\\');
|
||||||
|
}
|
||||||
|
outBuffer.append(aChar);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return outBuffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Writes the content of <code>properties</code> to <code>out</code>.
|
||||||
|
* The format is that of Properties.store with the following modifications:
|
||||||
|
* <ul>
|
||||||
|
* <li>No header or date is written
|
||||||
|
* <li>Latin-1 characters are written as single bytes, not escape sequences
|
||||||
|
* <li>Line breaks are indicated by a single \n independent of platform
|
||||||
|
* <ul>
|
||||||
|
*/
|
||||||
|
private static void storeProperties(Properties properties, OutputStream out)
|
||||||
|
throws IOException {
|
||||||
|
BufferedWriter awriter;
|
||||||
|
awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1"));
|
||||||
|
for (Enumeration<Object> e = properties.keys(); e.hasMoreElements();) {
|
||||||
|
String key = (String)e.nextElement();
|
||||||
|
String val = (String)properties.get(key);
|
||||||
|
key = saveConvert(key, true);
|
||||||
|
|
||||||
|
/* No need to escape embedded and trailing spaces for value, hence
|
||||||
|
* pass false to flag.
|
||||||
|
*/
|
||||||
|
val = saveConvert(val, false);
|
||||||
|
writeln(awriter, key + "=" + val);
|
||||||
|
}
|
||||||
|
awriter.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void writeln(BufferedWriter bw, String s) throws IOException {
|
||||||
|
bw.write(s);
|
||||||
|
bw.write("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a nibble to a hex character
|
||||||
|
* @param nibble the nibble to convert.
|
||||||
|
*/
|
||||||
|
private static char toHex(int nibble) {
|
||||||
|
return hexDigit[(nibble & 0xF)];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** A table of hex digits */
|
||||||
|
private static final char[] hexDigit = {
|
||||||
|
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
|
||||||
|
};
|
||||||
|
}
|
|
@ -34,7 +34,7 @@ PROGRAM = stripproperties
|
||||||
include $(BUILDDIR)/common/Defs.gmk
|
include $(BUILDDIR)/common/Defs.gmk
|
||||||
|
|
||||||
BUILDTOOL_SOURCE_ROOT = $(BUILDDIR)/tools/src
|
BUILDTOOL_SOURCE_ROOT = $(BUILDDIR)/tools/src
|
||||||
BUILDTOOL_MAIN = $(PKGDIR)/StripProperties.java
|
BUILDTOOL_MAIN = $(PKGDIR)/StripPropertiesCorba.java
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build tool jar rules.
|
# Build tool jar rules.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -82,6 +82,6 @@ public class DynAnyFactoryImpl
|
||||||
private String[] __ids = { "IDL:omg.org/DynamicAny/DynAnyFactory:1.0" };
|
private String[] __ids = { "IDL:omg.org/DynamicAny/DynAnyFactory:1.0" };
|
||||||
|
|
||||||
public String[] _ids() {
|
public String[] _ids() {
|
||||||
return __ids;
|
return (String[]) __ids.clone();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -195,6 +195,6 @@ abstract class DynAnyImpl extends org.omg.CORBA.LocalObject implements DynAny
|
||||||
private String[] __ids = { "IDL:omg.org/DynamicAny/DynAny:1.0" };
|
private String[] __ids = { "IDL:omg.org/DynamicAny/DynAny:1.0" };
|
||||||
|
|
||||||
public String[] _ids() {
|
public String[] _ids() {
|
||||||
return __ids;
|
return (String[]) __ids.clone();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -138,7 +138,7 @@ public abstract class _CodeBaseImplBase extends org.omg.CORBA.portable.ObjectImp
|
||||||
|
|
||||||
public String[] _ids ()
|
public String[] _ids ()
|
||||||
{
|
{
|
||||||
return __ids;
|
return (String[]) __ids.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -213,3 +213,27 @@ fe2c8764998112b7fefcd7d41599714813ae4327 jdk8-b20
|
||||||
513351373923f74a7c91755748b95c9771e59f96 hs23-b10
|
513351373923f74a7c91755748b95c9771e59f96 hs23-b10
|
||||||
24727fb37561779077fdfa5a33342246f20e5c0f jdk8-b22
|
24727fb37561779077fdfa5a33342246f20e5c0f jdk8-b22
|
||||||
dcc292399a39113957eebbd3e487b7e05e2c79fc hs23-b11
|
dcc292399a39113957eebbd3e487b7e05e2c79fc hs23-b11
|
||||||
|
e850d8e7ea54b91c7aa656e297f0f9f38dd4c296 jdk8-b23
|
||||||
|
9e177d44b10fe92ecffa965fef9c5ac5433c1b46 hs23-b12
|
||||||
|
a80fd4f45d7aaa154ed2f86a129f3c9c4035ec7a jdk8-b24
|
||||||
|
b22de824749922986ce4d442bed029916b832807 hs23-b13
|
||||||
|
64b46f975ab82948c1e021e17775ff4fab8bc40e hs23-b14
|
||||||
|
9ad8feb5afbddec46d3cfe29fb5f73c2e99d5a43 jdk8-b25
|
||||||
|
d71e662fe03741b6de498ca2077220148405a978 hs23-b15
|
||||||
|
fd3060701216a11c0df6dcd053c6fd7c2b17a42c jdk8-b26
|
||||||
|
f92a171cf0071ca6c3fa8231d7d570377f8b2f4d hs23-b16
|
||||||
|
f92a171cf0071ca6c3fa8231d7d570377f8b2f4d hs23-b16
|
||||||
|
931e5f39e365a0d550d79148ff87a7f9e864d2e1 hs23-b16
|
||||||
|
3b24e7e01d20ca590d0f86b1222bb7c3f1a2aa2d jdk8-b27
|
||||||
|
975c4105f1e2ef1190a75b77124033f1fd4290b5 hs24-b01
|
||||||
|
b183b0863611b85dbac16f3b08b40ba978756d19 jdk8-b28
|
||||||
|
030b5306d60f140e822e4a6d301744cb110ff0c8 hs24-b02
|
||||||
|
b45b5c564098c58ea69e7cff3f7d341f0254dd1d jdk8-b29
|
||||||
|
d61761bf305031c94f7f8eca49abd978b7d3c5da jdk8-b30
|
||||||
|
dfae0140457cfb2c381d7679735fbedbae862c62 hs24-b03
|
||||||
|
f4767e53d6e0d5da7e3f1775904076cce54247c1 hs24-b04
|
||||||
|
0cd147eaa673d1642b2f466f5dc257cf192db524 jdk8-b31
|
||||||
|
27863e4586de38be7dd17da4163f542038f4d1d7 hs24-b05
|
||||||
|
25410a347ebb0bef166c4338a90d9dea82463a20 jdk8-b32
|
||||||
|
cd47da9383cd932cb2b659064057feafa2a91134 hs24-b06
|
||||||
|
785bcf415ead2eaa5f6677aaf528481008140bac jdk8-b33
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -40,7 +40,7 @@ OBJS = $(SOURCES:.c=.o)
|
||||||
|
|
||||||
LIBS = -lthread_db
|
LIBS = -lthread_db
|
||||||
|
|
||||||
CFLAGS = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES)
|
CFLAGS = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) -D_FILE_OFFSET_BITS=64
|
||||||
|
|
||||||
LIBSA = $(ARCH)/libsaproc.so
|
LIBSA = $(ARCH)/libsaproc.so
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -50,10 +50,6 @@ int pathmap_open(const char* name) {
|
||||||
char alt_path[PATH_MAX + 1];
|
char alt_path[PATH_MAX + 1];
|
||||||
|
|
||||||
init_alt_root();
|
init_alt_root();
|
||||||
fd = open(name, O_RDONLY);
|
|
||||||
if (fd >= 0) {
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (alt_root_len > 0) {
|
if (alt_root_len > 0) {
|
||||||
strcpy(alt_path, alt_root);
|
strcpy(alt_path, alt_root);
|
||||||
|
@ -73,6 +69,11 @@ int pathmap_open(const char* name) {
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
fd = open(name, O_RDONLY);
|
||||||
|
if (fd >= 0) {
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -49,8 +49,12 @@ public class G1CollectedHeap extends SharedHeap {
|
||||||
static private long g1CommittedFieldOffset;
|
static private long g1CommittedFieldOffset;
|
||||||
// size_t _summary_bytes_used;
|
// size_t _summary_bytes_used;
|
||||||
static private CIntegerField summaryBytesUsedField;
|
static private CIntegerField summaryBytesUsedField;
|
||||||
// G1MonitoringSupport* _g1mm
|
// G1MonitoringSupport* _g1mm;
|
||||||
static private AddressField g1mmField;
|
static private AddressField g1mmField;
|
||||||
|
// MasterOldRegionSet _old_set;
|
||||||
|
static private long oldSetFieldOffset;
|
||||||
|
// MasterHumongousRegionSet _humongous_set;
|
||||||
|
static private long humongousSetFieldOffset;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
VM.registerVMInitializedObserver(new Observer() {
|
VM.registerVMInitializedObserver(new Observer() {
|
||||||
|
@ -67,12 +71,14 @@ public class G1CollectedHeap extends SharedHeap {
|
||||||
g1CommittedFieldOffset = type.getField("_g1_committed").getOffset();
|
g1CommittedFieldOffset = type.getField("_g1_committed").getOffset();
|
||||||
summaryBytesUsedField = type.getCIntegerField("_summary_bytes_used");
|
summaryBytesUsedField = type.getCIntegerField("_summary_bytes_used");
|
||||||
g1mmField = type.getAddressField("_g1mm");
|
g1mmField = type.getAddressField("_g1mm");
|
||||||
|
oldSetFieldOffset = type.getField("_old_set").getOffset();
|
||||||
|
humongousSetFieldOffset = type.getField("_humongous_set").getOffset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public long capacity() {
|
public long capacity() {
|
||||||
Address g1CommittedAddr = addr.addOffsetTo(g1CommittedFieldOffset);
|
Address g1CommittedAddr = addr.addOffsetTo(g1CommittedFieldOffset);
|
||||||
MemRegion g1_committed = new MemRegion(g1CommittedAddr);
|
MemRegion g1Committed = new MemRegion(g1CommittedAddr);
|
||||||
return g1_committed.byteSize();
|
return g1Committed.byteSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
public long used() {
|
public long used() {
|
||||||
|
@ -94,6 +100,18 @@ public class G1CollectedHeap extends SharedHeap {
|
||||||
return (G1MonitoringSupport) VMObjectFactory.newObject(G1MonitoringSupport.class, g1mmAddr);
|
return (G1MonitoringSupport) VMObjectFactory.newObject(G1MonitoringSupport.class, g1mmAddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HeapRegionSetBase oldSet() {
|
||||||
|
Address oldSetAddr = addr.addOffsetTo(oldSetFieldOffset);
|
||||||
|
return (HeapRegionSetBase) VMObjectFactory.newObject(HeapRegionSetBase.class,
|
||||||
|
oldSetAddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public HeapRegionSetBase humongousSet() {
|
||||||
|
Address humongousSetAddr = addr.addOffsetTo(humongousSetFieldOffset);
|
||||||
|
return (HeapRegionSetBase) VMObjectFactory.newObject(HeapRegionSetBase.class,
|
||||||
|
humongousSetAddr);
|
||||||
|
}
|
||||||
|
|
||||||
private Iterator<HeapRegion> heapRegionIterator() {
|
private Iterator<HeapRegion> heapRegionIterator() {
|
||||||
return hrs().heapRegionIterator();
|
return hrs().heapRegionIterator();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -77,6 +77,10 @@ public class G1MonitoringSupport extends VMObject {
|
||||||
return edenUsedField.getValue(addr);
|
return edenUsedField.getValue(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long edenRegionNum() {
|
||||||
|
return edenUsed() / HeapRegion.grainBytes();
|
||||||
|
}
|
||||||
|
|
||||||
public long survivorCommitted() {
|
public long survivorCommitted() {
|
||||||
return survivorCommittedField.getValue(addr);
|
return survivorCommittedField.getValue(addr);
|
||||||
}
|
}
|
||||||
|
@ -85,6 +89,10 @@ public class G1MonitoringSupport extends VMObject {
|
||||||
return survivorUsedField.getValue(addr);
|
return survivorUsedField.getValue(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long survivorRegionNum() {
|
||||||
|
return survivorUsed() / HeapRegion.grainBytes();
|
||||||
|
}
|
||||||
|
|
||||||
public long oldCommitted() {
|
public long oldCommitted() {
|
||||||
return oldCommittedField.getValue(addr);
|
return oldCommittedField.getValue(addr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2012, 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package sun.jvm.hotspot.gc_implementation.g1;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Observable;
|
||||||
|
import java.util.Observer;
|
||||||
|
|
||||||
|
import sun.jvm.hotspot.debugger.Address;
|
||||||
|
import sun.jvm.hotspot.runtime.VM;
|
||||||
|
import sun.jvm.hotspot.runtime.VMObject;
|
||||||
|
import sun.jvm.hotspot.runtime.VMObjectFactory;
|
||||||
|
import sun.jvm.hotspot.types.AddressField;
|
||||||
|
import sun.jvm.hotspot.types.CIntegerField;
|
||||||
|
import sun.jvm.hotspot.types.Type;
|
||||||
|
import sun.jvm.hotspot.types.TypeDataBase;
|
||||||
|
|
||||||
|
// Mirror class for HeapRegionSetBase. Represents a group of regions.
|
||||||
|
|
||||||
|
public class HeapRegionSetBase extends VMObject {
|
||||||
|
// size_t _length;
|
||||||
|
static private CIntegerField lengthField;
|
||||||
|
// size_t _region_num;
|
||||||
|
static private CIntegerField regionNumField;
|
||||||
|
// size_t _total_used_bytes;
|
||||||
|
static private CIntegerField totalUsedBytesField;
|
||||||
|
|
||||||
|
static {
|
||||||
|
VM.registerVMInitializedObserver(new Observer() {
|
||||||
|
public void update(Observable o, Object data) {
|
||||||
|
initialize(VM.getVM().getTypeDataBase());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
static private synchronized void initialize(TypeDataBase db) {
|
||||||
|
Type type = db.lookupType("HeapRegionSetBase");
|
||||||
|
|
||||||
|
lengthField = type.getCIntegerField("_length");
|
||||||
|
regionNumField = type.getCIntegerField("_region_num");
|
||||||
|
totalUsedBytesField = type.getCIntegerField("_total_used_bytes");
|
||||||
|
}
|
||||||
|
|
||||||
|
public long length() {
|
||||||
|
return lengthField.getValue(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long regionNum() {
|
||||||
|
return regionNumField.getValue(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long totalUsedBytes() {
|
||||||
|
return totalUsedBytesField.getValue(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public HeapRegionSetBase(Address addr) {
|
||||||
|
super(addr);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -217,8 +217,8 @@ abstract class ConnectorImpl implements Connector {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void checkNativeLink(SecurityManager sm, String os) {
|
protected void checkNativeLink(SecurityManager sm, String os) {
|
||||||
if (os.equals("SunOS") || os.equals("Linux")) {
|
if (os.equals("SunOS") || os.equals("Linux") || os.contains("OS X")) {
|
||||||
// link "saproc" - SA native library on SunOS and Linux?
|
// link "saproc" - SA native library on SunOS, Linux, and Mac OS X
|
||||||
sm.checkLink("saproc");
|
sm.checkLink("saproc");
|
||||||
} else if (os.startsWith("Windows")) {
|
} else if (os.startsWith("Windows")) {
|
||||||
// link "sawindbg" - SA native library on Windows.
|
// link "sawindbg" - SA native library on Windows.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2012 Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -42,15 +42,6 @@ public class LoaderConstraintTable extends TwoOopHashtable {
|
||||||
|
|
||||||
private static synchronized void initialize(TypeDataBase db) {
|
private static synchronized void initialize(TypeDataBase db) {
|
||||||
Type type = db.lookupType("LoaderConstraintTable");
|
Type type = db.lookupType("LoaderConstraintTable");
|
||||||
nofBuckets = db.lookupIntConstant("LoaderConstraintTable::_nof_buckets").intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fields
|
|
||||||
private static int nofBuckets;
|
|
||||||
|
|
||||||
// Accessors
|
|
||||||
public static int getNumOfBuckets() {
|
|
||||||
return nofBuckets;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoaderConstraintTable(Address addr) {
|
public LoaderConstraintTable(Address addr) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -36,7 +36,6 @@ public class SystemDictionary {
|
||||||
private static AddressField placeholdersField;
|
private static AddressField placeholdersField;
|
||||||
private static AddressField loaderConstraintTableField;
|
private static AddressField loaderConstraintTableField;
|
||||||
private static sun.jvm.hotspot.types.OopField javaSystemLoaderField;
|
private static sun.jvm.hotspot.types.OopField javaSystemLoaderField;
|
||||||
private static int nofBuckets;
|
|
||||||
|
|
||||||
private static sun.jvm.hotspot.types.OopField objectKlassField;
|
private static sun.jvm.hotspot.types.OopField objectKlassField;
|
||||||
private static sun.jvm.hotspot.types.OopField classLoaderKlassField;
|
private static sun.jvm.hotspot.types.OopField classLoaderKlassField;
|
||||||
|
@ -62,7 +61,6 @@ public class SystemDictionary {
|
||||||
placeholdersField = type.getAddressField("_placeholders");
|
placeholdersField = type.getAddressField("_placeholders");
|
||||||
loaderConstraintTableField = type.getAddressField("_loader_constraints");
|
loaderConstraintTableField = type.getAddressField("_loader_constraints");
|
||||||
javaSystemLoaderField = type.getOopField("_java_system_loader");
|
javaSystemLoaderField = type.getOopField("_java_system_loader");
|
||||||
nofBuckets = db.lookupIntConstant("SystemDictionary::_nof_buckets").intValue();
|
|
||||||
|
|
||||||
objectKlassField = type.getOopField(WK_KLASS("Object_klass"));
|
objectKlassField = type.getOopField(WK_KLASS("Object_klass"));
|
||||||
classLoaderKlassField = type.getOopField(WK_KLASS("ClassLoader_klass"));
|
classLoaderKlassField = type.getOopField(WK_KLASS("ClassLoader_klass"));
|
||||||
|
@ -142,10 +140,6 @@ public class SystemDictionary {
|
||||||
return newOop(javaSystemLoaderField.getValue());
|
return newOop(javaSystemLoaderField.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getNumOfBuckets() {
|
|
||||||
return nofBuckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Oop newOop(OopHandle handle) {
|
private static Oop newOop(OopHandle handle) {
|
||||||
return VM.getVM().getObjectHeap().newOop(handle);
|
return VM.getVM().getObjectHeap().newOop(handle);
|
||||||
}
|
}
|
||||||
|
|
|
@ -648,7 +648,12 @@ public class ConstantPool extends Oop implements ClassConstants {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printValueOn(PrintStream tty) {
|
public void printValueOn(PrintStream tty) {
|
||||||
tty.print("ConstantPool for " + getPoolHolder().getName().asString());
|
Oop holder = poolHolder.getValue(this);
|
||||||
|
if (holder instanceof Klass) {
|
||||||
|
tty.print("ConstantPool for " + ((Klass)holder).getName().asString());
|
||||||
|
} else {
|
||||||
|
tty.print("ConstantPool for partially loaded class");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getObjectSize() {
|
public long getObjectSize() {
|
||||||
|
|
|
@ -359,6 +359,12 @@ public class InstanceKlass extends Klass {
|
||||||
public static final int innerClassNextOffset = 4;
|
public static final int innerClassNextOffset = 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static interface EnclosingMethodAttributeOffset {
|
||||||
|
public static final int enclosing_method_class_index_offset = 0;
|
||||||
|
public static final int enclosing_method_method_index_offset = 1;
|
||||||
|
public static final int enclosing_method_attribute_size = 2;
|
||||||
|
};
|
||||||
|
|
||||||
// refer to compute_modifier_flags in VM code.
|
// refer to compute_modifier_flags in VM code.
|
||||||
public long computeModifierFlags() {
|
public long computeModifierFlags() {
|
||||||
long access = getAccessFlags();
|
long access = getAccessFlags();
|
||||||
|
@ -367,9 +373,14 @@ public class InstanceKlass extends Klass {
|
||||||
int length = ( innerClassList == null)? 0 : (int) innerClassList.getLength();
|
int length = ( innerClassList == null)? 0 : (int) innerClassList.getLength();
|
||||||
if (length > 0) {
|
if (length > 0) {
|
||||||
if (Assert.ASSERTS_ENABLED) {
|
if (Assert.ASSERTS_ENABLED) {
|
||||||
Assert.that(length % InnerClassAttributeOffset.innerClassNextOffset == 0, "just checking");
|
Assert.that(length % InnerClassAttributeOffset.innerClassNextOffset == 0 ||
|
||||||
|
length % InnerClassAttributeOffset.innerClassNextOffset == EnclosingMethodAttributeOffset.enclosing_method_attribute_size,
|
||||||
|
"just checking");
|
||||||
}
|
}
|
||||||
for (int i = 0; i < length; i += InnerClassAttributeOffset.innerClassNextOffset) {
|
for (int i = 0; i < length; i += InnerClassAttributeOffset.innerClassNextOffset) {
|
||||||
|
if (i == length - EnclosingMethodAttributeOffset.enclosing_method_attribute_size) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
int ioff = innerClassList.getShortAt(i +
|
int ioff = innerClassList.getShortAt(i +
|
||||||
InnerClassAttributeOffset.innerClassInnerClassInfoOffset);
|
InnerClassAttributeOffset.innerClassInnerClassInfoOffset);
|
||||||
// 'ioff' can be zero.
|
// 'ioff' can be zero.
|
||||||
|
@ -419,9 +430,14 @@ public class InstanceKlass extends Klass {
|
||||||
int length = ( innerClassList == null)? 0 : (int) innerClassList.getLength();
|
int length = ( innerClassList == null)? 0 : (int) innerClassList.getLength();
|
||||||
if (length > 0) {
|
if (length > 0) {
|
||||||
if (Assert.ASSERTS_ENABLED) {
|
if (Assert.ASSERTS_ENABLED) {
|
||||||
Assert.that(length % InnerClassAttributeOffset.innerClassNextOffset == 0, "just checking");
|
Assert.that(length % InnerClassAttributeOffset.innerClassNextOffset == 0 ||
|
||||||
|
length % InnerClassAttributeOffset.innerClassNextOffset == EnclosingMethodAttributeOffset.enclosing_method_attribute_size,
|
||||||
|
"just checking");
|
||||||
}
|
}
|
||||||
for (int i = 0; i < length; i += InnerClassAttributeOffset.innerClassNextOffset) {
|
for (int i = 0; i < length; i += InnerClassAttributeOffset.innerClassNextOffset) {
|
||||||
|
if (i == length - EnclosingMethodAttributeOffset.enclosing_method_attribute_size) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
int ioff = innerClassList.getShortAt(i +
|
int ioff = innerClassList.getShortAt(i +
|
||||||
InnerClassAttributeOffset.innerClassInnerClassInfoOffset);
|
InnerClassAttributeOffset.innerClassInnerClassInfoOffset);
|
||||||
// 'ioff' can be zero.
|
// 'ioff' can be zero.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -67,6 +67,7 @@ public class HeapSummary extends Tool {
|
||||||
printValue("SurvivorRatio = ", getFlagValue("SurvivorRatio", flagMap));
|
printValue("SurvivorRatio = ", getFlagValue("SurvivorRatio", flagMap));
|
||||||
printValMB("PermSize = ", getFlagValue("PermSize", flagMap));
|
printValMB("PermSize = ", getFlagValue("PermSize", flagMap));
|
||||||
printValMB("MaxPermSize = ", getFlagValue("MaxPermSize", flagMap));
|
printValMB("MaxPermSize = ", getFlagValue("MaxPermSize", flagMap));
|
||||||
|
printValMB("G1HeapRegionSize = ", HeapRegion.grainBytes());
|
||||||
|
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("Heap Usage:");
|
System.out.println("Heap Usage:");
|
||||||
|
@ -100,11 +101,20 @@ public class HeapSummary extends Tool {
|
||||||
} else if (sharedHeap instanceof G1CollectedHeap) {
|
} else if (sharedHeap instanceof G1CollectedHeap) {
|
||||||
G1CollectedHeap g1h = (G1CollectedHeap) sharedHeap;
|
G1CollectedHeap g1h = (G1CollectedHeap) sharedHeap;
|
||||||
G1MonitoringSupport g1mm = g1h.g1mm();
|
G1MonitoringSupport g1mm = g1h.g1mm();
|
||||||
System.out.println("G1 Young Generation");
|
long edenRegionNum = g1mm.edenRegionNum();
|
||||||
printG1Space("Eden Space:", g1mm.edenUsed(), g1mm.edenCommitted());
|
long survivorRegionNum = g1mm.survivorRegionNum();
|
||||||
printG1Space("From Space:", g1mm.survivorUsed(), g1mm.survivorCommitted());
|
HeapRegionSetBase oldSet = g1h.oldSet();
|
||||||
printG1Space("To Space:", 0, 0);
|
HeapRegionSetBase humongousSet = g1h.humongousSet();
|
||||||
printG1Space("G1 Old Generation", g1mm.oldUsed(), g1mm.oldCommitted());
|
long oldRegionNum = oldSet.regionNum() + humongousSet.regionNum();
|
||||||
|
printG1Space("G1 Heap:", g1h.n_regions(),
|
||||||
|
g1h.used(), g1h.capacity());
|
||||||
|
System.out.println("G1 Young Generation:");
|
||||||
|
printG1Space("Eden Space:", edenRegionNum,
|
||||||
|
g1mm.edenUsed(), g1mm.edenCommitted());
|
||||||
|
printG1Space("Survivor Space:", survivorRegionNum,
|
||||||
|
g1mm.survivorUsed(), g1mm.survivorCommitted());
|
||||||
|
printG1Space("G1 Old Generation:", oldRegionNum,
|
||||||
|
g1mm.oldUsed(), g1mm.oldCommitted());
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("unknown SharedHeap type : " + heap.getClass());
|
throw new RuntimeException("unknown SharedHeap type : " + heap.getClass());
|
||||||
}
|
}
|
||||||
|
@ -216,9 +226,11 @@ public class HeapSummary extends Tool {
|
||||||
System.out.println(alignment + (double)space.used() * 100.0 / space.capacity() + "% used");
|
System.out.println(alignment + (double)space.used() * 100.0 / space.capacity() + "% used");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printG1Space(String spaceName, long used, long capacity) {
|
private void printG1Space(String spaceName, long regionNum,
|
||||||
|
long used, long capacity) {
|
||||||
long free = capacity - used;
|
long free = capacity - used;
|
||||||
System.out.println(spaceName);
|
System.out.println(spaceName);
|
||||||
|
printValue("regions = ", regionNum);
|
||||||
printValMB("capacity = ", capacity);
|
printValMB("capacity = ", capacity);
|
||||||
printValMB("used = ", used);
|
printValMB("used = ", used);
|
||||||
printValMB("free = ", free);
|
printValMB("free = ", free);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -43,7 +43,7 @@ public class PlatformInfo {
|
||||||
return "bsd";
|
return "bsd";
|
||||||
} else if (os.equals("OpenBSD")) {
|
} else if (os.equals("OpenBSD")) {
|
||||||
return "bsd";
|
return "bsd";
|
||||||
} else if (os.equals("Darwin") || os.startsWith("Mac OS X")) {
|
} else if (os.equals("Darwin") || os.contains("OS X")) {
|
||||||
return "bsd";
|
return "bsd";
|
||||||
} else if (os.startsWith("Windows")) {
|
} else if (os.startsWith("Windows")) {
|
||||||
return "win32";
|
return "win32";
|
||||||
|
@ -52,17 +52,17 @@ public class PlatformInfo {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns "sparc" if on SPARC, "x86" if on x86. */
|
/* Returns "sparc" for SPARC based platforms and "x86" for x86 based
|
||||||
|
platforms. Otherwise returns the value of os.arch. If the value
|
||||||
|
is not recognized as supported, an exception is thrown instead. */
|
||||||
public static String getCPU() throws UnsupportedPlatformException {
|
public static String getCPU() throws UnsupportedPlatformException {
|
||||||
String cpu = System.getProperty("os.arch");
|
String cpu = System.getProperty("os.arch");
|
||||||
if (cpu.equals("i386")) {
|
if (cpu.equals("i386") || cpu.equals("x86")) {
|
||||||
return "x86";
|
return "x86";
|
||||||
} else if (cpu.equals("sparc") || cpu.equals("x86") || cpu.equals("ia64")) {
|
} else if (cpu.equals("sparc") || cpu.equals("sparcv9")) {
|
||||||
return cpu;
|
|
||||||
} else if (cpu.equals("sparcv9")) {
|
|
||||||
return "sparc";
|
return "sparc";
|
||||||
} else if (cpu.equals("x86_64") || cpu.equals("amd64")) {
|
} else if (cpu.equals("ia64") || cpu.equals("amd64") || cpu.equals("x86_64")) {
|
||||||
return "amd64";
|
return cpu;
|
||||||
} else {
|
} else {
|
||||||
throw new UnsupportedPlatformException("CPU type " + cpu + " not yet supported");
|
throw new UnsupportedPlatformException("CPU type " + cpu + " not yet supported");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -89,19 +89,31 @@ KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel
|
||||||
ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
|
ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
|
||||||
SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark
|
SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark
|
||||||
|
|
||||||
|
COMMON_VM_PRODUCT_TARGETS=product product1 productkernel docs export_product
|
||||||
|
COMMON_VM_FASTDEBUG_TARGETS=fastdebug fastdebug1 fastdebugkernel docs export_fastdebug
|
||||||
|
COMMON_VM_DEBUG_TARGETS=jvmg jvmg1 jvmgkernel docs export_debug
|
||||||
|
|
||||||
# JDK directory list
|
# JDK directory list
|
||||||
JDK_DIRS=bin include jre lib demo
|
JDK_DIRS=bin include jre lib demo
|
||||||
|
|
||||||
all: all_product all_fastdebug
|
all: all_product all_fastdebug
|
||||||
ifndef BUILD_CLIENT_ONLY
|
|
||||||
all_product: product product1 productkernel docs export_product
|
ifdef BUILD_CLIENT_ONLY
|
||||||
all_fastdebug: fastdebug fastdebug1 fastdebugkernel docs export_fastdebug
|
|
||||||
all_debug: jvmg jvmg1 jvmgkernel docs export_debug
|
|
||||||
else
|
|
||||||
all_product: product1 docs export_product
|
all_product: product1 docs export_product
|
||||||
all_fastdebug: fastdebug1 docs export_fastdebug
|
all_fastdebug: fastdebug1 docs export_fastdebug
|
||||||
all_debug: jvmg1 docs export_debug
|
all_debug: jvmg1 docs export_debug
|
||||||
|
else
|
||||||
|
ifeq ($(MACOSX_UNIVERSAL),true)
|
||||||
|
all_product: universal_product
|
||||||
|
all_fastdebug: universal_fastdebug
|
||||||
|
all_debug: universal_debug
|
||||||
|
else
|
||||||
|
all_product: $(COMMON_VM_PRODUCT_TARGETS)
|
||||||
|
all_fastdebug: $(COMMON_VM_FASTDEBUG_TARGETS)
|
||||||
|
all_debug: $(COMMON_VM_DEBUG_TARGETS)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
all_optimized: optimized optimized1 optimizedkernel docs export_optimized
|
all_optimized: optimized optimized1 optimizedkernel docs export_optimized
|
||||||
|
|
||||||
allzero: all_productzero all_fastdebugzero
|
allzero: all_productzero all_fastdebugzero
|
||||||
|
@ -232,20 +244,19 @@ export_debug:
|
||||||
$(MAKE) VM_SUBDIR=${VM_DEBUG} EXPORT_SUBDIR=/debug generic_export
|
$(MAKE) VM_SUBDIR=${VM_DEBUG} EXPORT_SUBDIR=/debug generic_export
|
||||||
export_optimized:
|
export_optimized:
|
||||||
$(MAKE) VM_SUBDIR=optimized EXPORT_SUBDIR=/optimized generic_export
|
$(MAKE) VM_SUBDIR=optimized EXPORT_SUBDIR=/optimized generic_export
|
||||||
export_product_jdk:
|
export_product_jdk::
|
||||||
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
|
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
|
||||||
VM_SUBDIR=product generic_export
|
VM_SUBDIR=product generic_export
|
||||||
export_optimized_jdk:
|
export_optimized_jdk::
|
||||||
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
|
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
|
||||||
VM_SUBDIR=optimized generic_export
|
VM_SUBDIR=optimized generic_export
|
||||||
export_fastdebug_jdk:
|
export_fastdebug_jdk::
|
||||||
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/fastdebug \
|
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/fastdebug \
|
||||||
VM_SUBDIR=fastdebug generic_export
|
VM_SUBDIR=fastdebug generic_export
|
||||||
export_debug_jdk:
|
export_debug_jdk::
|
||||||
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/debug \
|
$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/debug \
|
||||||
VM_SUBDIR=${VM_DEBUG} generic_export
|
VM_SUBDIR=${VM_DEBUG} generic_export
|
||||||
|
|
||||||
|
|
||||||
# Export file copy rules
|
# Export file copy rules
|
||||||
XUSAGE=$(HS_SRC_DIR)/share/vm/Xusage.txt
|
XUSAGE=$(HS_SRC_DIR)/share/vm/Xusage.txt
|
||||||
DOCS_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_docs
|
DOCS_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_docs
|
||||||
|
@ -260,23 +271,25 @@ KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR)
|
||||||
ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR)
|
ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR)
|
||||||
SHARK_DIR=$(SHARK_BASE_DIR)/$(VM_SUBDIR)
|
SHARK_DIR=$(SHARK_BASE_DIR)/$(VM_SUBDIR)
|
||||||
|
|
||||||
# Misc files and generated files need to come from C1 or C2 area
|
ifeq ($(JVM_VARIANT_SERVER), true)
|
||||||
ifeq ($(ZERO_BUILD), true)
|
MISC_DIR=$(C2_DIR)
|
||||||
ifeq ($(SHARK_BUILD), true)
|
GEN_DIR=$(C2_BASE_DIR)/generated
|
||||||
MISC_DIR=$(SHARK_DIR)
|
|
||||||
GEN_DIR=$(SHARK_BASE_DIR)/generated
|
|
||||||
else
|
|
||||||
MISC_DIR=$(ZERO_DIR)
|
|
||||||
GEN_DIR=$(ZERO_BASE_DIR)/generated
|
|
||||||
endif
|
endif
|
||||||
else
|
ifeq ($(JVM_VARIANT_CLIENT), true)
|
||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
MISC_DIR=$(C1_DIR)
|
||||||
MISC_DIR=$(C1_DIR)
|
GEN_DIR=$(C1_BASE_DIR)/generated
|
||||||
GEN_DIR=$(C1_BASE_DIR)/generated
|
|
||||||
else
|
|
||||||
MISC_DIR=$(C2_DIR)
|
|
||||||
GEN_DIR=$(C2_BASE_DIR)/generated
|
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_KERNEL), true)
|
||||||
|
MISC_DIR=$(C2_DIR)
|
||||||
|
GEN_DIR=$(C2_BASE_DIR)/generated
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
|
MISC_DIR=$(SHARK_DIR)
|
||||||
|
GEN_DIR=$(SHARK_BASE_DIR)/generated
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_ZERO), true)
|
||||||
|
MISC_DIR=$(ZERO_DIR)
|
||||||
|
GEN_DIR=$(ZERO_BASE_DIR)/generated
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Bin files (windows)
|
# Bin files (windows)
|
||||||
|
@ -321,52 +334,55 @@ endif
|
||||||
|
|
||||||
# Shared Library
|
# Shared Library
|
||||||
ifneq ($(OSNAME),windows)
|
ifneq ($(OSNAME),windows)
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_SERVER), true)
|
||||||
ifeq ($(SHARK_BUILD), true)
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
|
$(install-file)
|
||||||
$(install-file)
|
$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
|
$(install-file)
|
||||||
$(install-file)
|
$(EXPORT_SERVER_DIR)/64/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
else
|
$(install-file)
|
||||||
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo
|
||||||
$(install-file)
|
$(install-file)
|
||||||
$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
|
$(EXPORT_SERVER_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo
|
||||||
$(install-file)
|
$(install-file)
|
||||||
|
$(EXPORT_SERVER_DIR)/64/%.debuginfo: $(C2_DIR)/%.debuginfo
|
||||||
|
$(install-file)
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_CLIENT), true)
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_CLIENT_DIR)/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_CLIENT_DIR)/64/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_CLIENT_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_CLIENT_DIR)/64/%.debuginfo: $(C1_DIR)/%.debuginfo
|
||||||
|
$(install-file)
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_ZERO), true)
|
||||||
|
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
|
$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
|
||||||
|
$(install-file)
|
||||||
endif
|
endif
|
||||||
else
|
|
||||||
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_CLIENT_DIR)/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_CLIENT_DIR)/64/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_SERVER_DIR)/64/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
# Debug info for shared library
|
|
||||||
$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_CLIENT_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_CLIENT_DIR)/64/%.debuginfo: $(C1_DIR)/%.debuginfo
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_SERVER_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo
|
|
||||||
$(install-file)
|
|
||||||
$(EXPORT_SERVER_DIR)/64/%.debuginfo: $(C2_DIR)/%.debuginfo
|
|
||||||
$(install-file)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Jar file (sa-jdi.jar)
|
# Jar file (sa-jdi.jar)
|
||||||
$(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar
|
$(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar
|
||||||
$(install-file)
|
$(install-file)
|
||||||
|
|
||||||
|
$(EXPORT_JRE_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar
|
||||||
|
$(install-file)
|
||||||
|
|
||||||
# Include files (jvmti.h, jvmticmlr.h, jni.h, $(JDK_INCLUDE_SUBDIR)/jni_md.h, jmm.h, jfr.h)
|
# Include files (jvmti.h, jvmticmlr.h, jni.h, $(JDK_INCLUDE_SUBDIR)/jni_md.h, jmm.h, jfr.h)
|
||||||
$(EXPORT_INCLUDE_DIR)/%: $(GEN_DIR)/jvmtifiles/%
|
$(EXPORT_INCLUDE_DIR)/%: $(GEN_DIR)/jvmtifiles/%
|
||||||
$(install-file)
|
$(install-file)
|
||||||
|
@ -391,7 +407,6 @@ $(EXPORT_INCLUDE_DIR)/%: $(HS_ALT_SRC)/share/vm/jfr/agent/%
|
||||||
$(install-file)
|
$(install-file)
|
||||||
else
|
else
|
||||||
$(EXPORT_INCLUDE_DIR)/jfr.h:
|
$(EXPORT_INCLUDE_DIR)/jfr.h:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Doc files (jvmti.html)
|
# Doc files (jvmti.html)
|
||||||
|
@ -437,21 +452,28 @@ $(JDK_IMAGE_DIR)/jre/lib/rt.jar:
|
||||||
($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
|
($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
|
||||||
|
|
||||||
test_jdk:
|
test_jdk:
|
||||||
ifneq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_CLIENT), true)
|
||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -client -Xinternalversion
|
||||||
$(JDK_IMAGE_DIR)/bin/java -client -version
|
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -client -version
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(findstring true, $(JVM_VARIANT_SERVER)\
|
||||||
|
$(JVM_VARIANT_ZERO)$(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
|
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -server -Xinternalversion
|
||||||
|
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -server -version
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_KERNEL), true)
|
||||||
|
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -kernel -Xinternalversion
|
||||||
|
$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -kernel -version
|
||||||
endif
|
endif
|
||||||
$(JDK_IMAGE_DIR)/bin/java -server -version
|
|
||||||
|
|
||||||
copy_product_jdk:
|
copy_product_jdk::
|
||||||
$(RM) -r $(JDK_IMAGE_DIR)
|
$(RM) -r $(JDK_IMAGE_DIR)
|
||||||
$(MKDIR) -p $(JDK_IMAGE_DIR)
|
$(MKDIR) -p $(JDK_IMAGE_DIR)
|
||||||
($(CD) $(JDK_IMPORT_PATH) && \
|
($(CD) $(JDK_IMPORT_PATH) && \
|
||||||
$(TAR) -cf - $(JDK_DIRS)) | \
|
$(TAR) -cf - $(JDK_DIRS)) | \
|
||||||
($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
|
($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
|
||||||
|
|
||||||
copy_fastdebug_jdk:
|
copy_fastdebug_jdk::
|
||||||
$(RM) -r $(JDK_IMAGE_DIR)/fastdebug
|
$(RM) -r $(JDK_IMAGE_DIR)/fastdebug
|
||||||
$(MKDIR) -p $(JDK_IMAGE_DIR)/fastdebug
|
$(MKDIR) -p $(JDK_IMAGE_DIR)/fastdebug
|
||||||
if [ -d $(JDK_IMPORT_PATH)/fastdebug ] ; then \
|
if [ -d $(JDK_IMPORT_PATH)/fastdebug ] ; then \
|
||||||
|
@ -464,7 +486,7 @@ copy_fastdebug_jdk:
|
||||||
($(CD) $(JDK_IMAGE_DIR)/fastdebug && $(TAR) -xf -) ; \
|
($(CD) $(JDK_IMAGE_DIR)/fastdebug && $(TAR) -xf -) ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
copy_debug_jdk:
|
copy_debug_jdk::
|
||||||
$(RM) -r $(JDK_IMAGE_DIR)/debug
|
$(RM) -r $(JDK_IMAGE_DIR)/debug
|
||||||
$(MKDIR) -p $(JDK_IMAGE_DIR)/debug
|
$(MKDIR) -p $(JDK_IMAGE_DIR)/debug
|
||||||
if [ -d $(JDK_IMPORT_PATH)/debug ] ; then \
|
if [ -d $(JDK_IMPORT_PATH)/debug ] ; then \
|
||||||
|
@ -481,36 +503,6 @@ copy_debug_jdk:
|
||||||
($(CD) $(JDK_IMAGE_DIR)/debug && $(TAR) -xf -) ; \
|
($(CD) $(JDK_IMAGE_DIR)/debug && $(TAR) -xf -) ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# macosx universal builds
|
|
||||||
|
|
||||||
ifeq ($(MACOSX_UNIVERSAL), true)
|
|
||||||
$(UNIVERSAL_LIPO_LIST):
|
|
||||||
lipo -create -output $@ $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@)
|
|
||||||
|
|
||||||
$(UNIVERSAL_COPY_LIST):
|
|
||||||
$(CP) $(EXPORT_JRE_LIB_DIR)/i386/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) $@
|
|
||||||
|
|
||||||
universalize: $(UNIVERSAL_LIPO_LIST) $(UNIVERSAL_COPY_LIST)
|
|
||||||
endif
|
|
||||||
|
|
||||||
universal_product:
|
|
||||||
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 MACOSX_UNIVERSAL=true all_product
|
|
||||||
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 MACOSX_UNIVERSAL=true all_product
|
|
||||||
$(MKDIR) -p $(EXPORT_JRE_LIB_DIR)/{client,server}
|
|
||||||
$(QUIETLY) $(MAKE) MACOSX_UNIVERSAL=true universalize
|
|
||||||
|
|
||||||
universal_fastdebug:
|
|
||||||
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 MACOSX_UNIVERSAL=true all_fastdebug
|
|
||||||
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 MACOSX_UNIVERSAL=true all_fastdebug
|
|
||||||
$(MKDIR) -p $(EXPORT_JRE_LIB_DIR)/{client,server}
|
|
||||||
$(QUIETLY) $(MAKE) MACOSX_UNIVERSAL=true universalize
|
|
||||||
|
|
||||||
universal_debug:
|
|
||||||
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 MACOSX_UNIVERSAL=true all_debug
|
|
||||||
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 MACOSX_UNIVERSAL=true all_debug
|
|
||||||
$(MKDIR) -p $(EXPORT_JRE_LIB_DIR)/{client,server}
|
|
||||||
$(QUIETLY) $(MAKE) MACOSX_UNIVERSAL=true universalize
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check target
|
# Check target
|
||||||
#
|
#
|
||||||
|
@ -564,6 +556,7 @@ SLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
|
||||||
OUTPUTDIR.desc = Output directory, default is build/<osname>
|
OUTPUTDIR.desc = Output directory, default is build/<osname>
|
||||||
BOOTDIR.desc = JDK used to compile agent java source and test with
|
BOOTDIR.desc = JDK used to compile agent java source and test with
|
||||||
JDK_IMPORT_PATH.desc = Promoted JDK to copy for 'create_jdk'
|
JDK_IMPORT_PATH.desc = Promoted JDK to copy for 'create_jdk'
|
||||||
|
JDK_IMAGE_DIR.desc = Directory to place JDK to copy
|
||||||
EXPORT_PATH.desc = Directory to place files to export for JDK build
|
EXPORT_PATH.desc = Directory to place files to export for JDK build
|
||||||
|
|
||||||
# Make variables to print out (description and value)
|
# Make variables to print out (description and value)
|
||||||
|
@ -572,6 +565,7 @@ VARIABLE_PRINTVAL_LIST += \
|
||||||
OUTPUTDIR \
|
OUTPUTDIR \
|
||||||
BOOTDIR \
|
BOOTDIR \
|
||||||
JDK_IMPORT_PATH \
|
JDK_IMPORT_PATH \
|
||||||
|
JDK_IMAGE_DIR \
|
||||||
EXPORT_PATH
|
EXPORT_PATH
|
||||||
|
|
||||||
# Make variables that should refer to directories that exist
|
# Make variables that should refer to directories that exist
|
||||||
|
@ -630,6 +624,13 @@ examples_help:
|
||||||
@$(ECHO) \
|
@$(ECHO) \
|
||||||
" $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk$(JDK_VERSION)"
|
" $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk$(JDK_VERSION)"
|
||||||
|
|
||||||
|
# Universal build support
|
||||||
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
|
ifeq ($(MACOSX_UNIVERSAL),true)
|
||||||
|
include $(GAMMADIR)/make/$(OSNAME)/makefiles/universal.gmk
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# JPRT rule to build this workspace
|
# JPRT rule to build this workspace
|
||||||
include $(GAMMADIR)/make/jprt.gmk
|
include $(GAMMADIR)/make/jprt.gmk
|
||||||
|
|
||||||
|
@ -639,6 +640,4 @@ include $(GAMMADIR)/make/jprt.gmk
|
||||||
export_product export_fastdebug export_debug export_optimized \
|
export_product export_fastdebug export_debug export_optimized \
|
||||||
export_jdk_product export_jdk_fastdebug export_jdk_debug \
|
export_jdk_product export_jdk_fastdebug export_jdk_debug \
|
||||||
create_jdk copy_jdk update_jdk test_jdk \
|
create_jdk copy_jdk update_jdk test_jdk \
|
||||||
copy_product_jdk copy_fastdebug_jdk copy_debug_jdk universalize \
|
copy_product_jdk copy_fastdebug_jdk copy_debug_jdk
|
||||||
universal_product
|
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH))
|
||||||
# in the build.sh script:
|
# in the build.sh script:
|
||||||
TARGETS = debug jvmg fastdebug optimized profiled product
|
TARGETS = debug jvmg fastdebug optimized profiled product
|
||||||
|
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs
|
SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs
|
||||||
else
|
else
|
||||||
SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs
|
SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs
|
||||||
|
@ -208,7 +208,7 @@ TARGETS_ZERO = $(addsuffix zero,$(TARGETS))
|
||||||
TARGETS_SHARK = $(addsuffix shark,$(TARGETS))
|
TARGETS_SHARK = $(addsuffix shark,$(TARGETS))
|
||||||
|
|
||||||
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
|
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make
|
||||||
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH)
|
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) LIBRARY_SUFFIX=$(LIBRARY_SUFFIX)
|
||||||
BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
|
BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
|
||||||
|
|
||||||
BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
|
BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
|
||||||
|
|
|
@ -61,10 +61,10 @@ Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
|
||||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||||
|
|
||||||
# set flags for adlc compilation
|
# set flags for adlc compilation
|
||||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
CXXFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||||
|
|
||||||
# Force assertions on.
|
# Force assertions on.
|
||||||
CPPFLAGS += -DASSERT
|
CXXFLAGS += -DASSERT
|
||||||
|
|
||||||
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
||||||
# Compiler warnings are treated as errors
|
# Compiler warnings are treated as errors
|
||||||
|
@ -111,7 +111,7 @@ all: $(EXEC)
|
||||||
|
|
||||||
$(EXEC) : $(OBJECTS)
|
$(EXEC) : $(OBJECTS)
|
||||||
@echo Making adlc
|
@echo Making adlc
|
||||||
$(QUIETLY) $(HOST.LINK_NOPROF.CC) -o $(EXEC) $(OBJECTS)
|
$(QUIETLY) $(HOST.LINK_NOPROF.CXX) -o $(EXEC) $(OBJECTS)
|
||||||
|
|
||||||
# Random dependencies:
|
# Random dependencies:
|
||||||
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
|
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
|
||||||
|
@ -213,14 +213,14 @@ PROCESS_AD_FILES = awk '{ \
|
||||||
$(OUTDIR)/%.o: %.cpp
|
$(OUTDIR)/%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(HOST.COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(HOST.COMPILE.CXX) -o $@ $< $(COMPILE_DONE)
|
||||||
|
|
||||||
# Some object files are given a prefix, to disambiguate
|
# Some object files are given a prefix, to disambiguate
|
||||||
# them from objects of the same name built for the VM.
|
# them from objects of the same name built for the VM.
|
||||||
$(OUTDIR)/adlc-%.o: %.cpp
|
$(OUTDIR)/adlc-%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(HOST.COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(HOST.COMPILE.CXX) -o $@ $< $(COMPILE_DONE)
|
||||||
|
|
||||||
# #########################################################################
|
# #########################################################################
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
# needs to be set here since this Makefile doesn't include defs.make
|
# needs to be set here since this Makefile doesn't include defs.make
|
||||||
OS_VENDOR:=$(shell uname -s)
|
OS_VENDOR:=$(shell uname -s)
|
||||||
|
|
||||||
|
-include $(SPEC)
|
||||||
include $(GAMMADIR)/make/scm.make
|
include $(GAMMADIR)/make/scm.make
|
||||||
include $(GAMMADIR)/make/altsrc.make
|
include $(GAMMADIR)/make/altsrc.make
|
||||||
|
|
||||||
|
@ -68,7 +69,7 @@ QUIETLY$(MAKE_VERBOSE) = @
|
||||||
# For now, until the compiler is less wobbly:
|
# For now, until the compiler is less wobbly:
|
||||||
TESTFLAGS = -Xbatch -showversion
|
TESTFLAGS = -Xbatch -showversion
|
||||||
|
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
|
PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
|
||||||
else
|
else
|
||||||
ifdef USE_SUNCC
|
ifdef USE_SUNCC
|
||||||
|
@ -162,20 +163,6 @@ ifndef HOTSPOT_VM_DISTRO
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
|
||||||
# MACOSX FIXME: we should be able to run test_gamma (see MACOSX_PORT-214)
|
|
||||||
ifeq ($(ALWAYS_PASS_TEST_GAMMA),)
|
|
||||||
# ALWAYS_PASS_TEST_GAMMA wasn't set so we default to true on MacOS X
|
|
||||||
# until MACOSX_PORT-214 is fixed
|
|
||||||
ALWAYS_PASS_TEST_GAMMA=true
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(ALWAYS_PASS_TEST_GAMMA), true)
|
|
||||||
TEST_GAMMA_STATUS= echo 'exit 0';
|
|
||||||
else
|
|
||||||
TEST_GAMMA_STATUS=
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HS_BUILD_VER) HOTSPOT_BUILD_VERSION= JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
|
BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HS_BUILD_VER) HOTSPOT_BUILD_VERSION= JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
|
||||||
|
|
||||||
BUILDTREE = \
|
BUILDTREE = \
|
||||||
|
@ -261,6 +248,8 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
|
||||||
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
||||||
echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
|
echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
|
||||||
echo; \
|
echo; \
|
||||||
|
[ -n "$(SPEC)" ] && \
|
||||||
|
echo "include $(SPEC)"; \
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
@ -353,12 +342,10 @@ env.sh: $(BUILDTREE_MAKE)
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
|
[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
|
||||||
{ \
|
{ \
|
||||||
echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
|
||||||
echo "DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
|
||||||
echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
|
echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
|
||||||
} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
|
} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
|
||||||
echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
|
echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
|
||||||
echo "export JAVA_HOME LD_LIBRARY_PATH DYLD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \
|
echo "export JAVA_HOME CLASSPATH HOTSPOT_BUILD_USER"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
|
||||||
env.csh: env.sh
|
env.csh: env.sh
|
||||||
|
@ -412,7 +399,7 @@ JAVA_FLAG/32 = -d32
|
||||||
JAVA_FLAG/64 = -d64
|
JAVA_FLAG/64 = -d64
|
||||||
|
|
||||||
WRONG_DATA_MODE_MSG = \
|
WRONG_DATA_MODE_MSG = \
|
||||||
echo "JAVA_HOME must point to $(DATA_MODE)bit JDK."
|
echo "JAVA_HOME must point to a $(DATA_MODE)-bit OpenJDK."
|
||||||
|
|
||||||
CROSS_COMPILING_MSG = \
|
CROSS_COMPILING_MSG = \
|
||||||
echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
|
echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
|
||||||
|
@ -420,20 +407,78 @@ CROSS_COMPILING_MSG = \
|
||||||
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
|
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
|
||||||
@echo Creating $@ ...
|
@echo Creating $@ ...
|
||||||
$(QUIETLY) ( \
|
$(QUIETLY) ( \
|
||||||
echo '#!/bin/sh'; \
|
echo "#!/bin/sh"; \
|
||||||
|
echo ""; \
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
echo '. ./env.sh'; \
|
echo ""; \
|
||||||
echo "if [ \"$(CROSS_COMPILE_ARCH)\" != \"\" ]; then { $(CROSS_COMPILING_MSG); exit 0; }; fi"; \
|
echo "# Include environment settings for gamma run"; \
|
||||||
echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \
|
echo ""; \
|
||||||
echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \
|
echo ". ./env.sh"; \
|
||||||
echo "then"; \
|
echo ""; \
|
||||||
echo " $(WRONG_DATA_MODE_MSG); exit 0;"; \
|
echo "# Do not run gamma test for cross compiles"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ -n \"$(CROSS_COMPILE_ARCH)\" ]; then "; \
|
||||||
|
echo " $(CROSS_COMPILING_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
echo "fi"; \
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Make sure JAVA_HOME is set as it is required for gamma"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ -z \"\$${JAVA_HOME}\" ]; then "; \
|
||||||
|
echo " $(NO_JAVA_HOME_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Check JAVA_HOME version to be used for the test"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "\$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion > /dev/null 2>&1"; \
|
||||||
|
echo "if [ \$$? -ne 0 ]; then "; \
|
||||||
|
echo " $(WRONG_DATA_MODE_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Use gamma_g if it exists"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "GAMMA_PROG=gamma"; \
|
||||||
|
echo "if [ -f gamma_g ]; then "; \
|
||||||
|
echo " GAMMA_PROG=gamma_g"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
|
||||||
|
echo " # Ensure architecture for gamma and JAVA_HOME is the same."; \
|
||||||
|
echo " # NOTE: gamma assumes the OpenJDK directory layout."; \
|
||||||
|
echo ""; \
|
||||||
|
echo " GAMMA_ARCH=\"\`file \$${GAMMA_PROG} | awk '{print \$$NF}'\`\""; \
|
||||||
|
echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/libjava.$(LIBRARY_SUFFIX)\""; \
|
||||||
|
echo " if [ ! -f \$${JVM_LIB} ]; then"; \
|
||||||
|
echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/$${LIBARCH}/libjava.$(LIBRARY_SUFFIX)\""; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo " if [ ! -f \$${JVM_LIB} ] || [ -z \"\`file \$${JVM_LIB} | grep \$${GAMMA_ARCH}\`\" ]; then "; \
|
||||||
|
echo " $(WRONG_DATA_MODE_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Compile Queens program for test"; \
|
||||||
|
echo ""; \
|
||||||
echo "rm -f Queens.class"; \
|
echo "rm -f Queens.class"; \
|
||||||
echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
|
echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
|
||||||
echo '[ -f gamma_g ] && { gamma=gamma_g; }'; \
|
echo ""; \
|
||||||
echo './$${gamma:-gamma} $(TESTFLAGS) Queens < /dev/null'; \
|
echo "# Set library path solely for gamma launcher test run"; \
|
||||||
$(TEST_GAMMA_STATUS) \
|
echo ""; \
|
||||||
|
echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
||||||
|
echo "export LD_LIBRARY_PATH"; \
|
||||||
|
echo "unset LD_LIBRARY_PATH_32"; \
|
||||||
|
echo "unset LD_LIBRARY_PATH_64"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
|
||||||
|
echo " DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/native_threads:\$${JAVA_HOME}/jre/lib:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
||||||
|
echo " export DYLD_LIBRARY_PATH"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Use the gamma launcher and JAVA_HOME to run the test"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "./\$${GAMMA_PROG} $(TESTFLAGS) Queens < /dev/null"; \
|
||||||
) > $@
|
) > $@
|
||||||
$(QUIETLY) chmod +x $@
|
$(QUIETLY) chmod +x $@
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -38,7 +38,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# zero
|
# zero
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||||
MAKE_ARGS += LP64=1
|
MAKE_ARGS += LP64=1
|
||||||
endif
|
endif
|
||||||
|
@ -124,6 +124,18 @@ ifeq ($(ARCH), ppc)
|
||||||
HS_ARCH = ppc
|
HS_ARCH = ppc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# On 32 bit bsd we build server and client, on 64 bit just server.
|
||||||
|
ifeq ($(JVM_VARIANTS),)
|
||||||
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||||
|
JVM_VARIANTS:=client,server
|
||||||
|
JVM_VARIANT_CLIENT:=true
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
else
|
||||||
|
JVM_VARIANTS:=server
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
JDK_INCLUDE_SUBDIR=bsd
|
JDK_INCLUDE_SUBDIR=bsd
|
||||||
|
|
||||||
# Library suffix
|
# Library suffix
|
||||||
|
@ -142,18 +154,18 @@ EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
|
||||||
# client and server subdirectories have symbolic links to ../libjsig.so
|
# client and server subdirectories have symbolic links to ../libjsig.so
|
||||||
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
||||||
|
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
||||||
|
|
||||||
ifndef BUILD_CLIENT_ONLY
|
EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_CLIENT),true)
|
||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
||||||
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Serviceability Binaries
|
# Serviceability Binaries
|
||||||
|
@ -171,10 +183,39 @@ ADD_SA_BINARIES/zero =
|
||||||
|
|
||||||
EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
|
EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
|
||||||
|
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
# Universal build settings
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
|
# Build universal binaries by default on Mac OS X
|
||||||
|
MACOSX_UNIVERSAL = true
|
||||||
|
ifneq ($(ALT_MACOSX_UNIVERSAL),)
|
||||||
|
MACOSX_UNIVERSAL = $(ALT_MACOSX_UNIVERSAL)
|
||||||
|
endif
|
||||||
|
MAKE_ARGS += MACOSX_UNIVERSAL=$(MACOSX_UNIVERSAL)
|
||||||
|
|
||||||
UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt
|
# Universal settings
|
||||||
UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt
|
ifeq ($(MACOSX_UNIVERSAL), true)
|
||||||
UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
|
|
||||||
|
# Set universal export path but avoid using ARCH or PLATFORM subdirs
|
||||||
|
EXPORT_PATH=$(OUTPUTDIR)/export-universal$(EXPORT_SUBDIR)
|
||||||
|
ifneq ($(ALT_EXPORT_PATH),)
|
||||||
|
EXPORT_PATH=$(ALT_EXPORT_PATH)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Set universal image dir
|
||||||
|
JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-universal$(EXPORT_SUBDIR)
|
||||||
|
ifneq ($(ALT_JDK_IMAGE_DIR),)
|
||||||
|
JDK_IMAGE_DIR=$(ALT_JDK_IMAGE_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Binaries to 'universalize' if built
|
||||||
|
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
||||||
|
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
|
||||||
|
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
|
||||||
|
UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
|
# Files to simply copy in place
|
||||||
|
UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt
|
||||||
|
UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt
|
||||||
|
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
|
@ -105,11 +105,11 @@ LFLAGS_GENOFFS += -L.
|
||||||
|
|
||||||
lib$(GENOFFS).dylib: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
lib$(GENOFFS).dylib: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
||||||
$(LIBJVM.o)
|
$(LIBJVM.o)
|
||||||
$(QUIETLY) $(CCC) $(CPPFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
$(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
||||||
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -ljvm
|
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -ljvm
|
||||||
|
|
||||||
$(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).dylib
|
$(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).dylib
|
||||||
$(QUIETLY) $(LINK.CC) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
$(QUIETLY) $(LINK.CXX) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
||||||
./lib$(GENOFFS).dylib
|
./lib$(GENOFFS).dylib
|
||||||
|
|
||||||
# $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
|
# $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
|
||||||
|
@ -135,7 +135,7 @@ $(JVMOFFS).cpp: $(GENOFFS) $(JVMOFFS).h $(JVMOFFS)Index.h
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp
|
$(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp
|
||||||
$(QUIETLY) $(CCC) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
|
$(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
|
||||||
|
|
||||||
$(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
|
$(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
|
||||||
@echo Making $@
|
@echo Making $@
|
||||||
|
|
|
@ -25,57 +25,59 @@
|
||||||
OS_VENDOR = $(shell uname -s)
|
OS_VENDOR = $(shell uname -s)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# CC, CPP & AS
|
# CC, CXX & AS
|
||||||
|
|
||||||
# When cross-compiling the ALT_COMPILER_PATH points
|
# If a SPEC is not set already, then use these defaults.
|
||||||
# to the cross-compilation toolset
|
ifeq ($(SPEC),)
|
||||||
ifdef CROSS_COMPILE_ARCH
|
# When cross-compiling the ALT_COMPILER_PATH points
|
||||||
CPP = $(ALT_COMPILER_PATH)/g++
|
# to the cross-compilation toolset
|
||||||
CC = $(ALT_COMPILER_PATH)/gcc
|
ifdef CROSS_COMPILE_ARCH
|
||||||
HOSTCPP = g++
|
CXX = $(ALT_COMPILER_PATH)/g++
|
||||||
HOSTCC = gcc
|
CC = $(ALT_COMPILER_PATH)/gcc
|
||||||
else ifneq ($(OS_VENDOR), Darwin)
|
HOSTCXX = g++
|
||||||
CXX = g++
|
HOSTCC = gcc
|
||||||
CPP = $(CXX)
|
else ifneq ($(OS_VENDOR), Darwin)
|
||||||
CC = gcc
|
CXX = g++
|
||||||
HOSTCPP = $(CPP)
|
CC = gcc
|
||||||
HOSTCC = $(CC)
|
HOSTCXX = $(CXX)
|
||||||
|
HOSTCC = $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# i486 hotspot requires -mstackrealign on Darwin.
|
||||||
|
# llvm-gcc supports this in Xcode 3.2.6 and 4.0.
|
||||||
|
# gcc-4.0 supports this on earlier versions.
|
||||||
|
# Prefer llvm-gcc where available.
|
||||||
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
|
ifeq ($(origin CXX), default)
|
||||||
|
CXX = llvm-g++
|
||||||
|
endif
|
||||||
|
ifeq ($(origin CC), default)
|
||||||
|
CC = llvm-gcc
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ARCH), i486)
|
||||||
|
LLVM_SUPPORTS_STACKREALIGN := $(shell \
|
||||||
|
[ "0"`llvm-gcc -v 2>&1 | grep LLVM | sed -E "s/.*LLVM build ([0-9]+).*/\1/"` -gt "2333" ] \
|
||||||
|
&& echo true || echo false)
|
||||||
|
|
||||||
|
ifeq ($(LLVM_SUPPORTS_STACKREALIGN), true)
|
||||||
|
CXX32 ?= llvm-g++
|
||||||
|
CC32 ?= llvm-gcc
|
||||||
|
else
|
||||||
|
CXX32 ?= g++-4.0
|
||||||
|
CC32 ?= gcc-4.0
|
||||||
|
endif
|
||||||
|
CXX = $(CXX32)
|
||||||
|
CC = $(CC32)
|
||||||
|
endif
|
||||||
|
|
||||||
|
HOSTCXX = $(CXX)
|
||||||
|
HOSTCC = $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
|
AS = $(CC) -c -x assembler-with-cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# i486 hotspot requires -mstackrealign on Darwin.
|
|
||||||
# llvm-gcc supports this in Xcode 3.2.6 and 4.0.
|
|
||||||
# gcc-4.0 supports this on earlier versions.
|
|
||||||
# Prefer llvm-gcc where available.
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
|
||||||
ifeq ($(origin CXX), default)
|
|
||||||
CXX = llvm-g++
|
|
||||||
endif
|
|
||||||
ifeq ($(origin CC), default)
|
|
||||||
CC = llvm-gcc
|
|
||||||
endif
|
|
||||||
CPP = $(CXX)
|
|
||||||
|
|
||||||
ifeq ($(ARCH), i486)
|
|
||||||
LLVM_SUPPORTS_STACKREALIGN := $(shell \
|
|
||||||
[ "0"`llvm-gcc -v 2>&1 | grep LLVM | sed -E "s/.*LLVM build ([0-9]+).*/\1/"` -gt "2333" ] \
|
|
||||||
&& echo true || echo false)
|
|
||||||
|
|
||||||
ifeq ($(LLVM_SUPPORTS_STACKREALIGN), true)
|
|
||||||
CXX32 ?= llvm-g++
|
|
||||||
CC32 ?= llvm-gcc
|
|
||||||
else
|
|
||||||
CXX32 ?= g++-4.0
|
|
||||||
CC32 ?= gcc-4.0
|
|
||||||
endif
|
|
||||||
CPP = $(CXX32)
|
|
||||||
CC = $(CC32)
|
|
||||||
endif
|
|
||||||
|
|
||||||
HOSTCPP = $(CPP)
|
|
||||||
HOSTCC = $(CC)
|
|
||||||
endif
|
|
||||||
|
|
||||||
AS = $(CC) -c -x assembler-with-cpp
|
|
||||||
|
|
||||||
# -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only
|
# -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only
|
||||||
# prints the numbers (e.g. "2.95", "3.2.1")
|
# prints the numbers (e.g. "2.95", "3.2.1")
|
||||||
|
@ -103,11 +105,12 @@ VM_PICFLAG/LIBJVM = $(PICFLAG)
|
||||||
VM_PICFLAG/AOUT =
|
VM_PICFLAG/AOUT =
|
||||||
VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO))
|
VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO))
|
||||||
|
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZERO), true)
|
||||||
CFLAGS += $(LIBFFI_CFLAGS)
|
CFLAGS += $(LIBFFI_CFLAGS)
|
||||||
endif
|
endif
|
||||||
ifeq ($(SHARK_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
CFLAGS += $(LLVM_CFLAGS)
|
CFLAGS += $(LIBFFI_CFLAGS)
|
||||||
|
CFLAGS += $(LLVM_CFLAGS)
|
||||||
endif
|
endif
|
||||||
CFLAGS += $(VM_PICFLAG)
|
CFLAGS += $(VM_PICFLAG)
|
||||||
CFLAGS += -fno-rtti
|
CFLAGS += -fno-rtti
|
||||||
|
|
|
@ -51,13 +51,30 @@ ifeq ($(LINK_INTO),AOUT)
|
||||||
else
|
else
|
||||||
LAUNCHER.o = launcher.o
|
LAUNCHER.o = launcher.o
|
||||||
LFLAGS_LAUNCHER += -L`pwd`
|
LFLAGS_LAUNCHER += -L`pwd`
|
||||||
|
|
||||||
|
# The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a
|
||||||
|
# freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting
|
||||||
|
# the library searchpath using ({DY}LD_LIBRARY_PATH) to find the local JVM
|
||||||
|
# first. Gamma dlopen()s libjava from $JAVA_HOME/jre/lib{/$arch}, which is
|
||||||
|
# statically linked with CoreFoundation framework libs. Unfortunately, gamma's
|
||||||
|
# unique searchpath results in some unresolved symbols in the framework
|
||||||
|
# libraries, because JDK libraries are inadvertently discovered first on the
|
||||||
|
# searchpath, e.g. libjpeg. On Mac OS X, filenames are case *insensitive*.
|
||||||
|
# So, the actual filename collision is libjpeg.dylib and libJPEG.dylib.
|
||||||
|
# To resolve this, gamma needs to also statically link with the CoreFoundation
|
||||||
|
# framework libraries.
|
||||||
|
|
||||||
|
ifeq ($(OS_VENDOR),Darwin)
|
||||||
|
LFLAGS_LAUNCHER += -framework CoreFoundation
|
||||||
|
endif
|
||||||
|
|
||||||
LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINK_LAUNCHER = $(LINK.c)
|
LINK_LAUNCHER = $(LINK.CC)
|
||||||
|
|
||||||
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
|
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK)
|
||||||
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
|
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK)
|
||||||
|
|
||||||
LAUNCHER_OUT = launcher
|
LAUNCHER_OUT = launcher
|
||||||
|
|
||||||
|
@ -73,11 +90,11 @@ DEPFILES := $(patsubst %.o,%.d,$(OBJS))
|
||||||
|
|
||||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
||||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
||||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||||
$(QUIETLY) echo Linking launcher...
|
$(QUIETLY) echo Linking launcher...
|
||||||
|
|
|
@ -55,4 +55,4 @@ STRIP_LIBJVM = $(STRIP) -g $@ || exit 1;
|
||||||
STRIP_AOUT = $(STRIP) -x $@ || exit 1;
|
STRIP_AOUT = $(STRIP) -x $@ || exit 1;
|
||||||
|
|
||||||
# Don't strip in VM build; JDK build will strip libraries later
|
# Don't strip in VM build; JDK build will strip libraries later
|
||||||
# LINK_LIB.CC/POST_HOOK += $(STRIP_$(LINK_INTO))
|
# LINK_LIB.CXX/POST_HOOK += $(STRIP_$(LINK_INTO))
|
||||||
|
|
|
@ -27,52 +27,39 @@
|
||||||
# Tell make that .cpp is important
|
# Tell make that .cpp is important
|
||||||
.SUFFIXES: .cpp $(SUFFIXES)
|
.SUFFIXES: .cpp $(SUFFIXES)
|
||||||
|
|
||||||
# For now. Other makefiles use CPP as the c++ compiler, but that should really
|
|
||||||
# name the preprocessor.
|
|
||||||
ifeq ($(CCC),)
|
|
||||||
CCC = $(CPP)
|
|
||||||
endif
|
|
||||||
|
|
||||||
DEMANGLER = c++filt
|
DEMANGLER = c++filt
|
||||||
DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
|
DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
|
||||||
|
|
||||||
# $(CC) is the c compiler (cc/gcc), $(CCC) is the c++ compiler (CC/g++).
|
# $(CC) is the c compiler (cc/gcc), $(CXX) is the c++ compiler (CC/g++).
|
||||||
C_COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS)
|
CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
|
||||||
CC_COMPILE = $(CCC) $(CPPFLAGS) $(CFLAGS)
|
CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
|
||||||
|
|
||||||
AS.S = $(AS) $(ASFLAGS)
|
AS.S = $(AS) $(ASFLAGS)
|
||||||
|
|
||||||
COMPILE.c = $(C_COMPILE) -c
|
COMPILE.CC = $(CC_COMPILE) -c
|
||||||
GENASM.c = $(C_COMPILE) -S
|
GENASM.CC = $(CC_COMPILE) -S
|
||||||
LINK.c = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
LINK_LIB.c = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
||||||
PREPROCESS.c = $(C_COMPILE) -E
|
PREPROCESS.CC = $(CC_COMPILE) -E
|
||||||
|
|
||||||
COMPILE.CC = $(CC_COMPILE) -c
|
COMPILE.CXX = $(CXX_COMPILE) -c
|
||||||
GENASM.CC = $(CC_COMPILE) -S
|
GENASM.CXX = $(CXX_COMPILE) -S
|
||||||
LINK.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
LINK_NOPROF.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS)
|
LINK_NOPROF.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS)
|
||||||
LINK_LIB.CC = $(CCC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CXX = $(CXX) $(LFLAGS) $(SHARED_FLAG)
|
||||||
PREPROCESS.CC = $(CC_COMPILE) -E
|
PREPROCESS.CXX = $(CXX_COMPILE) -E
|
||||||
|
|
||||||
# cross compiling the jvm with c2 requires host compilers to build
|
# cross compiling the jvm with c2 requires host compilers to build
|
||||||
# adlc tool
|
# adlc tool
|
||||||
|
|
||||||
HOST.CC_COMPILE = $(HOSTCPP) $(CPPFLAGS) $(CFLAGS)
|
HOST.CXX_COMPILE = $(HOSTCXX) $(CXXFLAGS) $(CFLAGS)
|
||||||
HOST.COMPILE.CC = $(HOST.CC_COMPILE) -c
|
HOST.COMPILE.CXX = $(HOST.CXX_COMPILE) -c
|
||||||
HOST.LINK_NOPROF.CC = $(HOSTCPP) $(LFLAGS) $(AOUT_FLAGS)
|
HOST.LINK_NOPROF.CXX = $(HOSTCXX) $(LFLAGS) $(AOUT_FLAGS)
|
||||||
|
|
||||||
|
|
||||||
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
|
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
|
||||||
REMOVE_TARGET = rm -f $@
|
REMOVE_TARGET = rm -f $@
|
||||||
|
|
||||||
# Synonyms.
|
|
||||||
COMPILE.cpp = $(COMPILE.CC)
|
|
||||||
GENASM.cpp = $(GENASM.CC)
|
|
||||||
LINK.cpp = $(LINK.CC)
|
|
||||||
LINK_LIB.cpp = $(LINK_LIB.CC)
|
|
||||||
PREPROCESS.cpp = $(PREPROCESS.CC)
|
|
||||||
|
|
||||||
# Note use of ALT_BOOTDIR to explicitly specify location of java and
|
# Note use of ALT_BOOTDIR to explicitly specify location of java and
|
||||||
# javac; this is the same environment variable used in the J2SE build
|
# javac; this is the same environment variable used in the J2SE build
|
||||||
# process for overriding the default spec, which is BOOTDIR.
|
# process for overriding the default spec, which is BOOTDIR.
|
||||||
|
@ -161,14 +148,14 @@ ifdef LP64
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
||||||
else
|
else
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
||||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
$(subst $(VM_PICFLAG), ,$(COMPILE.CXX)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
||||||
$(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
$(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
%.o: %.s
|
%.o: %.s
|
||||||
|
@ -178,13 +165,13 @@ endif
|
||||||
|
|
||||||
%.s: %.cpp
|
%.s: %.cpp
|
||||||
@echo Generating assembly for $<
|
@echo Generating assembly for $<
|
||||||
$(QUIETLY) $(GENASM.CC) -o $@ $<
|
$(QUIETLY) $(GENASM.CXX) -o $@ $<
|
||||||
$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
|
$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
|
||||||
|
|
||||||
# Intermediate files (for debugging macros)
|
# Intermediate files (for debugging macros)
|
||||||
%.i: %.cpp
|
%.i: %.cpp
|
||||||
@echo Preprocessing $< to $@
|
@echo Preprocessing $< to $@
|
||||||
$(QUIETLY) $(PREPROCESS.CC) $< > $@ $(COMPILE_DONE)
|
$(QUIETLY) $(PREPROCESS.CXX) $< > $@ $(COMPILE_DONE)
|
||||||
|
|
||||||
# Override gnumake built-in rules which do sccs get operations badly.
|
# Override gnumake built-in rules which do sccs get operations badly.
|
||||||
# (They put the checked out code in the current directory, not in the
|
# (They put the checked out code in the current directory, not in the
|
||||||
|
|
|
@ -23,14 +23,17 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# CC, CPP & AS
|
# CC, CXX & AS
|
||||||
|
|
||||||
CPP = CC
|
# If a SPEC is not set already, then use these defaults.
|
||||||
CC = cc
|
ifeq ($(SPEC),)
|
||||||
AS = $(CC) -c
|
CXX = CC
|
||||||
|
CC = cc
|
||||||
|
AS = $(CC) -c
|
||||||
|
|
||||||
HOSTCPP = $(CPP)
|
HOSTCXX = $(CXX)
|
||||||
HOSTCC = $(CC)
|
HOSTCC = $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
|
ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
|
||||||
ARCHFLAG/i486 = -m32
|
ARCHFLAG/i486 = -m32
|
||||||
|
|
|
@ -124,8 +124,8 @@ the_vm: vm_build_preliminaries $(adjust-mflags)
|
||||||
@$(UpdatePCH)
|
@$(UpdatePCH)
|
||||||
@$(MAKE) -f vm.make $(MFLAGS-adjusted)
|
@$(MAKE) -f vm.make $(MFLAGS-adjusted)
|
||||||
|
|
||||||
install: the_vm
|
install gamma: the_vm
|
||||||
@$(MAKE) -f vm.make install
|
@$(MAKE) -f vm.make $@
|
||||||
|
|
||||||
# next rules support "make foo.[ois]"
|
# next rules support "make foo.[ois]"
|
||||||
|
|
||||||
|
|
113
hotspot/make/bsd/makefiles/universal.gmk
Normal file
113
hotspot/make/bsd/makefiles/universal.gmk
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2006, 2012, 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# macosx universal builds
|
||||||
|
universal_product:
|
||||||
|
$(MAKE) MACOSX_UNIVERSAL=true all_product_universal
|
||||||
|
universal_fastdebug:
|
||||||
|
$(MAKE) MACOSX_UNIVERSAL=true all_fastdebug_universal
|
||||||
|
universal_debug:
|
||||||
|
$(MAKE) MACOSX_UNIVERSAL=true all_debug_universal
|
||||||
|
|
||||||
|
|
||||||
|
# Universal builds include 1 or more architectures in a single binary
|
||||||
|
all_product_universal:
|
||||||
|
# $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_PRODUCT_TARGETS)
|
||||||
|
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_PRODUCT_TARGETS)
|
||||||
|
$(QUIETLY) $(MAKE) EXPORT_SUBDIR= universalize
|
||||||
|
all_fastdebug_universal:
|
||||||
|
# $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_FASTDEBUG_TARGETS)
|
||||||
|
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_FASTDEBUG_TARGETS)
|
||||||
|
$(QUIETLY) $(MAKE) EXPORT_SUBDIR=/fastdebug universalize
|
||||||
|
all_debug_universal:
|
||||||
|
# $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_DEBUG_TARGETS)
|
||||||
|
$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_DEBUG_TARGETS)
|
||||||
|
$(QUIETLY) $(MAKE) EXPORT_SUBDIR=/debug universalize
|
||||||
|
|
||||||
|
|
||||||
|
# Consolidate architecture builds into a single Universal binary
|
||||||
|
universalize: $(UNIVERSAL_LIPO_LIST) $(UNIVERSAL_COPY_LIST)
|
||||||
|
$(RM) -r $(EXPORT_PATH)/jre/lib/{i386,amd64}
|
||||||
|
|
||||||
|
|
||||||
|
# Package built libraries in a universal binary
|
||||||
|
$(UNIVERSAL_LIPO_LIST):
|
||||||
|
BUILT_LIPO_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) 2>/dev/null`"; \
|
||||||
|
if [ -n "$${BUILT_LIPO_FILES}" ]; then \
|
||||||
|
$(MKDIR) -p $(shell dirname $@); \
|
||||||
|
lipo -create -output $@ $${BUILT_LIPO_FILES}; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Copy built non-universal binaries in place
|
||||||
|
$(UNIVERSAL_COPY_LIST):
|
||||||
|
BUILT_COPY_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) 2>/dev/null`"; \
|
||||||
|
if [ -n "$${BUILT_COPY_FILES}" ]; then \
|
||||||
|
for i in $${BUILT_COPY_FILES}; do \
|
||||||
|
if [ -f $${i} ]; then \
|
||||||
|
$(MKDIR) -p $(shell dirname $@); \
|
||||||
|
$(CP) $${i} $@; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Replace arch specific binaries with universal binaries
|
||||||
|
export_universal:
|
||||||
|
$(RM) -r $(EXPORT_PATH)/jre/lib/{i386,amd64}
|
||||||
|
$(RM) -r $(JDK_IMAGE_DIR)/jre/lib/{i386,amd64}
|
||||||
|
$(RM) $(JDK_IMAGE_DIR)/jre/lib/{client,server}/libjsig.$(LIBRARY_SUFFIX)
|
||||||
|
($(CD) $(EXPORT_PATH) && \
|
||||||
|
$(TAR) -cf - *) | \
|
||||||
|
($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xpf -)
|
||||||
|
|
||||||
|
|
||||||
|
# Overlay universal binaries
|
||||||
|
copy_universal:
|
||||||
|
$(RM) -r $(JDK_IMAGE_DIR)$(COPY_SUBDIR)/jre/lib/{i386,amd64}
|
||||||
|
$(RM) $(JDK_IMAGE_DIR)$(COPY_SUBDIR)/jre/lib/{client,server}/libjsig.$(LIBRARY_SUFFIX)
|
||||||
|
($(CD) $(EXPORT_PATH)$(COPY_SUBDIR) && \
|
||||||
|
$(TAR) -cf - *) | \
|
||||||
|
($(CD) $(JDK_IMAGE_DIR)$(COPY_SUBDIR) && $(TAR) -xpf -)
|
||||||
|
|
||||||
|
|
||||||
|
# Additional processing for universal builds
|
||||||
|
export_product_jdk::
|
||||||
|
$(MAKE) EXPORT_SUBDIR= export_universal
|
||||||
|
export_optimized_jdk::
|
||||||
|
$(MAKE) EXPORT_SUBDIR= export_universal
|
||||||
|
export_fastdebug_jdk::
|
||||||
|
$(MAKE) EXPORT_SUBDIR=/fastdebug export_universal
|
||||||
|
export_debug_jdk::
|
||||||
|
$(MAKE) EXPORT_SUBDIR=/debug export_universal
|
||||||
|
copy_product_jdk::
|
||||||
|
$(MAKE) COPY_SUBDIR= copy_universal
|
||||||
|
copy_fastdebug_jdk::
|
||||||
|
$(MAKE) COPY_SUBDIR=/fastdebug copy_universal
|
||||||
|
copy_debug_jdk::
|
||||||
|
$(MAKE) COPY_SUBDIR=/debug copy_universal
|
||||||
|
|
||||||
|
.PHONY: universal_product universal_fastdebug universal_debug \
|
||||||
|
all_product_universal all_fastdebug_universal all_debug_universal \
|
||||||
|
universalize export_universal copy_universal
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -42,7 +42,7 @@ DEP_DIR = $(GENERATED)/dependencies
|
||||||
-include $(DEP_DIR)/*.d
|
-include $(DEP_DIR)/*.d
|
||||||
|
|
||||||
# read machine-specific adjustments (%%% should do this via buildtree.make?)
|
# read machine-specific adjustments (%%% should do this via buildtree.make?)
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
include $(MAKEFILES_DIR)/zeroshark.make
|
include $(MAKEFILES_DIR)/zeroshark.make
|
||||||
else
|
else
|
||||||
include $(MAKEFILES_DIR)/$(BUILDARCH).make
|
include $(MAKEFILES_DIR)/$(BUILDARCH).make
|
||||||
|
@ -82,18 +82,22 @@ BUILD_TARGET = -DHOTSPOT_BUILD_TARGET="\"$(TARGET)\""
|
||||||
BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
|
BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
|
||||||
VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
|
VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
|
||||||
|
|
||||||
CPPFLAGS = \
|
CXXFLAGS = \
|
||||||
${SYSDEFS} \
|
${SYSDEFS} \
|
||||||
${INCLUDES} \
|
${INCLUDES} \
|
||||||
${BUILD_VERSION} \
|
${BUILD_VERSION} \
|
||||||
${BUILD_TARGET} \
|
${BUILD_TARGET} \
|
||||||
${BUILD_USER} \
|
${BUILD_USER} \
|
||||||
${HS_LIB_ARCH} \
|
${HS_LIB_ARCH} \
|
||||||
${JRE_VERSION} \
|
|
||||||
${VM_DISTRO}
|
${VM_DISTRO}
|
||||||
|
|
||||||
|
# This is VERY important! The version define must only be supplied to vm_version.o
|
||||||
|
# If not, ccache will not re-use the cache at all, since the version string might contain
|
||||||
|
# a time and date.
|
||||||
|
vm_version.o: CXXFLAGS += ${JRE_VERSION}
|
||||||
|
|
||||||
ifdef DEFAULT_LIBPATH
|
ifdef DEFAULT_LIBPATH
|
||||||
CPPFLAGS += -DDEFAULT_LIBPATH="\"$(DEFAULT_LIBPATH)\""
|
CXXFLAGS += -DDEFAULT_LIBPATH="\"$(DEFAULT_LIBPATH)\""
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef JAVASE_EMBEDDED
|
ifndef JAVASE_EMBEDDED
|
||||||
|
@ -260,19 +264,19 @@ else
|
||||||
ifeq ($(STATIC_CXX), true)
|
ifeq ($(STATIC_CXX), true)
|
||||||
LFLAGS_VM += $(STATIC_LIBGCC)
|
LFLAGS_VM += $(STATIC_LIBGCC)
|
||||||
LIBS_VM += $(STATIC_STDCXX)
|
LIBS_VM += $(STATIC_STDCXX)
|
||||||
LINK_VM = $(LINK_LIB.c)
|
|
||||||
else
|
|
||||||
LINK_VM = $(LINK_LIB.CC)
|
LINK_VM = $(LINK_LIB.CC)
|
||||||
|
else
|
||||||
|
LINK_VM = $(LINK_LIB.CXX)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LIBS_VM += $(LIBS)
|
LIBS_VM += $(LIBS)
|
||||||
endif
|
endif
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZERO), true)
|
||||||
LIBS_VM += $(LIBFFI_LIBS)
|
LIBS_VM += $(LIBFFI_LIBS)
|
||||||
endif
|
endif
|
||||||
ifeq ($(SHARK_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
|
LIBS_VM += $(LIBFFI_LIBS) $(LLVM_LIBS)
|
||||||
LFLAGS_VM += $(LLVM_LDFLAGS)
|
LFLAGS_VM += $(LLVM_LDFLAGS)
|
||||||
LIBS_VM += $(LLVM_LIBS)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -280,7 +284,7 @@ endif
|
||||||
$(PRECOMPILED_HEADER):
|
$(PRECOMPILED_HEADER):
|
||||||
$(QUIETLY) echo Generating precompiled header $@
|
$(QUIETLY) echo Generating precompiled header $@
|
||||||
$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
|
$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
|
||||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
|
||||||
|
|
||||||
# making the library:
|
# making the library:
|
||||||
|
|
||||||
|
@ -305,10 +309,10 @@ endif
|
||||||
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
||||||
$(QUIETLY) { \
|
$(QUIETLY) { \
|
||||||
echo Linking vm...; \
|
echo Linking vm...; \
|
||||||
$(LINK_LIB.CC/PRE_HOOK) \
|
$(LINK_LIB.CXX/PRE_HOOK) \
|
||||||
$(LINK_VM) $(LD_SCRIPT_FLAG) \
|
$(LINK_VM) $(LD_SCRIPT_FLAG) \
|
||||||
$(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM); \
|
$(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM); \
|
||||||
$(LINK_LIB.CC/POST_HOOK) \
|
$(LINK_LIB.CXX/POST_HOOK) \
|
||||||
rm -f $@.1; ln -s $@ $@.1; \
|
rm -f $@.1; ln -s $@ $@.1; \
|
||||||
[ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
|
[ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
|
||||||
}
|
}
|
||||||
|
@ -331,17 +335,20 @@ include $(MAKEFILES_DIR)/jsig.make
|
||||||
# Serviceability agent
|
# Serviceability agent
|
||||||
include $(MAKEFILES_DIR)/saproc.make
|
include $(MAKEFILES_DIR)/saproc.make
|
||||||
|
|
||||||
|
# Whitebox testing API
|
||||||
|
include $(MAKEFILES_DIR)/wb.make
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
$(LIBJVM).dSYM: $(LIBJVM)
|
$(LIBJVM).dSYM: $(LIBJVM)
|
||||||
dsymutil $(LIBJVM)
|
dsymutil $(LIBJVM)
|
||||||
|
|
||||||
# no launcher or libjvm_db for macosx
|
# no libjvm_db for macosx
|
||||||
build: $(LIBJVM) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(LIBJVM).dSYM
|
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(LIBJVM).dSYM $(WB_JAR)
|
||||||
echo "Doing vm.make build:"
|
echo "Doing vm.make build:"
|
||||||
else
|
else
|
||||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
|
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) $(WB_JAR)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
install: install_jvm install_jsig install_saproc
|
install: install_jvm install_jsig install_saproc
|
||||||
|
|
46
hotspot/make/bsd/makefiles/wb.make
Normal file
46
hotspot/make/bsd/makefiles/wb.make
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012, 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Rules to build whitebox testing library, used by vm.make
|
||||||
|
WB = wb
|
||||||
|
|
||||||
|
WBSRCDIR = $(GAMMADIR)/src/share/tools/whitebox
|
||||||
|
|
||||||
|
WB_JAR = $(GENERATED)/$(WB).jar
|
||||||
|
|
||||||
|
WB_JAVA_SRCS = $(shell find $(WBSRCDIR) -name '*.java')
|
||||||
|
WB_JAVA_CLASSDIR = $(GENERATED)/wb/classes
|
||||||
|
|
||||||
|
WB_JAVA_CLASSES = $(patsubst $(WBSRCDIR)/%,$(WB_JAVA_CLASSDIR)/%, \
|
||||||
|
$(patsubst %.java,%.class,$(WB_JAVA_SRCS)))
|
||||||
|
|
||||||
|
$(WB_JAVA_CLASSDIR)/%.class: $(WBSRCDIR)/%.java $(WB_JAVA_CLASSDIR)
|
||||||
|
$(REMOTE) $(COMPILE.JAVAC) -nowarn -d $(WB_JAVA_CLASSDIR) $<
|
||||||
|
|
||||||
|
$(WB_JAR): $(WB_JAVA_CLASSES)
|
||||||
|
$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(WB_JAVA_CLASSDIR)/ .
|
||||||
|
|
||||||
|
$(WB_JAVA_CLASSDIR):
|
||||||
|
$(QUIETLY) mkdir -p $@
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -24,6 +24,11 @@
|
||||||
|
|
||||||
# The common definitions for hotspot builds.
|
# The common definitions for hotspot builds.
|
||||||
|
|
||||||
|
# Optionally include SPEC file generated by configure.
|
||||||
|
ifneq ($(SPEC),)
|
||||||
|
include $(SPEC)
|
||||||
|
endif
|
||||||
|
|
||||||
# Default to verbose build logs (show all compile lines):
|
# Default to verbose build logs (show all compile lines):
|
||||||
MAKE_VERBOSE=y
|
MAKE_VERBOSE=y
|
||||||
|
|
||||||
|
@ -50,6 +55,27 @@ define prep-target
|
||||||
@$(RM) $@
|
@$(RM) $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# Default values for JVM_VARIANT* variables if configure hasn't set
|
||||||
|
# it already.
|
||||||
|
ifeq ($(JVM_VARIANTS),)
|
||||||
|
ifeq ($(ZERO_BUILD), true)
|
||||||
|
ifeq ($(SHARK_BUILD), true)
|
||||||
|
JVM_VARIANTS:=zeroshark
|
||||||
|
JVM_VARIANT_ZEROSHARK:=true
|
||||||
|
else
|
||||||
|
JVM_VARIANTS:=zero
|
||||||
|
JVM_VARIANT_ZERO:=true
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
# A default is needed
|
||||||
|
ifeq ($(BUILD_CLIENT_ONLY), true)
|
||||||
|
JVM_VARIANTS:=client
|
||||||
|
JVM_VARIANT_CLIENT:=true
|
||||||
|
endif
|
||||||
|
# Further defaults are platform and arch specific
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Directory paths and user name
|
# Directory paths and user name
|
||||||
# Unless GAMMADIR is set on the command line, search upward from
|
# Unless GAMMADIR is set on the command line, search upward from
|
||||||
# the current directory for a parent directory containing "src/share/vm".
|
# the current directory for a parent directory containing "src/share/vm".
|
||||||
|
@ -185,6 +211,18 @@ ifneq ($(ALT_BOOTDIR),)
|
||||||
BOOTDIR=$(ALT_BOOTDIR)
|
BOOTDIR=$(ALT_BOOTDIR)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Select name of the export directory and honor ALT overrides
|
||||||
|
EXPORT_PATH=$(OUTPUTDIR)/export-$(PLATFORM)$(EXPORT_SUBDIR)
|
||||||
|
ifneq ($(ALT_EXPORT_PATH),)
|
||||||
|
EXPORT_PATH=$(ALT_EXPORT_PATH)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Default jdk image if one is created for you with create_jdk
|
||||||
|
JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-$(PLATFORM)
|
||||||
|
ifneq ($(ALT_JDK_IMAGE_DIR),)
|
||||||
|
JDK_IMAGE_DIR=$(ALT_JDK_IMAGE_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
# The platform dependent defs.make defines platform specific variable such
|
# The platform dependent defs.make defines platform specific variable such
|
||||||
# as ARCH, EXPORT_LIST etc. We must place the include here after BOOTDIR is defined.
|
# as ARCH, EXPORT_LIST etc. We must place the include here after BOOTDIR is defined.
|
||||||
include $(GAMMADIR)/make/$(OSNAME)/makefiles/defs.make
|
include $(GAMMADIR)/make/$(OSNAME)/makefiles/defs.make
|
||||||
|
@ -263,15 +301,6 @@ MAKE_ARGS += JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
|
||||||
# includes this make/defs.make file.
|
# includes this make/defs.make file.
|
||||||
MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION)
|
MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION)
|
||||||
|
|
||||||
# Select name of export directory
|
|
||||||
EXPORT_PATH=$(OUTPUTDIR)/export-$(PLATFORM)$(EXPORT_SUBDIR)
|
|
||||||
ifneq ($(ALT_EXPORT_PATH),)
|
|
||||||
EXPORT_PATH=$(ALT_EXPORT_PATH)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Default jdk image if one is created for you with create_jdk
|
|
||||||
JDK_IMAGE_DIR=$(OUTPUTDIR)/jdk-$(PLATFORM)
|
|
||||||
|
|
||||||
# Various export sub directories
|
# Various export sub directories
|
||||||
EXPORT_INCLUDE_DIR = $(EXPORT_PATH)/include
|
EXPORT_INCLUDE_DIR = $(EXPORT_PATH)/include
|
||||||
EXPORT_DOCS_DIR = $(EXPORT_PATH)/docs
|
EXPORT_DOCS_DIR = $(EXPORT_PATH)/docs
|
||||||
|
|
|
@ -33,9 +33,9 @@
|
||||||
# Don't put quotes (fail windows build).
|
# Don't put quotes (fail windows build).
|
||||||
HOTSPOT_VM_COPYRIGHT=Copyright 2011
|
HOTSPOT_VM_COPYRIGHT=Copyright 2011
|
||||||
|
|
||||||
HS_MAJOR_VER=23
|
HS_MAJOR_VER=24
|
||||||
HS_MINOR_VER=0
|
HS_MINOR_VER=0
|
||||||
HS_BUILD_NUMBER=11
|
HS_BUILD_NUMBER=06
|
||||||
|
|
||||||
JDK_MAJOR_VER=1
|
JDK_MAJOR_VER=1
|
||||||
JDK_MINOR_VER=8
|
JDK_MINOR_VER=8
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -38,7 +38,9 @@ jprt.need.sibling.build=false
|
||||||
|
|
||||||
# This tells jprt what default release we want to build
|
# This tells jprt what default release we want to build
|
||||||
|
|
||||||
jprt.tools.default.release=${jprt.submit.release}
|
jprt.hotspot.default.release=jdk7
|
||||||
|
|
||||||
|
jprt.tools.default.release=${jprt.submit.option.release?${jprt.submit.option.release}:${jprt.hotspot.default.release}}
|
||||||
|
|
||||||
# Disable syncing the source after builds and tests are done.
|
# Disable syncing the source after builds and tests are done.
|
||||||
|
|
||||||
|
@ -52,154 +54,72 @@ jprt.sync.push=false
|
||||||
# Define the Solaris platforms we want for the various releases
|
# Define the Solaris platforms we want for the various releases
|
||||||
jprt.my.solaris.sparc.jdk8=solaris_sparc_5.10
|
jprt.my.solaris.sparc.jdk8=solaris_sparc_5.10
|
||||||
jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10
|
jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10
|
||||||
jprt.my.solaris.sparc.jdk7b107=solaris_sparc_5.10
|
jprt.my.solaris.sparc.jdk7u4=${jprt.my.solaris.sparc.jdk7}
|
||||||
jprt.my.solaris.sparc.jdk7temp=solaris_sparc_5.10
|
|
||||||
jprt.my.solaris.sparc.jdk6=solaris_sparc_5.8
|
|
||||||
jprt.my.solaris.sparc.jdk6perf=solaris_sparc_5.8
|
|
||||||
jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8
|
|
||||||
jprt.my.solaris.sparc.jdk6u14=solaris_sparc_5.8
|
|
||||||
jprt.my.solaris.sparc.jdk6u18=solaris_sparc_5.8
|
|
||||||
jprt.my.solaris.sparc.jdk6u20=solaris_sparc_5.8
|
|
||||||
jprt.my.solaris.sparc.ejdk7=${jprt.my.solaris.sparc.jdk7}
|
|
||||||
jprt.my.solaris.sparc.ejdk6=${jprt.my.solaris.sparc.jdk6}
|
|
||||||
jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}}
|
jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.solaris.sparcv9.jdk8=solaris_sparcv9_5.10
|
jprt.my.solaris.sparcv9.jdk8=solaris_sparcv9_5.10
|
||||||
jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10
|
jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10
|
||||||
jprt.my.solaris.sparcv9.jdk7b107=solaris_sparcv9_5.10
|
jprt.my.solaris.sparcv9.jdk7u4=${jprt.my.solaris.sparcv9.jdk7}
|
||||||
jprt.my.solaris.sparcv9.jdk7temp=solaris_sparcv9_5.10
|
|
||||||
jprt.my.solaris.sparcv9.jdk6=solaris_sparcv9_5.8
|
|
||||||
jprt.my.solaris.sparcv9.jdk6perf=solaris_sparcv9_5.8
|
|
||||||
jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8
|
|
||||||
jprt.my.solaris.sparcv9.jdk6u14=solaris_sparcv9_5.8
|
|
||||||
jprt.my.solaris.sparcv9.jdk6u18=solaris_sparcv9_5.8
|
|
||||||
jprt.my.solaris.sparcv9.jdk6u20=solaris_sparcv9_5.8
|
|
||||||
jprt.my.solaris.sparcv9.ejdk7=${jprt.my.solaris.sparcv9.jdk7}
|
|
||||||
jprt.my.solaris.sparcv9.ejdk6=${jprt.my.solaris.sparcv9.jdk6}
|
|
||||||
jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}}
|
jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.solaris.i586.jdk8=solaris_i586_5.10
|
jprt.my.solaris.i586.jdk8=solaris_i586_5.10
|
||||||
jprt.my.solaris.i586.jdk7=solaris_i586_5.10
|
jprt.my.solaris.i586.jdk7=solaris_i586_5.10
|
||||||
jprt.my.solaris.i586.jdk7b107=solaris_i586_5.10
|
jprt.my.solaris.i586.jdk7u4=${jprt.my.solaris.i586.jdk7}
|
||||||
jprt.my.solaris.i586.jdk7temp=solaris_i586_5.10
|
|
||||||
jprt.my.solaris.i586.jdk6=solaris_i586_5.8
|
|
||||||
jprt.my.solaris.i586.jdk6perf=solaris_i586_5.8
|
|
||||||
jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8
|
|
||||||
jprt.my.solaris.i586.jdk6u14=solaris_i586_5.8
|
|
||||||
jprt.my.solaris.i586.jdk6u18=solaris_i586_5.8
|
|
||||||
jprt.my.solaris.i586.jdk6u20=solaris_i586_5.8
|
|
||||||
jprt.my.solaris.i586.ejdk7=${jprt.my.solaris.i586.jdk7}
|
|
||||||
jprt.my.solaris.i586.ejdk6=${jprt.my.solaris.i586.jdk6}
|
|
||||||
jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}}
|
jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.solaris.x64.jdk8=solaris_x64_5.10
|
jprt.my.solaris.x64.jdk8=solaris_x64_5.10
|
||||||
jprt.my.solaris.x64.jdk7=solaris_x64_5.10
|
jprt.my.solaris.x64.jdk7=solaris_x64_5.10
|
||||||
jprt.my.solaris.x64.jdk7b107=solaris_x64_5.10
|
jprt.my.solaris.x64.jdk7u4=${jprt.my.solaris.x64.jdk7}
|
||||||
jprt.my.solaris.x64.jdk7temp=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.jdk6=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.jdk6perf=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.jdk6u14=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.jdk6u18=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.jdk6u20=solaris_x64_5.10
|
|
||||||
jprt.my.solaris.x64.ejdk7=${jprt.my.solaris.x64.jdk7}
|
|
||||||
jprt.my.solaris.x64.ejdk6=${jprt.my.solaris.x64.jdk6}
|
|
||||||
jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}}
|
jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.i586.jdk8=linux_i586_2.6
|
jprt.my.linux.i586.jdk8=linux_i586_2.6
|
||||||
jprt.my.linux.i586.jdk7=linux_i586_2.6
|
jprt.my.linux.i586.jdk7=linux_i586_2.6
|
||||||
jprt.my.linux.i586.jdk7b107=linux_i586_2.6
|
jprt.my.linux.i586.jdk7u4=${jprt.my.linux.i586.jdk7}
|
||||||
jprt.my.linux.i586.jdk7temp=linux_i586_2.6
|
|
||||||
jprt.my.linux.i586.jdk6=linux_i586_2.4
|
|
||||||
jprt.my.linux.i586.jdk6perf=linux_i586_2.4
|
|
||||||
jprt.my.linux.i586.jdk6u10=linux_i586_2.4
|
|
||||||
jprt.my.linux.i586.jdk6u14=linux_i586_2.4
|
|
||||||
jprt.my.linux.i586.jdk6u18=linux_i586_2.4
|
|
||||||
jprt.my.linux.i586.jdk6u20=linux_i586_2.4
|
|
||||||
jprt.my.linux.i586.ejdk7=linux_i586_2.6
|
|
||||||
jprt.my.linux.i586.ejdk6=linux_i586_2.6
|
|
||||||
jprt.my.linux.i586=${jprt.my.linux.i586.${jprt.tools.default.release}}
|
jprt.my.linux.i586=${jprt.my.linux.i586.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.x64.jdk8=linux_x64_2.6
|
jprt.my.linux.x64.jdk8=linux_x64_2.6
|
||||||
jprt.my.linux.x64.jdk7=linux_x64_2.6
|
jprt.my.linux.x64.jdk7=linux_x64_2.6
|
||||||
jprt.my.linux.x64.jdk7b107=linux_x64_2.6
|
jprt.my.linux.x64.jdk7u4=${jprt.my.linux.x64.jdk7}
|
||||||
jprt.my.linux.x64.jdk7temp=linux_x64_2.6
|
|
||||||
jprt.my.linux.x64.jdk6=linux_x64_2.4
|
|
||||||
jprt.my.linux.x64.jdk6perf=linux_x64_2.4
|
|
||||||
jprt.my.linux.x64.jdk6u10=linux_x64_2.4
|
|
||||||
jprt.my.linux.x64.jdk6u14=linux_x64_2.4
|
|
||||||
jprt.my.linux.x64.jdk6u18=linux_x64_2.4
|
|
||||||
jprt.my.linux.x64.jdk6u20=linux_x64_2.4
|
|
||||||
jprt.my.linux.x64.ejdk7=${jprt.my.linux.x64.jdk7}
|
|
||||||
jprt.my.linux.x64.ejdk6=${jprt.my.linux.x64.jdk6}
|
|
||||||
jprt.my.linux.x64=${jprt.my.linux.x64.${jprt.tools.default.release}}
|
jprt.my.linux.x64=${jprt.my.linux.x64.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.ppc.jdk8=linux_ppc_2.6
|
jprt.my.linux.ppc.jdk8=linux_ppc_2.6
|
||||||
jprt.my.linux.ppc.jdk7=linux_ppc_2.6
|
jprt.my.linux.ppc.jdk7=linux_ppc_2.6
|
||||||
jprt.my.linux.ppc.jdk7b107=linux_ppc_2.6
|
jprt.my.linux.ppc.jdk7u4=${jprt.my.linux.ppc.jdk7}
|
||||||
jprt.my.linux.ppc.jdk7temp=linux_ppc_2.6
|
|
||||||
jprt.my.linux.ppc.ejdk6=linux_ppc_2.6
|
|
||||||
jprt.my.linux.ppc.ejdk7=linux_ppc_2.6
|
|
||||||
jprt.my.linux.ppc=${jprt.my.linux.ppc.${jprt.tools.default.release}}
|
jprt.my.linux.ppc=${jprt.my.linux.ppc.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.ppcv2.jdk8=linux_ppcv2_2.6
|
jprt.my.linux.ppcv2.jdk8=linux_ppcv2_2.6
|
||||||
jprt.my.linux.ppcv2.jdk7=linux_ppcv2_2.6
|
jprt.my.linux.ppcv2.jdk7=linux_ppcv2_2.6
|
||||||
jprt.my.linux.ppcv2.jdk7b107=linux_ppcv2_2.6
|
jprt.my.linux.ppcv2.jdk7u4=${jprt.my.linux.ppcv2.jdk7}
|
||||||
jprt.my.linux.ppcv2.jdk7temp=linux_ppcv2_2.6
|
|
||||||
jprt.my.linux.ppcv2.ejdk6=linux_ppcv2_2.6
|
|
||||||
jprt.my.linux.ppcv2.ejdk7=linux_ppcv2_2.6
|
|
||||||
jprt.my.linux.ppcv2=${jprt.my.linux.ppcv2.${jprt.tools.default.release}}
|
jprt.my.linux.ppcv2=${jprt.my.linux.ppcv2.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.ppcsflt.jdk8=linux_ppcsflt_2.6
|
jprt.my.linux.ppcsflt.jdk8=linux_ppcsflt_2.6
|
||||||
jprt.my.linux.ppcsflt.jdk7=linux_ppcsflt_2.6
|
jprt.my.linux.ppcsflt.jdk7=linux_ppcsflt_2.6
|
||||||
jprt.my.linux.ppcsflt.jdk7b107=linux_ppcsflt_2.6
|
jprt.my.linux.ppcsflt.jdk7u4=${jprt.my.linux.ppcsflt.jdk7}
|
||||||
jprt.my.linux.ppcsflt.jdk7temp=linux_ppcsflt_2.6
|
|
||||||
jprt.my.linux.ppcsflt.ejdk6=linux_ppcsflt_2.6
|
|
||||||
jprt.my.linux.ppcsflt.ejdk7=linux_ppcsflt_2.6
|
|
||||||
jprt.my.linux.ppcsflt=${jprt.my.linux.ppcsflt.${jprt.tools.default.release}}
|
jprt.my.linux.ppcsflt=${jprt.my.linux.ppcsflt.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.armvfp.jdk8=linux_armvfp_2.6
|
jprt.my.linux.armvfp.jdk8=linux_armvfp_2.6
|
||||||
jprt.my.linux.armvfp.jdk7=linux_armvfp_2.6
|
jprt.my.linux.armvfp.jdk7=linux_armvfp_2.6
|
||||||
jprt.my.linux.armvfp.jdk7b107=linux_armvfp_2.6
|
jprt.my.linux.armvfp.jdk7u4=${jprt.my.linux.armvfp.jdk7}
|
||||||
jprt.my.linux.armvfp.jdk7temp=linux_armvfp_2.6
|
|
||||||
jprt.my.linux.armvfp.ejdk6=linux_armvfp_2.6
|
|
||||||
jprt.my.linux.armvfp.ejdk7=linux_armvfp_2.6
|
|
||||||
jprt.my.linux.armvfp=${jprt.my.linux.armvfp.${jprt.tools.default.release}}
|
jprt.my.linux.armvfp=${jprt.my.linux.armvfp.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.linux.armsflt.jdk8=linux_armsflt_2.6
|
jprt.my.linux.armsflt.jdk8=linux_armsflt_2.6
|
||||||
jprt.my.linux.armsflt.jdk7=linux_armsflt_2.6
|
jprt.my.linux.armsflt.jdk7=linux_armsflt_2.6
|
||||||
jprt.my.linux.armsflt.jdk7b107=linux_armsflt_2.6
|
jprt.my.linux.armsflt.jdk7u4=${jprt.my.linux.armsflt.jdk7}
|
||||||
jprt.my.linux.armsflt.jdk7temp=linux_armsflt_2.6
|
|
||||||
jprt.my.linux.armsflt.ejdk6=linux_armsflt_2.6
|
|
||||||
jprt.my.linux.armsflt.ejdk7=linux_armsflt_2.6
|
|
||||||
jprt.my.linux.armsflt=${jprt.my.linux.armsflt.${jprt.tools.default.release}}
|
jprt.my.linux.armsflt=${jprt.my.linux.armsflt.${jprt.tools.default.release}}
|
||||||
|
|
||||||
|
jprt.my.macosx.x64.jdk8=macosx_x64_10.7
|
||||||
|
jprt.my.macosx.x64.jdk7=macosx_x64_10.7
|
||||||
|
jprt.my.macosx.x64.jdk7u4=${jprt.my.macosx.x64.jdk7}
|
||||||
|
jprt.my.macosx.x64=${jprt.my.macosx.x64.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.windows.i586.jdk8=windows_i586_5.1
|
jprt.my.windows.i586.jdk8=windows_i586_5.1
|
||||||
jprt.my.windows.i586.jdk7=windows_i586_5.1
|
jprt.my.windows.i586.jdk7=windows_i586_5.1
|
||||||
jprt.my.windows.i586.jdk7b107=windows_i586_5.0
|
jprt.my.windows.i586.jdk7u4=${jprt.my.windows.i586.jdk7}
|
||||||
jprt.my.windows.i586.jdk7temp=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.jdk6=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.jdk6perf=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.jdk6u10=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.jdk6u14=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.jdk6u18=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.jdk6u20=windows_i586_5.0
|
|
||||||
jprt.my.windows.i586.ejdk7=${jprt.my.windows.i586.jdk7}
|
|
||||||
jprt.my.windows.i586.ejdk6=${jprt.my.windows.i586.jdk6}
|
|
||||||
jprt.my.windows.i586=${jprt.my.windows.i586.${jprt.tools.default.release}}
|
jprt.my.windows.i586=${jprt.my.windows.i586.${jprt.tools.default.release}}
|
||||||
|
|
||||||
jprt.my.windows.x64.jdk8=windows_x64_5.2
|
jprt.my.windows.x64.jdk8=windows_x64_5.2
|
||||||
jprt.my.windows.x64.jdk7=windows_x64_5.2
|
jprt.my.windows.x64.jdk7=windows_x64_5.2
|
||||||
jprt.my.windows.x64.jdk7b107=windows_x64_5.2
|
jprt.my.windows.x64.jdk7u4=${jprt.my.windows.x64.jdk7}
|
||||||
jprt.my.windows.x64.jdk7temp=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.jdk6=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.jdk6perf=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.jdk6u10=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.jdk6u14=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.jdk6u18=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.jdk6u20=windows_x64_5.2
|
|
||||||
jprt.my.windows.x64.ejdk7=${jprt.my.windows.x64.jdk7}
|
|
||||||
jprt.my.windows.x64.ejdk6=${jprt.my.windows.x64.jdk6}
|
|
||||||
jprt.my.windows.x64=${jprt.my.windows.x64.${jprt.tools.default.release}}
|
jprt.my.windows.x64=${jprt.my.windows.x64.${jprt.tools.default.release}}
|
||||||
|
|
||||||
# Standard list of jprt build targets for this source tree
|
# Standard list of jprt build targets for this source tree
|
||||||
|
@ -211,6 +131,7 @@ jprt.build.targets.standard= \
|
||||||
${jprt.my.solaris.x64}-{product|fastdebug|debug}, \
|
${jprt.my.solaris.x64}-{product|fastdebug|debug}, \
|
||||||
${jprt.my.linux.i586}-{product|fastdebug|debug}, \
|
${jprt.my.linux.i586}-{product|fastdebug|debug}, \
|
||||||
${jprt.my.linux.x64}-{product|fastdebug}, \
|
${jprt.my.linux.x64}-{product|fastdebug}, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug|debug}, \
|
||||||
${jprt.my.windows.i586}-{product|fastdebug|debug}, \
|
${jprt.my.windows.i586}-{product|fastdebug|debug}, \
|
||||||
${jprt.my.windows.x64}-{product|fastdebug|debug}
|
${jprt.my.windows.x64}-{product|fastdebug|debug}
|
||||||
|
|
||||||
|
@ -232,16 +153,7 @@ jprt.build.targets.all=${jprt.build.targets.standard}, \
|
||||||
|
|
||||||
jprt.build.targets.jdk8=${jprt.build.targets.all}
|
jprt.build.targets.jdk8=${jprt.build.targets.all}
|
||||||
jprt.build.targets.jdk7=${jprt.build.targets.all}
|
jprt.build.targets.jdk7=${jprt.build.targets.all}
|
||||||
jprt.build.targets.jdk7temp=${jprt.build.targets.all}
|
jprt.build.targets.jdk7u4=${jprt.build.targets.all}
|
||||||
jprt.build.targets.jdk7b107=${jprt.build.targets.all}
|
|
||||||
jprt.build.targets.jdk6=${jprt.build.targets.standard}
|
|
||||||
jprt.build.targets.jdk6perf=${jprt.build.targets.standard}
|
|
||||||
jprt.build.targets.jdk6u10=${jprt.build.targets.standard}
|
|
||||||
jprt.build.targets.jdk6u14=${jprt.build.targets.standard}
|
|
||||||
jprt.build.targets.jdk6u18=${jprt.build.targets.standard}
|
|
||||||
jprt.build.targets.jdk6u20=${jprt.build.targets.standard}
|
|
||||||
jprt.build.targets.ejdk6=${jprt.build.targets.all}
|
|
||||||
jprt.build.targets.ejdk7=${jprt.build.targets.all}
|
|
||||||
jprt.build.targets=${jprt.build.targets.${jprt.tools.default.release}}
|
jprt.build.targets=${jprt.build.targets.${jprt.tools.default.release}}
|
||||||
|
|
||||||
# Subset lists of test targets for this source tree
|
# Subset lists of test targets for this source tree
|
||||||
|
@ -416,6 +328,30 @@ jprt.my.linux.x64.test.targets = \
|
||||||
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_G1, \
|
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_G1, \
|
||||||
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_ParOldGC
|
${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_ParOldGC
|
||||||
|
|
||||||
|
jprt.my.macosx.x64.test.targets = \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-jvm98, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-jvm98_nontiered, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-scimark, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_default, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_SerialGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_ParallelGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_ParNewGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_CMS, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_G1, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCBasher_ParOldGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_default, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_SerialGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_ParallelGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_ParNewGC, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_CMS, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_G1, \
|
||||||
|
${jprt.my.macosx.x64}-{product|fastdebug}-c2-GCOld_ParOldGC
|
||||||
|
# ${jprt.my.macosx.x64}-{product|fastdebug}-c2-jbb_default, \
|
||||||
|
# ${jprt.my.macosx.x64}-{product|fastdebug}-c2-jbb_default_tiered, \
|
||||||
|
# ${jprt.my.macosx.x64}-{product|fastdebug}-c2-jbb_ParallelGC, \
|
||||||
|
# ${jprt.my.macosx.x64}-{product|fastdebug}-c2-jbb_G1, \
|
||||||
|
# ${jprt.my.macosx.x64}-{product|fastdebug}-c2-jbb_ParOldGC
|
||||||
|
|
||||||
jprt.my.windows.i586.test.targets = \
|
jprt.my.windows.i586.test.targets = \
|
||||||
${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
|
${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
|
||||||
${jprt.my.windows.i586}-{product|fastdebug}-c2-jvm98_nontiered, \
|
${jprt.my.windows.i586}-{product|fastdebug}-c2-jvm98_nontiered, \
|
||||||
|
@ -492,6 +428,7 @@ jprt.test.targets.standard = \
|
||||||
${jprt.my.solaris.x64.test.targets}, \
|
${jprt.my.solaris.x64.test.targets}, \
|
||||||
${jprt.my.linux.i586.test.targets}, \
|
${jprt.my.linux.i586.test.targets}, \
|
||||||
${jprt.my.linux.x64.test.targets}, \
|
${jprt.my.linux.x64.test.targets}, \
|
||||||
|
${jprt.my.macosx.x64.test.targets}, \
|
||||||
${jprt.my.windows.i586.test.targets}, \
|
${jprt.my.windows.i586.test.targets}, \
|
||||||
${jprt.my.windows.x64.test.targets}, \
|
${jprt.my.windows.x64.test.targets}, \
|
||||||
${jprt.test.targets.open}
|
${jprt.test.targets.open}
|
||||||
|
@ -509,16 +446,7 @@ jprt.test.targets.embedded= \
|
||||||
|
|
||||||
jprt.test.targets.jdk8=${jprt.test.targets.standard}
|
jprt.test.targets.jdk8=${jprt.test.targets.standard}
|
||||||
jprt.test.targets.jdk7=${jprt.test.targets.standard}
|
jprt.test.targets.jdk7=${jprt.test.targets.standard}
|
||||||
jprt.test.targets.jdk7temp=${jprt.test.targets.standard}
|
jprt.test.targets.jdk7u4=${jprt.test.targets.jdk7}
|
||||||
jprt.test.targets.jdk7b105=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.jdk6=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.jdk6perf=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.jdk6u10=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.jdk6u14=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.jdk6u18=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.jdk6u20=${jprt.test.targets.standard}
|
|
||||||
jprt.test.targets.ejdk6=${jprt.test.targets.embedded}
|
|
||||||
jprt.test.targets.ejdk7=${jprt.test.targets.embedded}
|
|
||||||
jprt.test.targets=${jprt.test.targets.${jprt.tools.default.release}}
|
jprt.test.targets=${jprt.test.targets.${jprt.tools.default.release}}
|
||||||
|
|
||||||
# The default test/Makefile targets that should be run
|
# The default test/Makefile targets that should be run
|
||||||
|
@ -538,6 +466,7 @@ jprt.make.rule.test.targets.standard.server = \
|
||||||
${jprt.my.solaris.x64}-*-c2-servertest, \
|
${jprt.my.solaris.x64}-*-c2-servertest, \
|
||||||
${jprt.my.linux.i586}-*-c2-servertest, \
|
${jprt.my.linux.i586}-*-c2-servertest, \
|
||||||
${jprt.my.linux.x64}-*-c2-servertest, \
|
${jprt.my.linux.x64}-*-c2-servertest, \
|
||||||
|
${jprt.my.macosx.x64}-*-c2-servertest, \
|
||||||
${jprt.my.windows.i586}-*-c2-servertest, \
|
${jprt.my.windows.i586}-*-c2-servertest, \
|
||||||
${jprt.my.windows.x64}-*-c2-servertest
|
${jprt.my.windows.x64}-*-c2-servertest
|
||||||
|
|
||||||
|
@ -548,28 +477,35 @@ jprt.make.rule.test.targets.standard.internalvmtests = \
|
||||||
${jprt.my.solaris.x64}-fastdebug-c2-internalvmtests, \
|
${jprt.my.solaris.x64}-fastdebug-c2-internalvmtests, \
|
||||||
${jprt.my.linux.i586}-fastdebug-c2-internalvmtests, \
|
${jprt.my.linux.i586}-fastdebug-c2-internalvmtests, \
|
||||||
${jprt.my.linux.x64}-fastdebug-c2-internalvmtests, \
|
${jprt.my.linux.x64}-fastdebug-c2-internalvmtests, \
|
||||||
|
${jprt.my.macosx.x64}-fastdebug-c2-internalvmtests, \
|
||||||
${jprt.my.windows.i586}-fastdebug-c2-internalvmtests, \
|
${jprt.my.windows.i586}-fastdebug-c2-internalvmtests, \
|
||||||
${jprt.my.windows.x64}-fastdebug-c2-internalvmtests
|
${jprt.my.windows.x64}-fastdebug-c2-internalvmtests
|
||||||
|
|
||||||
|
jprt.make.rule.test.targets.standard.wbapi = \
|
||||||
|
${jprt.my.solaris.sparc}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.solaris.i586}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.solaris.x64}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.linux.i586}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.linux.x64}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.windows.i586}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.windows.x64}-{product|fastdebug}-c2-wbapitest, \
|
||||||
|
${jprt.my.solaris.sparc}-{product|fastdebug}-c1-wbapitest, \
|
||||||
|
${jprt.my.solaris.i586}-{product|fastdebug}-c1-wbapitest, \
|
||||||
|
${jprt.my.linux.i586}-{product|fastdebug}-c1-wbapitest, \
|
||||||
|
${jprt.my.windows.i586}-{product|fastdebug}-c1-wbapitest
|
||||||
|
|
||||||
jprt.make.rule.test.targets.standard = \
|
jprt.make.rule.test.targets.standard = \
|
||||||
${jprt.make.rule.test.targets.standard.client}, \
|
${jprt.make.rule.test.targets.standard.client}, \
|
||||||
${jprt.make.rule.test.targets.standard.server}, \
|
${jprt.make.rule.test.targets.standard.server}, \
|
||||||
${jprt.make.rule.test.targets.standard.internalvmtests}
|
${jprt.make.rule.test.targets.standard.internalvmtests}, \
|
||||||
|
${jprt.make.rule.test.targets.standard.wbapi}
|
||||||
|
|
||||||
jprt.make.rule.test.targets.embedded = \
|
jprt.make.rule.test.targets.embedded = \
|
||||||
${jprt.make.rule.test.targets.standard.client}
|
${jprt.make.rule.test.targets.standard.client}
|
||||||
|
|
||||||
jprt.make.rule.test.targets.jdk8=${jprt.make.rule.test.targets.standard}
|
jprt.make.rule.test.targets.jdk8=${jprt.make.rule.test.targets.standard}
|
||||||
jprt.make.rule.test.targets.jdk7=${jprt.make.rule.test.targets.standard}
|
jprt.make.rule.test.targets.jdk7=${jprt.make.rule.test.targets.standard}
|
||||||
jprt.make.rule.test.targets.jdk7temp=${jprt.make.rule.test.targets.standard}
|
jprt.make.rule.test.targets.jdk7u4=${jprt.make.rule.test.targets.jdk7}
|
||||||
jprt.make.rule.test.targets.jdk7b107=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.jdk6=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.jdk6perf=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.jdk6u10=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.jdk6u14=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.jdk6u18=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.jdk6u20=${jprt.make.rule.test.targets.standard}
|
|
||||||
jprt.make.rule.test.targets.ejdk6=${jprt.make.rule.test.targets.embedded}
|
|
||||||
jprt.make.rule.test.targets.ejdk7=${jprt.make.rule.test.targets.embedded}
|
|
||||||
jprt.make.rule.test.targets=${jprt.make.rule.test.targets.${jprt.tools.default.release}}
|
jprt.make.rule.test.targets=${jprt.make.rule.test.targets.${jprt.tools.default.release}}
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH))
|
||||||
# in the build.sh script:
|
# in the build.sh script:
|
||||||
TARGETS = debug jvmg fastdebug optimized profiled product
|
TARGETS = debug jvmg fastdebug optimized profiled product
|
||||||
|
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs
|
SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs
|
||||||
else
|
else
|
||||||
SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs
|
SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs
|
||||||
|
|
|
@ -61,10 +61,10 @@ Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
|
||||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||||
|
|
||||||
# set flags for adlc compilation
|
# set flags for adlc compilation
|
||||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
CXXFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||||
|
|
||||||
# Force assertions on.
|
# Force assertions on.
|
||||||
CPPFLAGS += -DASSERT
|
CXXFLAGS += -DASSERT
|
||||||
|
|
||||||
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
||||||
# Compiler warnings are treated as errors
|
# Compiler warnings are treated as errors
|
||||||
|
@ -109,7 +109,7 @@ all: $(EXEC)
|
||||||
|
|
||||||
$(EXEC) : $(OBJECTS)
|
$(EXEC) : $(OBJECTS)
|
||||||
@echo Making adlc
|
@echo Making adlc
|
||||||
$(QUIETLY) $(HOST.LINK_NOPROF.CC) -o $(EXEC) $(OBJECTS)
|
$(QUIETLY) $(HOST.LINK_NOPROF.CXX) -o $(EXEC) $(OBJECTS)
|
||||||
|
|
||||||
# Random dependencies:
|
# Random dependencies:
|
||||||
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
|
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
|
||||||
|
@ -211,14 +211,14 @@ PROCESS_AD_FILES = awk '{ \
|
||||||
$(OUTDIR)/%.o: %.cpp
|
$(OUTDIR)/%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(HOST.COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(HOST.COMPILE.CXX) -o $@ $< $(COMPILE_DONE)
|
||||||
|
|
||||||
# Some object files are given a prefix, to disambiguate
|
# Some object files are given a prefix, to disambiguate
|
||||||
# them from objects of the same name built for the VM.
|
# them from objects of the same name built for the VM.
|
||||||
$(OUTDIR)/adlc-%.o: %.cpp
|
$(OUTDIR)/adlc-%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(HOST.COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(HOST.COMPILE.CXX) -o $@ $< $(COMPILE_DONE)
|
||||||
|
|
||||||
# #########################################################################
|
# #########################################################################
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
# The makefiles are split this way so that "make foo" will run faster by not
|
# The makefiles are split this way so that "make foo" will run faster by not
|
||||||
# having to read the dependency files for the vm.
|
# having to read the dependency files for the vm.
|
||||||
|
|
||||||
|
-include $(SPEC)
|
||||||
include $(GAMMADIR)/make/scm.make
|
include $(GAMMADIR)/make/scm.make
|
||||||
include $(GAMMADIR)/make/altsrc.make
|
include $(GAMMADIR)/make/altsrc.make
|
||||||
|
|
||||||
|
@ -65,7 +66,7 @@ QUIETLY$(MAKE_VERBOSE) = @
|
||||||
# For now, until the compiler is less wobbly:
|
# For now, until the compiler is less wobbly:
|
||||||
TESTFLAGS = -Xbatch -showversion
|
TESTFLAGS = -Xbatch -showversion
|
||||||
|
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
|
PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero
|
||||||
else
|
else
|
||||||
ifdef USE_SUNCC
|
ifdef USE_SUNCC
|
||||||
|
@ -244,6 +245,8 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
|
||||||
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
||||||
echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
|
echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
|
||||||
echo; \
|
echo; \
|
||||||
|
[ -n "$(SPEC)" ] && \
|
||||||
|
echo "include $(SPEC)"; \
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
@ -326,11 +329,10 @@ env.sh: $(BUILDTREE_MAKE)
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
|
[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
|
||||||
{ \
|
{ \
|
||||||
echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
|
||||||
echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
|
echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
|
||||||
} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
|
} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
|
||||||
echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
|
echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
|
||||||
echo "export JAVA_HOME LD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \
|
echo "export JAVA_HOME CLASSPATH HOTSPOT_BUILD_USER"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
|
||||||
env.csh: env.sh
|
env.csh: env.sh
|
||||||
|
@ -384,7 +386,7 @@ JAVA_FLAG/32 = -d32
|
||||||
JAVA_FLAG/64 = -d64
|
JAVA_FLAG/64 = -d64
|
||||||
|
|
||||||
WRONG_DATA_MODE_MSG = \
|
WRONG_DATA_MODE_MSG = \
|
||||||
echo "JAVA_HOME must point to $(DATA_MODE)bit JDK."
|
echo "JAVA_HOME must point to a $(DATA_MODE)-bit OpenJDK."
|
||||||
|
|
||||||
CROSS_COMPILING_MSG = \
|
CROSS_COMPILING_MSG = \
|
||||||
echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
|
echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
|
||||||
|
@ -392,19 +394,78 @@ CROSS_COMPILING_MSG = \
|
||||||
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
|
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
|
||||||
@echo Creating $@ ...
|
@echo Creating $@ ...
|
||||||
$(QUIETLY) ( \
|
$(QUIETLY) ( \
|
||||||
echo '#!/bin/sh'; \
|
echo "#!/bin/sh"; \
|
||||||
|
echo ""; \
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
echo '. ./env.sh'; \
|
echo ""; \
|
||||||
echo "if [ \"$(CROSS_COMPILE_ARCH)\" != \"\" ]; then { $(CROSS_COMPILING_MSG); exit 0; }; fi"; \
|
echo "# Include environment settings for gamma run"; \
|
||||||
echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \
|
echo ""; \
|
||||||
echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \
|
echo ". ./env.sh"; \
|
||||||
echo "then"; \
|
echo ""; \
|
||||||
echo " $(WRONG_DATA_MODE_MSG); exit 0;"; \
|
echo "# Do not run gamma test for cross compiles"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ -n \"$(CROSS_COMPILE_ARCH)\" ]; then "; \
|
||||||
|
echo " $(CROSS_COMPILING_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
echo "fi"; \
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Make sure JAVA_HOME is set as it is required for gamma"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ -z \"\$${JAVA_HOME}\" ]; then "; \
|
||||||
|
echo " $(NO_JAVA_HOME_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Check JAVA_HOME version to be used for the test"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "\$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion > /dev/null 2>&1"; \
|
||||||
|
echo "if [ \$$? -ne 0 ]; then "; \
|
||||||
|
echo " $(WRONG_DATA_MODE_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Use gamma_g if it exists"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "GAMMA_PROG=gamma"; \
|
||||||
|
echo "if [ -f gamma_g ]; then "; \
|
||||||
|
echo " GAMMA_PROG=gamma_g"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
|
||||||
|
echo " # Ensure architecture for gamma and JAVA_HOME is the same."; \
|
||||||
|
echo " # NOTE: gamma assumes the OpenJDK directory layout."; \
|
||||||
|
echo ""; \
|
||||||
|
echo " GAMMA_ARCH=\"\`file \$${GAMMA_PROG} | awk '{print \$$NF}'\`\""; \
|
||||||
|
echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/libjava.$(LIBRARY_SUFFIX)\""; \
|
||||||
|
echo " if [ ! -f \$${JVM_LIB} ]; then"; \
|
||||||
|
echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/$${LIBARCH}/libjava.$(LIBRARY_SUFFIX)\""; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo " if [ ! -f \$${JVM_LIB} ] || [ -z \"\`file \$${JVM_LIB} | grep \$${GAMMA_ARCH}\`\" ]; then "; \
|
||||||
|
echo " $(WRONG_DATA_MODE_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Compile Queens program for test"; \
|
||||||
|
echo ""; \
|
||||||
echo "rm -f Queens.class"; \
|
echo "rm -f Queens.class"; \
|
||||||
echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
|
echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
|
||||||
echo '[ -f gamma_g ] && { gamma=gamma_g; }'; \
|
echo ""; \
|
||||||
echo './$${gamma:-gamma} $(TESTFLAGS) Queens < /dev/null'; \
|
echo "# Set library path solely for gamma launcher test run"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
||||||
|
echo "export LD_LIBRARY_PATH"; \
|
||||||
|
echo "unset LD_LIBRARY_PATH_32"; \
|
||||||
|
echo "unset LD_LIBRARY_PATH_64"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
|
||||||
|
echo " DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/native_threads:\$${JAVA_HOME}/jre/lib:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
||||||
|
echo " export DYLD_LIBRARY_PATH"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Use the gamma launcher and JAVA_HOME to run the test"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "./\$${GAMMA_PROG} $(TESTFLAGS) Queens < /dev/null"; \
|
||||||
) > $@
|
) > $@
|
||||||
$(QUIETLY) chmod +x $@
|
$(QUIETLY) chmod +x $@
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -38,7 +38,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# zero
|
# zero
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||||
MAKE_ARGS += LP64=1
|
MAKE_ARGS += LP64=1
|
||||||
endif
|
endif
|
||||||
|
@ -114,6 +114,18 @@ ifeq ($(ARCH), ppc)
|
||||||
HS_ARCH = ppc
|
HS_ARCH = ppc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# On 32 bit linux we build server and client, on 64 bit just server.
|
||||||
|
ifeq ($(JVM_VARIANTS),)
|
||||||
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||||
|
JVM_VARIANTS:=client,server
|
||||||
|
JVM_VARIANT_CLIENT:=true
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
else
|
||||||
|
JVM_VARIANTS:=server
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# determine if HotSpot is being built in JDK6 or earlier version
|
# determine if HotSpot is being built in JDK6 or earlier version
|
||||||
JDK6_OR_EARLIER=0
|
JDK6_OR_EARLIER=0
|
||||||
ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
|
ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
|
||||||
|
@ -193,21 +205,21 @@ endif
|
||||||
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
||||||
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
||||||
|
|
||||||
ifndef BUILD_CLIENT_ONLY
|
EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
ifneq ($(OBJCOPY),)
|
ifneq ($(OBJCOPY),)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_CLIENT),true)
|
||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
ifneq ($(OBJCOPY),)
|
||||||
ifneq ($(OBJCOPY),)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -23,23 +23,28 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# CC, CPP & AS
|
# CC, CXX & AS
|
||||||
|
|
||||||
# When cross-compiling the ALT_COMPILER_PATH points
|
# If a SPEC is not set already, then use these defaults.
|
||||||
# to the cross-compilation toolset
|
ifeq ($(SPEC),)
|
||||||
ifdef CROSS_COMPILE_ARCH
|
# When cross-compiling the ALT_COMPILER_PATH points
|
||||||
CPP = $(ALT_COMPILER_PATH)/g++
|
# to the cross-compilation toolset
|
||||||
CC = $(ALT_COMPILER_PATH)/gcc
|
ifdef CROSS_COMPILE_ARCH
|
||||||
HOSTCPP = g++
|
CXX = $(ALT_COMPILER_PATH)/g++
|
||||||
HOSTCC = gcc
|
CC = $(ALT_COMPILER_PATH)/gcc
|
||||||
else
|
HOSTCXX = g++
|
||||||
CPP = g++
|
HOSTCC = gcc
|
||||||
CC = gcc
|
STRIP = $(ALT_COMPILER_PATH)/strip
|
||||||
HOSTCPP = $(CPP)
|
else
|
||||||
HOSTCC = $(CC)
|
CXX = g++
|
||||||
|
CC = gcc
|
||||||
|
HOSTCXX = $(CXX)
|
||||||
|
HOSTCC = $(CC)
|
||||||
|
STRIP = strip
|
||||||
|
endif
|
||||||
|
AS = $(CC) -c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
AS = $(CC) -c
|
|
||||||
|
|
||||||
# -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only
|
# -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only
|
||||||
# prints the numbers (e.g. "2.95", "3.2.1")
|
# prints the numbers (e.g. "2.95", "3.2.1")
|
||||||
|
@ -67,10 +72,11 @@ VM_PICFLAG/LIBJVM = $(PICFLAG)
|
||||||
VM_PICFLAG/AOUT =
|
VM_PICFLAG/AOUT =
|
||||||
VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO))
|
VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO))
|
||||||
|
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZERO), true)
|
||||||
CFLAGS += $(LIBFFI_CFLAGS)
|
CFLAGS += $(LIBFFI_CFLAGS)
|
||||||
endif
|
endif
|
||||||
ifeq ($(SHARK_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
|
CFLAGS += $(LIBFFI_CFLAGS)
|
||||||
CFLAGS += $(LLVM_CFLAGS)
|
CFLAGS += $(LLVM_CFLAGS)
|
||||||
endif
|
endif
|
||||||
CFLAGS += $(VM_PICFLAG)
|
CFLAGS += $(VM_PICFLAG)
|
||||||
|
@ -261,9 +267,3 @@ endif
|
||||||
ifdef MINIMIZE_RAM_USAGE
|
ifdef MINIMIZE_RAM_USAGE
|
||||||
CFLAGS += -DMINIMIZE_RAM_USAGE
|
CFLAGS += -DMINIMIZE_RAM_USAGE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CROSS_COMPILE_ARCH
|
|
||||||
STRIP = $(ALT_COMPILER_PATH)/strip
|
|
||||||
else
|
|
||||||
STRIP = strip
|
|
||||||
endif
|
|
||||||
|
|
|
@ -54,10 +54,10 @@ else
|
||||||
LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINK_LAUNCHER = $(LINK.c)
|
LINK_LAUNCHER = $(LINK.CC)
|
||||||
|
|
||||||
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
|
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK)
|
||||||
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
|
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK)
|
||||||
|
|
||||||
LAUNCHER_OUT = launcher
|
LAUNCHER_OUT = launcher
|
||||||
|
|
||||||
|
@ -73,11 +73,11 @@ DEPFILES := $(patsubst %.o,%.d,$(OBJS))
|
||||||
|
|
||||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
||||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
||||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||||
$(QUIETLY) echo Linking launcher...
|
$(QUIETLY) echo Linking launcher...
|
||||||
|
|
|
@ -28,3 +28,6 @@ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
|
||||||
# Must also specify if CPU is big endian
|
# Must also specify if CPU is big endian
|
||||||
CFLAGS += -DVM_BIG_ENDIAN
|
CFLAGS += -DVM_BIG_ENDIAN
|
||||||
|
|
||||||
|
ifdef E500V2
|
||||||
|
ASFLAGS += -Wa,-mspe -Wa,--defsym -Wa,E500V2=1
|
||||||
|
endif
|
||||||
|
|
|
@ -52,4 +52,4 @@ STRIP_AOUT = $(STRIP) -x $@ || exit 1;
|
||||||
|
|
||||||
# If we can create .debuginfo files, then the VM is stripped in vm.make
|
# If we can create .debuginfo files, then the VM is stripped in vm.make
|
||||||
# and this macro is not used.
|
# and this macro is not used.
|
||||||
# LINK_LIB.CC/POST_HOOK += $(STRIP_$(LINK_INTO))
|
# LINK_LIB.CXX/POST_HOOK += $(STRIP_$(LINK_INTO))
|
||||||
|
|
|
@ -27,52 +27,39 @@
|
||||||
# Tell make that .cpp is important
|
# Tell make that .cpp is important
|
||||||
.SUFFIXES: .cpp $(SUFFIXES)
|
.SUFFIXES: .cpp $(SUFFIXES)
|
||||||
|
|
||||||
# For now. Other makefiles use CPP as the c++ compiler, but that should really
|
|
||||||
# name the preprocessor.
|
|
||||||
ifeq ($(CCC),)
|
|
||||||
CCC = $(CPP)
|
|
||||||
endif
|
|
||||||
|
|
||||||
DEMANGLER = c++filt
|
DEMANGLER = c++filt
|
||||||
DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
|
DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
|
||||||
|
|
||||||
# $(CC) is the c compiler (cc/gcc), $(CCC) is the c++ compiler (CC/g++).
|
# $(CC) is the c compiler (cc/gcc), $(CXX) is the c++ compiler (CC/g++).
|
||||||
C_COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS)
|
CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
|
||||||
CC_COMPILE = $(CCC) $(CPPFLAGS) $(CFLAGS)
|
CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
|
||||||
|
|
||||||
AS.S = $(AS) $(ASFLAGS)
|
AS.S = $(AS) $(ASFLAGS)
|
||||||
|
|
||||||
COMPILE.c = $(C_COMPILE) -c
|
COMPILE.CC = $(CC_COMPILE) -c
|
||||||
GENASM.c = $(C_COMPILE) -S
|
GENASM.CC = $(CC_COMPILE) -S
|
||||||
LINK.c = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
LINK_LIB.c = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
||||||
PREPROCESS.c = $(C_COMPILE) -E
|
PREPROCESS.CC = $(CC_COMPILE) -E
|
||||||
|
|
||||||
COMPILE.CC = $(CC_COMPILE) -c
|
COMPILE.CXX = $(CXX_COMPILE) -c
|
||||||
GENASM.CC = $(CC_COMPILE) -S
|
GENASM.CXX = $(CXX_COMPILE) -S
|
||||||
LINK.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
LINK_NOPROF.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS)
|
LINK_NOPROF.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS)
|
||||||
LINK_LIB.CC = $(CCC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CXX = $(CXX) $(LFLAGS) $(SHARED_FLAG)
|
||||||
PREPROCESS.CC = $(CC_COMPILE) -E
|
PREPROCESS.CXX = $(CXX_COMPILE) -E
|
||||||
|
|
||||||
# cross compiling the jvm with c2 requires host compilers to build
|
# cross compiling the jvm with c2 requires host compilers to build
|
||||||
# adlc tool
|
# adlc tool
|
||||||
|
|
||||||
HOST.CC_COMPILE = $(HOSTCPP) $(CPPFLAGS) $(CFLAGS)
|
HOST.CXX_COMPILE = $(HOSTCXX) $(CXXFLAGS) $(CFLAGS)
|
||||||
HOST.COMPILE.CC = $(HOST.CC_COMPILE) -c
|
HOST.COMPILE.CXX = $(HOST.CXX_COMPILE) -c
|
||||||
HOST.LINK_NOPROF.CC = $(HOSTCPP) $(LFLAGS) $(AOUT_FLAGS)
|
HOST.LINK_NOPROF.CXX = $(HOSTCXX) $(LFLAGS) $(AOUT_FLAGS)
|
||||||
|
|
||||||
|
|
||||||
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
|
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
|
||||||
REMOVE_TARGET = rm -f $@
|
REMOVE_TARGET = rm -f $@
|
||||||
|
|
||||||
# Synonyms.
|
|
||||||
COMPILE.cpp = $(COMPILE.CC)
|
|
||||||
GENASM.cpp = $(GENASM.CC)
|
|
||||||
LINK.cpp = $(LINK.CC)
|
|
||||||
LINK_LIB.cpp = $(LINK_LIB.CC)
|
|
||||||
PREPROCESS.cpp = $(PREPROCESS.CC)
|
|
||||||
|
|
||||||
# Note use of ALT_BOOTDIR to explicitly specify location of java and
|
# Note use of ALT_BOOTDIR to explicitly specify location of java and
|
||||||
# javac; this is the same environment variable used in the J2SE build
|
# javac; this is the same environment variable used in the J2SE build
|
||||||
# process for overriding the default spec, which is BOOTDIR.
|
# process for overriding the default spec, which is BOOTDIR.
|
||||||
|
@ -161,14 +148,14 @@ ifdef LP64
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
||||||
else
|
else
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
||||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
$(subst $(VM_PICFLAG), ,$(COMPILE.CXX)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
||||||
$(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
$(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
%.o: %.s
|
%.o: %.s
|
||||||
|
@ -178,13 +165,13 @@ endif
|
||||||
|
|
||||||
%.s: %.cpp
|
%.s: %.cpp
|
||||||
@echo Generating assembly for $<
|
@echo Generating assembly for $<
|
||||||
$(QUIETLY) $(GENASM.CC) -o $@ $<
|
$(QUIETLY) $(GENASM.CXX) -o $@ $<
|
||||||
$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
|
$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
|
||||||
|
|
||||||
# Intermediate files (for debugging macros)
|
# Intermediate files (for debugging macros)
|
||||||
%.i: %.cpp
|
%.i: %.cpp
|
||||||
@echo Preprocessing $< to $@
|
@echo Preprocessing $< to $@
|
||||||
$(QUIETLY) $(PREPROCESS.CC) $< > $@ $(COMPILE_DONE)
|
$(QUIETLY) $(PREPROCESS.CXX) $< > $@ $(COMPILE_DONE)
|
||||||
|
|
||||||
# Override gnumake built-in rules which do sccs get operations badly.
|
# Override gnumake built-in rules which do sccs get operations badly.
|
||||||
# (They put the checked out code in the current directory, not in the
|
# (They put the checked out code in the current directory, not in the
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -75,6 +75,7 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
|
||||||
fi
|
fi
|
||||||
@echo Making SA debugger back-end...
|
@echo Making SA debugger back-end...
|
||||||
$(QUIETLY) $(CC) -D$(BUILDARCH) -D_GNU_SOURCE \
|
$(QUIETLY) $(CC) -D$(BUILDARCH) -D_GNU_SOURCE \
|
||||||
|
-D_FILE_OFFSET_BITS=64 \
|
||||||
$(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
$(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
||||||
-I$(SASRCDIR) \
|
-I$(SASRCDIR) \
|
||||||
-I$(GENERATED) \
|
-I$(GENERATED) \
|
||||||
|
|
|
@ -23,14 +23,17 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# CC, CPP & AS
|
# CC, CXX & AS
|
||||||
|
|
||||||
CPP = CC
|
# If a SPEC is not set already, then use these defaults.
|
||||||
CC = cc
|
ifeq ($(SPEC),)
|
||||||
AS = $(CC) -c
|
CXX = CC
|
||||||
|
CC = cc
|
||||||
|
AS = $(CC) -c
|
||||||
|
|
||||||
HOSTCPP = $(CPP)
|
HOSTCXX = $(CXX)
|
||||||
HOSTCC = $(CC)
|
HOSTCC = $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
|
ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
|
||||||
ARCHFLAG/i486 = -m32
|
ARCHFLAG/i486 = -m32
|
||||||
|
|
|
@ -115,8 +115,8 @@ the_vm: vm_build_preliminaries $(adjust-mflags)
|
||||||
@$(UpdatePCH)
|
@$(UpdatePCH)
|
||||||
@$(MAKE) -f vm.make $(MFLAGS-adjusted)
|
@$(MAKE) -f vm.make $(MFLAGS-adjusted)
|
||||||
|
|
||||||
install: the_vm
|
install gamma: the_vm
|
||||||
@$(MAKE) -f vm.make install
|
@$(MAKE) -f vm.make $@
|
||||||
|
|
||||||
# next rules support "make foo.[ois]"
|
# next rules support "make foo.[ois]"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -42,7 +42,7 @@ DEP_DIR = $(GENERATED)/dependencies
|
||||||
-include $(DEP_DIR)/*.d
|
-include $(DEP_DIR)/*.d
|
||||||
|
|
||||||
# read machine-specific adjustments (%%% should do this via buildtree.make?)
|
# read machine-specific adjustments (%%% should do this via buildtree.make?)
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
include $(MAKEFILES_DIR)/zeroshark.make
|
include $(MAKEFILES_DIR)/zeroshark.make
|
||||||
else
|
else
|
||||||
include $(MAKEFILES_DIR)/$(BUILDARCH).make
|
include $(MAKEFILES_DIR)/$(BUILDARCH).make
|
||||||
|
@ -88,16 +88,20 @@ BUILD_TARGET = -DHOTSPOT_BUILD_TARGET="\"$(TARGET)\""
|
||||||
BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
|
BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
|
||||||
VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
|
VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
|
||||||
|
|
||||||
CPPFLAGS = \
|
CXXFLAGS = \
|
||||||
${SYSDEFS} \
|
${SYSDEFS} \
|
||||||
${INCLUDES} \
|
${INCLUDES} \
|
||||||
${BUILD_VERSION} \
|
${BUILD_VERSION} \
|
||||||
${BUILD_TARGET} \
|
${BUILD_TARGET} \
|
||||||
${BUILD_USER} \
|
${BUILD_USER} \
|
||||||
${HS_LIB_ARCH} \
|
${HS_LIB_ARCH} \
|
||||||
${JRE_VERSION} \
|
|
||||||
${VM_DISTRO}
|
${VM_DISTRO}
|
||||||
|
|
||||||
|
# This is VERY important! The version define must only be supplied to vm_version.o
|
||||||
|
# If not, ccache will not re-use the cache at all, since the version string might contain
|
||||||
|
# a time and date.
|
||||||
|
vm_version.o: CXXFLAGS += ${JRE_VERSION}
|
||||||
|
|
||||||
ifndef JAVASE_EMBEDDED
|
ifndef JAVASE_EMBEDDED
|
||||||
CFLAGS += -DINCLUDE_TRACE
|
CFLAGS += -DINCLUDE_TRACE
|
||||||
endif
|
endif
|
||||||
|
@ -232,7 +236,7 @@ mapfile_reorder : mapfile $(REORDERFILE)
|
||||||
vm.def: $(Res_Files) $(Obj_Files)
|
vm.def: $(Res_Files) $(Obj_Files)
|
||||||
sh $(GAMMADIR)/make/linux/makefiles/build_vm_def.sh *.o > $@
|
sh $(GAMMADIR)/make/linux/makefiles/build_vm_def.sh *.o > $@
|
||||||
|
|
||||||
ifeq ($(SHARK_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
STATIC_CXX = false
|
STATIC_CXX = false
|
||||||
else
|
else
|
||||||
ifeq ($(ZERO_LIBARCH), ppc64)
|
ifeq ($(ZERO_LIBARCH), ppc64)
|
||||||
|
@ -264,21 +268,21 @@ else
|
||||||
|
|
||||||
LIBS_VM += $(LIBS)
|
LIBS_VM += $(LIBS)
|
||||||
endif
|
endif
|
||||||
ifeq ($(ZERO_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZERO), true)
|
||||||
LIBS_VM += $(LIBFFI_LIBS)
|
LIBS_VM += $(LIBFFI_LIBS)
|
||||||
endif
|
endif
|
||||||
ifeq ($(SHARK_BUILD), true)
|
ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
|
LIBS_VM += $(LIBFFI_LIBS) $(LLVM_LIBS)
|
||||||
LFLAGS_VM += $(LLVM_LDFLAGS)
|
LFLAGS_VM += $(LLVM_LDFLAGS)
|
||||||
LIBS_VM += $(LLVM_LIBS)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINK_VM = $(LINK_LIB.c)
|
LINK_VM = $(LINK_LIB.CC)
|
||||||
|
|
||||||
# rule for building precompiled header
|
# rule for building precompiled header
|
||||||
$(PRECOMPILED_HEADER):
|
$(PRECOMPILED_HEADER):
|
||||||
$(QUIETLY) echo Generating precompiled header $@
|
$(QUIETLY) echo Generating precompiled header $@
|
||||||
$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
|
$(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
|
||||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
|
||||||
|
|
||||||
# making the library:
|
# making the library:
|
||||||
|
|
||||||
|
@ -308,10 +312,10 @@ endif
|
||||||
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
||||||
$(QUIETLY) { \
|
$(QUIETLY) { \
|
||||||
echo Linking vm...; \
|
echo Linking vm...; \
|
||||||
$(LINK_LIB.CC/PRE_HOOK) \
|
$(LINK_LIB.CXX/PRE_HOOK) \
|
||||||
$(LINK_VM) $(LD_SCRIPT_FLAG) \
|
$(LINK_VM) $(LD_SCRIPT_FLAG) \
|
||||||
$(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM); \
|
$(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM); \
|
||||||
$(LINK_LIB.CC/POST_HOOK) \
|
$(LINK_LIB.CXX/POST_HOOK) \
|
||||||
rm -f $@.1; ln -s $@ $@.1; \
|
rm -f $@.1; ln -s $@ $@.1; \
|
||||||
[ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
|
[ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
|
||||||
if [ \"$(CROSS_COMPILE_ARCH)\" = \"\" ] ; then \
|
if [ \"$(CROSS_COMPILE_ARCH)\" = \"\" ] ; then \
|
||||||
|
@ -364,9 +368,12 @@ include $(MAKEFILES_DIR)/jsig.make
|
||||||
# Serviceability agent
|
# Serviceability agent
|
||||||
include $(MAKEFILES_DIR)/saproc.make
|
include $(MAKEFILES_DIR)/saproc.make
|
||||||
|
|
||||||
|
# Whitebox testing API
|
||||||
|
include $(MAKEFILES_DIR)/wb.make
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
|
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) $(WB_JAR)
|
||||||
|
|
||||||
install: install_jvm install_jsig install_saproc
|
install: install_jvm install_jsig install_saproc
|
||||||
|
|
||||||
|
|
46
hotspot/make/linux/makefiles/wb.make
Normal file
46
hotspot/make/linux/makefiles/wb.make
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012, 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Rules to build whitebox testing library, used by vm.make
|
||||||
|
WB = wb
|
||||||
|
|
||||||
|
WBSRCDIR = $(GAMMADIR)/src/share/tools/whitebox
|
||||||
|
|
||||||
|
WB_JAR = $(GENERATED)/$(WB).jar
|
||||||
|
|
||||||
|
WB_JAVA_SRCS = $(shell find $(WBSRCDIR) -name '*.java')
|
||||||
|
WB_JAVA_CLASSDIR = $(GENERATED)/wb/classes
|
||||||
|
|
||||||
|
WB_JAVA_CLASSES = $(patsubst $(WBSRCDIR)/%,$(WB_JAVA_CLASSDIR)/%, \
|
||||||
|
$(patsubst %.java,%.class,$(WB_JAVA_SRCS)))
|
||||||
|
|
||||||
|
$(WB_JAVA_CLASSDIR)/%.class: $(WBSRCDIR)/%.java $(WB_JAVA_CLASSDIR)
|
||||||
|
$(REMOTE) $(COMPILE.JAVAC) -nowarn -d $(WB_JAVA_CLASSDIR) $<
|
||||||
|
|
||||||
|
$(WB_JAR): $(WB_JAVA_CLASSES)
|
||||||
|
$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(WB_JAVA_CLASSDIR)/ .
|
||||||
|
|
||||||
|
$(WB_JAVA_CLASSDIR):
|
||||||
|
$(QUIETLY) mkdir -p $@
|
||||||
|
|
|
@ -62,10 +62,10 @@ Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
|
||||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||||
|
|
||||||
# set flags for adlc compilation
|
# set flags for adlc compilation
|
||||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
CXXFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||||
|
|
||||||
# Force assertions on.
|
# Force assertions on.
|
||||||
CPPFLAGS += -DASSERT
|
CXXFLAGS += -DASSERT
|
||||||
|
|
||||||
ifndef USE_GCC
|
ifndef USE_GCC
|
||||||
# We need libCstd.so for adlc
|
# We need libCstd.so for adlc
|
||||||
|
@ -130,7 +130,7 @@ all: $(EXEC)
|
||||||
|
|
||||||
$(EXEC) : $(OBJECTS)
|
$(EXEC) : $(OBJECTS)
|
||||||
@echo Making adlc
|
@echo Making adlc
|
||||||
$(QUIETLY) $(LINK_NOPROF.CC) -o $(EXEC) $(OBJECTS)
|
$(QUIETLY) $(LINK_NOPROF.CXX) -o $(EXEC) $(OBJECTS)
|
||||||
|
|
||||||
# Random dependencies:
|
# Random dependencies:
|
||||||
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
|
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
|
||||||
|
@ -228,14 +228,14 @@ PROCESS_AD_FILES = awk '{ \
|
||||||
$(OUTDIR)/%.o: %.cpp
|
$(OUTDIR)/%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) -o $@ $< $(COMPILE_DONE)
|
||||||
|
|
||||||
# Some object files are given a prefix, to disambiguate
|
# Some object files are given a prefix, to disambiguate
|
||||||
# them from objects of the same name built for the VM.
|
# them from objects of the same name built for the VM.
|
||||||
$(OUTDIR)/adlc-%.o: %.cpp
|
$(OUTDIR)/adlc-%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) -o $@ $< $(COMPILE_DONE)
|
||||||
|
|
||||||
# #########################################################################
|
# #########################################################################
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
# The makefiles are split this way so that "make foo" will run faster by not
|
# The makefiles are split this way so that "make foo" will run faster by not
|
||||||
# having to read the dependency files for the vm.
|
# having to read the dependency files for the vm.
|
||||||
|
|
||||||
|
-include $(SPEC)
|
||||||
include $(GAMMADIR)/make/scm.make
|
include $(GAMMADIR)/make/scm.make
|
||||||
include $(GAMMADIR)/make/altsrc.make
|
include $(GAMMADIR)/make/altsrc.make
|
||||||
|
|
||||||
|
@ -118,7 +119,7 @@ SUBMAKE_DIRS = $(addprefix $(PLATFORM_DIR)/,$(TARGETS))
|
||||||
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
|
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
|
||||||
|
|
||||||
BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
|
BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make sa.make \
|
||||||
env.ksh env.csh jdkpath.sh .dbxrc test_gamma
|
env.sh env.csh jdkpath.sh .dbxrc test_gamma
|
||||||
|
|
||||||
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
|
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
|
||||||
ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
|
ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
|
||||||
|
@ -237,6 +238,8 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
|
||||||
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
||||||
echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
|
echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
|
||||||
echo; \
|
echo; \
|
||||||
|
[ -n "$(SPEC)" ] && \
|
||||||
|
echo "include $(SPEC)"; \
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
@ -313,22 +316,19 @@ sa.make: $(BUILDTREE_MAKE)
|
||||||
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
|
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
|
||||||
env.ksh: $(BUILDTREE_MAKE)
|
env.sh: $(BUILDTREE_MAKE)
|
||||||
@echo Creating $@ ...
|
@echo Creating $@ ...
|
||||||
$(QUIETLY) ( \
|
$(QUIETLY) ( \
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
|
[ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \
|
||||||
{ \
|
{ \
|
||||||
echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
|
||||||
echo "unset LD_LIBRARY_PATH_32"; \
|
|
||||||
echo "unset LD_LIBRARY_PATH_64"; \
|
|
||||||
echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
|
echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \
|
||||||
} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
|
} | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \
|
||||||
echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
|
echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \
|
||||||
echo "export JAVA_HOME LD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \
|
echo "export JAVA_HOME LD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \
|
||||||
) > $@
|
) > $@
|
||||||
|
|
||||||
env.csh: env.ksh
|
env.csh: env.sh
|
||||||
@echo Creating $@ ...
|
@echo Creating $@ ...
|
||||||
$(QUIETLY) ( \
|
$(QUIETLY) ( \
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
|
@ -384,23 +384,86 @@ JAVA_FLAG/32 = -d32
|
||||||
JAVA_FLAG/64 = -d64
|
JAVA_FLAG/64 = -d64
|
||||||
|
|
||||||
WRONG_DATA_MODE_MSG = \
|
WRONG_DATA_MODE_MSG = \
|
||||||
echo "JAVA_HOME must point to $(DATA_MODE)bit JDK."
|
echo "JAVA_HOME must point to a $(DATA_MODE)-bit OpenJDK."
|
||||||
|
|
||||||
|
CROSS_COMPILING_MSG = \
|
||||||
|
echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run."
|
||||||
|
|
||||||
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
|
test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java
|
||||||
@echo Creating $@ ...
|
@echo Creating $@ ...
|
||||||
$(QUIETLY) ( \
|
$(QUIETLY) ( \
|
||||||
echo '#!/bin/ksh'; \
|
echo "#!/bin/sh"; \
|
||||||
|
echo ""; \
|
||||||
$(BUILDTREE_COMMENT); \
|
$(BUILDTREE_COMMENT); \
|
||||||
echo '. ./env.ksh'; \
|
echo ""; \
|
||||||
echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \
|
echo "# Include environment settings for gamma run"; \
|
||||||
echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \
|
echo ""; \
|
||||||
echo "then"; \
|
echo ". ./env.sh"; \
|
||||||
echo " $(WRONG_DATA_MODE_MSG); exit 0;"; \
|
echo ""; \
|
||||||
|
echo "# Do not run gamma test for cross compiles"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ -n \"$(CROSS_COMPILE_ARCH)\" ]; then "; \
|
||||||
|
echo " $(CROSS_COMPILING_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
echo "fi"; \
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Make sure JAVA_HOME is set as it is required for gamma"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ -z \"\$${JAVA_HOME}\" ]; then "; \
|
||||||
|
echo " $(NO_JAVA_HOME_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Check JAVA_HOME version to be used for the test"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "\$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion > /dev/null 2>&1"; \
|
||||||
|
echo "if [ \$$? -ne 0 ]; then "; \
|
||||||
|
echo " $(WRONG_DATA_MODE_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Use gamma_g if it exists"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "GAMMA_PROG=gamma"; \
|
||||||
|
echo "if [ -f gamma_g ]; then "; \
|
||||||
|
echo " GAMMA_PROG=gamma_g"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
|
||||||
|
echo " # Ensure architecture for gamma and JAVA_HOME is the same."; \
|
||||||
|
echo " # NOTE: gamma assumes the OpenJDK directory layout."; \
|
||||||
|
echo ""; \
|
||||||
|
echo " GAMMA_ARCH=\"\`file \$${GAMMA_PROG} | awk '{print \$$NF}'\`\""; \
|
||||||
|
echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/libjava.$(LIBRARY_SUFFIX)\""; \
|
||||||
|
echo " if [ ! -f \$${JVM_LIB} ]; then"; \
|
||||||
|
echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/$${LIBARCH}/libjava.$(LIBRARY_SUFFIX)\""; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo " if [ ! -f \$${JVM_LIB} ] || [ -z \"\`file \$${JVM_LIB} | grep \$${GAMMA_ARCH}\`\" ]; then "; \
|
||||||
|
echo " $(WRONG_DATA_MODE_MSG)"; \
|
||||||
|
echo " exit 0"; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Compile Queens program for test"; \
|
||||||
|
echo ""; \
|
||||||
echo "rm -f Queens.class"; \
|
echo "rm -f Queens.class"; \
|
||||||
echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
|
echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \
|
||||||
echo '[ -f gamma_g ] && { gamma=gamma_g; }'; \
|
echo ""; \
|
||||||
echo './$${gamma:-gamma} $(TESTFLAGS) Queens < /dev/null'; \
|
echo "# Set library path solely for gamma launcher test run"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
||||||
|
echo "export LD_LIBRARY_PATH"; \
|
||||||
|
echo "unset LD_LIBRARY_PATH_32"; \
|
||||||
|
echo "unset LD_LIBRARY_PATH_64"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
|
||||||
|
echo " DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/native_threads:\$${JAVA_HOME}/jre/lib:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \
|
||||||
|
echo " export DYLD_LIBRARY_PATH"; \
|
||||||
|
echo "fi"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "# Use the gamma launcher and JAVA_HOME to run the test"; \
|
||||||
|
echo ""; \
|
||||||
|
echo "./\$${GAMMA_PROG} $(TESTFLAGS) Queens < /dev/null"; \
|
||||||
) > $@
|
) > $@
|
||||||
$(QUIETLY) chmod +x $@
|
$(QUIETLY) chmod +x $@
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -59,6 +59,18 @@ else
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# On 32 bit solaris we build server and client, on 64 bit just server.
|
||||||
|
ifeq ($(JVM_VARIANTS),)
|
||||||
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||||
|
JVM_VARIANTS:=client,server
|
||||||
|
JVM_VARIANT_CLIENT:=true
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
else
|
||||||
|
JVM_VARIANTS:=server
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# determine if HotSpot is being built in JDK6 or earlier version
|
# determine if HotSpot is being built in JDK6 or earlier version
|
||||||
JDK6_OR_EARLIER=0
|
JDK6_OR_EARLIER=0
|
||||||
ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
|
ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
|
||||||
|
@ -148,40 +160,42 @@ ifneq ($(OBJCOPY),)
|
||||||
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
|
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
|
||||||
|
|
||||||
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
||||||
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
||||||
|
|
||||||
ifneq ($(BUILD_CLIENT_ONLY),true)
|
ifeq ($(JVM_VARIANT_SERVER),true)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
||||||
|
ifeq ($(ARCH_DATA_MODEL),32)
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
||||||
|
endif
|
||||||
ifneq ($(OBJCOPY),)
|
ifneq ($(OBJCOPY),)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
ifeq ($(JVM_VARIANT_CLIENT),true)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
|
ifeq ($(ARCH_DATA_MODEL),32)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
|
||||||
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
||||||
|
endif
|
||||||
ifneq ($(OBJCOPY),)
|
ifneq ($(OBJCOPY),)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
|
ifeq ($(ARCH_DATA_MODEL),32)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
|
||||||
endif
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
|
||||||
ifneq ($(BUILD_CLIENT_ONLY), true)
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
|
||||||
ifneq ($(OBJCOPY),)
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -150,11 +150,11 @@ endif
|
||||||
|
|
||||||
lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
||||||
$(LIBJVM.o)
|
$(LIBJVM.o)
|
||||||
$(QUIETLY) $(CCC) $(CPPFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
$(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
||||||
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc
|
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc
|
||||||
|
|
||||||
$(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).so
|
$(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).so
|
||||||
$(QUIETLY) $(LINK.CC) -z nodefs -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
$(QUIETLY) $(LINK.CXX) -z nodefs -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
||||||
./lib$(GENOFFS).so
|
./lib$(GENOFFS).so
|
||||||
|
|
||||||
CONDITIONALLY_UPDATE_JVMOFFS_TARGET = \
|
CONDITIONALLY_UPDATE_JVMOFFS_TARGET = \
|
||||||
|
@ -178,7 +178,7 @@ $(JVMOFFS).cpp: $(GENOFFS) $(JVMOFFS).h $(JVMOFFS)Index.h
|
||||||
$(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
|
$(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
|
||||||
|
|
||||||
$(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp
|
$(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp
|
||||||
$(QUIETLY) $(CCC) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
|
$(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
|
||||||
|
|
||||||
$(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
|
$(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
|
||||||
@echo Making $@
|
@echo Making $@
|
||||||
|
|
|
@ -23,11 +23,15 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# CC, CPP & AS
|
# CC, CXX & AS
|
||||||
|
|
||||||
CPP = g++
|
# If a SPEC is not set already, then use these defaults.
|
||||||
CC = gcc
|
ifeq ($(SPEC),)
|
||||||
AS = $(CC) -c
|
CXX = g++
|
||||||
|
CC = gcc
|
||||||
|
AS = $(CC) -c
|
||||||
|
MCS = /usr/ccs/bin/mcs
|
||||||
|
endif
|
||||||
|
|
||||||
Compiler = gcc
|
Compiler = gcc
|
||||||
|
|
||||||
|
@ -36,12 +40,12 @@ Compiler = gcc
|
||||||
CC_VER_MAJOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1)
|
CC_VER_MAJOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1)
|
||||||
CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
|
CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
|
||||||
|
|
||||||
# Check for the versions of C++ and C compilers ($CPP and $CC) used.
|
# Check for the versions of C++ and C compilers ($CXX and $CC) used.
|
||||||
|
|
||||||
# Get the last thing on the line that looks like x.x+ (x is a digit).
|
# Get the last thing on the line that looks like x.x+ (x is a digit).
|
||||||
COMPILER_REV := \
|
COMPILER_REV := \
|
||||||
$(shell $(CPP) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1)
|
$(shell $(CXX) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1)
|
||||||
C_COMPILER_REV := \
|
CC_COMPILER_REV := \
|
||||||
$(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
|
$(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,5 +197,3 @@ DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
|
||||||
ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
|
ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
|
||||||
DEBUG_CFLAGS += -gstabs
|
DEBUG_CFLAGS += -gstabs
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MCS = /usr/ccs/bin/mcs
|
|
||||||
|
|
|
@ -52,10 +52,10 @@ else
|
||||||
LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINK_LAUNCHER = $(LINK.CC)
|
LINK_LAUNCHER = $(LINK.CXX)
|
||||||
|
|
||||||
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK)
|
LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK)
|
||||||
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
|
LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK)
|
||||||
|
|
||||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||||
# Enable the following LAUNCHERFLAGS addition if you need to compare the
|
# Enable the following LAUNCHERFLAGS addition if you need to compare the
|
||||||
|
@ -86,11 +86,11 @@ DEPFILES := $(patsubst %.o,%.d,$(OBJS))
|
||||||
|
|
||||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
|
||||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
|
||||||
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
|
||||||
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
|
$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
|
||||||
ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
|
ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
|
||||||
|
|
|
@ -70,7 +70,7 @@ endif
|
||||||
|
|
||||||
# If we can create .debuginfo files, then the VM is stripped in vm.make
|
# If we can create .debuginfo files, then the VM is stripped in vm.make
|
||||||
# and this macro is not used.
|
# and this macro is not used.
|
||||||
# LINK_LIB.CC/POST_HOOK += $(STRIP_LIB.CC/POST_HOOK)
|
# LINK_LIB.CXX/POST_HOOK += $(STRIP_LIB.CXX/POST_HOOK)
|
||||||
|
|
||||||
G_SUFFIX =
|
G_SUFFIX =
|
||||||
SYSDEFS += -DPRODUCT
|
SYSDEFS += -DPRODUCT
|
||||||
|
|
|
@ -27,44 +27,31 @@
|
||||||
# Tell make that .cpp is important
|
# Tell make that .cpp is important
|
||||||
.SUFFIXES: .cpp $(SUFFIXES)
|
.SUFFIXES: .cpp $(SUFFIXES)
|
||||||
|
|
||||||
# For now. Other makefiles use CPP as the c++ compiler, but that should really
|
|
||||||
# name the preprocessor.
|
|
||||||
ifeq ($(CCC),)
|
|
||||||
CCC = $(CPP)
|
|
||||||
endif
|
|
||||||
|
|
||||||
DEMANGLER = c++filt
|
DEMANGLER = c++filt
|
||||||
DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
|
DEMANGLE = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
|
||||||
|
|
||||||
# $(CC) is the c compiler (cc/gcc), $(CCC) is the c++ compiler (CC/g++).
|
# $(CC) is the c compiler (cc/gcc), $(CXX) is the c++ compiler (CC/g++).
|
||||||
C_COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS)
|
CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
|
||||||
CC_COMPILE = $(CCC) $(CPPFLAGS) $(CFLAGS)
|
CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
|
||||||
|
|
||||||
AS.S = $(AS) $(ASFLAGS)
|
AS.S = $(AS) $(ASFLAGS)
|
||||||
|
|
||||||
COMPILE.c = $(C_COMPILE) -c
|
COMPILE.CC = $(CC_COMPILE) -c
|
||||||
GENASM.c = $(C_COMPILE) -S
|
GENASM.CC = $(CC_COMPILE) -S
|
||||||
LINK.c = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
LINK_LIB.c = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
||||||
PREPROCESS.c = $(C_COMPILE) -E
|
PREPROCESS.CC = $(CC_COMPILE) -E
|
||||||
|
|
||||||
COMPILE.CC = $(CC_COMPILE) -c
|
COMPILE.CXX = $(CXX_COMPILE) -c
|
||||||
GENASM.CC = $(CC_COMPILE) -S
|
GENASM.CXX = $(CXX_COMPILE) -S
|
||||||
LINK.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
LINK_NOPROF.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS)
|
LINK_NOPROF.CXX = $(CXX) $(LFLAGS) $(AOUT_FLAGS)
|
||||||
LINK_LIB.CC = $(CCC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CXX = $(CXX) $(LFLAGS) $(SHARED_FLAG)
|
||||||
PREPROCESS.CC = $(CC_COMPILE) -E
|
PREPROCESS.CXX = $(CXX_COMPILE) -E
|
||||||
|
|
||||||
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
|
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
|
||||||
REMOVE_TARGET = rm -f $@
|
REMOVE_TARGET = rm -f $@
|
||||||
|
|
||||||
# Synonyms.
|
|
||||||
COMPILE.cpp = $(COMPILE.CC)
|
|
||||||
GENASM.cpp = $(GENASM.CC)
|
|
||||||
LINK.cpp = $(LINK.CC)
|
|
||||||
LINK_LIB.cpp = $(LINK_LIB.CC)
|
|
||||||
PREPROCESS.cpp = $(PREPROCESS.CC)
|
|
||||||
|
|
||||||
# Note use of ALT_BOOTDIR to explicitly specify location of java and
|
# Note use of ALT_BOOTDIR to explicitly specify location of java and
|
||||||
# javac; this is the same environment variable used in the J2SE build
|
# javac; this is the same environment variable used in the J2SE build
|
||||||
# process for overriding the default spec, which is BOOTDIR.
|
# process for overriding the default spec, which is BOOTDIR.
|
||||||
|
@ -153,14 +140,14 @@ ifdef LP64
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
$(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
|
||||||
else
|
else
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $<
|
@echo Compiling $<
|
||||||
$(QUIETLY) $(REMOVE_TARGET)
|
$(QUIETLY) $(REMOVE_TARGET)
|
||||||
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
|
||||||
$(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
$(subst $(VM_PICFLAG), ,$(COMPILE.CXX)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
|
||||||
$(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
$(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
%.o: %.s
|
%.o: %.s
|
||||||
|
@ -170,13 +157,13 @@ endif
|
||||||
|
|
||||||
%.s: %.cpp
|
%.s: %.cpp
|
||||||
@echo Generating assembly for $<
|
@echo Generating assembly for $<
|
||||||
$(QUIETLY) $(GENASM.CC) -o $@ $<
|
$(QUIETLY) $(GENASM.CXX) -o $@ $<
|
||||||
$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
|
$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
|
||||||
|
|
||||||
# Intermediate files (for debugging macros)
|
# Intermediate files (for debugging macros)
|
||||||
%.i: %.cpp
|
%.i: %.cpp
|
||||||
@echo Preprocessing $< to $@
|
@echo Preprocessing $< to $@
|
||||||
$(QUIETLY) $(PREPROCESS.CC) $< > $@ $(COMPILE_DONE)
|
$(QUIETLY) $(PREPROCESS.CXX) $< > $@ $(COMPILE_DONE)
|
||||||
|
|
||||||
# Override gnumake built-in rules which do sccs get operations badly.
|
# Override gnumake built-in rules which do sccs get operations badly.
|
||||||
# (They put the checked out code in the current directory, not in the
|
# (They put the checked out code in the current directory, not in the
|
||||||
|
|
|
@ -93,7 +93,7 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
@echo Making SA debugger back-end...
|
@echo Making SA debugger back-end...
|
||||||
$(QUIETLY) $(CPP) \
|
$(QUIETLY) $(CXX) \
|
||||||
$(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
$(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
||||||
-I$(SASRCDIR) \
|
-I$(SASRCDIR) \
|
||||||
-I$(GENERATED) \
|
-I$(GENERATED) \
|
||||||
|
|
|
@ -22,38 +22,42 @@
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
# Compiler-specific flags for sparcworks.
|
# If a SPEC is not set already, then use these defaults.
|
||||||
|
ifeq ($(SPEC),)
|
||||||
|
# Compiler-specific flags for sparcworks.
|
||||||
|
CC = cc
|
||||||
|
CXX = CC
|
||||||
|
|
||||||
# tell make which C and C++ compilers to use
|
# Note that this 'as' is an older version of the Sun Studio 'fbe', and will
|
||||||
CC = cc
|
# use the older style options. The 'fbe' options will match 'cc' and 'CC'.
|
||||||
CPP = CC
|
AS = /usr/ccs/bin/as
|
||||||
|
|
||||||
# Note that this 'as' is an older version of the Sun Studio 'fbe', and will
|
NM = /usr/ccs/bin/nm
|
||||||
# use the older style options. The 'fbe' options will match 'cc' and 'CC'.
|
NAWK = /bin/nawk
|
||||||
AS = /usr/ccs/bin/as
|
|
||||||
|
|
||||||
NM = /usr/ccs/bin/nm
|
MCS = /usr/ccs/bin/mcs
|
||||||
NAWK = /bin/nawk
|
STRIP = /usr/ccs/bin/strip
|
||||||
|
endif
|
||||||
|
|
||||||
REORDER_FLAG = -xF
|
REORDER_FLAG = -xF
|
||||||
|
|
||||||
# Check for the versions of C++ and C compilers ($CPP and $CC) used.
|
# Check for the versions of C++ and C compilers ($CXX and $CC) used.
|
||||||
|
|
||||||
# Get the last thing on the line that looks like x.x+ (x is a digit).
|
# Get the last thing on the line that looks like x.x+ (x is a digit).
|
||||||
COMPILER_REV := \
|
COMPILER_REV := \
|
||||||
$(shell $(CPP) -V 2>&1 | sed -n 's/^.*[ ,\t]C++[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
|
$(shell $(CXX) -V 2>&1 | sed -n 's/^.*[ ,\t]C++[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
|
||||||
C_COMPILER_REV := \
|
CC_COMPILER_REV := \
|
||||||
$(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
|
$(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
|
||||||
|
|
||||||
# Pick which compiler is validated
|
# Pick which compiler is validated
|
||||||
ifeq ($(JRE_RELEASE_VER),1.6.0)
|
ifeq ($(JRE_RELEASE_VER),1.6.0)
|
||||||
# Validated compiler for JDK6 is SS11 (5.8)
|
# Validated compiler for JDK6 is SS11 (5.8)
|
||||||
VALIDATED_COMPILER_REVS := 5.8
|
VALIDATED_COMPILER_REVS := 5.8
|
||||||
VALIDATED_C_COMPILER_REVS := 5.8
|
VALIDATED_CC_COMPILER_REVS := 5.8
|
||||||
else
|
else
|
||||||
# Validated compiler for JDK7 is SS12 update 1 + patches (5.10)
|
# Validated compiler for JDK7 is SS12 update 1 + patches (5.10)
|
||||||
VALIDATED_COMPILER_REVS := 5.10
|
VALIDATED_COMPILER_REVS := 5.10
|
||||||
VALIDATED_C_COMPILER_REVS := 5.10
|
VALIDATED_CC_COMPILER_REVS := 5.10
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Warning messages about not using the above validated versions
|
# Warning messages about not using the above validated versions
|
||||||
|
@ -67,13 +71,13 @@ dummy_var_to_enforce_compiler_rev := $(shell \
|
||||||
warning.)
|
warning.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := $(strip ${VALIDATED_C_COMPILER_REVS})
|
ENFORCE_CC_COMPILER_REV${ENFORCE_CC_COMPILER_REV} := $(strip ${VALIDATED_CC_COMPILER_REVS})
|
||||||
ifeq ($(filter ${ENFORCE_C_COMPILER_REV},${C_COMPILER_REV}),)
|
ifeq ($(filter ${ENFORCE_CC_COMPILER_REV},${CC_COMPILER_REV}),)
|
||||||
PRINTABLE_C_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_C_COMPILER_REV})
|
PRINTABLE_C_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_CC_COMPILER_REV})
|
||||||
dummy_var_to_enforce_c_compiler_rev := $(shell \
|
dummy_var_to_enforce_c_compiler_rev := $(shell \
|
||||||
echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} and \
|
echo >&2 WARNING: You are using cc version ${CC_COMPILER_REV} and \
|
||||||
should be using version ${PRINTABLE_C_REVS}.; \
|
should be using version ${PRINTABLE_C_REVS}.; \
|
||||||
echo >&2 Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this \
|
echo >&2 Set ENFORCE_CC_COMPILER_REV=${CC_COMPILER_REV} to avoid this \
|
||||||
warning.)
|
warning.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -98,7 +102,7 @@ JVM_CHECK_SYMBOLS = $(NM) -u -p $(LIBJVM.o) | \
|
||||||
} \
|
} \
|
||||||
END { exit rc; }'
|
END { exit rc; }'
|
||||||
|
|
||||||
LINK_LIB.CC/PRE_HOOK += $(JVM_CHECK_SYMBOLS) || exit 1;
|
LINK_LIB.CXX/PRE_HOOK += $(JVM_CHECK_SYMBOLS) || exit 1;
|
||||||
|
|
||||||
# New architecture options started in SS12 (5.9), we need both styles to build.
|
# New architecture options started in SS12 (5.9), we need both styles to build.
|
||||||
# The older arch options for SS11 (5.8) or older and also for /usr/ccs/bin/as.
|
# The older arch options for SS11 (5.8) or older and also for /usr/ccs/bin/as.
|
||||||
|
@ -518,7 +522,7 @@ endif
|
||||||
#FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
|
#FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
|
||||||
|
|
||||||
ifeq (${COMPILER_REV_NUMERIC}, 502)
|
ifeq (${COMPILER_REV_NUMERIC}, 502)
|
||||||
COMPILER_DATE := $(shell $(CPP) -V 2>&1 | sed -n '/^.*[ ]C++[ ]\([1-9]\.[0-9][0-9]*\)/p' | awk '{ print $$NF; }')
|
COMPILER_DATE := $(shell $(CXX) -V 2>&1 | sed -n '/^.*[ ]C++[ ]\([1-9]\.[0-9][0-9]*\)/p' | awk '{ print $$NF; }')
|
||||||
ifeq (${COMPILER_DATE}, 2001/01/31)
|
ifeq (${COMPILER_DATE}, 2001/01/31)
|
||||||
# disable -g0 in fastdebug since SC6.1 dated 2001/01/31 seems to be buggy
|
# disable -g0 in fastdebug since SC6.1 dated 2001/01/31 seems to be buggy
|
||||||
# use an innocuous value because it will get -g if it's empty
|
# use an innocuous value because it will get -g if it's empty
|
||||||
|
@ -557,9 +561,6 @@ else
|
||||||
#LINK_INTO = LIBJVM
|
#LINK_INTO = LIBJVM
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MCS = /usr/ccs/bin/mcs
|
|
||||||
STRIP = /usr/ccs/bin/strip
|
|
||||||
|
|
||||||
# Solaris platforms collect lots of redundant file-ident lines,
|
# Solaris platforms collect lots of redundant file-ident lines,
|
||||||
# to the point of wasting a significant percentage of file space.
|
# to the point of wasting a significant percentage of file space.
|
||||||
# (The text is stored in ELF .comment sections, contributed by
|
# (The text is stored in ELF .comment sections, contributed by
|
||||||
|
@ -568,7 +569,7 @@ STRIP = /usr/ccs/bin/strip
|
||||||
# removing repeated lines. The data can be extracted from
|
# removing repeated lines. The data can be extracted from
|
||||||
# binaries in the field by using "mcs -p libjvm.so" or the older
|
# binaries in the field by using "mcs -p libjvm.so" or the older
|
||||||
# command "what libjvm.so".
|
# command "what libjvm.so".
|
||||||
LINK_LIB.CC/POST_HOOK += $(MCS) -c $@ || exit 1;
|
LINK_LIB.CXX/POST_HOOK += $(MCS) -c $@ || exit 1;
|
||||||
# (The exit 1 is necessary to cause a build failure if the command fails and
|
# (The exit 1 is necessary to cause a build failure if the command fails and
|
||||||
# multiple commands are strung together, and the final semicolon is necessary
|
# multiple commands are strung together, and the final semicolon is necessary
|
||||||
# since the hook must terminate itself as a valid command.)
|
# since the hook must terminate itself as a valid command.)
|
||||||
|
@ -576,7 +577,7 @@ LINK_LIB.CC/POST_HOOK += $(MCS) -c $@ || exit 1;
|
||||||
# Also, strip debug and line number information (worth about 1.7Mb).
|
# Also, strip debug and line number information (worth about 1.7Mb).
|
||||||
# If we can create .debuginfo files, then the VM is stripped in vm.make
|
# If we can create .debuginfo files, then the VM is stripped in vm.make
|
||||||
# and this macro is not used.
|
# and this macro is not used.
|
||||||
STRIP_LIB.CC/POST_HOOK = $(STRIP) -x $@ || exit 1;
|
STRIP_LIB.CXX/POST_HOOK = $(STRIP) -x $@ || exit 1;
|
||||||
# STRIP_LIB.CC/POST_HOOK is incorporated into LINK_LIB.CC/POST_HOOK
|
# STRIP_LIB.CXX/POST_HOOK is incorporated into LINK_LIB.CXX/POST_HOOK
|
||||||
# in certain configurations, such as product.make. Other configurations,
|
# in certain configurations, such as product.make. Other configurations,
|
||||||
# such as debug.make, do not include the strip operation.
|
# such as debug.make, do not include the strip operation.
|
||||||
|
|
|
@ -107,8 +107,8 @@ $(adjust-mflags): $(GAMMADIR)/make/$(Platform_os_family)/makefiles/adjust-mflags
|
||||||
the_vm: vm_build_preliminaries $(adjust-mflags)
|
the_vm: vm_build_preliminaries $(adjust-mflags)
|
||||||
@$(MAKE) -f vm.make $(MFLAGS-adjusted)
|
@$(MAKE) -f vm.make $(MFLAGS-adjusted)
|
||||||
|
|
||||||
install: the_vm
|
install gamma: the_vm
|
||||||
@$(MAKE) -f vm.make install
|
@$(MAKE) -f vm.make $@
|
||||||
|
|
||||||
# next rules support "make foo.[oi]"
|
# next rules support "make foo.[oi]"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -76,16 +76,20 @@ BUILD_TARGET = -DHOTSPOT_BUILD_TARGET="\"$(TARGET)\""
|
||||||
BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
|
BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
|
||||||
VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
|
VM_DISTRO = -DHOTSPOT_VM_DISTRO="\"$(HOTSPOT_VM_DISTRO)\""
|
||||||
|
|
||||||
CPPFLAGS = \
|
CXXFLAGS = \
|
||||||
${SYSDEFS} \
|
${SYSDEFS} \
|
||||||
${INCLUDES} \
|
${INCLUDES} \
|
||||||
${BUILD_VERSION} \
|
${BUILD_VERSION} \
|
||||||
${BUILD_TARGET} \
|
${BUILD_TARGET} \
|
||||||
${BUILD_USER} \
|
${BUILD_USER} \
|
||||||
${HS_LIB_ARCH} \
|
${HS_LIB_ARCH} \
|
||||||
${JRE_VERSION} \
|
|
||||||
${VM_DISTRO}
|
${VM_DISTRO}
|
||||||
|
|
||||||
|
# This is VERY important! The version define must only be supplied to vm_version.o
|
||||||
|
# If not, ccache will not re-use the cache at all, since the version string might contain
|
||||||
|
# a time and date.
|
||||||
|
vm_version.o: CXXFLAGS += ${JRE_VERSION}
|
||||||
|
|
||||||
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
||||||
CFLAGS += $(CFLAGS_WARN)
|
CFLAGS += $(CFLAGS_WARN)
|
||||||
|
|
||||||
|
@ -265,17 +269,17 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef USE_GCC
|
ifdef USE_GCC
|
||||||
LINK_VM = $(LINK_LIB.c)
|
|
||||||
else
|
|
||||||
LINK_VM = $(LINK_LIB.CC)
|
LINK_VM = $(LINK_LIB.CC)
|
||||||
|
else
|
||||||
|
LINK_VM = $(LINK_LIB.CXX)
|
||||||
endif
|
endif
|
||||||
# making the library:
|
# making the library:
|
||||||
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE)
|
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE)
|
||||||
ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
|
ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
|
||||||
@echo Linking vm...
|
@echo Linking vm...
|
||||||
$(QUIETLY) $(LINK_LIB.CC/PRE_HOOK)
|
$(QUIETLY) $(LINK_LIB.CXX/PRE_HOOK)
|
||||||
$(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM)
|
$(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM)
|
||||||
$(QUIETLY) $(LINK_LIB.CC/POST_HOOK)
|
$(QUIETLY) $(LINK_LIB.CXX/POST_HOOK)
|
||||||
$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
|
$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
|
||||||
$(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G)
|
$(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G)
|
||||||
$(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1
|
$(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1
|
||||||
|
@ -317,9 +321,12 @@ include $(MAKEFILES_DIR)/jsig.make
|
||||||
# Serviceability agent
|
# Serviceability agent
|
||||||
include $(MAKEFILES_DIR)/saproc.make
|
include $(MAKEFILES_DIR)/saproc.make
|
||||||
|
|
||||||
|
# Whitebox testing API
|
||||||
|
include $(MAKEFILES_DIR)/wb.make
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck
|
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck $(WB_JAR)
|
||||||
|
|
||||||
install: install_jvm install_jsig install_saproc
|
install: install_jvm install_jsig install_saproc
|
||||||
|
|
||||||
|
|
46
hotspot/make/solaris/makefiles/wb.make
Normal file
46
hotspot/make/solaris/makefiles/wb.make
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Rules to build whitebox testing library, used by vm.make
|
||||||
|
|
||||||
|
WB = wb
|
||||||
|
|
||||||
|
WBSRCDIR = $(GAMMADIR)/src/share/tools/whitebox
|
||||||
|
|
||||||
|
WB_JAR = $(GENERATED)/$(WB).jar
|
||||||
|
|
||||||
|
WB_JAVA_SRCS = $(shell find $(WBSRCDIR) -name '*.java')
|
||||||
|
WB_JAVA_CLASSDIR = $(GENERATED)/wb/classes
|
||||||
|
|
||||||
|
WB_JAVA_CLASSES = $(patsubst $(WBSRCDIR)/%,$(WB_JAVA_CLASSDIR)/%, \
|
||||||
|
$(patsubst %.java,%.class,$(WB_JAVA_SRCS)))
|
||||||
|
|
||||||
|
$(WB_JAVA_CLASSDIR)/%.class: $(WBSRCDIR)/%.java $(WB_JAVA_CLASSDIR)
|
||||||
|
$(REMOTE) $(COMPILE.JAVAC) -nowarn -d $(WB_JAVA_CLASSDIR) $<
|
||||||
|
|
||||||
|
$(WB_JAR): $(WB_JAVA_CLASSES)
|
||||||
|
$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(WB_JAVA_CLASSDIR)/ .
|
||||||
|
|
||||||
|
$(WB_JAVA_CLASSDIR):
|
||||||
|
$(QUIETLY) mkdir -p $@
|
||||||
|
|
|
@ -297,6 +297,10 @@ $(variantDir)\local.make: checks
|
||||||
@ echo BUILDARCH=$(BUILDARCH) >> $@
|
@ echo BUILDARCH=$(BUILDARCH) >> $@
|
||||||
@ echo Platform_arch=$(Platform_arch) >> $@
|
@ echo Platform_arch=$(Platform_arch) >> $@
|
||||||
@ echo Platform_arch_model=$(Platform_arch_model) >> $@
|
@ echo Platform_arch_model=$(Platform_arch_model) >> $@
|
||||||
|
@ echo CXX=$(CXX) >> $@
|
||||||
|
@ echo LD=$(LD) >> $@
|
||||||
|
@ echo MT=$(MT) >> $@
|
||||||
|
@ echo RC=$(RC) >> $@
|
||||||
@ sh $(WorkSpace)/make/windows/get_msc_ver.sh >> $@
|
@ sh $(WorkSpace)/make/windows/get_msc_ver.sh >> $@
|
||||||
|
|
||||||
checks: checkVariant checkWorkSpace checkSA
|
checks: checkVariant checkWorkSpace checkSA
|
||||||
|
|
|
@ -57,10 +57,10 @@ DUMPBIN="link.exe /dump"
|
||||||
|
|
||||||
# When called from IDE the first param should contain the link version, otherwise may be nill
|
# When called from IDE the first param should contain the link version, otherwise may be nill
|
||||||
if [ "x$1" != "x" ]; then
|
if [ "x$1" != "x" ]; then
|
||||||
LINK_VER="$1"
|
LD_VER="$1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" -a "x$LINK_VER" != "x1000" ]; then
|
if [ "x$LD_VER" != "x800" -a "x$LD_VER" != "x900" -a "x$LD_VER" != "x1000" ]; then
|
||||||
$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
|
||||||
else
|
else
|
||||||
# Can't use pipes when calling cl.exe or link.exe from IDE. Using transit file vm3.def
|
# Can't use pipes when calling cl.exe or link.exe from IDE. Using transit file vm3.def
|
||||||
|
|
|
@ -72,8 +72,8 @@ else
|
||||||
echo "MSC_VER_RAW=$MSC_VER_RAW"
|
echo "MSC_VER_RAW=$MSC_VER_RAW"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$FORCE_LINK_VER" != "x" ]; then
|
if [ "x$FORCE_LD_VER" != "x" ]; then
|
||||||
echo "LINK_VER=$FORCE_LINK_VER"
|
echo "LD_VER=$FORCE_LD_VER"
|
||||||
else
|
else
|
||||||
# use the "link" command that is co-located with the "cl" command
|
# use the "link" command that is co-located with the "cl" command
|
||||||
cl_cmd=`which cl`
|
cl_cmd=`which cl`
|
||||||
|
@ -83,11 +83,11 @@ else
|
||||||
# which can't find "cl" so just use which ever "link" we find
|
# which can't find "cl" so just use which ever "link" we find
|
||||||
link_cmd="link"
|
link_cmd="link"
|
||||||
fi
|
fi
|
||||||
LINK_VER_RAW=`"$link_cmd" 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
|
LD_VER_RAW=`"$link_cmd" 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
|
||||||
LINK_VER_MAJOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f1`
|
LD_VER_MAJOR=`"$ECHO" $LD_VER_RAW | "$CUT" -d'.' -f1`
|
||||||
LINK_VER_MINOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f2`
|
LD_VER_MINOR=`"$ECHO" $LD_VER_RAW | "$CUT" -d'.' -f2`
|
||||||
LINK_VER_MICRO=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f3`
|
LD_VER_MICRO=`"$ECHO" $LD_VER_RAW | "$CUT" -d'.' -f3`
|
||||||
LINK_VER=`"$EXPR" $LINK_VER_MAJOR \* 100 + $LINK_VER_MINOR`
|
LD_VER=`"$EXPR" $LD_VER_MAJOR \* 100 + $LD_VER_MINOR`
|
||||||
echo "LINK_VER=$LINK_VER"
|
echo "LD_VER=$LD_VER"
|
||||||
echo "LINK_VER_RAW=$LINK_VER_RAW"
|
echo "LD_VER_RAW=$LD_VER_RAW"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -45,9 +45,9 @@ ADLCFLAGS=-q -T -D_LP64
|
||||||
ADLCFLAGS=-q -T -U_LP64
|
ADLCFLAGS=-q -T -U_LP64
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
ADLC_CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
|
ADLC_CXX_FLAGS=$(CXX_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
|
||||||
|
|
||||||
CPP_INCLUDE_DIRS=\
|
CXX_INCLUDE_DIRS=\
|
||||||
/I "..\generated" \
|
/I "..\generated" \
|
||||||
/I "$(WorkSpace)\src\share\vm" \
|
/I "$(WorkSpace)\src\share\vm" \
|
||||||
/I "$(WorkSpace)\src\os\windows\vm" \
|
/I "$(WorkSpace)\src\os\windows\vm" \
|
||||||
|
@ -94,14 +94,14 @@ GENERATED_NAMES_IN_DIR=\
|
||||||
$(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
|
$(AdlcOutDir)\dfa_$(Platform_arch_model).cpp
|
||||||
|
|
||||||
{$(WorkSpace)\src\share\vm\adlc}.cpp.obj::
|
{$(WorkSpace)\src\share\vm\adlc}.cpp.obj::
|
||||||
$(CPP) $(ADLC_CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
|
$(CXX) $(ADLC_CXX_FLAGS) $(EXH_FLAGS) $(CXX_INCLUDE_DIRS) /c $<
|
||||||
|
|
||||||
{$(WorkSpace)\src\share\vm\opto}.cpp.obj::
|
{$(WorkSpace)\src\share\vm\opto}.cpp.obj::
|
||||||
$(CPP) $(ADLC_CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $<
|
$(CXX) $(ADLC_CXX_FLAGS) $(EXH_FLAGS) $(CXX_INCLUDE_DIRS) /c $<
|
||||||
|
|
||||||
adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuff.obj \
|
adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuff.obj \
|
||||||
forms.obj formsopt.obj formssel.obj opcodes.obj output_c.obj output_h.obj
|
forms.obj formsopt.obj formssel.obj opcodes.obj output_c.obj output_h.obj
|
||||||
$(LINK) $(LINK_FLAGS) /subsystem:console /out:$@ $**
|
$(LD) $(LD_FLAGS) /subsystem:console /out:$@ $**
|
||||||
!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
|
||||||
|
|
|
@ -23,9 +23,11 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# Generic compiler settings
|
# Generic compiler settings
|
||||||
CPP=cl.exe
|
!if "x$(CXX)" == "x"
|
||||||
|
CXX=cl.exe
|
||||||
|
!endif
|
||||||
|
|
||||||
# CPP Flags: (these vary slightly from VC6->VS2003->VS2005 compilers)
|
# CXX Flags: (these vary slightly from VC6->VS2003->VS2005 compilers)
|
||||||
# /nologo Supress copyright message at every cl.exe startup
|
# /nologo Supress copyright message at every cl.exe startup
|
||||||
# /W3 Warning level 3
|
# /W3 Warning level 3
|
||||||
# /Zi Include debugging information
|
# /Zi Include debugging information
|
||||||
|
@ -50,47 +52,47 @@ CPP=cl.exe
|
||||||
# improving the quality of crash log stack traces involving jvm.dll.
|
# improving the quality of crash log stack traces involving jvm.dll.
|
||||||
|
|
||||||
# These are always used in all compiles
|
# These are always used in all compiles
|
||||||
CPP_FLAGS=/nologo /W3 /WX
|
CXX_FLAGS=/nologo /W3 /WX
|
||||||
|
|
||||||
# Let's add debug information always too.
|
# Let's add debug information always too.
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /Zi
|
CXX_FLAGS=$(CXX_FLAGS) /Zi
|
||||||
|
|
||||||
# Based on BUILDARCH we add some flags and select the default compiler name
|
# Based on BUILDARCH we add some flags and select the default compiler name
|
||||||
!if "$(BUILDARCH)" == "ia64"
|
!if "$(BUILDARCH)" == "ia64"
|
||||||
MACHINE=IA64
|
MACHINE=IA64
|
||||||
DEFAULT_COMPILER_NAME=VS2003
|
DEFAULT_COMPILER_NAME=VS2003
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "CC_INTERP" /D "_LP64" /D "IA64"
|
CXX_FLAGS=$(CXX_FLAGS) /D "CC_INTERP" /D "_LP64" /D "IA64"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(BUILDARCH)" == "amd64"
|
!if "$(BUILDARCH)" == "amd64"
|
||||||
MACHINE=AMD64
|
MACHINE=AMD64
|
||||||
DEFAULT_COMPILER_NAME=VS2005
|
DEFAULT_COMPILER_NAME=VS2005
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "_LP64" /D "AMD64"
|
CXX_FLAGS=$(CXX_FLAGS) /D "_LP64" /D "AMD64"
|
||||||
LP64=1
|
LP64=1
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(BUILDARCH)" == "i486"
|
!if "$(BUILDARCH)" == "i486"
|
||||||
MACHINE=I386
|
MACHINE=I386
|
||||||
DEFAULT_COMPILER_NAME=VS2003
|
DEFAULT_COMPILER_NAME=VS2003
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "IA32"
|
CXX_FLAGS=$(CXX_FLAGS) /D "IA32"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# Sanity check, this is the default if not amd64, ia64, or i486
|
# Sanity check, this is the default if not amd64, ia64, or i486
|
||||||
!ifndef DEFAULT_COMPILER_NAME
|
!ifndef DEFAULT_COMPILER_NAME
|
||||||
CPP=ARCH_ERROR
|
CXX=ARCH_ERROR
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS"
|
CXX_FLAGS=$(CXX_FLAGS) /D "WIN32" /D "_WINDOWS"
|
||||||
# Must specify this for sharedRuntimeTrig.cpp
|
# Must specify this for sharedRuntimeTrig.cpp
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
|
CXX_FLAGS=$(CXX_FLAGS) /D "VM_LITTLE_ENDIAN"
|
||||||
|
|
||||||
# Used for platform dispatching
|
# Used for platform dispatching
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_FAMILY_windows
|
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_OS_FAMILY_windows
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_$(Platform_arch)
|
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_ARCH_$(Platform_arch)
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model)
|
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model)
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch)
|
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch)
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model)
|
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model)
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D TARGET_COMPILER_visCPP
|
CXX_FLAGS=$(CXX_FLAGS) /D TARGET_COMPILER_visCPP
|
||||||
|
|
||||||
|
|
||||||
# MSC_VER is a 4 digit number that tells us what compiler is being used
|
# MSC_VER is a 4 digit number that tells us what compiler is being used
|
||||||
|
@ -150,14 +152,14 @@ MS_RUNTIME_OPTION = /MTd /D "_DEBUG"
|
||||||
# Always add the _STATIC_CPPLIB flag
|
# Always add the _STATIC_CPPLIB flag
|
||||||
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB
|
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB
|
||||||
MS_RUNTIME_OPTION = $(MS_RUNTIME_OPTION) $(STATIC_CPPLIB_OPTION)
|
MS_RUNTIME_OPTION = $(MS_RUNTIME_OPTION) $(STATIC_CPPLIB_OPTION)
|
||||||
CPP_FLAGS=$(CPP_FLAGS) $(MS_RUNTIME_OPTION)
|
CXX_FLAGS=$(CXX_FLAGS) $(MS_RUNTIME_OPTION)
|
||||||
|
|
||||||
# How /GX option is spelled
|
# How /GX option is spelled
|
||||||
GX_OPTION = /GX
|
GX_OPTION = /GX
|
||||||
|
|
||||||
# Optimization settings for various versions of the compilers and types of
|
# Optimization settings for various versions of the compilers and types of
|
||||||
# builds. Three basic sets of settings: product, fastdebug, and debug.
|
# builds. Three basic sets of settings: product, fastdebug, and debug.
|
||||||
# These get added into CPP_FLAGS as needed by other makefiles.
|
# These get added into CXX_FLAGS as needed by other makefiles.
|
||||||
!if "$(COMPILER_NAME)" == "VC6"
|
!if "$(COMPILER_NAME)" == "VC6"
|
||||||
PRODUCT_OPT_OPTION = /Ox /Os /Gy /GF
|
PRODUCT_OPT_OPTION = /Ox /Os /Gy /GF
|
||||||
FASTDEBUG_OPT_OPTION = /Ox /Os /Gy /GF
|
FASTDEBUG_OPT_OPTION = /Ox /Os /Gy /GF
|
||||||
|
@ -180,34 +182,40 @@ GX_OPTION = /EHsc
|
||||||
# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
|
# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
|
||||||
# NOTE: Currently we decided to not use /GS-
|
# NOTE: Currently we decided to not use /GS-
|
||||||
BUFFEROVERFLOWLIB = bufferoverflowU.lib
|
BUFFEROVERFLOWLIB = bufferoverflowU.lib
|
||||||
LINK_FLAGS = /manifest $(LINK_FLAGS) $(BUFFEROVERFLOWLIB)
|
LD_FLAGS = /manifest $(LD_FLAGS) $(BUFFEROVERFLOWLIB)
|
||||||
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
||||||
# as resources inside build artifacts.
|
# as resources inside build artifacts.
|
||||||
|
!if "x$(MT)" == "x"
|
||||||
MT=mt.exe
|
MT=mt.exe
|
||||||
!endif
|
!endif
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(COMPILER_NAME)" == "VS2008"
|
!if "$(COMPILER_NAME)" == "VS2008"
|
||||||
PRODUCT_OPT_OPTION = /O2 /Oy-
|
PRODUCT_OPT_OPTION = /O2 /Oy-
|
||||||
FASTDEBUG_OPT_OPTION = /O2 /Oy-
|
FASTDEBUG_OPT_OPTION = /O2 /Oy-
|
||||||
DEBUG_OPT_OPTION = /Od
|
DEBUG_OPT_OPTION = /Od
|
||||||
GX_OPTION = /EHsc
|
GX_OPTION = /EHsc
|
||||||
LINK_FLAGS = /manifest $(LINK_FLAGS)
|
LD_FLAGS = /manifest $(LD_FLAGS)
|
||||||
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
||||||
# as resources inside build artifacts.
|
# as resources inside build artifacts.
|
||||||
|
!if "x$(MT)" == "x"
|
||||||
MT=mt.exe
|
MT=mt.exe
|
||||||
!endif
|
!endif
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(COMPILER_NAME)" == "VS2010"
|
!if "$(COMPILER_NAME)" == "VS2010"
|
||||||
PRODUCT_OPT_OPTION = /O2 /Oy-
|
PRODUCT_OPT_OPTION = /O2 /Oy-
|
||||||
FASTDEBUG_OPT_OPTION = /O2 /Oy-
|
FASTDEBUG_OPT_OPTION = /O2 /Oy-
|
||||||
DEBUG_OPT_OPTION = /Od
|
DEBUG_OPT_OPTION = /Od
|
||||||
GX_OPTION = /EHsc
|
GX_OPTION = /EHsc
|
||||||
LINK_FLAGS = /manifest $(LINK_FLAGS)
|
LD_FLAGS = /manifest $(LD_FLAGS)
|
||||||
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
||||||
# as resources inside build artifacts.
|
# as resources inside build artifacts.
|
||||||
|
!if "x$(MT)" == "x"
|
||||||
MT=mt.exe
|
MT=mt.exe
|
||||||
|
!endif
|
||||||
!if "$(BUILDARCH)" == "i486"
|
!if "$(BUILDARCH)" == "i486"
|
||||||
LINK_FLAGS = /SAFESEH $(LINK_FLAGS)
|
LD_FLAGS = /SAFESEH $(LD_FLAGS)
|
||||||
!endif
|
!endif
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
@ -225,19 +233,23 @@ FASTDEBUG_OPT_OPTION = $(DEBUG_OPT_OPTION)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# Generic linker settings
|
# Generic linker settings
|
||||||
LINK=link.exe
|
!if "x$(LD)" == "x"
|
||||||
LINK_FLAGS= $(LINK_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
|
LD=link.exe
|
||||||
|
!endif
|
||||||
|
LD_FLAGS= $(LD_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \
|
||||||
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
|
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
|
||||||
uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
|
uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \
|
||||||
/opt:ICF,8 /map /debug
|
/opt:ICF,8 /map /debug
|
||||||
|
|
||||||
|
|
||||||
!if $(MSC_VER) >= 1600
|
!if $(MSC_VER) >= 1600
|
||||||
LINK_FLAGS= $(LINK_FLAGS) psapi.lib
|
LD_FLAGS= $(LD_FLAGS) psapi.lib
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# Resource compiler settings
|
# Resource compiler settings
|
||||||
|
!if "x$(RC)" == "x"
|
||||||
RC=rc.exe
|
RC=rc.exe
|
||||||
|
!endif
|
||||||
RC_FLAGS=/D "HS_VER=$(HS_VER)" \
|
RC_FLAGS=/D "HS_VER=$(HS_VER)" \
|
||||||
/D "HS_DOTVER=$(HS_DOTVER)" \
|
/D "HS_DOTVER=$(HS_DOTVER)" \
|
||||||
/D "HS_BUILD_ID=$(HS_BUILD_ID)" \
|
/D "HS_BUILD_ID=$(HS_BUILD_ID)" \
|
||||||
|
@ -250,7 +262,7 @@ RC_FLAGS=/D "HS_VER=$(HS_VER)" \
|
||||||
/D "HS_INTERNAL_NAME=$(HS_INTERNAL_NAME)" \
|
/D "HS_INTERNAL_NAME=$(HS_INTERNAL_NAME)" \
|
||||||
/D "HS_NAME=$(HS_NAME)"
|
/D "HS_NAME=$(HS_NAME)"
|
||||||
|
|
||||||
# Need this to match the CPP_FLAGS settings
|
# Need this to match the CXX_FLAGS settings
|
||||||
!if "$(MFC_DEBUG)" == "true"
|
!if "$(MFC_DEBUG)" == "true"
|
||||||
RC_FLAGS = $(RC_FLAGS) /D "_DEBUG"
|
RC_FLAGS = $(RC_FLAGS) /D "_DEBUG"
|
||||||
!endif
|
!endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -33,12 +33,12 @@ GENERATED=../generated
|
||||||
BUILD_PCH_FILE=_build_pch_file.obj
|
BUILD_PCH_FILE=_build_pch_file.obj
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
|
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA wb
|
||||||
|
|
||||||
!include ../local.make
|
!include ../local.make
|
||||||
!include compile.make
|
!include compile.make
|
||||||
|
|
||||||
CPP_FLAGS=$(CPP_FLAGS) $(DEBUG_OPT_OPTION)
|
CXX_FLAGS=$(CXX_FLAGS) $(DEBUG_OPT_OPTION)
|
||||||
|
|
||||||
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
||||||
!include local.make
|
!include local.make
|
||||||
|
@ -52,8 +52,8 @@ vm.def: $(Obj_Files)
|
||||||
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
||||||
|
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
$(LINK) @<<
|
$(LD) @<<
|
||||||
$(LINK_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
|
||||||
|
@ -65,3 +65,4 @@ $(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||||
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
||||||
|
!include $(WorkSpace)/make/windows/makefiles/wb.make
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -107,6 +107,19 @@ ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) EM64T),)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# On 32 bit windows we build server, client and kernel, on 64 bit just server.
|
||||||
|
ifeq ($(JVM_VARIANTS),)
|
||||||
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||||
|
JVM_VARIANTS:=client,server,kernel
|
||||||
|
JVM_VARIANT_CLIENT:=true
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
JVM_VARIANT_KERNEL:=true
|
||||||
|
else
|
||||||
|
JVM_VARIANTS:=server
|
||||||
|
JVM_VARIANT_SERVER:=true
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
JDK_INCLUDE_SUBDIR=win32
|
JDK_INCLUDE_SUBDIR=win32
|
||||||
|
|
||||||
# Library suffix
|
# Library suffix
|
||||||
|
@ -177,23 +190,28 @@ EXPORT_SERVER_DIR = $(EXPORT_JRE_BIN_DIR)/server
|
||||||
EXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
|
EXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
|
||||||
EXPORT_KERNEL_DIR = $(EXPORT_JRE_BIN_DIR)/kernel
|
EXPORT_KERNEL_DIR = $(EXPORT_JRE_BIN_DIR)/kernel
|
||||||
|
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
ifeq ($(JVM_VARIANT_SERVER),true)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
|
||||||
EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
|
||||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
|
||||||
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_CLIENT),true)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
|
||||||
# kernel vm
|
endif
|
||||||
|
ifeq ($(JVM_VARIANT_KERNEL),true)
|
||||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb
|
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb
|
||||||
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map
|
EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
|
||||||
|
|
||||||
ifeq ($(BUILD_WIN_SA), 1)
|
ifeq ($(BUILD_WIN_SA), 1)
|
||||||
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
|
||||||
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
|
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
|
||||||
|
@ -202,3 +220,19 @@ ifeq ($(BUILD_WIN_SA), 1)
|
||||||
# Must pass this down to nmake.
|
# Must pass this down to nmake.
|
||||||
MAKE_ARGS += BUILD_WIN_SA=1
|
MAKE_ARGS += BUILD_WIN_SA=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Propagate compiler and tools paths from configure to nmake.
|
||||||
|
# Need to make sure they contain \\ and not /.
|
||||||
|
ifneq ($(SPEC),)
|
||||||
|
ifeq ($(USING_CYGWIN), true)
|
||||||
|
MAKE_ARGS += CXX="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(CXX)))"
|
||||||
|
MAKE_ARGS += LD="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(LD)))"
|
||||||
|
MAKE_ARGS += RC="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(RC)))"
|
||||||
|
MAKE_ARGS += MT="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(MT)))"
|
||||||
|
else
|
||||||
|
MAKE_ARGS += CXX="$(subst /,\\,$(CXX))"
|
||||||
|
MAKE_ARGS += LD="$(subst /,\\,$(LD))"
|
||||||
|
MAKE_ARGS += RC="$(subst /,\\,$(RC))"
|
||||||
|
MAKE_ARGS += MT="$(subst /,\\,$(MT))"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -33,12 +33,12 @@ GENERATED=../generated
|
||||||
BUILD_PCH_FILE=_build_pch_file.obj
|
BUILD_PCH_FILE=_build_pch_file.obj
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
|
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA wb
|
||||||
|
|
||||||
!include ../local.make
|
!include ../local.make
|
||||||
!include compile.make
|
!include compile.make
|
||||||
|
|
||||||
CPP_FLAGS=$(CPP_FLAGS) $(FASTDEBUG_OPT_OPTION)
|
CXX_FLAGS=$(CXX_FLAGS) $(FASTDEBUG_OPT_OPTION)
|
||||||
|
|
||||||
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
!include $(WorkSpace)/make/windows/makefiles/vm.make
|
||||||
!include local.make
|
!include local.make
|
||||||
|
@ -52,8 +52,8 @@ vm.def: $(Obj_Files)
|
||||||
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
||||||
|
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
$(LINK) @<<
|
$(LD) @<<
|
||||||
$(LINK_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
|
||||||
|
@ -65,3 +65,4 @@ $(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||||
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
||||||
|
!include $(WorkSpace)/make/windows/makefiles/wb.make
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
LAUNCHER_FLAGS=$(CPP_FLAGS) $(ARCHFLAG) \
|
LAUNCHER_FLAGS=$(CXX_FLAGS) $(ARCHFLAG) \
|
||||||
/D FULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
|
/D FULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
|
||||||
/D JDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
|
/D JDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
|
||||||
/D JDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
|
/D JDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
|
||||||
|
@ -39,18 +39,18 @@ LAUNCHER_FLAGS=$(CPP_FLAGS) $(ARCHFLAG) \
|
||||||
/I $(WorkSpace)\src\cpu\$(Platform_arch)\vm \
|
/I $(WorkSpace)\src\cpu\$(Platform_arch)\vm \
|
||||||
/I $(WorkSpace)\src\os\windows\vm
|
/I $(WorkSpace)\src\os\windows\vm
|
||||||
|
|
||||||
LINK_FLAGS=/manifest $(HS_INTERNAL_NAME).lib kernel32.lib user32.lib /nologo /machine:$(MACHINE) /map /debug /subsystem:console
|
LD_FLAGS=/manifest $(HS_INTERNAL_NAME).lib kernel32.lib user32.lib /nologo /machine:$(MACHINE) /map /debug /subsystem:console
|
||||||
|
|
||||||
!if "$(COMPILER_NAME)" == "VS2005"
|
!if "$(COMPILER_NAME)" == "VS2005"
|
||||||
# This VS2005 compiler has /GS as a default and requires bufferoverflowU.lib
|
# This VS2005 compiler has /GS as a default and requires bufferoverflowU.lib
|
||||||
# on the link command line, otherwise we get missing __security_check_cookie
|
# on the link command line, otherwise we get missing __security_check_cookie
|
||||||
# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
|
# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
|
||||||
BUFFEROVERFLOWLIB = bufferoverflowU.lib
|
BUFFEROVERFLOWLIB = bufferoverflowU.lib
|
||||||
LINK_FLAGS = $(LINK_FLAGS) $(BUFFEROVERFLOWLIB)
|
LD_FLAGS = $(LD_FLAGS) $(BUFFEROVERFLOWLIB)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(COMPILER_NAME)" == "VS2010" && "$(BUILDARCH)" == "i486"
|
!if "$(COMPILER_NAME)" == "VS2010" && "$(BUILDARCH)" == "i486"
|
||||||
LINK_FLAGS = /SAFESEH $(LINK_FLAGS)
|
LD_FLAGS = /SAFESEH $(LD_FLAGS)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
LAUNCHERDIR = $(WorkSpace)/src/os/windows/launcher
|
LAUNCHERDIR = $(WorkSpace)/src/os/windows/launcher
|
||||||
|
@ -60,14 +60,14 @@ OUTDIR = launcher
|
||||||
|
|
||||||
{$(LAUNCHERDIR)}.c{$(OUTDIR)}.obj:
|
{$(LAUNCHERDIR)}.c{$(OUTDIR)}.obj:
|
||||||
-mkdir $(OUTDIR) 2>NUL >NUL
|
-mkdir $(OUTDIR) 2>NUL >NUL
|
||||||
$(CPP) $(LAUNCHER_FLAGS) /c /Fo$@ $<
|
$(CXX) $(LAUNCHER_FLAGS) /c /Fo$@ $<
|
||||||
|
|
||||||
{$(LAUNCHERDIR_SHARE)}.c{$(OUTDIR)}.obj:
|
{$(LAUNCHERDIR_SHARE)}.c{$(OUTDIR)}.obj:
|
||||||
-mkdir $(OUTDIR) 2>NUL >NUL
|
-mkdir $(OUTDIR) 2>NUL >NUL
|
||||||
$(CPP) $(LAUNCHER_FLAGS) /c /Fo$@ $<
|
$(CXX) $(LAUNCHER_FLAGS) /c /Fo$@ $<
|
||||||
|
|
||||||
$(OUTDIR)\*.obj: $(LAUNCHERDIR)\*.c $(LAUNCHERDIR)\*.h $(LAUNCHERDIR_SHARE)\*.c $(LAUNCHERDIR_SHARE)\*.h
|
$(OUTDIR)\*.obj: $(LAUNCHERDIR)\*.c $(LAUNCHERDIR)\*.h $(LAUNCHERDIR_SHARE)\*.c $(LAUNCHERDIR_SHARE)\*.h
|
||||||
|
|
||||||
launcher: $(OUTDIR)\java.obj $(OUTDIR)\java_md.obj $(OUTDIR)\jli_util.obj
|
launcher: $(OUTDIR)\java.obj $(OUTDIR)\java_md.obj $(OUTDIR)\jli_util.obj
|
||||||
echo $(JAVA_HOME) > jdkpath.txt
|
echo $(JAVA_HOME) > jdkpath.txt
|
||||||
$(LINK) $(LINK_FLAGS) /out:hotspot.exe $**
|
$(LD) $(LD_FLAGS) /out:hotspot.exe $**
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -32,12 +32,12 @@ GENERATED=../generated
|
||||||
BUILD_PCH_FILE=_build_pch_file.obj
|
BUILD_PCH_FILE=_build_pch_file.obj
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA
|
default:: $(BUILD_PCH_FILE) $(AOUT) launcher checkAndBuildSA wb
|
||||||
|
|
||||||
!include ../local.make
|
!include ../local.make
|
||||||
!include compile.make
|
!include compile.make
|
||||||
|
|
||||||
CPP_FLAGS=$(CPP_FLAGS) $(PRODUCT_OPT_OPTION)
|
CXX_FLAGS=$(CXX_FLAGS) $(PRODUCT_OPT_OPTION)
|
||||||
|
|
||||||
RELEASE=
|
RELEASE=
|
||||||
|
|
||||||
|
@ -54,16 +54,16 @@ $(Res_Files): FORCE
|
||||||
# Kernel doesn't need exported vtbl symbols.
|
# Kernel doesn't need exported vtbl symbols.
|
||||||
!if "$(Variant)" == "kernel"
|
!if "$(Variant)" == "kernel"
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files)
|
$(AOUT): $(Res_Files) $(Obj_Files)
|
||||||
$(LINK) @<<
|
$(LD) @<<
|
||||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib $(Obj_Files) $(Res_Files)
|
$(LD_FLAGS) /out:$@ /implib:$*.lib $(Obj_Files) $(Res_Files)
|
||||||
<<
|
<<
|
||||||
!else
|
!else
|
||||||
vm.def: $(Obj_Files)
|
vm.def: $(Obj_Files)
|
||||||
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
sh $(WorkSpace)/make/windows/build_vm_def.sh
|
||||||
|
|
||||||
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
$(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
$(LINK) @<<
|
$(LD) @<<
|
||||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
$(LD_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||||
<<
|
<<
|
||||||
!endif
|
!endif
|
||||||
!if "$(MT)" != ""
|
!if "$(MT)" != ""
|
||||||
|
@ -76,3 +76,4 @@ $(AOUT): $(Res_Files) $(Obj_Files) vm.def
|
||||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||||
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
!include $(WorkSpace)/make/windows/makefiles/launcher.make
|
||||||
|
!include $(WorkSpace)/make/windows/makefiles/wb.make
|
||||||
|
|
|
@ -89,7 +89,7 @@ ProjectCreatorIDEOptions=\
|
||||||
-jdkTargetRoot $(HOTSPOTJDKDIST) \
|
-jdkTargetRoot $(HOTSPOTJDKDIST) \
|
||||||
-define ALIGN_STACK_FRAMES \
|
-define ALIGN_STACK_FRAMES \
|
||||||
-define VM_LITTLE_ENDIAN \
|
-define VM_LITTLE_ENDIAN \
|
||||||
-prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) set JAVA_HOME=$(HOTSPOTJDKDIST) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \
|
-prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) set JAVA_HOME=$(HOTSPOTJDKDIST) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LD_VER)" \
|
||||||
-postbuild "" "Building hotspot.exe..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) nmake -f $(HOTSPOTWORKSPACE)\make\windows\projectfiles\common\Makefile LOCAL_MAKE=$(HOTSPOTBUILDSPACE)\%f\local.make JAVA_HOME=$(HOTSPOTJDKDIST) launcher" \
|
-postbuild "" "Building hotspot.exe..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) nmake -f $(HOTSPOTWORKSPACE)\make\windows\projectfiles\common\Makefile LOCAL_MAKE=$(HOTSPOTBUILDSPACE)\%f\local.make JAVA_HOME=$(HOTSPOTJDKDIST) launcher" \
|
||||||
-ignoreFile jsig.c \
|
-ignoreFile jsig.c \
|
||||||
-ignoreFile jvmtiEnvRecommended.cpp \
|
-ignoreFile jvmtiEnvRecommended.cpp \
|
||||||
|
|
|
@ -91,16 +91,16 @@ SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 $(GX_OPTION) /Od /D "WIN32" /D "WIN
|
||||||
!if "$(COMPILER_NAME)" == "VS2005"
|
!if "$(COMPILER_NAME)" == "VS2005"
|
||||||
# On amd64, VS2005 compiler requires bufferoverflowU.lib on the link command line,
|
# On amd64, VS2005 compiler requires bufferoverflowU.lib on the link command line,
|
||||||
# otherwise we get missing __security_check_cookie externals at link time.
|
# otherwise we get missing __security_check_cookie externals at link time.
|
||||||
SA_LINK_FLAGS = bufferoverflowU.lib
|
SA_LD_FLAGS = bufferoverflowU.lib
|
||||||
!endif
|
!endif
|
||||||
!else
|
!else
|
||||||
SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||||
!endif
|
!endif
|
||||||
!if "$(MT)" != ""
|
!if "$(MT)" != ""
|
||||||
SA_LINK_FLAGS = /manifest $(SA_LINK_FLAGS)
|
SA_LD_FLAGS = /manifest $(SA_LD_FLAGS)
|
||||||
!endif
|
!endif
|
||||||
SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp
|
SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp
|
||||||
SA_LFLAGS = $(SA_LINK_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE)
|
SA_LFLAGS = $(SA_LD_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE)
|
||||||
|
|
||||||
# Note that we do not keep sawindbj.obj around as it would then
|
# Note that we do not keep sawindbj.obj around as it would then
|
||||||
# get included in the dumpbin command in build_vm_def.sh
|
# get included in the dumpbin command in build_vm_def.sh
|
||||||
|
@ -110,14 +110,14 @@ SA_LFLAGS = $(SA_LINK_FLAGS) /nologo /subsystem:console /map /debug /machine:$(M
|
||||||
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
||||||
$(SAWINDBG): $(SASRCFILE)
|
$(SAWINDBG): $(SASRCFILE)
|
||||||
set INCLUDE=$(SA_INCLUDE)$(INCLUDE)
|
set INCLUDE=$(SA_INCLUDE)$(INCLUDE)
|
||||||
$(CPP) @<<
|
$(CXX) @<<
|
||||||
/I"$(BootStrapDir)/include" /I"$(BootStrapDir)/include/win32"
|
/I"$(BootStrapDir)/include" /I"$(BootStrapDir)/include/win32"
|
||||||
/I"$(GENERATED)" $(SA_CFLAGS)
|
/I"$(GENERATED)" $(SA_CFLAGS)
|
||||||
$(SASRCFILE)
|
$(SASRCFILE)
|
||||||
/out:sawindbg.obj
|
/out:sawindbg.obj
|
||||||
<<
|
<<
|
||||||
set LIB=$(SA_LIB)$(LIB)
|
set LIB=$(SA_LIB)$(LIB)
|
||||||
$(LINK) /out:$@ /DLL sawindbg.obj dbgeng.lib $(SA_LFLAGS)
|
$(LD) /out:$@ /DLL sawindbg.obj dbgeng.lib $(SA_LFLAGS)
|
||||||
!if "$(MT)" != ""
|
!if "$(MT)" != ""
|
||||||
$(MT) /manifest $(@F).manifest /outputresource:$(@F);#2
|
$(MT) /manifest $(@F).manifest /outputresource:$(@F);#2
|
||||||
!endif
|
!endif
|
||||||
|
|
|
@ -31,5 +31,5 @@ checkCL:
|
||||||
echo *** WARNING *** unrecognized cl.exe version $(MSC_VER) ($(RAW_MSC_VER)). Use FORCE_MSC_VER to override automatic detection.
|
echo *** WARNING *** unrecognized cl.exe version $(MSC_VER) ($(RAW_MSC_VER)). Use FORCE_MSC_VER to override automatic detection.
|
||||||
|
|
||||||
checkLink:
|
checkLink:
|
||||||
@ if "$(LINK_VER)" NEQ "710" if "$(LINK_VER)" NEQ "800" if "$(LINK_VER)" NEQ "900" if "$(LINK_VER)" NEQ "1000" \
|
@ if "$(LD_VER)" NEQ "710" if "$(LD_VER)" NEQ "800" if "$(LD_VER)" NEQ "900" if "$(LD_VER)" NEQ "1000" \
|
||||||
echo *** WARNING *** unrecognized link.exe version $(LINK_VER) ($(RAW_LINK_VER)). Use FORCE_LINK_VER to override automatic detection.
|
echo *** WARNING *** unrecognized link.exe version $(LD_VER) ($(RAW_LD_VER)). Use FORCE_LD_VER to override automatic detection.
|
||||||
|
|
|
@ -30,8 +30,8 @@ default:: $(SUBDIRS)
|
||||||
DIR=.
|
DIR=.
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifndef CPP
|
!ifndef CXX
|
||||||
CPP=cl.exe
|
CXX=cl.exe
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,12 +32,12 @@ ALTSRC=$(WorkSpace)\src\closed
|
||||||
|
|
||||||
!ifdef RELEASE
|
!ifdef RELEASE
|
||||||
!ifdef DEVELOP
|
!ifdef DEVELOP
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG"
|
CXX_FLAGS=$(CXX_FLAGS) /D "DEBUG"
|
||||||
!else
|
!else
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "PRODUCT"
|
CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT"
|
||||||
!endif
|
!endif
|
||||||
!else
|
!else
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "ASSERT"
|
CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(Variant)" == "core"
|
!if "$(Variant)" == "core"
|
||||||
|
@ -45,19 +45,19 @@ CPP_FLAGS=$(CPP_FLAGS) /D "ASSERT"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(Variant)" == "kernel"
|
!if "$(Variant)" == "kernel"
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "KERNEL"
|
CXX_FLAGS=$(CXX_FLAGS) /D "KERNEL"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(Variant)" == "compiler1"
|
!if "$(Variant)" == "compiler1"
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1"
|
CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(Variant)" == "compiler2"
|
!if "$(Variant)" == "compiler2"
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER2"
|
CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER2"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(Variant)" == "tiered"
|
!if "$(Variant)" == "tiered"
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1" /D "COMPILER2"
|
CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" /D "COMPILER2"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(BUILDARCH)" == "i486"
|
!if "$(BUILDARCH)" == "i486"
|
||||||
|
@ -67,21 +67,21 @@ HOTSPOT_LIB_ARCH=$(BUILDARCH)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# The following variables are defined in the generated local.make file.
|
# The following variables are defined in the generated local.make file.
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
|
CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
|
CXX_FLAGS=$(CXX_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\""
|
CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\""
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
|
CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
|
CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
|
CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
|
||||||
|
|
||||||
!ifndef JAVASE_EMBEDDED
|
!ifndef JAVASE_EMBEDDED
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "INCLUDE_TRACE"
|
CXX_FLAGS=$(CXX_FLAGS) /D "INCLUDE_TRACE"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
CPP_FLAGS=$(CPP_FLAGS) $(CPP_INCLUDE_DIRS)
|
CXX_FLAGS=$(CXX_FLAGS) $(CXX_INCLUDE_DIRS)
|
||||||
|
|
||||||
# Define that so jni.h is on correct side
|
# Define that so jni.h is on correct side
|
||||||
CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_"
|
CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_"
|
||||||
|
|
||||||
!if "$(BUILDARCH)" == "ia64"
|
!if "$(BUILDARCH)" == "ia64"
|
||||||
STACK_SIZE="/STACK:1048576,262144"
|
STACK_SIZE="/STACK:1048576,262144"
|
||||||
|
@ -102,7 +102,7 @@ AGCT_EXPORT=/export:AsyncGetCallTrace
|
||||||
|
|
||||||
# If you modify exports below please do the corresponding changes in
|
# If you modify exports below please do the corresponding changes in
|
||||||
# src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
|
# src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
|
||||||
LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
|
LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
|
||||||
/export:JNI_GetDefaultJavaVMInitArgs \
|
/export:JNI_GetDefaultJavaVMInitArgs \
|
||||||
/export:JNI_CreateJavaVM \
|
/export:JNI_CreateJavaVM \
|
||||||
/export:JVM_FindClassFromBootLoader \
|
/export:JVM_FindClassFromBootLoader \
|
||||||
|
@ -118,25 +118,25 @@ LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
|
||||||
/export:JVM_GetThreadStateValues \
|
/export:JVM_GetThreadStateValues \
|
||||||
/export:JVM_InitAgentProperties
|
/export:JVM_InitAgentProperties
|
||||||
|
|
||||||
CPP_INCLUDE_DIRS=/I "..\generated"
|
CXX_INCLUDE_DIRS=/I "..\generated"
|
||||||
|
|
||||||
!if exists($(ALTSRC)\share\vm)
|
!if exists($(ALTSRC)\share\vm)
|
||||||
CPP_INCLUDE_DIRS=$(CPP_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm"
|
CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if exists($(ALTSRC)\os\windows\vm)
|
!if exists($(ALTSRC)\os\windows\vm)
|
||||||
CPP_INCLUDE_DIRS=$(CPP_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm"
|
CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm)
|
!if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm)
|
||||||
CPP_INCLUDE_DIRS=$(CPP_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm"
|
CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if exists($(ALTSRC)\cpu\$(Platform_arch)\vm)
|
!if exists($(ALTSRC)\cpu\$(Platform_arch)\vm)
|
||||||
CPP_INCLUDE_DIRS=$(CPP_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm"
|
CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
CPP_INCLUDE_DIRS=$(CPP_INCLUDE_DIRS) \
|
CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) \
|
||||||
/I "$(COMMONSRC)\share\vm" \
|
/I "$(COMMONSRC)\share\vm" \
|
||||||
/I "$(COMMONSRC)\share\vm\precompiled" \
|
/I "$(COMMONSRC)\share\vm\precompiled" \
|
||||||
/I "$(COMMONSRC)\share\vm\prims" \
|
/I "$(COMMONSRC)\share\vm\prims" \
|
||||||
|
@ -144,12 +144,12 @@ CPP_INCLUDE_DIRS=$(CPP_INCLUDE_DIRS) \
|
||||||
/I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \
|
/I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \
|
||||||
/I "$(COMMONSRC)\cpu\$(Platform_arch)\vm"
|
/I "$(COMMONSRC)\cpu\$(Platform_arch)\vm"
|
||||||
|
|
||||||
CPP_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER
|
CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER
|
||||||
|
|
||||||
!if "$(USE_PRECOMPILED_HEADER)" != "0"
|
!if "$(USE_PRECOMPILED_HEADER)" != "0"
|
||||||
CPP_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp"
|
CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp"
|
||||||
!else
|
!else
|
||||||
CPP_USE_PCH=$(CPP_DONT_USE_PCH)
|
CXX_USE_PCH=$(CXX_DONT_USE_PCH)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# Where to find the source code for the virtual machine (is this used?)
|
# Where to find the source code for the virtual machine (is this used?)
|
||||||
|
@ -194,101 +194,101 @@ VM_PATH={$(VM_PATH)}
|
||||||
# Special case files not using precompiled header files.
|
# Special case files not using precompiled header files.
|
||||||
|
|
||||||
c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
|
||||||
|
|
||||||
os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
|
||||||
|
|
||||||
os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
|
||||||
|
|
||||||
osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
|
||||||
|
|
||||||
conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
|
||||||
|
|
||||||
getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
|
||||||
|
|
||||||
opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
|
||||||
|
|
||||||
bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
|
||||||
|
|
||||||
bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
$(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
|
||||||
|
|
||||||
# Default rules for the Virtual Machine
|
# Default rules for the Virtual Machine
|
||||||
{$(COMMONSRC)\share\vm\c1}.cpp.obj::
|
{$(COMMONSRC)\share\vm\c1}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\compiler}.cpp.obj::
|
{$(COMMONSRC)\share\vm\compiler}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\code}.cpp.obj::
|
{$(COMMONSRC)\share\vm\code}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\interpreter}.cpp.obj::
|
{$(COMMONSRC)\share\vm\interpreter}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\ci}.cpp.obj::
|
{$(COMMONSRC)\share\vm\ci}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\classfile}.cpp.obj::
|
{$(COMMONSRC)\share\vm\classfile}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
|
{$(COMMONSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\gc_implementation\shared}.cpp.obj::
|
{$(COMMONSRC)\share\vm\gc_implementation\shared}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
|
{$(COMMONSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
|
{$(COMMONSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\gc_implementation\g1}.cpp.obj::
|
{$(COMMONSRC)\share\vm\gc_implementation\g1}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\gc_interface}.cpp.obj::
|
{$(COMMONSRC)\share\vm\gc_interface}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\asm}.cpp.obj::
|
{$(COMMONSRC)\share\vm\asm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\memory}.cpp.obj::
|
{$(COMMONSRC)\share\vm\memory}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\oops}.cpp.obj::
|
{$(COMMONSRC)\share\vm\oops}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\prims}.cpp.obj::
|
{$(COMMONSRC)\share\vm\prims}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\runtime}.cpp.obj::
|
{$(COMMONSRC)\share\vm\runtime}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\services}.cpp.obj::
|
{$(COMMONSRC)\share\vm\services}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\trace}.cpp.obj::
|
{$(COMMONSRC)\share\vm\trace}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\utilities}.cpp.obj::
|
{$(COMMONSRC)\share\vm\utilities}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\libadt}.cpp.obj::
|
{$(COMMONSRC)\share\vm\libadt}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\share\vm\opto}.cpp.obj::
|
{$(COMMONSRC)\share\vm\opto}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\os\windows\vm}.cpp.obj::
|
{$(COMMONSRC)\os\windows\vm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
# 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.
|
||||||
|
@ -296,113 +296,113 @@ bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWi
|
||||||
@$(RC) $(RC_FLAGS) /fo"$@" $<
|
@$(RC) $(RC_FLAGS) /fo"$@" $<
|
||||||
|
|
||||||
{$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
|
{$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
|
{$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\c1}.cpp.obj::
|
{$(ALTSRC)\share\vm\c1}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\compiler}.cpp.obj::
|
{$(ALTSRC)\share\vm\compiler}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\code}.cpp.obj::
|
{$(ALTSRC)\share\vm\code}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\interpreter}.cpp.obj::
|
{$(ALTSRC)\share\vm\interpreter}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\ci}.cpp.obj::
|
{$(ALTSRC)\share\vm\ci}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\classfile}.cpp.obj::
|
{$(ALTSRC)\share\vm\classfile}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
|
{$(ALTSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\gc_implementation\shared}.cpp.obj::
|
{$(ALTSRC)\share\vm\gc_implementation\shared}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
|
{$(ALTSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
|
{$(ALTSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\gc_implementation\g1}.cpp.obj::
|
{$(ALTSRC)\share\vm\gc_implementation\g1}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\gc_interface}.cpp.obj::
|
{$(ALTSRC)\share\vm\gc_interface}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\asm}.cpp.obj::
|
{$(ALTSRC)\share\vm\asm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\memory}.cpp.obj::
|
{$(ALTSRC)\share\vm\memory}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\oops}.cpp.obj::
|
{$(ALTSRC)\share\vm\oops}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\prims}.cpp.obj::
|
{$(ALTSRC)\share\vm\prims}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\runtime}.cpp.obj::
|
{$(ALTSRC)\share\vm\runtime}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\services}.cpp.obj::
|
{$(ALTSRC)\share\vm\services}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\trace}.cpp.obj::
|
{$(ALTSRC)\share\vm\trace}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\utilities}.cpp.obj::
|
{$(ALTSRC)\share\vm\utilities}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\libadt}.cpp.obj::
|
{$(ALTSRC)\share\vm\libadt}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\opto}.cpp.obj::
|
{$(ALTSRC)\share\vm\opto}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\os\windows\vm}.cpp.obj::
|
{$(ALTSRC)\os\windows\vm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
# otherwise we can't specify the output filename.
|
# otherwise we can't specify the output filename.
|
||||||
{$(ALTSRC)\os\windows\vm}.rc.res:
|
{$(ALTSRC)\os\windows\vm}.rc.res:
|
||||||
@$(RC) $(RC_FLAGS) /fo"$@" $<
|
@$(RC) $(RC_FLAGS) /fo"$@" $<
|
||||||
|
|
||||||
{$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
|
{$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
|
{$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{..\generated\incls}.cpp.obj::
|
{..\generated\incls}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{..\generated\adfiles}.cpp.obj::
|
{..\generated\adfiles}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{..\generated\jvmtifiles}.cpp.obj::
|
{..\generated\jvmtifiles}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\jfr}.cpp.obj::
|
{$(ALTSRC)\share\vm\jfr}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\jfr\agent}.cpp.obj::
|
{$(ALTSRC)\share\vm\jfr\agent}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\jfr\agent\isolated_deps\util}.cpp.obj::
|
{$(ALTSRC)\share\vm\jfr\agent\isolated_deps\util}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
{$(ALTSRC)\share\vm\jfr\jvm}.cpp.obj::
|
{$(ALTSRC)\share\vm\jfr\jvm}.cpp.obj::
|
||||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
$(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
|
||||||
|
|
||||||
default::
|
default::
|
||||||
|
|
||||||
_build_pch_file.obj:
|
_build_pch_file.obj:
|
||||||
@echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
|
@echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
|
||||||
$(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp
|
$(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp
|
||||||
|
|
54
hotspot/make/windows/makefiles/wb.make
Normal file
54
hotspot/make/windows/makefiles/wb.make
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012, 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# This makefile is used to build the whitebox testing lib
|
||||||
|
# and compile the tests which use it
|
||||||
|
|
||||||
|
!include $(WorkSpace)/make/windows/makefiles/rules.make
|
||||||
|
|
||||||
|
WBSRCDIR = $(WorkSpace)/src/share/tools/whitebox
|
||||||
|
|
||||||
|
# turn GENERATED into a windows path to get sane dependencies
|
||||||
|
WB_CLASSES=$(GENERATED:/=\)\wb\classes
|
||||||
|
WB_JAR=$(GENERATED:/=\)\wb.jar
|
||||||
|
|
||||||
|
# call recursive make to do wildcard expansion
|
||||||
|
.SUFFIXES : .java .class
|
||||||
|
wb_java_srcs: $(WorkSpace)\src\share\tools\whitebox\sun\hotspot\*.java $(WB_CLASSES)
|
||||||
|
$(MAKE) -f $(WorkSpace)\make\windows\makefiles\$(BUILD_FLAVOR).make $(**:.java=.class)
|
||||||
|
|
||||||
|
|
||||||
|
{$(WorkSpace)\src\share\tools\whitebox\sun\hotspot}.java.class::
|
||||||
|
$(COMPILE_JAVAC) -d $(WB_CLASSES) $<
|
||||||
|
|
||||||
|
$(WB_JAR): wb_java_srcs
|
||||||
|
$(RUN_JAR) cf $@ -C $(WB_CLASSES) .
|
||||||
|
|
||||||
|
# turn $@ to a unix path because mkdir in PATH is cygwin/mks mkdir
|
||||||
|
$(WB_CLASSES):
|
||||||
|
mkdir -p $(@:\=/)
|
||||||
|
|
||||||
|
# main target to build wb
|
||||||
|
wb: $(WB_JAR)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -2134,6 +2134,7 @@ public:
|
||||||
// address pseudos: make these names unlike instruction names to avoid confusion
|
// address pseudos: make these names unlike instruction names to avoid confusion
|
||||||
inline intptr_t load_pc_address( Register reg, int bytes_to_skip );
|
inline intptr_t load_pc_address( Register reg, int bytes_to_skip );
|
||||||
inline void load_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
|
inline void load_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
|
||||||
|
inline void load_bool_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
|
||||||
inline void load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
|
inline void load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
|
||||||
inline void store_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
|
inline void store_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
|
||||||
inline void store_ptr_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
|
inline void store_ptr_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
|
||||||
|
@ -2220,7 +2221,7 @@ public:
|
||||||
// traps as per trap.h (SPARC ABI?)
|
// traps as per trap.h (SPARC ABI?)
|
||||||
|
|
||||||
void breakpoint_trap();
|
void breakpoint_trap();
|
||||||
void breakpoint_trap(Condition c, CC cc = icc);
|
void breakpoint_trap(Condition c, CC cc);
|
||||||
void flush_windows_trap();
|
void flush_windows_trap();
|
||||||
void clean_windows_trap();
|
void clean_windows_trap();
|
||||||
void get_psr_trap();
|
void get_psr_trap();
|
||||||
|
@ -2249,7 +2250,7 @@ public:
|
||||||
// this platform we assume byte size
|
// this platform we assume byte size
|
||||||
|
|
||||||
inline void stbool(Register d, const Address& a) { stb(d, a); }
|
inline void stbool(Register d, const Address& a) { stb(d, a); }
|
||||||
inline void ldbool(const Address& a, Register d) { ldsb(a, d); }
|
inline void ldbool(const Address& a, Register d) { ldub(a, d); }
|
||||||
inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); }
|
inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); }
|
||||||
|
|
||||||
// klass oop manipulations if compressed
|
// klass oop manipulations if compressed
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -692,6 +692,17 @@ inline void MacroAssembler::load_contents(const AddressLiteral& addrlit, Registe
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline void MacroAssembler::load_bool_contents(const AddressLiteral& addrlit, Register d, int offset) {
|
||||||
|
assert_not_delayed();
|
||||||
|
if (ForceUnreachable) {
|
||||||
|
patchable_sethi(addrlit, d);
|
||||||
|
} else {
|
||||||
|
sethi(addrlit, d);
|
||||||
|
}
|
||||||
|
ldub(d, addrlit.low10() + offset, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
inline void MacroAssembler::load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset) {
|
inline void MacroAssembler::load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset) {
|
||||||
assert_not_delayed();
|
assert_not_delayed();
|
||||||
if (ForceUnreachable) {
|
if (ForceUnreachable) {
|
||||||
|
|
|
@ -472,7 +472,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
|
||||||
__ load_klass(src_reg, tmp_reg);
|
__ load_klass(src_reg, tmp_reg);
|
||||||
|
|
||||||
Address ref_type_adr(tmp_reg, instanceKlass::reference_type_offset());
|
Address ref_type_adr(tmp_reg, instanceKlass::reference_type_offset());
|
||||||
__ ld(ref_type_adr, tmp_reg);
|
__ ldub(ref_type_adr, tmp_reg);
|
||||||
|
|
||||||
// _reference_type field is of type ReferenceType (enum)
|
// _reference_type field is of type ReferenceType (enum)
|
||||||
assert(REF_NONE == 0, "check this code");
|
assert(REF_NONE == 0, "check this code");
|
||||||
|
|
|
@ -3231,6 +3231,26 @@ void LIR_Assembler::membar_release() {
|
||||||
// no-op on TSO
|
// no-op on TSO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LIR_Assembler::membar_loadload() {
|
||||||
|
// no-op
|
||||||
|
//__ membar(Assembler::Membar_mask_bits(Assembler::loadload));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LIR_Assembler::membar_storestore() {
|
||||||
|
// no-op
|
||||||
|
//__ membar(Assembler::Membar_mask_bits(Assembler::storestore));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LIR_Assembler::membar_loadstore() {
|
||||||
|
// no-op
|
||||||
|
//__ membar(Assembler::Membar_mask_bits(Assembler::loadstore));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LIR_Assembler::membar_storeload() {
|
||||||
|
__ membar(Assembler::Membar_mask_bits(Assembler::StoreLoad));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Pack two sequential registers containing 32 bit values
|
// Pack two sequential registers containing 32 bit values
|
||||||
// into a single 64 bit register.
|
// into a single 64 bit register.
|
||||||
// src and src->successor() are packed into dst
|
// src and src->successor() are packed into dst
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -42,7 +42,7 @@ define_pd_global(bool, ProfileInterpreter, false);
|
||||||
#else
|
#else
|
||||||
define_pd_global(bool, ProfileInterpreter, true);
|
define_pd_global(bool, ProfileInterpreter, true);
|
||||||
#endif // CC_INTERP
|
#endif // CC_INTERP
|
||||||
define_pd_global(bool, TieredCompilation, true);
|
define_pd_global(bool, TieredCompilation, trueInTiered);
|
||||||
define_pd_global(intx, CompileThreshold, 10000);
|
define_pd_global(intx, CompileThreshold, 10000);
|
||||||
define_pd_global(intx, BackEdgeThreshold, 140000);
|
define_pd_global(intx, BackEdgeThreshold, 140000);
|
||||||
|
|
||||||
|
|
|
@ -1187,7 +1187,7 @@ void CppInterpreterGenerator::generate_compute_interpreter_state(const Register
|
||||||
|
|
||||||
#ifdef ASSERT
|
#ifdef ASSERT
|
||||||
__ tst(O1);
|
__ tst(O1);
|
||||||
__ breakpoint_trap(Assembler::zero);
|
__ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
|
||||||
#endif // ASSERT
|
#endif // ASSERT
|
||||||
|
|
||||||
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
|
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
#include "oops/markOop.hpp"
|
#include "oops/markOop.hpp"
|
||||||
#include "oops/methodOop.hpp"
|
#include "oops/methodOop.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
|
#include "prims/methodHandles.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/javaCalls.hpp"
|
#include "runtime/javaCalls.hpp"
|
||||||
|
@ -810,7 +811,7 @@ intptr_t* frame::interpreter_frame_tos_at(jint offset) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef ASSERT
|
#ifndef PRODUCT
|
||||||
|
|
||||||
#define DESCRIBE_FP_OFFSET(name) \
|
#define DESCRIBE_FP_OFFSET(name) \
|
||||||
values.describe(frame_no, fp() + frame::name##_offset, #name)
|
values.describe(frame_no, fp() + frame::name##_offset, #name)
|
||||||
|
@ -820,11 +821,19 @@ void frame::describe_pd(FrameValues& values, int frame_no) {
|
||||||
values.describe(frame_no, sp() + w, err_msg("register save area word %d", w), 1);
|
values.describe(frame_no, sp() + w, err_msg("register save area word %d", w), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_interpreted_frame()) {
|
if (is_ricochet_frame()) {
|
||||||
|
MethodHandles::RicochetFrame::describe(this, values, frame_no);
|
||||||
|
} else if (is_interpreted_frame()) {
|
||||||
DESCRIBE_FP_OFFSET(interpreter_frame_d_scratch_fp);
|
DESCRIBE_FP_OFFSET(interpreter_frame_d_scratch_fp);
|
||||||
DESCRIBE_FP_OFFSET(interpreter_frame_l_scratch_fp);
|
DESCRIBE_FP_OFFSET(interpreter_frame_l_scratch_fp);
|
||||||
DESCRIBE_FP_OFFSET(interpreter_frame_padding);
|
DESCRIBE_FP_OFFSET(interpreter_frame_padding);
|
||||||
DESCRIBE_FP_OFFSET(interpreter_frame_oop_temp);
|
DESCRIBE_FP_OFFSET(interpreter_frame_oop_temp);
|
||||||
|
|
||||||
|
// esp, according to Lesp (e.g. not depending on bci), if seems valid
|
||||||
|
intptr_t* esp = *interpreter_frame_esp_addr();
|
||||||
|
if ((esp >= sp()) && (esp < fp())) {
|
||||||
|
values.describe(-1, esp, "*Lesp");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_compiled_frame()) {
|
if (!is_compiled_frame()) {
|
||||||
|
@ -844,4 +853,3 @@ intptr_t *frame::initial_deoptimization_info() {
|
||||||
// unused... but returns fp() to minimize changes introduced by 7087445
|
// unused... but returns fp() to minimize changes introduced by 7087445
|
||||||
return fp();
|
return fp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,14 +56,15 @@ define_pd_global(intx, InlineSmallCode, 1500);
|
||||||
// Stack slots are 2X larger in LP64 than in the 32 bit VM.
|
// Stack slots are 2X larger in LP64 than in the 32 bit VM.
|
||||||
define_pd_global(intx, ThreadStackSize, 1024);
|
define_pd_global(intx, ThreadStackSize, 1024);
|
||||||
define_pd_global(intx, VMThreadStackSize, 1024);
|
define_pd_global(intx, VMThreadStackSize, 1024);
|
||||||
|
define_pd_global(intx, StackShadowPages, 10 DEBUG_ONLY(+1));
|
||||||
#else
|
#else
|
||||||
define_pd_global(intx, ThreadStackSize, 512);
|
define_pd_global(intx, ThreadStackSize, 512);
|
||||||
define_pd_global(intx, VMThreadStackSize, 512);
|
define_pd_global(intx, VMThreadStackSize, 512);
|
||||||
|
define_pd_global(intx, StackShadowPages, 3 DEBUG_ONLY(+1));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
define_pd_global(intx, StackYellowPages, 2);
|
define_pd_global(intx, StackYellowPages, 2);
|
||||||
define_pd_global(intx, StackRedPages, 1);
|
define_pd_global(intx, StackRedPages, 1);
|
||||||
define_pd_global(intx, StackShadowPages, 3 DEBUG_ONLY(+1));
|
|
||||||
|
|
||||||
define_pd_global(intx, PreInflateSpin, 40); // Determined by running design center
|
define_pd_global(intx, PreInflateSpin, 40); // Determined by running design center
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -177,7 +177,7 @@ void MethodHandles::RicochetFrame::generate_ricochet_blob(MacroAssembler* _masm,
|
||||||
BLOCK_COMMENT("ricochet_blob.bounce");
|
BLOCK_COMMENT("ricochet_blob.bounce");
|
||||||
|
|
||||||
if (VerifyMethodHandles) RicochetFrame::verify_clean(_masm);
|
if (VerifyMethodHandles) RicochetFrame::verify_clean(_masm);
|
||||||
trace_method_handle(_masm, "ricochet_blob.bounce");
|
trace_method_handle(_masm, "return/ricochet_blob.bounce");
|
||||||
|
|
||||||
__ JMP(L1_continuation, 0);
|
__ JMP(L1_continuation, 0);
|
||||||
__ delayed()->nop();
|
__ delayed()->nop();
|
||||||
|
@ -268,14 +268,16 @@ void MethodHandles::RicochetFrame::leave_ricochet_frame(MacroAssembler* _masm,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Emit code to verify that FP is pointing at a valid ricochet frame.
|
// Emit code to verify that FP is pointing at a valid ricochet frame.
|
||||||
#ifdef ASSERT
|
#ifndef PRODUCT
|
||||||
enum {
|
enum {
|
||||||
ARG_LIMIT = 255, SLOP = 45,
|
ARG_LIMIT = 255, SLOP = 45,
|
||||||
// use this parameter for checking for garbage stack movements:
|
// use this parameter for checking for garbage stack movements:
|
||||||
UNREASONABLE_STACK_MOVE = (ARG_LIMIT + SLOP)
|
UNREASONABLE_STACK_MOVE = (ARG_LIMIT + SLOP)
|
||||||
// the slop defends against false alarms due to fencepost errors
|
// the slop defends against false alarms due to fencepost errors
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ASSERT
|
||||||
void MethodHandles::RicochetFrame::verify_clean(MacroAssembler* _masm) {
|
void MethodHandles::RicochetFrame::verify_clean(MacroAssembler* _masm) {
|
||||||
// The stack should look like this:
|
// The stack should look like this:
|
||||||
// ... keep1 | dest=42 | keep2 | magic | handler | magic | recursive args | [RF]
|
// ... keep1 | dest=42 | keep2 | magic | handler | magic | recursive args | [RF]
|
||||||
|
@ -1000,32 +1002,143 @@ void MethodHandles::move_return_value(MacroAssembler* _masm, BasicType type,
|
||||||
BLOCK_COMMENT("} move_return_value");
|
BLOCK_COMMENT("} move_return_value");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef PRODUCT
|
||||||
|
void MethodHandles::RicochetFrame::describe(const frame* fr, FrameValues& values, int frame_no) {
|
||||||
|
RicochetFrame* rf = new RicochetFrame(*fr);
|
||||||
|
|
||||||
|
// ricochet slots (kept in registers for sparc)
|
||||||
|
values.describe(frame_no, rf->register_addr(I5_savedSP), err_msg("exact_sender_sp reg for #%d", frame_no));
|
||||||
|
values.describe(frame_no, rf->register_addr(L5_conversion), err_msg("conversion reg for #%d", frame_no));
|
||||||
|
values.describe(frame_no, rf->register_addr(L4_saved_args_base), err_msg("saved_args_base reg for #%d", frame_no));
|
||||||
|
values.describe(frame_no, rf->register_addr(L3_saved_args_layout), err_msg("saved_args_layout reg for #%d", frame_no));
|
||||||
|
values.describe(frame_no, rf->register_addr(L2_saved_target), err_msg("saved_target reg for #%d", frame_no));
|
||||||
|
values.describe(frame_no, rf->register_addr(L1_continuation), err_msg("continuation reg for #%d", frame_no));
|
||||||
|
|
||||||
|
// relevant ricochet targets (in caller frame)
|
||||||
|
values.describe(-1, rf->saved_args_base(), err_msg("*saved_args_base for #%d", frame_no));
|
||||||
|
values.describe(-1, (intptr_t *)(STACK_BIAS+(uintptr_t)rf->exact_sender_sp()), err_msg("*exact_sender_sp+STACK_BIAS for #%d", frame_no));
|
||||||
|
}
|
||||||
|
#endif // ASSERT
|
||||||
|
|
||||||
#ifndef PRODUCT
|
#ifndef PRODUCT
|
||||||
extern "C" void print_method_handle(oop mh);
|
extern "C" void print_method_handle(oop mh);
|
||||||
void trace_method_handle_stub(const char* adaptername,
|
void trace_method_handle_stub(const char* adaptername,
|
||||||
oopDesc* mh,
|
oopDesc* mh,
|
||||||
intptr_t* saved_sp) {
|
intptr_t* saved_sp,
|
||||||
|
intptr_t* args,
|
||||||
|
intptr_t* tracing_fp) {
|
||||||
bool has_mh = (strstr(adaptername, "return/") == NULL); // return adapters don't have mh
|
bool has_mh = (strstr(adaptername, "return/") == NULL); // return adapters don't have mh
|
||||||
tty->print_cr("MH %s mh="INTPTR_FORMAT " saved_sp=" INTPTR_FORMAT, adaptername, (intptr_t) mh, saved_sp);
|
|
||||||
if (has_mh)
|
tty->print_cr("MH %s mh="INTPTR_FORMAT " saved_sp=" INTPTR_FORMAT " args=" INTPTR_FORMAT, adaptername, (intptr_t) mh, saved_sp, args);
|
||||||
|
|
||||||
|
if (Verbose) {
|
||||||
|
// dumping last frame with frame::describe
|
||||||
|
|
||||||
|
JavaThread* p = JavaThread::active();
|
||||||
|
|
||||||
|
ResourceMark rm;
|
||||||
|
PRESERVE_EXCEPTION_MARK; // may not be needed by safer and unexpensive here
|
||||||
|
FrameValues values;
|
||||||
|
|
||||||
|
// Note: We want to allow trace_method_handle from any call site.
|
||||||
|
// While trace_method_handle creates a frame, it may be entered
|
||||||
|
// without a valid return PC in O7 (e.g. not just after a call).
|
||||||
|
// Walking that frame could lead to failures due to that invalid PC.
|
||||||
|
// => carefully detect that frame when doing the stack walking
|
||||||
|
|
||||||
|
// walk up to the right frame using the "tracing_fp" argument
|
||||||
|
intptr_t* cur_sp = StubRoutines::Sparc::flush_callers_register_windows_func()();
|
||||||
|
frame cur_frame(cur_sp, frame::unpatchable, NULL);
|
||||||
|
|
||||||
|
while (cur_frame.fp() != (intptr_t *)(STACK_BIAS+(uintptr_t)tracing_fp)) {
|
||||||
|
cur_frame = os::get_sender_for_C_frame(&cur_frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
// safely create a frame and call frame::describe
|
||||||
|
intptr_t *dump_sp = cur_frame.sender_sp();
|
||||||
|
intptr_t *dump_fp = cur_frame.link();
|
||||||
|
|
||||||
|
bool walkable = has_mh; // whether the traced frame shoud be walkable
|
||||||
|
|
||||||
|
// the sender for cur_frame is the caller of trace_method_handle
|
||||||
|
if (walkable) {
|
||||||
|
// The previous definition of walkable may have to be refined
|
||||||
|
// if new call sites cause the next frame constructor to start
|
||||||
|
// failing. Alternatively, frame constructors could be
|
||||||
|
// modified to support the current or future non walkable
|
||||||
|
// frames (but this is more intrusive and is not considered as
|
||||||
|
// part of this RFE, which will instead use a simpler output).
|
||||||
|
frame dump_frame = frame(dump_sp,
|
||||||
|
cur_frame.sp(), // younger_sp
|
||||||
|
false); // no adaptation
|
||||||
|
dump_frame.describe(values, 1);
|
||||||
|
} else {
|
||||||
|
// Robust dump for frames which cannot be constructed from sp/younger_sp
|
||||||
|
// Add descriptions without building a Java frame to avoid issues
|
||||||
|
values.describe(-1, dump_fp, "fp for #1 <not parsed, cannot trust pc>");
|
||||||
|
values.describe(-1, dump_sp, "sp");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool has_args = has_mh; // whether Gargs is meaningful
|
||||||
|
|
||||||
|
// mark args, if seems valid (may not be valid for some adapters)
|
||||||
|
if (has_args) {
|
||||||
|
if ((args >= dump_sp) && (args < dump_fp)) {
|
||||||
|
values.describe(-1, args, "*G4_args");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// mark saved_sp, if seems valid (may not be valid for some adapters)
|
||||||
|
intptr_t *unbiased_sp = (intptr_t *)(STACK_BIAS+(uintptr_t)saved_sp);
|
||||||
|
if ((unbiased_sp >= dump_sp - UNREASONABLE_STACK_MOVE) && (unbiased_sp < dump_fp)) {
|
||||||
|
values.describe(-1, unbiased_sp, "*saved_sp+STACK_BIAS");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note: the unextended_sp may not be correct
|
||||||
|
tty->print_cr(" stack layout:");
|
||||||
|
values.print(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (has_mh) {
|
||||||
print_method_handle(mh);
|
print_method_handle(mh);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
|
void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
|
||||||
if (!TraceMethodHandles) return;
|
if (!TraceMethodHandles) return;
|
||||||
BLOCK_COMMENT("trace_method_handle {");
|
BLOCK_COMMENT("trace_method_handle {");
|
||||||
// save: Gargs, O5_savedSP
|
// save: Gargs, O5_savedSP
|
||||||
__ save_frame(16);
|
__ save_frame(16); // need space for saving required FPU state
|
||||||
|
|
||||||
__ set((intptr_t) adaptername, O0);
|
__ set((intptr_t) adaptername, O0);
|
||||||
__ mov(G3_method_handle, O1);
|
__ mov(G3_method_handle, O1);
|
||||||
__ mov(I5_savedSP, O2);
|
__ mov(I5_savedSP, O2);
|
||||||
|
__ mov(Gargs, O3);
|
||||||
|
__ mov(I6, O4); // frame identifier for safe stack walking
|
||||||
|
|
||||||
|
// Save scratched registers that might be needed. Robustness is more
|
||||||
|
// important than optimizing the saves for this debug only code.
|
||||||
|
|
||||||
|
// save FP result, valid at some call sites (adapter_opt_return_float, ...)
|
||||||
|
Address d_save(FP, -sizeof(jdouble) + STACK_BIAS);
|
||||||
|
__ stf(FloatRegisterImpl::D, Ftos_d, d_save);
|
||||||
|
// Safely save all globals but G2 (handled by call_VM_leaf) and G7
|
||||||
|
// (OS reserved).
|
||||||
__ mov(G3_method_handle, L3);
|
__ mov(G3_method_handle, L3);
|
||||||
__ mov(Gargs, L4);
|
__ mov(Gargs, L4);
|
||||||
__ mov(G5_method_type, L5);
|
__ mov(G5_method_type, L5);
|
||||||
__ call_VM_leaf(L7, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
|
__ mov(G6, L6);
|
||||||
|
__ mov(G1, L1);
|
||||||
|
|
||||||
|
__ call_VM_leaf(L2 /* for G2 */, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
|
||||||
|
|
||||||
__ mov(L3, G3_method_handle);
|
__ mov(L3, G3_method_handle);
|
||||||
__ mov(L4, Gargs);
|
__ mov(L4, Gargs);
|
||||||
__ mov(L5, G5_method_type);
|
__ mov(L5, G5_method_type);
|
||||||
|
__ mov(L6, G6);
|
||||||
|
__ mov(L1, G1);
|
||||||
|
__ ldf(FloatRegisterImpl::D, d_save, Ftos_d);
|
||||||
|
|
||||||
__ restore();
|
__ restore();
|
||||||
BLOCK_COMMENT("} trace_method_handle");
|
BLOCK_COMMENT("} trace_method_handle");
|
||||||
}
|
}
|
||||||
|
@ -1250,7 +1363,7 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
|
||||||
move_typed_arg(_masm, arg_type, false,
|
move_typed_arg(_masm, arg_type, false,
|
||||||
prim_value_addr,
|
prim_value_addr,
|
||||||
Address(O0_argslot, 0),
|
Address(O0_argslot, 0),
|
||||||
O2_scratch); // must be an even register for !_LP64 long moves (uses O2/O3)
|
O2_scratch); // must be an even register for !_LP64 long moves (uses O2/O3)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (direct_to_method) {
|
if (direct_to_method) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -145,6 +145,8 @@ class RicochetFrame : public ResourceObj {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void verify_clean(MacroAssembler* _masm) NOT_DEBUG_RETURN;
|
static void verify_clean(MacroAssembler* _masm) NOT_DEBUG_RETURN;
|
||||||
|
|
||||||
|
static void describe(const frame* fr, FrameValues& values, int frame_no) PRODUCT_RETURN;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Additional helper methods for MethodHandles code generation:
|
// Additional helper methods for MethodHandles code generation:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue