--- a/jdk/src/demo/share/jvmti/compiledMethodLoad/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/compiledMethodLoad/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -45,12 +45,12 @@
LIBNAME=compiledMethodLoad
SOURCES=compiledMethodLoad.c ../agent_util/agent_util.c
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/gctest/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/gctest/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -45,12 +45,12 @@
LIBNAME=gctest
SOURCES=gctest.c ../agent_util/agent_util.c
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/heapTracker/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/heapTracker/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -49,12 +49,12 @@
# Name of jar file that needs to be created
JARFILE=heapTracker.jar
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/heapViewer/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/heapViewer/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -45,12 +45,12 @@
LIBNAME=heapViewer
SOURCES=heapViewer.c ../agent_util/agent_util.c
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/java_crw_demo/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/java_crw_demo/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -45,12 +45,12 @@
LIBNAME=java_crw_demo
SOURCES=java_crw_demo.c
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/minst/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/minst/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -49,12 +49,12 @@
# Name of jar file that needs to be created
JARFILE=minst.jar
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/mtrace/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/mtrace/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -49,12 +49,12 @@
# Name of jar file that needs to be created
JARFILE=mtrace.jar
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/demo/share/jvmti/versionCheck/sample.makefile.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/demo/share/jvmti/versionCheck/sample.makefile.txt Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -45,12 +45,12 @@
LIBNAME=versionCheck
SOURCES=versionCheck.c ../agent_util/agent_util.c
-# Solaris Sun C Compiler Version 5.5
+# Solaris Studio C Compiler Version 12.4
ifeq ($(OSNAME), solaris)
# Sun Solaris Compiler options needed
COMMON_FLAGS=-mt -KPIC
# Options that help find errors
- COMMON_FLAGS+= -Xa -v -xstrconst -xc99=%none
+ COMMON_FLAGS+= -Xa -v -xc99=%none
# Check LIBARCH for any special compiler options
LIBARCH=$(shell uname -p)
ifeq ($(LIBARCH), sparc)
--- a/jdk/src/java.base/share/classes/java/nio/Bits.java Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/nio/Bits.java Tue Jul 26 16:18:24 2016 -0700
@@ -25,14 +25,14 @@
package java.nio;
-import java.util.concurrent.atomic.AtomicLong;
-
+import jdk.internal.misc.JavaLangRefAccess;
import jdk.internal.misc.JavaNioAccess;
-import jdk.internal.misc.JavaLangRefAccess;
import jdk.internal.misc.SharedSecrets;
import jdk.internal.misc.Unsafe;
import jdk.internal.misc.VM;
+import java.util.concurrent.atomic.AtomicLong;
+
/**
* Access to bits, native and otherwise.
*/
@@ -61,504 +61,10 @@
}
- // -- get/put char --
-
- private static char makeChar(byte b1, byte b0) {
- return (char)((b1 << 8) | (b0 & 0xff));
- }
-
- static char getCharL(ByteBuffer bb, int bi) {
- return makeChar(bb._get(bi + 1),
- bb._get(bi ));
- }
-
- static char getCharL(long a) {
- return makeChar(_get(a + 1),
- _get(a ));
- }
-
- static char getCharB(ByteBuffer bb, int bi) {
- return makeChar(bb._get(bi ),
- bb._get(bi + 1));
- }
-
- static char getCharB(long a) {
- return makeChar(_get(a ),
- _get(a + 1));
- }
-
- static char getChar(ByteBuffer bb, int bi, boolean bigEndian) {
- return bigEndian ? getCharB(bb, bi) : getCharL(bb, bi);
- }
-
- static char getChar(long a, boolean bigEndian) {
- return bigEndian ? getCharB(a) : getCharL(a);
- }
-
- private static byte char1(char x) { return (byte)(x >> 8); }
- private static byte char0(char x) { return (byte)(x ); }
-
- static void putCharL(ByteBuffer bb, int bi, char x) {
- bb._put(bi , char0(x));
- bb._put(bi + 1, char1(x));
- }
-
- static void putCharL(long a, char x) {
- _put(a , char0(x));
- _put(a + 1, char1(x));
- }
-
- static void putCharB(ByteBuffer bb, int bi, char x) {
- bb._put(bi , char1(x));
- bb._put(bi + 1, char0(x));
- }
-
- static void putCharB(long a, char x) {
- _put(a , char1(x));
- _put(a + 1, char0(x));
- }
-
- static void putChar(ByteBuffer bb, int bi, char x, boolean bigEndian) {
- if (bigEndian)
- putCharB(bb, bi, x);
- else
- putCharL(bb, bi, x);
- }
-
- static void putChar(long a, char x, boolean bigEndian) {
- if (bigEndian)
- putCharB(a, x);
- else
- putCharL(a, x);
- }
-
-
- // -- get/put short --
-
- private static short makeShort(byte b1, byte b0) {
- return (short)((b1 << 8) | (b0 & 0xff));
- }
-
- static short getShortL(ByteBuffer bb, int bi) {
- return makeShort(bb._get(bi + 1),
- bb._get(bi ));
- }
-
- static short getShortL(long a) {
- return makeShort(_get(a + 1),
- _get(a ));
- }
-
- static short getShortB(ByteBuffer bb, int bi) {
- return makeShort(bb._get(bi ),
- bb._get(bi + 1));
- }
-
- static short getShortB(long a) {
- return makeShort(_get(a ),
- _get(a + 1));
- }
-
- static short getShort(ByteBuffer bb, int bi, boolean bigEndian) {
- return bigEndian ? getShortB(bb, bi) : getShortL(bb, bi);
- }
-
- static short getShort(long a, boolean bigEndian) {
- return bigEndian ? getShortB(a) : getShortL(a);
- }
-
- private static byte short1(short x) { return (byte)(x >> 8); }
- private static byte short0(short x) { return (byte)(x ); }
-
- static void putShortL(ByteBuffer bb, int bi, short x) {
- bb._put(bi , short0(x));
- bb._put(bi + 1, short1(x));
- }
-
- static void putShortL(long a, short x) {
- _put(a , short0(x));
- _put(a + 1, short1(x));
- }
-
- static void putShortB(ByteBuffer bb, int bi, short x) {
- bb._put(bi , short1(x));
- bb._put(bi + 1, short0(x));
- }
-
- static void putShortB(long a, short x) {
- _put(a , short1(x));
- _put(a + 1, short0(x));
- }
-
- static void putShort(ByteBuffer bb, int bi, short x, boolean bigEndian) {
- if (bigEndian)
- putShortB(bb, bi, x);
- else
- putShortL(bb, bi, x);
- }
-
- static void putShort(long a, short x, boolean bigEndian) {
- if (bigEndian)
- putShortB(a, x);
- else
- putShortL(a, x);
- }
-
-
- // -- get/put int --
-
- private static int makeInt(byte b3, byte b2, byte b1, byte b0) {
- return (((b3 ) << 24) |
- ((b2 & 0xff) << 16) |
- ((b1 & 0xff) << 8) |
- ((b0 & 0xff) ));
- }
-
- static int getIntL(ByteBuffer bb, int bi) {
- return makeInt(bb._get(bi + 3),
- bb._get(bi + 2),
- bb._get(bi + 1),
- bb._get(bi ));
- }
-
- static int getIntL(long a) {
- return makeInt(_get(a + 3),
- _get(a + 2),
- _get(a + 1),
- _get(a ));
- }
-
- static int getIntB(ByteBuffer bb, int bi) {
- return makeInt(bb._get(bi ),
- bb._get(bi + 1),
- bb._get(bi + 2),
- bb._get(bi + 3));
- }
-
- static int getIntB(long a) {
- return makeInt(_get(a ),
- _get(a + 1),
- _get(a + 2),
- _get(a + 3));
- }
-
- static int getInt(ByteBuffer bb, int bi, boolean bigEndian) {
- return bigEndian ? getIntB(bb, bi) : getIntL(bb, bi) ;
- }
-
- static int getInt(long a, boolean bigEndian) {
- return bigEndian ? getIntB(a) : getIntL(a) ;
- }
-
- private static byte int3(int x) { return (byte)(x >> 24); }
- private static byte int2(int x) { return (byte)(x >> 16); }
- private static byte int1(int x) { return (byte)(x >> 8); }
- private static byte int0(int x) { return (byte)(x ); }
-
- static void putIntL(ByteBuffer bb, int bi, int x) {
- bb._put(bi + 3, int3(x));
- bb._put(bi + 2, int2(x));
- bb._put(bi + 1, int1(x));
- bb._put(bi , int0(x));
- }
-
- static void putIntL(long a, int x) {
- _put(a + 3, int3(x));
- _put(a + 2, int2(x));
- _put(a + 1, int1(x));
- _put(a , int0(x));
- }
-
- static void putIntB(ByteBuffer bb, int bi, int x) {
- bb._put(bi , int3(x));
- bb._put(bi + 1, int2(x));
- bb._put(bi + 2, int1(x));
- bb._put(bi + 3, int0(x));
- }
-
- static void putIntB(long a, int x) {
- _put(a , int3(x));
- _put(a + 1, int2(x));
- _put(a + 2, int1(x));
- _put(a + 3, int0(x));
- }
-
- static void putInt(ByteBuffer bb, int bi, int x, boolean bigEndian) {
- if (bigEndian)
- putIntB(bb, bi, x);
- else
- putIntL(bb, bi, x);
- }
-
- static void putInt(long a, int x, boolean bigEndian) {
- if (bigEndian)
- putIntB(a, x);
- else
- putIntL(a, x);
- }
-
-
- // -- get/put long --
-
- private static long makeLong(byte b7, byte b6, byte b5, byte b4,
- byte b3, byte b2, byte b1, byte b0)
- {
- return ((((long)b7 ) << 56) |
- (((long)b6 & 0xff) << 48) |
- (((long)b5 & 0xff) << 40) |
- (((long)b4 & 0xff) << 32) |
- (((long)b3 & 0xff) << 24) |
- (((long)b2 & 0xff) << 16) |
- (((long)b1 & 0xff) << 8) |
- (((long)b0 & 0xff) ));
- }
-
- static long getLongL(ByteBuffer bb, int bi) {
- return makeLong(bb._get(bi + 7),
- bb._get(bi + 6),
- bb._get(bi + 5),
- bb._get(bi + 4),
- bb._get(bi + 3),
- bb._get(bi + 2),
- bb._get(bi + 1),
- bb._get(bi ));
- }
-
- static long getLongL(long a) {
- return makeLong(_get(a + 7),
- _get(a + 6),
- _get(a + 5),
- _get(a + 4),
- _get(a + 3),
- _get(a + 2),
- _get(a + 1),
- _get(a ));
- }
-
- static long getLongB(ByteBuffer bb, int bi) {
- return makeLong(bb._get(bi ),
- bb._get(bi + 1),
- bb._get(bi + 2),
- bb._get(bi + 3),
- bb._get(bi + 4),
- bb._get(bi + 5),
- bb._get(bi + 6),
- bb._get(bi + 7));
- }
-
- static long getLongB(long a) {
- return makeLong(_get(a ),
- _get(a + 1),
- _get(a + 2),
- _get(a + 3),
- _get(a + 4),
- _get(a + 5),
- _get(a + 6),
- _get(a + 7));
- }
-
- static long getLong(ByteBuffer bb, int bi, boolean bigEndian) {
- return bigEndian ? getLongB(bb, bi) : getLongL(bb, bi);
- }
-
- static long getLong(long a, boolean bigEndian) {
- return bigEndian ? getLongB(a) : getLongL(a);
- }
-
- private static byte long7(long x) { return (byte)(x >> 56); }
- private static byte long6(long x) { return (byte)(x >> 48); }
- private static byte long5(long x) { return (byte)(x >> 40); }
- private static byte long4(long x) { return (byte)(x >> 32); }
- private static byte long3(long x) { return (byte)(x >> 24); }
- private static byte long2(long x) { return (byte)(x >> 16); }
- private static byte long1(long x) { return (byte)(x >> 8); }
- private static byte long0(long x) { return (byte)(x ); }
-
- static void putLongL(ByteBuffer bb, int bi, long x) {
- bb._put(bi + 7, long7(x));
- bb._put(bi + 6, long6(x));
- bb._put(bi + 5, long5(x));
- bb._put(bi + 4, long4(x));
- bb._put(bi + 3, long3(x));
- bb._put(bi + 2, long2(x));
- bb._put(bi + 1, long1(x));
- bb._put(bi , long0(x));
- }
-
- static void putLongL(long a, long x) {
- _put(a + 7, long7(x));
- _put(a + 6, long6(x));
- _put(a + 5, long5(x));
- _put(a + 4, long4(x));
- _put(a + 3, long3(x));
- _put(a + 2, long2(x));
- _put(a + 1, long1(x));
- _put(a , long0(x));
- }
-
- static void putLongB(ByteBuffer bb, int bi, long x) {
- bb._put(bi , long7(x));
- bb._put(bi + 1, long6(x));
- bb._put(bi + 2, long5(x));
- bb._put(bi + 3, long4(x));
- bb._put(bi + 4, long3(x));
- bb._put(bi + 5, long2(x));
- bb._put(bi + 6, long1(x));
- bb._put(bi + 7, long0(x));
- }
-
- static void putLongB(long a, long x) {
- _put(a , long7(x));
- _put(a + 1, long6(x));
- _put(a + 2, long5(x));
- _put(a + 3, long4(x));
- _put(a + 4, long3(x));
- _put(a + 5, long2(x));
- _put(a + 6, long1(x));
- _put(a + 7, long0(x));
- }
-
- static void putLong(ByteBuffer bb, int bi, long x, boolean bigEndian) {
- if (bigEndian)
- putLongB(bb, bi, x);
- else
- putLongL(bb, bi, x);
- }
-
- static void putLong(long a, long x, boolean bigEndian) {
- if (bigEndian)
- putLongB(a, x);
- else
- putLongL(a, x);
- }
-
-
- // -- get/put float --
-
- static float getFloatL(ByteBuffer bb, int bi) {
- return Float.intBitsToFloat(getIntL(bb, bi));
- }
-
- static float getFloatL(long a) {
- return Float.intBitsToFloat(getIntL(a));
- }
-
- static float getFloatB(ByteBuffer bb, int bi) {
- return Float.intBitsToFloat(getIntB(bb, bi));
- }
-
- static float getFloatB(long a) {
- return Float.intBitsToFloat(getIntB(a));
- }
-
- static float getFloat(ByteBuffer bb, int bi, boolean bigEndian) {
- return bigEndian ? getFloatB(bb, bi) : getFloatL(bb, bi);
- }
-
- static float getFloat(long a, boolean bigEndian) {
- return bigEndian ? getFloatB(a) : getFloatL(a);
- }
-
- static void putFloatL(ByteBuffer bb, int bi, float x) {
- putIntL(bb, bi, Float.floatToRawIntBits(x));
- }
-
- static void putFloatL(long a, float x) {
- putIntL(a, Float.floatToRawIntBits(x));
- }
-
- static void putFloatB(ByteBuffer bb, int bi, float x) {
- putIntB(bb, bi, Float.floatToRawIntBits(x));
- }
-
- static void putFloatB(long a, float x) {
- putIntB(a, Float.floatToRawIntBits(x));
- }
-
- static void putFloat(ByteBuffer bb, int bi, float x, boolean bigEndian) {
- if (bigEndian)
- putFloatB(bb, bi, x);
- else
- putFloatL(bb, bi, x);
- }
-
- static void putFloat(long a, float x, boolean bigEndian) {
- if (bigEndian)
- putFloatB(a, x);
- else
- putFloatL(a, x);
- }
-
-
- // -- get/put double --
-
- static double getDoubleL(ByteBuffer bb, int bi) {
- return Double.longBitsToDouble(getLongL(bb, bi));
- }
-
- static double getDoubleL(long a) {
- return Double.longBitsToDouble(getLongL(a));
- }
-
- static double getDoubleB(ByteBuffer bb, int bi) {
- return Double.longBitsToDouble(getLongB(bb, bi));
- }
-
- static double getDoubleB(long a) {
- return Double.longBitsToDouble(getLongB(a));
- }
-
- static double getDouble(ByteBuffer bb, int bi, boolean bigEndian) {
- return bigEndian ? getDoubleB(bb, bi) : getDoubleL(bb, bi);
- }
-
- static double getDouble(long a, boolean bigEndian) {
- return bigEndian ? getDoubleB(a) : getDoubleL(a);
- }
-
- static void putDoubleL(ByteBuffer bb, int bi, double x) {
- putLongL(bb, bi, Double.doubleToRawLongBits(x));
- }
-
- static void putDoubleL(long a, double x) {
- putLongL(a, Double.doubleToRawLongBits(x));
- }
-
- static void putDoubleB(ByteBuffer bb, int bi, double x) {
- putLongB(bb, bi, Double.doubleToRawLongBits(x));
- }
-
- static void putDoubleB(long a, double x) {
- putLongB(a, Double.doubleToRawLongBits(x));
- }
-
- static void putDouble(ByteBuffer bb, int bi, double x, boolean bigEndian) {
- if (bigEndian)
- putDoubleB(bb, bi, x);
- else
- putDoubleL(bb, bi, x);
- }
-
- static void putDouble(long a, double x, boolean bigEndian) {
- if (bigEndian)
- putDoubleB(a, x);
- else
- putDoubleL(a, x);
- }
-
-
// -- Unsafe access --
private static final Unsafe unsafe = Unsafe.getUnsafe();
- private static byte _get(long a) {
- return unsafe.getByte(a);
- }
-
- private static void _put(long a, byte b) {
- unsafe.putByte(a, b);
- }
-
static Unsafe unsafe() {
return unsafe;
}
--- a/jdk/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,8 @@
package java.nio;
+import jdk.internal.misc.Unsafe;
+
class ByteBufferAs$Type$Buffer$RW$$BO$ // package-private
extends {#if[ro]?ByteBufferAs}$Type$Buffer{#if[ro]?$BO$}
@@ -34,6 +36,9 @@
#if[rw]
+ // Cached unsafe-access object
+ private static final Unsafe unsafe = Bits.unsafe();
+
protected final ByteBuffer bb;
protected final int offset;
@@ -107,17 +112,27 @@
return (i << $LG_BYTES_PER_VALUE$) + offset;
}
+ private long byteOffset(long i) {
+ return (i << $LG_BYTES_PER_VALUE$) + bb.address + offset;
+ }
+
public $type$ get() {
- return Bits.get$Type$$BO$(bb, ix(nextGetIndex()));
+ $memtype$ x = unsafe.get$Memtype$Unaligned(bb.hb, byteOffset(nextGetIndex()),
+ {#if[boB]?true:false});
+ return $fromBits$(x);
}
public $type$ get(int i) {
- return Bits.get$Type$$BO$(bb, ix(checkIndex(i)));
+ $memtype$ x = unsafe.get$Memtype$Unaligned(bb.hb, byteOffset(checkIndex(i)),
+ {#if[boB]?true:false});
+ return $fromBits$(x);
}
#if[streamableType]
$type$ getUnchecked(int i) {
- return Bits.get$Type$$BO$(bb, ix(i));
+ $memtype$ x = unsafe.get$Memtype$Unaligned(bb.hb, byteOffset(i),
+ {#if[boB]?true:false});
+ return $fromBits$(x);
}
#end[streamableType]
@@ -125,7 +140,9 @@
public $Type$Buffer put($type$ x) {
#if[rw]
- Bits.put$Type$$BO$(bb, ix(nextPutIndex()), x);
+ $memtype$ y = $toBits$(x);
+ unsafe.put$Memtype$Unaligned(bb.hb, byteOffset(nextPutIndex()), y,
+ {#if[boB]?true:false});
return this;
#else[rw]
throw new ReadOnlyBufferException();
@@ -134,7 +151,9 @@
public $Type$Buffer put(int i, $type$ x) {
#if[rw]
- Bits.put$Type$$BO$(bb, ix(checkIndex(i)), x);
+ $memtype$ y = $toBits$(x);
+ unsafe.put$Memtype$Unaligned(bb.hb, byteOffset(checkIndex(i)), y,
+ {#if[boB]?true:false});
return this;
#else[rw]
throw new ReadOnlyBufferException();
--- a/jdk/src/java.base/share/classes/java/nio/Direct-X-Buffer-bin.java.template Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/nio/Direct-X-Buffer-bin.java.template Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,11 +32,8 @@
#if[rw]
private $type$ get$Type$(long a) {
- if (unaligned) {
- $memtype$ x = unsafe.get$Memtype$(a);
- return $fromBits$(nativeByteOrder ? x : Bits.swap(x));
- }
- return Bits.get$Type$(a, bigEndian);
+ $memtype$ x = unsafe.get$Memtype$Unaligned(null, a, bigEndian);
+ return $fromBits$(x);
}
public $type$ get$Type$() {
@@ -51,12 +48,8 @@
private ByteBuffer put$Type$(long a, $type$ x) {
#if[rw]
- if (unaligned) {
- $memtype$ y = $toBits$(x);
- unsafe.put$Memtype$(a, (nativeByteOrder ? y : Bits.swap(y)));
- } else {
- Bits.put$Type$(a, x, bigEndian);
- }
+ $memtype$ y = $toBits$(x);
+ unsafe.put$Memtype$Unaligned(null, a, y, bigEndian);
return this;
#else[rw]
throw new ReadOnlyBufferException();
--- a/jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,6 @@
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
-#include <pwd.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
@@ -46,6 +45,12 @@
#include <sys/stat.h>
#include <sys/wait.h>
+/* For POSIX-compliant getpwuid_r on Solaris */
+#if defined(__solaris__)
+#define _POSIX_PTHREAD_SEMANTICS
+#endif
+#include <pwd.h>
+
#ifdef _AIX
#include <sys/procfs.h>
#endif
@@ -468,12 +473,7 @@
} else {
struct passwd pwent;
struct passwd* p = NULL;
-
-#ifdef __solaris__
- RESTARTABLE_RETURN_PTR(getpwuid_r(uid, &pwent, pwbuf, (size_t)getpw_buf_size), p);
-#else
RESTARTABLE(getpwuid_r(uid, &pwent, pwbuf, (size_t)getpw_buf_size, &p), result);
-#endif
// Create the Java String if a name was found
if (result == 0 && p != NULL &&
--- a/jdk/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,8 +29,6 @@
#include <fcntl.h>
#include <dirent.h>
#include <unistd.h>
-#include <pwd.h>
-#include <grp.h>
#include <errno.h>
#include <dlfcn.h>
#include <sys/types.h>
@@ -43,6 +41,13 @@
#endif
#include <sys/time.h>
+/* For POSIX-compliant getpwuid_r, getgrgid_r on Solaris */
+#if defined(__solaris__)
+#define _POSIX_PTHREAD_SEMANTICS
+#endif
+#include <pwd.h>
+#include <grp.h>
+
#ifdef __solaris__
#include <strings.h>
#endif
@@ -1022,11 +1027,7 @@
int res = 0;
errno = 0;
- #ifdef __solaris__
- RESTARTABLE_RETURN_PTR(getpwuid_r((uid_t)uid, &pwent, pwbuf, (size_t)buflen), p);
- #else
- RESTARTABLE(getpwuid_r((uid_t)uid, &pwent, pwbuf, (size_t)buflen, &p), res);
- #endif
+ RESTARTABLE(getpwuid_r((uid_t)uid, &pwent, pwbuf, (size_t)buflen, &p), res);
if (res != 0 || p == NULL || p->pw_name == NULL || *(p->pw_name) == '\0') {
/* not found or error */
@@ -1071,11 +1072,7 @@
}
errno = 0;
- #ifdef __solaris__
- RESTARTABLE_RETURN_PTR(getgrgid_r((gid_t)gid, &grent, grbuf, (size_t)buflen), g);
- #else
- RESTARTABLE(getgrgid_r((gid_t)gid, &grent, grbuf, (size_t)buflen, &g), res);
- #endif
+ RESTARTABLE(getgrgid_r((gid_t)gid, &grent, grbuf, (size_t)buflen, &g), res);
retry = 0;
if (res != 0 || g == NULL || g->gr_name == NULL || *(g->gr_name) == '\0') {
@@ -1126,11 +1123,7 @@
const char* name = (const char*)jlong_to_ptr(nameAddress);
errno = 0;
- #ifdef __solaris__
- RESTARTABLE_RETURN_PTR(getpwnam_r(name, &pwent, pwbuf, (size_t)buflen), p);
- #else
- RESTARTABLE(getpwnam_r(name, &pwent, pwbuf, (size_t)buflen, &p), res);
- #endif
+ RESTARTABLE(getpwnam_r(name, &pwent, pwbuf, (size_t)buflen, &p), res);
if (res != 0 || p == NULL || p->pw_name == NULL || *(p->pw_name) == '\0') {
/* not found or error */
@@ -1171,11 +1164,7 @@
}
errno = 0;
- #ifdef __solaris__
- RESTARTABLE_RETURN_PTR(getgrnam_r(name, &grent, grbuf, (size_t)buflen), g);
- #else
- RESTARTABLE(getgrnam_r(name, &grent, grbuf, (size_t)buflen, &g), res);
- #endif
+ RESTARTABLE(getgrnam_r(name, &grent, grbuf, (size_t)buflen, &g), res);
retry = 0;
if (res != 0 || g == NULL || g->gr_name == NULL || *(g->gr_name) == '\0') {
--- a/jdk/src/java.management/share/classes/java/lang/management/ThreadInfo.java Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/java.management/share/classes/java/lang/management/ThreadInfo.java Tue Jul 26 16:18:24 2016 -0700
@@ -771,6 +771,14 @@
* <th align=left>Type</th>
* </tr>
* <tr>
+ * <td>moduleName</td>
+ * <td>{@code java.lang.String}</td>
+ * </tr>
+ * <tr>
+ * <td>moduleVersion</td>
+ * <td>{@code java.lang.String}</td>
+ * </tr>
+ * <tr>
* <td>className</td>
* <td>{@code java.lang.String}</td>
* </tr>
--- a/jdk/src/jdk.security.auth/solaris/native/libjaas/Solaris.c Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/jdk.security.auth/solaris/native/libjaas/Solaris.c Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,10 +26,14 @@
#include <jni.h>
#include "com_sun_security_auth_module_SolarisSystem.h"
#include <stdio.h>
-#include <pwd.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
+
+/* For POSIX-compliant getpwuid_r on Solaris */
+#if defined(__solaris__)
+#define _POSIX_PTHREAD_SEMANTICS
+#endif
#include <pwd.h>
static void throwIllegalArgumentException(JNIEnv *env, const char *msg) {
@@ -43,8 +47,10 @@
(JNIEnv *env, jobject obj) {
int i;
- char pwd_buf[1024];
+ long pwd_bufsize;
+ char *pwd_buf = NULL;
struct passwd pwd;
+ struct passwd* p = NULL;
jsize numSuppGroups = getgroups(0, NULL);
jfieldID fid;
jstring jstr;
@@ -53,20 +59,31 @@
gid_t *groups;
jclass cls;
+ pwd_bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+ if (pwd_bufsize == -1) {
+ pwd_bufsize = 1024;
+ }
+ pwd_buf = (char *)malloc(pwd_bufsize);
groups = (gid_t *)calloc(numSuppGroups, sizeof(gid_t));
- if (groups == NULL) {
- jclass cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
- if (cls != NULL)
+ if (pwd_buf == NULL || groups == NULL) {
+ if (pwd_buf != NULL) {
+ free(pwd_buf);
+ }
+ if (groups != NULL) {
+ free(groups);
+ }
+ cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
+ if (cls != NULL) {
(*env)->ThrowNew(env, cls, NULL);
+ }
return;
}
cls = (*env)->GetObjectClass(env, obj);
- memset(pwd_buf, 0, sizeof(pwd_buf));
- if (getpwuid_r(getuid(), &pwd, pwd_buf, sizeof(pwd_buf)) != NULL &&
- getgroups(numSuppGroups, groups) != -1) {
+ if (getpwuid_r(getuid(), &pwd, pwd_buf, sizeof(pwd_buf), &p) != 0 &&
+ p != NULL && getgroups(numSuppGroups, groups) != -1) {
/*
* set username
@@ -129,7 +146,7 @@
(*env)->SetObjectField(env, obj, fid, jgroups);
}
cleanupAndReturn:
+ free(pwd_buf);
free(groups);
-
return;
}
--- a/jdk/src/jdk.security.auth/unix/native/libjaas/Unix.c Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/src/jdk.security.auth/unix/native/libjaas/Unix.c Tue Jul 26 16:18:24 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,20 +23,21 @@
* questions.
*/
-#ifdef __solaris__
-#define _POSIX_C_SOURCE 199506L
-#endif
-
#include <jni.h>
#include "jni_util.h"
#include "com_sun_security_auth_module_UnixSystem.h"
#include <stdio.h>
-#include <pwd.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
+/* For POSIX-compliant getpwuid_r on Solaris */
+#if defined(__solaris__)
+#define _POSIX_PTHREAD_SEMANTICS
+#endif
+#include <pwd.h>
+
/*
* Declare library specific JNI_Onload entry if static build
*/
--- a/jdk/test/ProblemList.txt Wed Jul 05 22:00:06 2017 +0200
+++ b/jdk/test/ProblemList.txt Tue Jul 26 16:18:24 2016 -0700
@@ -344,6 +344,8 @@
com/sun/jdi/GetLocalVariables4Test.sh 8067354 windows-all
+com/sun/jdi/sde/SourceDebugExtensionTest.java 8158066 windows-all
+
############################################################################
# jdk_time
@@ -368,6 +370,10 @@
sun/tools/jcmd/TestJcmdSanity.java 8031482 windows-all
+sun/tools/jhsdb/BasicLauncherTest.java 8160376 macosx-all
+
+sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java 8160376 macosx-all
+
sun/tools/jmap/heapconfig/JMapHeapConfigTest.java 8072131,8132452 generic-all
sun/tools/jstatd/TestJstatdExternalRegistry.java 8046285 generic-all
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/misc/GetSunMiscUnsafe.java Tue Jul 26 16:18:24 2016 -0700
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 4495577
+ * @summary Ensure that sun.misc.Unsafe cannot (easily)
+ * be accessed from user code
+ * @modules jdk.unsupported
+ */
+
+
+public class GetSunMiscUnsafe {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ sun.misc.Unsafe.getUnsafe();
+ } catch (SecurityException x) {
+ System.err.println("Thrown as expected: " + x);
+ return;
+ }
+ throw new Exception("No exception thrown");
+ }
+
+}
--- a/jdk/test/sun/misc/Safe.java Wed Jul 05 22:00:06 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +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.
- *
- * 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.
- */
-
-/* @test
- * @bug 4495577
- * @summary Ensure that sun.misc.Unsafe cannot (easily)
- * be accessed from user code
- * @modules jdk.unsupported
- */
-
-
-public class Safe {
-
- public static void main(String[] args) throws Exception {
- try {
- sun.misc.Unsafe.getUnsafe();
- } catch (Exception x) {
- System.err.println("Thrown as expected: " + x);
- return;
- }
- throw new Exception("No exception thrown");
- }
-
-}