From ed2eaccb972f92f5e2f5bb9d97c5057072310db2 Mon Sep 17 00:00:00 2001 From: Andreas Eriksson Date: Mon, 14 Dec 2015 15:17:52 +0100 Subject: [PATCH 1/6] 8129419: heapDumper.cpp: assert(length_in_bytes > 0) failed: nothing to copy Reviewed-by: dsamersoff --- .../test/lib/hprof/parser/HprofReader.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/test/lib/share/classes/jdk/test/lib/hprof/parser/HprofReader.java b/test/lib/share/classes/jdk/test/lib/hprof/parser/HprofReader.java index 53e52a0be02..15bd6af7fda 100644 --- a/test/lib/share/classes/jdk/test/lib/hprof/parser/HprofReader.java +++ b/test/lib/share/classes/jdk/test/lib/hprof/parser/HprofReader.java @@ -354,7 +354,14 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes } private void skipBytes(long length) throws IOException { - in.skipBytes((int)length); + while (length > 0) { + long skipped = in.skip(length); + if (skipped == 0) { + // EOF or other problem, throw exception + throw new EOFException("Couldn't skip enough bytes"); + } + length -= skipped; + } } private int readVersionHeader() throws IOException { @@ -486,12 +493,12 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes break; } case HPROF_GC_OBJ_ARRAY_DUMP: { - int bytesRead = readArray(false); + long bytesRead = readArray(false); bytesLeft -= bytesRead; break; } case HPROF_GC_PRIM_ARRAY_DUMP: { - int bytesRead = readArray(true); + long bytesRead = readArray(true); bytesLeft -= bytesRead; break; } @@ -743,12 +750,12 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes // Handle a HPROF_GC_OBJ_ARRAY_DUMP or HPROF_GC_PRIM_ARRAY_DUMP // Return number of bytes read // - private int readArray(boolean isPrimitive) throws IOException { + private long readArray(boolean isPrimitive) throws IOException { long start = in.position(); long id = readID(); StackTrace stackTrace = getStackTraceFromSerial(in.readInt()); int num = in.readInt(); - int bytesRead = identifierSize + 8; + long bytesRead = identifierSize + 8; long elementClassID; if (isPrimitive) { elementClassID = in.readByte(); @@ -810,14 +817,14 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes } } if (primitiveSignature != 0x00) { - int size = elSize * num; + long size = elSize * (long)num; bytesRead += size; JavaValueArray va = new JavaValueArray(primitiveSignature, start); skipBytes(size); snapshot.addHeapObject(id, va); snapshot.setSiteTrace(va, stackTrace); } else { - int sz = num * identifierSize; + long sz = (long)num * identifierSize; bytesRead += sz; JavaObjectArray arr = new JavaObjectArray(elementClassID, start); skipBytes(sz); From 64e41d5ac44c996908b546bc4fba4cd249fa6ecf Mon Sep 17 00:00:00 2001 From: Doug Simon Date: Thu, 14 Jan 2016 14:35:22 +0100 Subject: [PATCH 2/6] 8146364: Remove @ServiceProvider mechanism from JVMCI Reviewed-by: twisti --- make/CompileJavaModules.gmk | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/make/CompileJavaModules.gmk b/make/CompileJavaModules.gmk index 06241b35ba9..b2c915b1243 100644 --- a/make/CompileJavaModules.gmk +++ b/make/CompileJavaModules.gmk @@ -467,18 +467,6 @@ jdk.jvmstat_COPY := aliasmap ################################################################################ -jdk.vm.ci_EXCLUDE_FILES += \ - jdk/vm/ci/options/processor/OptionProcessor.java \ - jdk/vm/ci/service/processor/ServiceProviderProcessor.java \ - # - -jdk.vm.ci_EXCLUDES += \ - META-INF/jvmci.options \ - META-INF/jvmci.providers \ - # - -################################################################################ - jdk.xml.bind_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS jdk.xml.bind_CLEAN := .properties jdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java From 2489b87d30bbec40ff74843aee6e29a035b2ccb4 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Tue, 22 Dec 2015 10:18:55 +0300 Subject: [PATCH 3/6] 8066599: Add methods to check VM mode to c.o.j.t.Platform Reviewed-by: iignatyev --- .../share/classes/jdk/test/lib/Platform.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/test/lib/share/classes/jdk/test/lib/Platform.java b/test/lib/share/classes/jdk/test/lib/Platform.java index f809d694312..966f70d6333 100644 --- a/test/lib/share/classes/jdk/test/lib/Platform.java +++ b/test/lib/share/classes/jdk/test/lib/Platform.java @@ -34,6 +34,7 @@ public class Platform { private static final String vmName = System.getProperty("java.vm.name"); private static final String userName = System.getProperty("user.name"); private static final String compiler = System.getProperty("sun.management.compiler"); + private static final String vmInfo = System.getProperty("java.vm.info"); public static boolean isClient() { return vmName.endsWith(" Client VM"); @@ -63,6 +64,18 @@ public class Platform { return compiler.contains("Tiered Compilers"); } + public static boolean isInt() { + return vmInfo.contains("interpreted"); + } + + public static boolean isMixed() { + return vmInfo.contains("mixed"); + } + + public static boolean isComp() { + return vmInfo.contains("compiled"); + } + public static boolean is32bit() { return dataModel.equals("32"); } @@ -135,12 +148,6 @@ public class Platform { return isArch("aarch64"); } - private static boolean isArch(String archnameRE) { - return Pattern.compile(archnameRE, Pattern.CASE_INSENSITIVE) - .matcher(osArch) - .matches(); - } - public static String getOsArch() { return osArch; } @@ -203,4 +210,10 @@ public class Platform { public static boolean canAttachOSX() throws Exception { return userName.equals("root"); } + + private static boolean isArch(String archnameRE) { + return Pattern.compile(archnameRE, Pattern.CASE_INSENSITIVE) + .matcher(osArch) + .matches(); + } } From e8d7644b13d86a1e0aa2fe05e7601d78f6380a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Bourg=C3=A8s?= Date: Wed, 20 Jan 2016 22:53:45 +0100 Subject: [PATCH 4/6] 8147443: Use the Common Cleaner in Marlin OffHeapArray OffHeapArray clean-up to use the jdk.internal.ref.Cleaner to free unsafe arrays (PhantomReference) Reviewed-by: prr, rriggs, mchung --- modules.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules.xml b/modules.xml index d7db4ed42d8..0f9782ed3d6 100644 --- a/modules.xml +++ b/modules.xml @@ -266,6 +266,10 @@ jdk.jfr jdk.scripting.nashorn + + jdk.internal.ref + java.desktop + jdk.internal jdk.jfr From 7553186482212a87c62d1261e1e0636bdafed9bf Mon Sep 17 00:00:00 2001 From: Magnus Ihse Bursie Date: Tue, 2 Feb 2016 15:02:55 +0100 Subject: [PATCH 5/6] 8148655: LOG=cmdlines and other build-infra fixes Reviewed-by: erikj --- common/autoconf/basics.m4 | 5 + common/autoconf/flags.m4 | 32 +++---- common/autoconf/generated-configure.sh | 43 +++++---- common/autoconf/jdk-version.m4 | 3 +- common/autoconf/spec.gmk.in | 1 + make/Init.gmk | 2 +- make/InitSupport.gmk | 38 +++++--- make/common/JavaCompilation.gmk | 12 +-- make/common/MakeBase.gmk | 43 +++++---- make/common/NativeCompilation.gmk | 121 +++++++++++++------------ 10 files changed, 169 insertions(+), 131 deletions(-) diff --git a/common/autoconf/basics.m4 b/common/autoconf/basics.m4 index be85de751eb..3ffc8499c5c 100644 --- a/common/autoconf/basics.m4 +++ b/common/autoconf/basics.m4 @@ -573,6 +573,11 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS], # Locate the directory of this script. AUTOCONF_DIR=$TOPDIR/common/autoconf + + # Setup username (for use in adhoc version strings etc) + # Outer [ ] to quote m4. + [ USERNAME=`$ECHO "$USER" | $TR -d -c '[a-z][A-Z][0-9]'` ] + AC_SUBST(USERNAME) ]) # Evaluates platform specific overrides for devkit variables. diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index e6b8417241f..baf5a96b2f8 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -601,22 +601,22 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK], esac elif test "x$TOOLCHAIN_TYPE" = xclang; then if test "x$OPENJDK_TARGET_OS" = xlinux; then - if test "x$OPENJDK_TARGET_CPU" = xx86; then - # Force compatibility with i586 on 32 bit intel platforms. - COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586" - fi - COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ - -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" - case $OPENJDK_TARGET_CPU_ARCH in - ppc ) - # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing - CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" - ;; - * ) - COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" - CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" - ;; - esac + if test "x$OPENJDK_TARGET_CPU" = xx86; then + # Force compatibility with i586 on 32 bit intel platforms. + COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586" + fi + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ + -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + case $OPENJDK_TARGET_CPU_ARCH in + ppc ) + # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing + CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" + ;; + * ) + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" + CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" + ;; + esac fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 0fdc4605014..1542156b367 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -917,6 +917,7 @@ JVM_VARIANTS JVM_INTERPRETER JDK_VARIANT SET_OPENJDK +USERNAME CANONICAL_TOPDIR ORIGINAL_TOPDIR TOPDIR @@ -4835,7 +4836,7 @@ VS_SDK_PLATFORM_NAME_2013= #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1454146111 +DATE_WHEN_GENERATED=1454421750 ############################################################################### # @@ -15652,6 +15653,11 @@ $as_echo "$as_me: The path of TOPDIR, which resolves as \"$path\", is invalid." # Locate the directory of this script. AUTOCONF_DIR=$TOPDIR/common/autoconf + # Setup username (for use in adhoc version strings etc) + # Outer [ ] to quote m4. + USERNAME=`$ECHO "$USER" | $TR -d -c '[a-z][A-Z][0-9]'` + + # Check if it's a pure open build or if custom sources are to be used. @@ -23429,9 +23435,8 @@ $as_echo "$as_me: WARNING: --with-version-opt value has been sanitized from '$wi # Default is to calculate a string like this .. timestamp=`$DATE '+%Y-%m-%d-%H%M%S'` # Outer [ ] to quote m4. - username=`$ECHO "$USER" | $TR -d -c '[a-z][A-Z][0-9]'` basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'` - VERSION_OPT="$timestamp.$username.$basedirname" + VERSION_OPT="$timestamp.$USERNAME.$basedirname" fi fi @@ -46441,22 +46446,22 @@ $as_echo "$supports" >&6; } esac elif test "x$TOOLCHAIN_TYPE" = xclang; then if test "x$OPENJDK_TARGET_OS" = xlinux; then - if test "x$OPENJDK_TARGET_CPU" = xx86; then - # Force compatibility with i586 on 32 bit intel platforms. - COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586" - fi - COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ - -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" - case $OPENJDK_TARGET_CPU_ARCH in - ppc ) - # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing - CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" - ;; - * ) - COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" - CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" - ;; - esac + if test "x$OPENJDK_TARGET_CPU" = xx86; then + # Force compatibility with i586 on 32 bit intel platforms. + COMMON_CCXXFLAGS="${COMMON_CCXXFLAGS} -march=i586" + fi + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ + -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + case $OPENJDK_TARGET_CPU_ARCH in + ppc ) + # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing + CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" + ;; + * ) + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" + CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" + ;; + esac fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" diff --git a/common/autoconf/jdk-version.m4 b/common/autoconf/jdk-version.m4 index 32bf2e42bb2..2dc63865c49 100644 --- a/common/autoconf/jdk-version.m4 +++ b/common/autoconf/jdk-version.m4 @@ -162,9 +162,8 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS], # Default is to calculate a string like this .. timestamp=`$DATE '+%Y-%m-%d-%H%M%S'` # Outer [ ] to quote m4. - [ username=`$ECHO "$USER" | $TR -d -c '[a-z][A-Z][0-9]'` ] [ basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'` ] - VERSION_OPT="$timestamp.$username.$basedirname" + VERSION_OPT="$timestamp.$USERNAME.$basedirname" fi fi diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in index a78b30ba5ad..2bb4bdbbcd7 100644 --- a/common/autoconf/spec.gmk.in +++ b/common/autoconf/spec.gmk.in @@ -184,6 +184,7 @@ JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@ COMPANY_NAME:=@COMPANY_NAME@ MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@ MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@ +USERNAME:=@USERNAME@ # Different naming strings generated from the above information. RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) diff --git a/make/Init.gmk b/make/Init.gmk index b0c2d881bf4..3c7a664e6e4 100644 --- a/make/Init.gmk +++ b/make/Init.gmk @@ -168,7 +168,7 @@ ifeq ($(HAS_SPEC),) MAKE_INIT_WITH_SPEC_ARGUMENTS := ACTUAL_TOPDIR=$(topdir) \ USER_MAKE_VARS="$(USER_MAKE_VARS)" MAKE_LOG_FLAGS=$(MAKE_LOG_FLAGS) \ - LOG_LEVEL=$(LOG_LEVEL) LOG_NOFILE=$(LOG_NOFILE) \ + LOG_LEVEL=$(LOG_LEVEL) LOG_NOFILE=$(LOG_NOFILE) LOG_CMDLINES=$(LOG_CMDLINES) \ INIT_TARGETS="$(INIT_TARGETS)" \ SEQUENTIAL_TARGETS="$(SEQUENTIAL_TARGETS)" \ PARALLEL_TARGETS="$(PARALLEL_TARGETS)" diff --git a/make/InitSupport.gmk b/make/InitSupport.gmk index 2bf05d1eb29..6632a5c888b 100644 --- a/make/InitSupport.gmk +++ b/make/InitSupport.gmk @@ -121,6 +121,23 @@ ifeq ($(HAS_SPEC),) endif endef + # Look for a given option in the LOG variable, and if found, set a variable + # and remove the option from the LOG variable + # $1: The option to look for + # $2: The option to set to "true" if the option is found + define ParseLogOption + ifneq ($$(findstring $1, $$(LOG)),) + $2 := true + # COMMA is defined in spec.gmk, but that is not included yet + COMMA := , + # First try to remove ",