Skip to content
Commits on Source (3)
......@@ -502,10 +502,13 @@ ea900a7dc7d77dee30865c60eabd87fc24b1037c jdk-11+24
945ba9278a272a5477ffb1b3ea1b04174fed8036 jdk-11+26
9d7d74c6f2cbe522e39fa22dc557fdd3f79b32ad jdk-11+27
76072a077ee1d815152d45d1692c4b36c53c5c49 jdk-11+28
c01cc45790f871adec30acc90742b521d57a2fff jdk-11.0.1+0
1353ec839c82de926bfacd2c7976b6b652d4afb0 jdk-11.0.1+1
781b5d8f2f75ae4dfdafc85630e5dbd31e324ed1 jdk-11.0.1+3
a285bd7cfedb40cb3086e61e17fc04c96b739d03 jdk-11.0.1+2
a285bd7cfedb40cb3086e61e17fc04c96b739d03 jdk-11.0.1+2
0000000000000000000000000000000000000000 jdk-11.0.1+2
fc55f0667af5ea3b21e40a59e2a88b1b82e65e62 jdk-11.0.1+2
c01cc45790f871adec30acc90742b521d57a2fff jdk-11.0.1+0
781b5d8f2f75ae4dfdafc85630e5dbd31e324ed1 jdk-11.0.1+3
b5b1dd7e6f9d86aedf7141e9279342fae257bd67 jdk-11.0.1+4
d6efeebf554c918bfab50f89939eb11121e18432 jdk-11.0.1+5
db768cfe2141b3eb9ef53d7104002a0532c8c977 jdk-11.0.1+6
......@@ -516,3 +519,17 @@ a86e14193fc8ea98835fd3e2f867447164c7af53 jdk-11.0.1+10
0343f9aacae2d4a9e6df4e61087837166a6a477c jdk-11.0.1+11
c0431cf9c38e5c56eedc680e007a94c4279a8f13 jdk-11.0.1+12
8513ac27b65198d2e6562fb7da6e9c99b9fdcf51 jdk-11.0.1+13
7da060835810b5fbd4a7493ea1c98e9a4338f30d jdk-11.0.2+0
2be95a1bf50877cafba791c2f342953bd4a6412e jdk-11.0.2+1
b4b16f510f48e2dd4bea007b60fddf69af0f6c10 jdk-11.0.2+2
8a8606a3bdf2dbe0698bef375e6a4b47df0efb1a jdk-11.0.2+3
0db90dec8c39bc38058afa11b7fda607ee259d01 jdk-11.0.2+4
ff1f7723c4e88822fd60bcacd55824e1d3da6d36 jdk-11.0.2+5
c6fd7ff3e96f3e6f4913d026a90c6c454a7a35c8 jdk-11.0.2+6
a01e0cc0105972acc3b5e213dbe2b84acaee5be3 jdk-11.0.2+7
a01e0cc0105972acc3b5e213dbe2b84acaee5be3 jdk-11.0.2-ga
fe85e2f43a1c893cb410308106b0f31b814aebb8 jdk-11.0.2+8
144d476b6efe527c5e9ebf19af93398913c5450f jdk-11.0.2+9
a01e0cc0105972acc3b5e213dbe2b84acaee5be3 jdk-11.0.2-ga
0000000000000000000000000000000000000000 jdk-11.0.2-ga
144d476b6efe527c5e9ebf19af93398913c5450f jdk-11.0.2-ga
openjdk-11-jre-dcevm (11.0.3+1-1) unstable; urgency=medium
* New upstream release (Closes: #924972)
-- Emmanuel Bourg <ebourg@apache.org> Tue, 19 Mar 2019 11:13:57 +0100
openjdk-11-jre-dcevm (11.0.1+8-1) unstable; urgency=medium
[ Emmanuel Bourg ]
......
......@@ -32,6 +32,31 @@ include FindTests.gmk
# We will always run multiple tests serially
.NOTPARALLEL:
################################################################################
# Setup global test running parameters
################################################################################
# Each factor variable comes in 3 variants. The first one is reserved for users
# to use on command line. The other two are for predifined configurations in JDL
# and for machine specific configurations respectively.
TEST_JOBS_FACTOR ?= 1
TEST_JOBS_FACTOR_JDL ?= 1
TEST_JOBS_FACTOR_MACHINE ?= 1
ifeq ($(TEST_JOBS), 0)
# Concurrency based on min(cores / 2, 12) * TEST_JOBS_FACTOR
TEST_JOBS := $(shell $(AWK) \
'BEGIN { \
c = $(NUM_CORES) / 2; \
if (c > 12) c = 12; \
c = c * $(TEST_JOBS_FACTOR); \
c = c * $(TEST_JOBS_FACTOR_JDL); \
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
if (c < 1) c = 1; \
printf "%.0f", c; \
}')
endif
################################################################################
# Parse global control variables
################################################################################
......@@ -143,17 +168,6 @@ endif
# Component-specific Jtreg settings
################################################################################
ifeq ($(TEST_JOBS), 0)
# If TEST_JOBS is not specified, hotspot fallback default is
# min(num_cores / 2, 12).
hotspot_JTREG_JOBS := $(shell $(EXPR) $(NUM_CORES) / 2)
ifeq ($(hotspot_JTREG_JOBS), 0)
hotspot_JTREG_JOBS := 1
else ifeq ($(shell $(EXPR) $(hotspot_JTREG_JOBS) \> 12), 1)
hotspot_JTREG_JOBS := 12
endif
endif
hotspot_JTREG_MAX_MEM := 0
hotspot_JTREG_ASSERT := false
hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
......@@ -165,6 +179,8 @@ langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
langtools_JTREG_MAX_MEM := 768m
################################################################################
# Parse test selection
#
......@@ -476,10 +492,8 @@ define SetupRunJtregTestBody
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
ifneq ($(TEST_JOBS), 0)
# User has specified TEST_JOBS, use that as fallback default
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
else
# Use JOBS as default (except for hotspot)
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
endif
......
......@@ -494,8 +494,8 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
fi
if test "x$TOOLCHAIN_TYPE" = xgcc; then
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new"
TOOLCHAIN_CFLAGS_JDK="-pipe"
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new -fstack-protector"
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX (but since this gives *worse* performance, use no-strict-aliasing everywhere!)
CXXSTD_CXXFLAG="-std=gnu++98"
......
......@@ -338,17 +338,18 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
fi
fi
# Only enable ZGC on Linux x86_64
AC_MSG_CHECKING([if zgc should be built])
if HOTSPOT_CHECK_JVM_FEATURE(zgc); then
# Only enable ZGC on supported platforms
AC_MSG_CHECKING([if zgc can be built])
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
AC_MSG_RESULT([yes])
else
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
AC_MSG_RESULT([no, platform not supported])
fi
else
AC_MSG_RESULT([no])
# Disable unsupported GCs for Zero
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc zgc"
fi
# Turn on additional features based on other parts of configure
......@@ -482,7 +483,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
fi
# All variants but minimal (and custom) get these features
NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc jni-check jvmti management nmt services vm-structs"
NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc jni-check jvmti management nmt services vm-structs zgc"
AC_MSG_CHECKING([if cds should be enabled])
if test "x$ENABLE_CDS" = "xtrue"; then
......
......@@ -139,15 +139,18 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_MSG_ERROR([--with-version-string must have a value])
elif test "x$with_version_string" != x; then
# Additional [] needed to keep m4 from mangling shell constructs.
if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
if [ [[ $with_version_string =~ ^([0-9]+)(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(\.([0-9]+))?(-([a-zA-Z]+))?((\+)([0-9]+)?(-([-a-zA-Z0-9.]+))?)?$ ]] ]; then
VERSION_FEATURE=${BASH_REMATCH[[1]]}
VERSION_INTERIM=${BASH_REMATCH[[3]]}
VERSION_UPDATE=${BASH_REMATCH[[5]]}
VERSION_PATCH=${BASH_REMATCH[[7]]}
VERSION_PRE=${BASH_REMATCH[[9]]}
version_plus_separator=${BASH_REMATCH[[11]]}
VERSION_BUILD=${BASH_REMATCH[[12]]}
VERSION_OPT=${BASH_REMATCH[[14]]}
VERSION_EXTRA1=${BASH_REMATCH[[9]]}
VERSION_EXTRA2=${BASH_REMATCH[[11]]}
VERSION_EXTRA3=${BASH_REMATCH[[13]]}
VERSION_PRE=${BASH_REMATCH[[15]]}
version_plus_separator=${BASH_REMATCH[[17]]}
VERSION_BUILD=${BASH_REMATCH[[18]]}
VERSION_OPT=${BASH_REMATCH[[20]]}
# Unspecified numerical fields are interpreted as 0.
if test "x$VERSION_INTERIM" = x; then
VERSION_INTERIM=0
......@@ -158,6 +161,15 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
if test "x$VERSION_PATCH" = x; then
VERSION_PATCH=0
fi
if test "x$VERSION_EXTRA1" = x; then
VERSION_EXTRA1=0
fi
if test "x$VERSION_EXTRA2" = x; then
VERSION_EXTRA2=0
fi
if test "x$VERSION_EXTRA3" = x; then
VERSION_EXTRA3=0
fi
if test "x$version_plus_separator" != x \
&& test "x$VERSION_BUILD$VERSION_OPT" = x; then
AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
......@@ -327,6 +339,72 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
fi
fi
# The 1st version extra number, if any
AC_ARG_WITH(version-extra1, [AS_HELP_STRING([--with-version-extra1],
[Set 1st version extra number @<:@not specified@:>@])],
[with_version_extra1_present=true], [with_version_extra1_present=false])
if test "x$with_version_extra1_present" = xtrue; then
if test "x$with_version_extra1" = xyes; then
AC_MSG_ERROR([--with-version-extra1 must have a value])
elif test "x$with_version_extra1" = xno; then
# Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
VERSION_EXTRA1=0
elif test "x$with_version_extra1" = x; then
VERSION_EXTRA1=0
else
JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA1, $with_version_extra1)
fi
else
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
VERSION_EXTRA1=$DEFAULT_VERSION_EXTRA1
fi
fi
# The 2nd version extra number, if any
AC_ARG_WITH(version-extra2, [AS_HELP_STRING([--with-version-extra2],
[Set 2nd version extra number @<:@not specified@:>@])],
[with_version_extra2_present=true], [with_version_extra2_present=false])
if test "x$with_version_extra2_present" = xtrue; then
if test "x$with_version_extra2" = xyes; then
AC_MSG_ERROR([--with-version-extra2 must have a value])
elif test "x$with_version_extra2" = xno; then
# Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
VERSION_EXTRA2=0
elif test "x$with_version_extra2" = x; then
VERSION_EXTRA2=0
else
JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA2, $with_version_extra2)
fi
else
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
VERSION_EXTRA2=$DEFAULT_VERSION_EXTRA2
fi
fi
# The 3rd version extra number, if any
AC_ARG_WITH(version-extra3, [AS_HELP_STRING([--with-version-extra3],
[Set 3rd version extra number @<:@not specified@:>@])],
[with_version_extra3_present=true], [with_version_extra3_present=false])
if test "x$with_version_extra3_present" = xtrue; then
if test "x$with_version_extra3" = xyes; then
AC_MSG_ERROR([--with-version-extra3 must have a value])
elif test "x$with_version_extra3" = xno; then
# Interpret --without-* as empty string (i.e. 0) instead of the literal "no"
VERSION_EXTRA3=0
elif test "x$with_version_extra3" = x; then
VERSION_EXTRA3=0
else
JDKVER_CHECK_AND_SET_NUMBER(VERSION_EXTRA3, $with_version_extra3)
fi
else
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
VERSION_EXTRA3=$DEFAULT_VERSION_EXTRA3
fi
fi
# Calculate derived version properties
# Set VERSION_IS_GA based on if VERSION_PRE has a value
......@@ -339,9 +417,12 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
# VERSION_NUMBER but always with exactly 4 positions, with 0 for empty positions.
VERSION_NUMBER_FOUR_POSITIONS=$VERSION_FEATURE.$VERSION_INTERIM.$VERSION_UPDATE.$VERSION_PATCH
stripped_version_number=$VERSION_NUMBER_FOUR_POSITIONS
# VERSION_NUMBER but always with all positions, with 0 for empty positions.
VERSION_NUMBER_ALL_POSITIONS=$VERSION_NUMBER_FOUR_POSITIONS.$VERSION_EXTRA1.$VERSION_EXTRA2.$VERSION_EXTRA3
stripped_version_number=$VERSION_NUMBER_ALL_POSITIONS
# Strip trailing zeroes from stripped_version_number
for i in 1 2 3 ; do stripped_version_number=${stripped_version_number%.0} ; done
for i in 1 2 3 4 5 6 ; do stripped_version_number=${stripped_version_number%.0} ; done
VERSION_NUMBER=$stripped_version_number
# The complete version string, with additional build information
......@@ -392,6 +473,9 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_SUBST(VERSION_INTERIM)
AC_SUBST(VERSION_UPDATE)
AC_SUBST(VERSION_PATCH)
AC_SUBST(VERSION_EXTRA1)
AC_SUBST(VERSION_EXTRA2)
AC_SUBST(VERSION_EXTRA3)
AC_SUBST(VERSION_PRE)
AC_SUBST(VERSION_BUILD)
AC_SUBST(VERSION_OPT)
......
......@@ -165,6 +165,9 @@ VERSION_FEATURE := @VERSION_FEATURE@
VERSION_INTERIM := @VERSION_INTERIM@
VERSION_UPDATE := @VERSION_UPDATE@
VERSION_PATCH := @VERSION_PATCH@
VERSION_EXTRA1 := @VERSION_EXTRA1@
VERSION_EXTRA2 := @VERSION_EXTRA2@
VERSION_EXTRA3 := @VERSION_EXTRA3@
# The pre-release identifier (string)
VERSION_PRE := @VERSION_PRE@
# The build number (numerical)
......@@ -203,6 +206,9 @@ VERSION_CFLAGS := \
-DVERSION_INTERIM=$(VERSION_INTERIM) \
-DVERSION_UPDATE=$(VERSION_UPDATE) \
-DVERSION_PATCH=$(VERSION_PATCH) \
-DVERSION_EXTRA1=$(VERSION_EXTRA1) \
-DVERSION_EXTRA2=$(VERSION_EXTRA2) \
-DVERSION_EXTRA3=$(VERSION_EXTRA3) \
-DVERSION_PRE='"$(VERSION_PRE)"' \
-DVERSION_BUILD=$(VERSION_BUILD) \
-DVERSION_OPT='"$(VERSION_OPT)"' \
......
#
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
......@@ -27,9 +27,12 @@
DEFAULT_VERSION_FEATURE=11
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=1
DEFAULT_VERSION_PATCH=6
DEFAULT_VERSION_DATE=2018-12-16
DEFAULT_VERSION_UPDATE=3
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2019-04-16
DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11"
......
......@@ -709,14 +709,6 @@ var getJibProfilesProfiles = function (input, common, data) {
profiles[openName].artifacts["jdk"].remote));
});
// Enable ZGC in linux-x64-open builds
[ "linux-x64-open" ].forEach(function (name) {
var configureArgs = { configure_args: [ "--with-jvm-features=zgc" ] };
var debugName = name + common.debug_suffix;
profiles[name] = concatObjects(profiles[name], configureArgs);
profiles[debugName] = concatObjects(profiles[debugName], configureArgs);
});
// Generate cmp-baseline profiles for each main profile and their
// corresponding debug profile. This profile does a compare build run with no
// changes to verify that the compare script has a clean baseline
......@@ -901,7 +893,7 @@ var getJibProfilesDependencies = function (input, common) {
jtreg: {
server: "javare",
revision: "4.2",
build_number: "b12",
build_number: "b13",
checksum_file: "MD5_VALUES",
file: "jtreg_bin-4.2.zip",
environment_name: "JT_HOME",
......
......@@ -82,7 +82,6 @@ JVM_GetClassFieldsCount
JVM_GetClassInterfaces
JVM_GetClassMethodsCount
JVM_GetClassModifiers
JVM_GetClassName
JVM_GetClassNameUTF
JVM_GetClassSignature
JVM_GetClassSigners
......@@ -133,6 +132,7 @@ JVM_Halt
JVM_HasReferencePendingList
JVM_HoldsLock
JVM_IHashCode
JVM_InitClassName
JVM_InitProperties
JVM_InitStackTraceElement
JVM_InitStackTraceElementArray
......
......@@ -29,7 +29,8 @@ $(eval $(call SetupBuildLauncher, jinfo, \
MAIN_CLASS := sun.tools.jinfo.JInfo, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger \
-XX:+DisableHotswapAgent, \
MACOSX_SIGNED := true, \
))
......@@ -37,28 +38,36 @@ $(eval $(call SetupBuildLauncher, jmap, \
MAIN_CLASS := sun.tools.jmap.JMap, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger \
-XX:+DisableHotswapAgent, \
MACOSX_SIGNED := true, \
))
$(eval $(call SetupBuildLauncher, jps, \
MAIN_CLASS := sun.tools.jps.Jps, \
JAVA_ARGS := \
-XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jstack, \
MAIN_CLASS := sun.tools.jstack.JStack, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger \
-XX:+DisableHotswapAgent, \
MACOSX_SIGNED := true, \
))
$(eval $(call SetupBuildLauncher, jstat, \
MAIN_CLASS := sun.tools.jstat.Jstat, \
JAVA_ARGS := \
-XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jcmd, \
MAIN_CLASS := sun.tools.jcmd.JCmd, \
JAVA_ARGS := \
-XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
......
......@@ -39,7 +39,7 @@ $(eval $(call SetupBuildLauncher, pack200, \
# On Mac, we have always exported all symbols, probably due to oversight
# and/or misunderstanding. To emulate this, don't hide any symbols
# by default.
# On AIX/xlc we need at least xlc 13.1 for the symbol hiding
# On AIX/xlc we need at least xlc 13.1 for the symbol hiding (see JDK-8214063)
# Also provide an override for non-conformant libraries.
ifeq ($(TOOLCHAIN_TYPE), gcc)
CXXFLAGS_JDKEXE += -fvisibility=hidden
......@@ -50,10 +50,6 @@ else ifeq ($(TOOLCHAIN_TYPE), clang)
endif
else ifeq ($(TOOLCHAIN_TYPE), solstudio)
CXXFLAGS_JDKEXE += -xldscope=hidden
else ifeq ($(TOOLCHAIN_TYPE), xlc)
ifneq ($(CC_VERSION_NUMBER), 12.1)
CXXFLAGS_JDKEXE += -qvisibility=hidden
endif
endif
UNPACKEXE_SRC := $(TOPDIR)/src/jdk.pack/share/native/common-unpack \
......
......@@ -45,7 +45,7 @@ endif
# On Mac, we have always exported all symbols, probably due to oversight
# and/or misunderstanding. To emulate this, don't hide any symbols
# by default.
# On AIX/xlc we need at least xlc 13.1 for the symbol hiding
# On AIX/xlc we need at least xlc 13.1 for the symbol hiding (see JDK-8214063)
# Also provide an override for non-conformant libraries.
ifeq ($(TOOLCHAIN_TYPE), gcc)
LAUNCHER_CFLAGS += -fvisibility=hidden
......@@ -56,10 +56,6 @@ else ifeq ($(TOOLCHAIN_TYPE), clang)
endif
else ifeq ($(TOOLCHAIN_TYPE), solstudio)
LAUNCHER_CFLAGS += -xldscope=hidden
else ifeq ($(TOOLCHAIN_TYPE), xlc)
ifneq ($(CC_VERSION_NUMBER), 12.1)
CXXFLAGS_JDKEXE += -qvisibility=hidden
endif
endif
LAUNCHER_SRC := $(TOPDIR)/src/java.base/share/native/launcher
......
......@@ -55,7 +55,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBNET, \
LIBS_solaris := -lnsl -lsocket $(LIBDL), \
LIBS_aix := $(LIBDL),\
LIBS_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib winhttp.lib \
delayimp.lib $(WIN_JAVA_LIB) advapi32.lib, \
urlmon.lib delayimp.lib $(WIN_JAVA_LIB) advapi32.lib, \
LIBS_macosx := -framework CoreFoundation -framework CoreServices, \
))
......
......@@ -38,7 +38,7 @@ WIN_JAVA_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
# On Mac, we have always exported all symbols, probably due to oversight
# and/or misunderstanding. To emulate this, don't hide any symbols
# by default.
# On AIX/xlc we need at least xlc 13.1 for the symbol hiding
# On AIX/xlc we need at least xlc 13.1 for the symbol hiding (see JDK-8214063)
# Also provide an override for non-conformant libraries.
ifeq ($(TOOLCHAIN_TYPE), gcc)
CFLAGS_JDKLIB += -fvisibility=hidden
......@@ -55,12 +55,6 @@ else ifeq ($(TOOLCHAIN_TYPE), solstudio)
CFLAGS_JDKLIB += -xldscope=hidden
CXXFLAGS_JDKLIB += -xldscope=hidden
EXPORT_ALL_SYMBOLS := -xldscope=global
else ifeq ($(TOOLCHAIN_TYPE), xlc)
ifneq ($(CC_VERSION_NUMBER), 12.1)
CFLAGS_JDKLIB += -qvisibility=hidden
CXXFLAGS_JDKLIB += -qvisibility=hidden
EXPORT_ALL_SYMBOLS := -qvisibility=default
endif
endif
################################################################################
......
......@@ -317,29 +317,6 @@ namespace ext
enum operation { uxtb, uxth, uxtw, uxtx, sxtb, sxth, sxtw, sxtx };
};
// abs methods which cannot overflow and so are well-defined across
// the entire domain of integer types.
static inline unsigned int uabs(unsigned int n) {
union {
unsigned int result;
int value;
};
result = n;
if (value < 0) result = -result;
return result;
}
static inline unsigned long uabs(unsigned long n) {
union {
unsigned long result;
long value;
};
result = n;
if (value < 0) result = -result;
return result;
}
static inline unsigned long uabs(long n) { return uabs((unsigned long)n); }
static inline unsigned long uabs(int n) { return uabs((unsigned int)n); }
// Addressing modes
class Address {
public:
......
......@@ -4856,7 +4856,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
// A very short string
cmpw(cnt2, minCharsInWord);
br(Assembler::LT, SHORT_STRING);
br(Assembler::LE, SHORT_STRING);
// Compare longwords
// load first parts of strings and finish initialization while loading
......@@ -4880,8 +4880,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
ldr(tmp2, Address(str2));
cmp(cnt2, STUB_THRESHOLD);
br(GE, STUB);
subsw(cnt2, cnt2, 4);
br(EQ, TAIL_CHECK);
subw(cnt2, cnt2, 4);
eor(vtmpZ, T16B, vtmpZ, vtmpZ);
lea(str1, Address(str1, cnt2, Address::uxtw(str1_chr_shift)));
lea(str2, Address(str2, cnt2, Address::uxtw(str2_chr_shift)));
......@@ -4897,8 +4896,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
ldrs(vtmp, Address(str2));
cmp(cnt2, STUB_THRESHOLD);
br(GE, STUB);
subsw(cnt2, cnt2, 4);
br(EQ, TAIL_CHECK);
subw(cnt2, cnt2, 4);
lea(str1, Address(str1, cnt2, Address::uxtw(str1_chr_shift)));
eor(vtmpZ, T16B, vtmpZ, vtmpZ);
lea(str2, Address(str2, cnt2, Address::uxtw(str2_chr_shift)));
......@@ -5609,12 +5607,12 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
orr(v5, T16B, Vtmp3, Vtmp4);
uzp1(Vtmp1, T16B, Vtmp1, Vtmp2);
uzp1(Vtmp3, T16B, Vtmp3, Vtmp4);
stpq(Vtmp1, Vtmp3, dst);
uzp2(v5, T16B, v4, v5); // high bytes
umov(tmp2, v5, D, 1);
fmovd(tmp1, v5);
orr(tmp1, tmp1, tmp2);
cbnz(tmp1, LOOP_8);
stpq(Vtmp1, Vtmp3, dst);
sub(len, len, 32);
add(dst, dst, 32);
add(src, src, 64);
......@@ -5632,7 +5630,6 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
prfm(Address(src, SoftwarePrefetchHintDistance));
uzp1(v4, T16B, Vtmp1, Vtmp2);
uzp1(v5, T16B, Vtmp3, Vtmp4);
stpq(v4, v5, dst);
orr(Vtmp1, T16B, Vtmp1, Vtmp2);
orr(Vtmp3, T16B, Vtmp3, Vtmp4);
uzp2(Vtmp1, T16B, Vtmp1, Vtmp3); // high bytes
......@@ -5640,6 +5637,7 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
fmovd(tmp1, Vtmp1);
orr(tmp1, tmp1, tmp2);
cbnz(tmp1, LOOP_8);
stpq(v4, v5, dst);
sub(len, len, 32);
add(dst, dst, 32);
add(src, src, 64);
......@@ -5654,9 +5652,9 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
ld1(Vtmp1, T8H, src);
uzp1(Vtmp2, T16B, Vtmp1, Vtmp1); // low bytes
uzp2(Vtmp3, T16B, Vtmp1, Vtmp1); // high bytes
strd(Vtmp2, dst);
fmovd(tmp1, Vtmp3);
cbnz(tmp1, NEXT_1);
strd(Vtmp2, dst);
sub(len, len, 8);
add(dst, dst, 8);
......@@ -5669,9 +5667,9 @@ void MacroAssembler::encode_iso_array(Register src, Register dst,
cbz(len, DONE);
BIND(NEXT_1);
ldrh(tmp1, Address(post(src, 2)));
strb(tmp1, Address(post(dst, 1)));
tst(tmp1, 0xff00);
br(NE, SET_RESULT);
strb(tmp1, Address(post(dst, 1)));
subs(len, len, 1);
br(GT, NEXT_1);
......
/*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2017 SAP SE. All rights reserved.
* Copyright (c) 2012, 2018 SAP SE. 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
......@@ -299,6 +299,8 @@ class Assembler : public AbstractAssembler {
CMPI_OPCODE = (11u << OPCODE_SHIFT),
CMPL_OPCODE = (31u << OPCODE_SHIFT | 32u << 1),
CMPLI_OPCODE = (10u << OPCODE_SHIFT),
CMPRB_OPCODE = (31u << OPCODE_SHIFT | 192u << 1),
CMPEQB_OPCODE = (31u << OPCODE_SHIFT | 224u << 1),
ISEL_OPCODE = (31u << OPCODE_SHIFT | 15u << 1),
......@@ -336,6 +338,7 @@ class Assembler : public AbstractAssembler {
MTCRF_OPCODE = (31u << OPCODE_SHIFT | 144u << 1),
MFCR_OPCODE = (31u << OPCODE_SHIFT | 19u << 1),
MCRF_OPCODE = (19u << OPCODE_SHIFT | 0u << 1),
SETB_OPCODE = (31u << OPCODE_SHIFT | 128u << 1),
// condition register logic instructions
CRAND_OPCODE = (19u << OPCODE_SHIFT | 257u << 1),
......@@ -397,6 +400,7 @@ class Assembler : public AbstractAssembler {
LWAX_OPCODE = (31u << OPCODE_SHIFT | 341u << XO_21_30_SHIFT), // X-FORM
CNTLZW_OPCODE = (31u << OPCODE_SHIFT | 26u << XO_21_30_SHIFT), // X-FORM
CNTTZW_OPCODE = (31u << OPCODE_SHIFT | 538u << XO_21_30_SHIFT), // X-FORM
// 64 bit opcode encodings
......@@ -428,6 +432,7 @@ class Assembler : public AbstractAssembler {
DIVD_OPCODE = (31u << OPCODE_SHIFT | 489u << 1), // XO-FORM
CNTLZD_OPCODE = (31u << OPCODE_SHIFT | 58u << XO_21_30_SHIFT), // X-FORM
CNTTZD_OPCODE = (31u << OPCODE_SHIFT | 570u << XO_21_30_SHIFT), // X-FORM
NAND_OPCODE = (31u << OPCODE_SHIFT | 476u << XO_21_30_SHIFT), // X-FORM
NOR_OPCODE = (31u << OPCODE_SHIFT | 124u << XO_21_30_SHIFT), // X-FORM
......@@ -522,6 +527,9 @@ class Assembler : public AbstractAssembler {
XXLXOR_OPCODE = (60u << OPCODE_SHIFT | 154u << 3),
XXLEQV_OPCODE = (60u << OPCODE_SHIFT | 186u << 3),
// Deliver A Random Number (introduced with POWER9)
DARN_OPCODE = (31u << OPCODE_SHIFT | 755u << 1),
// Vector Permute and Formatting
VPKPX_OPCODE = (4u << OPCODE_SHIFT | 782u ),
VPKSHSS_OPCODE = (4u << OPCODE_SHIFT | 398u ),
......@@ -1051,7 +1059,8 @@ class Assembler : public AbstractAssembler {
static int frs( int x) { return opp_u_field(x, 10, 6); }
static int frt( int x) { return opp_u_field(x, 10, 6); }
static int fxm( int x) { return opp_u_field(x, 19, 12); }
static int l10( int x) { return opp_u_field(x, 10, 10); }
static int l10( int x) { assert(x == 0 || x == 1, "must be 0 or 1"); return opp_u_field(x, 10, 10); }
static int l14( int x) { return opp_u_field(x, 15, 14); }
static int l15( int x) { return opp_u_field(x, 15, 15); }
static int l910( int x) { return opp_u_field(x, 10, 9); }
static int e1215( int x) { return opp_u_field(x, 15, 12); }
......@@ -1417,6 +1426,10 @@ class Assembler : public AbstractAssembler {
inline void cmplw( ConditionRegister crx, Register a, Register b);
inline void cmpld( ConditionRegister crx, Register a, Register b);
// >= Power9
inline void cmprb( ConditionRegister bf, int l, Register a, Register b);
inline void cmpeqb(ConditionRegister bf, Register a, Register b);
inline void isel( Register d, Register a, Register b, int bc);
// Convenient version which takes: Condition register, Condition code and invert flag. Omit b to keep old value.
inline void isel( Register d, ConditionRegister cr, Condition cc, bool inv, Register a, Register b = noreg);
......@@ -1476,6 +1489,10 @@ class Assembler : public AbstractAssembler {
inline void cntlzw_( Register a, Register s);
inline void cntlzd( Register a, Register s);
inline void cntlzd_( Register a, Register s);
inline void cnttzw( Register a, Register s);
inline void cnttzw_( Register a, Register s);
inline void cnttzd( Register a, Register s);
inline void cnttzd_( Register a, Register s);
// PPC 1, section 3.3.12, Fixed-Point Rotate and Shift Instructions
inline void sld( Register a, Register s, Register b);
......@@ -1612,6 +1629,8 @@ class Assembler : public AbstractAssembler {
inline void mfcr( Register d);
inline void mcrf( ConditionRegister crd, ConditionRegister cra);
inline void mtcr( Register s);
// >= Power9
inline void setb( Register d, ConditionRegister cra);
// Special purpose registers
// Exception Register
......@@ -2180,6 +2199,9 @@ class Assembler : public AbstractAssembler {
inline void mtfprwa( FloatRegister d, Register a);
inline void mffprd( Register a, FloatRegister d);
// Deliver A Random Number (introduced with POWER9)
inline void darn( Register d, int l = 1 /*L=CRN*/);
// AES (introduced with Power 8)
inline void vcipher( VectorRegister d, VectorRegister a, VectorRegister b);
inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
......
/*
* Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2017 SAP SE. All rights reserved.
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2018 SAP SE. 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
......@@ -171,6 +171,8 @@ inline void Assembler::cmpi( ConditionRegister f, int l, Register a, int si16)
inline void Assembler::cmp( ConditionRegister f, int l, Register a, Register b) { emit_int32( CMP_OPCODE | bf(f) | l10(l) | ra(a) | rb(b)); }
inline void Assembler::cmpli( ConditionRegister f, int l, Register a, int ui16) { emit_int32( CMPLI_OPCODE | bf(f) | l10(l) | ra(a) | uimm(ui16,16)); }
inline void Assembler::cmpl( ConditionRegister f, int l, Register a, Register b) { emit_int32( CMPL_OPCODE | bf(f) | l10(l) | ra(a) | rb(b)); }
inline void Assembler::cmprb( ConditionRegister f, int l, Register a, Register b) { emit_int32( CMPRB_OPCODE | bf(f) | l10(l) | ra(a) | rb(b)); }
inline void Assembler::cmpeqb(ConditionRegister f, Register a, Register b) { emit_int32( CMPEQB_OPCODE| bf(f) | ra(a) | rb(b)); }
// extended mnemonics of Compare Instructions
inline void Assembler::cmpwi( ConditionRegister crx, Register a, int si16) { Assembler::cmpi( crx, 0, a, si16); }
......@@ -235,6 +237,10 @@ inline void Assembler::cntlzw( Register a, Register s) { emit_int3
inline void Assembler::cntlzw_( Register a, Register s) { emit_int32(CNTLZW_OPCODE | rta(a) | rs(s) | rc(1)); }
inline void Assembler::cntlzd( Register a, Register s) { emit_int32(CNTLZD_OPCODE | rta(a) | rs(s) | rc(0)); }
inline void Assembler::cntlzd_( Register a, Register s) { emit_int32(CNTLZD_OPCODE | rta(a) | rs(s) | rc(1)); }
inline void Assembler::cnttzw( Register a, Register s) { emit_int32(CNTTZW_OPCODE | rta(a) | rs(s) | rc(0)); }
inline void Assembler::cnttzw_( Register a, Register s) { emit_int32(CNTTZW_OPCODE | rta(a) | rs(s) | rc(1)); }
inline void Assembler::cnttzd( Register a, Register s) { emit_int32(CNTTZD_OPCODE | rta(a) | rs(s) | rc(0)); }
inline void Assembler::cnttzd_( Register a, Register s) { emit_int32(CNTTZD_OPCODE | rta(a) | rs(s) | rc(1)); }
// PPC 1, section 3.3.12, Fixed-Point Rotate and Shift Instructions
inline void Assembler::sld( Register a, Register s, Register b) { emit_int32(SLD_OPCODE | rta(a) | rs(s) | rb(b) | rc(0)); }
......@@ -367,6 +373,8 @@ inline void Assembler::mfcr( Register d ) { emit_int32(MFCR_OPCODE | rt
inline void Assembler::mcrf( ConditionRegister crd, ConditionRegister cra)
{ emit_int32(MCRF_OPCODE | bf(crd) | bfa(cra)); }
inline void Assembler::mtcr( Register s) { Assembler::mtcrf(0xff, s); }
inline void Assembler::setb(Register d, ConditionRegister cra)
{ emit_int32(SETB_OPCODE | rt(d) | bfa(cra)); }
// Special purpose registers
// Exception Register
......@@ -959,6 +967,9 @@ inline void Assembler::tsuspend_() { emit_int32( TS
inline void Assembler::tresume_() { emit_int32( TSR_OPCODE | /*L=1*/ 1u << (31-10) | rc(1)); }
inline void Assembler::tcheck(int f) { emit_int32( TCHECK_OPCODE | bf(f)); }
// Deliver A Random Number (introduced with POWER9)
inline void Assembler::darn(Register d, int l /* =1 */) { emit_int32( DARN_OPCODE | rt(d) | l14(l)); }
// ra0 version
inline void Assembler::lwzx( Register d, Register s2) { emit_int32( LWZX_OPCODE | rt(d) | rb(s2));}
inline void Assembler::lwz( Register d, int si16 ) { emit_int32( LWZ_OPCODE | rt(d) | d1(si16));}
......
......@@ -39,13 +39,13 @@
RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index, LIR_Opr array)
: _throw_index_out_of_bounds_exception(false), _index(index), _array(array) {
: _index(index), _array(array), _throw_index_out_of_bounds_exception(false) {
assert(info != NULL, "must have info");
_info = new CodeEmitInfo(info);
}
RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index)
: _throw_index_out_of_bounds_exception(true), _index(index), _array(NULL) {
: _index(index), _array(NULL), _throw_index_out_of_bounds_exception(true) {
assert(info != NULL, "must have info");
_info = new CodeEmitInfo(info);
}
......