--- a/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
44158f6d3b94c0fa020e33632532473d92d1ea96 jdk7-b89
1d1927f9ec097b62c913921e2dfa5dbaf5dc325b jdk7-b90
308ad8f68b8dd68e22d73dd490e110059b732422 jdk7-b91
+ff9031a745d9cc52318f2148e43ca3b07ee08098 jdk7-b92
--- a/.hgtags-top-repo Wed May 19 09:45:05 2010 -0700
+++ b/.hgtags-top-repo Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
7f1ba4459972bf84b8201dc1cc4f62b1fe1c74f4 jdk7-b89
425ba3efabbfe0b188105c10aaf7c3c8fa8d1a38 jdk7-b90
97d8b6c659c29c8493a8b2b72c2796a021a8cf79 jdk7-b91
+5f5c33d417f3a14706b09a4a95e65fa7b6fa54d6 jdk7-b92
--- a/README-builds.html Wed May 19 09:45:05 2010 -0700
+++ b/README-builds.html Wed May 19 09:46:11 2010 -0700
@@ -183,13 +183,13 @@
<tr>
<td>Windows X86 (32-bit)</td>
<td>Windows XP</td>
- <td>Microsoft Visual Studio C++ 2008 Standard Edition</td>
+ <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
<td>JDK 6u14 FCS </td>
</tr>
<tr>
<td>Windows X64 (64-bit)</td>
<td>Windows Server 2003 - Enterprise x64 Edition</td>
- <td>Microsoft Platform SDK - April 2005</td>
+ <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
<td>JDK 6u14 FCS </td>
</tr>
</tbody>
@@ -789,11 +789,7 @@
</li>
<li>
Install the
- <a href="#msvc">Microsoft Visual Studio Compilers</a> (32-bit).
- </li>
- <li>
- Install the
- <a href="#mssdk">Microsoft Platform SDK</a>.
+ <a href="#msvc">Microsoft Visual Studio Compilers</a>).
</li>
<li>
Setup all environment variables for compilers
@@ -964,13 +960,28 @@
</blockquote>
<strong><a name="msvc">Windows i586: Microsoft Visual Studio Compilers</a></strong>
<blockquote>
+<p>
+<b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
+use the newest VS2010 Microsoft compilers. These build instructions are updated
+to show where we are going. We have a QA process to go through before
+official builds actually use VS2010. So for now, official builds are
+still using VS2003. No other compilers are known to build the entire JDK,
+including non-open portions.
+So for now you should be able to build with either VS2003 or VS2010.
+We do not guarantee that VS2008 will work, although there is sufficient
+makefile support to make at least basic JDK builds plausible.
+Visual Studio 2010 Express compilers are likely to be able to build all the
+"open" sources, with only small adjustments, but this has yet to be made
+to work. Also we have not yet seen the 7.1 Windows SDK with the 64 bit
+compilers. <b>END WARNING.</b>
+<p>
The 32-bit OpenJDK Windows build
requires
- Microsoft Visual Studio C++ 2008 (VS2008) Standard
+ Microsoft Visual Studio C++ 2010 (VS2010) Professional
Edition compiler.
The compiler and other tools are expected to reside
in the location defined by the variable
- <tt>VS90COMNTOOLS</tt> which
+ <tt>VS100COMNTOOLS</tt> which
is set by the Microsoft Visual Studio installer.
<p>
Once the compiler is installed,
@@ -982,36 +993,21 @@
prior to building the
OpenJDK.
The above environment variables <b>MUST</b> be set.
+ This compiler also contains the Windows SDK v 7.0a,
+ which is an update to the Windows 7 SDK.
<p>
<b>WARNING:</b> Make sure you check out the
<a href="#cygwin">CYGWIN link.exe WARNING</a>.
The path <tt>/usr/bin</tt> must be after the path to the
Visual Studio product.
</blockquote>
- <strong><a name="mssdk">Windows: Microsoft Platform SDK</a></strong>
+ <strong><a name="mssdk">Windows x64: Microsoft Visual Studio Compilers</a></strong>
<blockquote>
- On <b>X64</b>, the Microsoft Platform Software
- Development Kit (SDK), April 2005 Edition compiler,
- is required for building the OpenJDK
- because it contains the C/C++ compiler.
- You will need to minimally install the Core SDK and
- the MDAC SDK features of this compiler.
- <p>
- Once the Platform SDK is installed,
- it is recommended that you run <tt>SetEnv.Cmd /X64</tt>
- to set the compiler environment variables
- <tt>MSSDK</tt>,
- <tt>MSTOOLS</tt>,
- <tt>INCLUDE</tt>,
- <tt>LIB</tt>, and
- <tt>PATH</tt>
- prior to building the
- OpenJDK.
- The above environment variables <b>MUST</b> be set.
- <p>
- This Platform SDK compiler is only used on X64 builds
- but other parts of the Platform SDK may be used
- for the X86 builds.
+ On <b>X64</b>, the set up is much the same in VS2010
+ except that you run <tt>amd64\VCVARS64.BAT</tt>
+ to set the compiler environment variables.
+ Previously 64 builds had used the 64 bit compiler in
+ an unbundled Windows SDK but this is no longer necessary.
</blockquote>
</blockquote>
<!-- ------------------------------------------------------ -->
@@ -1314,40 +1310,16 @@
but it's normally found via the DirectX environment variable
<tt>DXSDK_DIR</tt>.
</blockquote>
- <strong><a name="msvcrt"><tt>MSVCRT.DLL</tt></a></strong>
+ <strong><a name="msvcrt"><tt>MSVCR100.DLL</tt></a></strong>
<blockquote>
- <strong>i586 only:</strong>
- The OpenJDK 32-bit build requires access to a redistributable
- <tt>MSVCRT.DLL</tt>.
- If the <tt>MSVCRT.DLL</tt> is not installed in
- the system32 directory set the
+ The OpenJDK build requires access to a redistributable
+ <tt>MSVCR100.DLL</tt>.
+ This is usually picked up automatically from the redist
+ directories of Visual Studio 2010.
+ If this cannot be found set the
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
variable to the location of this file.
<p>
- <strong>X64 only:</strong>
- The OpenJDK 64-bit build requires access to a redistributable
- <tt>MSVCRT.DLL</tt>, which is
- usually supplied by the
- <a href="#mssdk">Platform SDK</a>.
- If it is not available from the Platform SDK,
- set the
- <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
- variable to the location of this file.
- </blockquote>
- <strong><tt><a name="msvcr90">MSVCR90.DLL</a></tt></strong>
- <blockquote>
- <strong>i586 only:</strong>
- The
- OpenJDK
- build requires access to a redistributable
- <tt>MSVCR90.DLL</tt> which should be
- supplied by the
- <a href="#msvc">Visual Studio product</a>.
- If the <tt>MSVCR90.DLL</tt> is not available from the
- Visual Studio product
- set the
- <a href="#ALT_MSVCR90_DLL_PATH"><tt>ALT_MSVCR90_DLL_PATH</tt></a>
- variable to the location of this file.
</blockquote>
</blockquote>
<!-- ------------------------------------------------------ -->
@@ -1623,11 +1595,10 @@
The location of the
<a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>.
</dd>
- <dt><tt><a name="ALT_MSVCR90_DLL_PATH">ALT_MSVCR90_DLL_PATH</a></tt> </dt>
+ <dt><tt><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></tt> </dt>
<dd>
- <strong>i586 only:</strong>
The location of the
- <a href="#msvcr90"><tt>MSVCR90.DLL</tt></a>.
+ <a href="#msvcrt"><tt>MSVCR100.DLL</tt></a>.
</dd>
</dl>
</dd>
--- a/corba/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/corba/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
bb4424c5e778b842c064a8b1aa902b35f4397654 jdk7-b89
56ce07b0eb47b93a98a72adef0f21e602c460623 jdk7-b90
bcd2fc089227559ac5be927923609fac29f067fa jdk7-b91
+930582f667a13391cd0b3e41e8cb760f55e3a5c0 jdk7-b92
--- a/corba/make/common/Defs-windows.gmk Wed May 19 09:45:05 2010 -0700
+++ b/corba/make/common/Defs-windows.gmk Wed May 19 09:46:11 2010 -0700
@@ -77,6 +77,11 @@
MSVCPNN_DLL = msvcp90.dll
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
endif
+ ifeq ($(COMPILER_VERSION), VS2010)
+ MSVCRNN_DLL = msvcr100.dll
+ MSVCPNN_DLL = msvcp100.dll
+ MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
+ endif
endif
# C Compiler flag definitions
@@ -175,6 +180,20 @@
CC_LOWER_OPT = -O1
endif
endif
+ ifeq ($(COMPILER_VERSION), VS2010)
+ # Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+ AUTOMATIC_PCH_OPTION =
+ GX_OPTION = -EHsc
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ CC_HIGHEST_OPT = -O2
+ CC_HIGHER_OPT = -O1
+ CC_LOWER_OPT = -O1
+ else
+ CC_HIGHEST_OPT = -O2
+ CC_HIGHER_OPT = -O1
+ CC_LOWER_OPT = -O1
+ endif
+ endif
CC_NO_OPT = -Od
else # CC_VERSION
# GCC not supported, but left for historical reference...
--- a/corba/make/common/shared/Compiler-msvc.gmk Wed May 19 09:45:05 2010 -0700
+++ b/corba/make/common/shared/Compiler-msvc.gmk Wed May 19 09:46:11 2010 -0700
@@ -97,6 +97,19 @@
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
endif
endif
+ ifeq ($(CC_MAJORVER), 16)
+ # This should be: CC_VER=16.00.30319.01 LINK_VER=10.00.30319.01
+ REQUIRED_CC_VER = 16.00.30319.01
+ REQUIRED_LINK_VER = 10.00.30319.01
+ COMPILER_NAME=Visual Studio 10
+ COMPILER_VERSION=VS2010
+ #rebase and midl moved out of Visual Studio into the SDK:
+ REBASE = $(MSDEVTOOLS_PATH)/rebase
+ MTL = $(MSDEVTOOLS_PATH)/midl.exe
+ ifndef COMPILER_PATH
+ COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
+ endif
+ endif
else
# else ARCH_DATA_MODEL is 64
ifndef LINK_VER
@@ -144,11 +157,21 @@
COMPILER_NAME=Windows SDK 6.1 Visual Studio 9
COMPILER_VERSION=VS2008
RC = $(MSSDK61)/bin/x64/rc
- REBASE = $(MSSDK61/bin/x64/rebase
+ REBASE = $(MSSDK61)/bin/x64/rebase
else
- # This will cause problems if ALT_COMPILER_PATH is defined to ""
- # which is a directive to use the PATH.
- REBASE = $(COMPILER_PATH)../REBASE
+ ifeq ($(CC_MAJORVER), 16)
+ # This should be: CC_VER=16.00.30319.01 LINK_VER=9.00.30319.01
+ REQUIRED_CC_VER = 16.00.30319.01
+ REQUIRED_LINK_VER = 10.00.30319.01
+ COMPILER_NAME=Microsoft Visual Studio 10
+ COMPILER_VERSION=VS2010
+ RC = $(MSSDK7)/bin/x64/rc
+ REBASE = $(MSSDK7)/bin/x64/rebase
+ else
+ # This will cause problems if ALT_COMPILER_PATH is defined to ""
+ # which is a directive to use the PATH.
+ REBASE = $(COMPILER_PATH)../REBASE
+ endif
endif
ifndef COMPILER_PATH
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
--- a/corba/make/common/shared/Defs-windows.gmk Wed May 19 09:45:05 2010 -0700
+++ b/corba/make/common/shared/Defs-windows.gmk Wed May 19 09:46:11 2010 -0700
@@ -222,6 +222,17 @@
ifneq ($(subst MSDev98,OLDOLDOLD,$(SHORTMSVCDIR)),$(SHORTMSVCDIR))
SHORTMSVCDIR :=
endif
+ # If we still don't have it, look for VS100COMNTOOLS, setup by installer?
+ ifeq ($(SHORTMSVCDIR),)
+ ifdef VS100COMNTOOLS # /Common/Tools directory, use ../../Vc
+ xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))"
+ _vs100tools :=$(call FullPath,$(xVS100COMNTOOLS))
+ endif
+ ifneq ($(_vs100tools),)
+ SHORTMSVCDIR :=$(_vs100tools)/../../Vc
+ endif
+ endif
+ export SHORTMSVCDIR
# If we still don't have it, look for VS71COMNTOOLS, setup by installer?
ifeq ($(SHORTMSVCDIR),)
ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7
@@ -272,24 +283,35 @@
# Compilers for 64bit are from SDK
ifeq ($(ARCH_DATA_MODEL), 64)
ifndef SHORTCOMPILERBIN
- xMSSDK61 :="C:/Program Files/Microsoft SDKs/Windows/v6.1/"
- MSSDK61 :=$(call FullPath,$(xMSSDK61))
- xVS2008 :="C:/Program Files (x86)/Microsoft Visual Studio 9.0/"
- _vs2008 :=$(call FullPath,$(xVS2008))
- ifneq ($(_vs2008),)
- ifeq ($(ARCH), ia64)
- SHORTCOMPILERBIN :=$(_vs2008)/VC/Bin/x86_ia64
- endif
- ifeq ($(ARCH), amd64)
- SHORTCOMPILERBIN :=$(_vs2008)/VC/Bin/$(ARCH)
- endif
+ ifdef VS100COMNTOOLS # /Common7/Tools directory, use ../../Vc
+ xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))"
+ _vs100tools :=$(call FullPath,$(xVS100COMNTOOLS))
+ endif
+ ifneq ($(_vs100tools),)
+ SHORTCOMPILERBIN :=$(_vs100tools)/../../Vc/bin/amd64
+ xMSSDK70 :="C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/"
+ MSSDK7 :=$(call FullPath,$(xMSSDK70))
+ export MSSDK7
else
- ifneq ($(SHORTPSDK),)
+ xMSSDK61 :="C:/Program Files/Microsoft SDKs/Windows/v6.1/"
+ MSSDK61 :=$(call FullPath,$(xMSSDK61))
+ xVS2008 :="C:/Program Files (x86)/Microsoft Visual Studio 9.0/"
+ _vs2008 :=$(call FullPath,$(xVS2008))
+ ifneq ($(_vs2008),)
ifeq ($(ARCH), ia64)
- SHORTCOMPILERBIN :=$(SHORTPSDK)/Bin/Win64
+ SHORTCOMPILERBIN :=$(_vs2008)/VC/Bin/x86_ia64
endif
ifeq ($(ARCH), amd64)
- SHORTCOMPILERBIN :=$(SHORTPSDK)/Bin/Win64/x86/$(ARCH)
+ SHORTCOMPILERBIN :=$(_vs2008)/VC/Bin/$(ARCH)
+ endif
+ else
+ ifneq ($(SHORTPSDK),)
+ ifeq ($(ARCH), ia64)
+ SHORTCOMPILERBIN :=$(SHORTPSDK)/Bin/Win64
+ endif
+ ifeq ($(ARCH), amd64)
+ SHORTCOMPILERBIN :=$(SHORTPSDK)/Bin/Win64/x86/$(ARCH)
+ endif
endif
endif
endif
--- a/corba/make/common/shared/Platform.gmk Wed May 19 09:45:05 2010 -0700
+++ b/corba/make/common/shared/Platform.gmk Wed May 19 09:46:11 2010 -0700
@@ -333,7 +333,11 @@
endif
ARCH_FAMILY = $(ARCH)
# Where is unwanted output to be delivered?
- DEV_NULL = NUL
+ ifeq ($(USING_CYGWIN),true)
+ DEV_NULL = /dev/null
+ else
+ DEV_NULL = NUL
+ endif
export DEV_NULL
# Classpath separator
CLASSPATH_SEPARATOR = ;
--- a/hotspot/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -92,3 +92,4 @@
605c9707a766ff518cd841fc04f9bb4b36a3a30b jdk7-b90
e0a1a502e402dbe7bf2d9102b4084a7e79a99a9b jdk7-b91
25f53b53aaa3eb8b2d5391a1e8de9a76ae1dd8a2 hs18-b03
+3221d1887d30341bedfdac1dbf365ea41beff20f jdk7-b92
--- a/hotspot/make/windows/build_vm_def.sh Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/make/windows/build_vm_def.sh Wed May 19 09:46:11 2010 -0700
@@ -58,11 +58,11 @@
fi
if [ "x$LINK_VER" != "x800" -a "x$LINK_VER" != "x900" ]; then
-$DUMPBIN /symbols *.obj | "$GREP" "??_7.*@@6B@" | "$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
# Can't use pipes when calling cl.exe or link.exe from IDE. Using transit file vm3.def
$DUMPBIN /OUT:vm3.def /symbols *.obj
-"$CAT" vm3.def | "$GREP" "??_7.*@@6B@" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
+"$CAT" vm3.def | "$GREP" "??_7.*@@6B@" | "$GREP" -v "type_info" | "$AWK" '{print $7}' | "$SORT" | "$UNIQ" > vm2.def
"$RM" -f vm3.def
fi
--- a/hotspot/make/windows/makefiles/compile.make Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/make/windows/makefiles/compile.make Wed May 19 09:46:11 2010 -0700
@@ -92,6 +92,7 @@
# 1399 is our fake number for the VS2005 compiler that really isn't 1400
# 1400 is for VS2005
# 1500 is for VS2008
+# 1600 is for VS2010
# Do not confuse this MSC_VER with the predefined macro _MSC_VER that the
# compiler provides, when MSC_VER==1399, _MSC_VER will be 1400.
# Normally they are the same, but a pre-release of the VS2005 compilers
@@ -121,6 +122,9 @@
!if "$(MSC_VER)" == "1500"
COMPILER_NAME=VS2008
!endif
+!if "$(MSC_VER)" == "1600"
+COMPILER_NAME=VS2010
+!endif
!endif
# Add what version of the compiler we think this is to the compile line
@@ -183,6 +187,17 @@
MT=mt.exe
!endif
+!if "$(COMPILER_NAME)" == "VS2010"
+PRODUCT_OPT_OPTION = /O2 /Oy-
+FASTDEBUG_OPT_OPTION = /O2 /Oy-
+DEBUG_OPT_OPTION = /Od
+GX_OPTION = /EHsc
+LINK_FLAGS = /manifest $(LINK_FLAGS)
+# Manifest Tool - used in VS2005 and later to adjust manifests stored
+# as resources inside build artifacts.
+MT=mt.exe
+!endif
+
# Compile for space above time.
!if "$(Variant)" == "kernel"
PRODUCT_OPT_OPTION = /O1 /Oy-
--- a/hotspot/make/windows/makefiles/defs.make Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/make/windows/makefiles/defs.make Wed May 19 09:46:11 2010 -0700
@@ -55,6 +55,8 @@
MAKE_ARGS += Platform_arch_model=ia64
endif
+# http://support.microsoft.com/kb/888731 : this can be either
+# AMD64 for AMD, or EM64T for Intel chips.
ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
ARCH_DATA_MODEL=64
PLATFORM=windows-amd64
@@ -67,6 +69,19 @@
MAKE_ARGS += Platform_arch_model=x86_64
endif
+# NB later OS versions than 2003 may report "Intel64"
+ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) "EM64T\|Intel64"),)
+ ARCH_DATA_MODEL=64
+ PLATFORM=windows-amd64
+ VM_PLATFORM=windows_amd64
+ HS_ARCH=x86
+ MAKE_ARGS += LP64=1
+ MAKE_ARGS += ARCH=x86
+ MAKE_ARGS += BUILDARCH=amd64
+ MAKE_ARGS += Platform_arch=x86
+ MAKE_ARGS += Platform_arch_model=x86_64
+endif
+
JDK_INCLUDE_SUBDIR=win32
# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
--- a/hotspot/make/windows/makefiles/sanity.make Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/make/windows/makefiles/sanity.make Wed May 19 09:46:11 2010 -0700
@@ -27,9 +27,9 @@
all: checkCL checkLink
checkCL:
- @ if "$(MSC_VER)" NEQ "1310" if "$(MSC_VER)" NEQ "1399" if "$(MSC_VER)" NEQ "1400" if "$(MSC_VER)" NEQ "1500" \
+ @ if "$(MSC_VER)" NEQ "1310" if "$(MSC_VER)" NEQ "1399" if "$(MSC_VER)" NEQ "1400" if "$(MSC_VER)" NEQ "1500" if "$(MSC_VER)" NEQ "1600" \
echo *** WARNING *** unrecognized cl.exe version $(MSC_VER) ($(RAW_MSC_VER)). Use FORCE_MSC_VER to override automatic detection.
checkLink:
- @ if "$(LINK_VER)" NEQ "710" if "$(LINK_VER)" NEQ "800" if "$(LINK_VER)" NEQ "900" \
+ @ if "$(LINK_VER)" NEQ "710" if "$(LINK_VER)" NEQ "800" if "$(LINK_VER)" NEQ "900" if "$(LINK_VER)" NEQ "1000" \
echo *** WARNING *** unrecognized link.exe version $(LINK_VER) ($(RAW_LINK_VER)). Use FORCE_LINK_VER to override automatic detection.
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Wed May 19 09:46:11 2010 -0700
@@ -290,7 +290,7 @@
// Recalculate the region size to make sure it's a power of
// 2. This means that region_size is the largest power of 2 that's
// <= what we've calculated so far.
- region_size = 1 << region_size_log;
+ region_size = ((uintx)1 << region_size_log);
// Now make sure that we don't go over or under our limits.
if (region_size < MIN_REGION_SIZE) {
--- a/hotspot/src/share/vm/runtime/sharedRuntimeTrig.cpp Wed May 19 09:45:05 2010 -0700
+++ b/hotspot/src/share/vm/runtime/sharedRuntimeTrig.cpp Wed May 19 09:46:11 2010 -0700
@@ -41,6 +41,26 @@
# pragma optimize ( "", off )
#endif
+/* The above workaround now causes more problems with the latest MS compiler.
+ * Visual Studio 2010's /GS option tries to guard against buffer overruns.
+ * /GS is on by default if you specify optimizations, which we do globally
+ * via /W3 /O2. However the above selective turning off of optimizations means
+ * that /GS issues a warning "4748". And since we treat warnings as errors (/WX)
+ * then the compilation fails. There are several possible solutions
+ * (1) Remove that pragma above as obsolete with VS2010 - requires testing.
+ * (2) Stop treating warnings as errors - would be a backward step
+ * (3) Disable /GS - may help performance but you lose the security checks
+ * (4) Disable the warning with "#pragma warning( disable : 4748 )"
+ * (5) Disable planting the code with __declspec(safebuffers)
+ * I've opted for (5) although we should investigate the local performance
+ * benefits of (1) and global performance benefit of (3).
+ */
+#if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1600))
+#define SAFEBUF __declspec(safebuffers)
+#else
+#define SAFEBUF
+#endif
+
#include <math.h>
// VM_LITTLE_ENDIAN is #defined appropriately in the Makefiles
@@ -235,7 +255,7 @@
two24B = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
-static int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2) {
+static SAFEBUF int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2) {
int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
double z,fw,f[20],fq[20],q[20];
@@ -451,7 +471,7 @@
pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
-static int __ieee754_rem_pio2(double x, double *y) {
+static SAFEBUF int __ieee754_rem_pio2(double x, double *y) {
double z,w,t,r,fn;
double tx[3];
int e0,i,j,nx,n,ix,hx,i0;
--- a/jaxp/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/jaxp/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
d2818fd2b036f3b3154a9a7de41afcf4ac679c1b jdk7-b89
c5d932ee326d6f7fd4634b11c7185ea82d184df2 jdk7-b90
b89b2c3044a298d542f84a2e9d957202b7d8cdb9 jdk7-b91
+e6a40e4bb10499fb6ee9db71ab5654e5a17ab75b jdk7-b92
--- a/jaxws/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/jaxws/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
bf3675aa7f20fc6f241ce95760005aef2a30ff41 jdk7-b89
ead7c4566a0017bcb44b468b3ac03b60dc5333ce jdk7-b90
cf4686bf35abd1e573f09fa43cbec66403160ae9 jdk7-b91
+df7c033f6a11c0973ab0e74701b1248aee9b659f jdk7-b92
--- a/jdk/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/jdk/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
4a6abb7e224cc8d9a583c23c5782e4668739a119 jdk7-b89
7f90d0b9dbb7ab4c60d0b0233e4e77fb4fac597c jdk7-b90
08a31cab971fcad4695e913d0f3be7bde3a90747 jdk7-b91
+f2dce7210cc00453c23e53edeec7156f112ca382 jdk7-b92
--- a/langtools/.hgtags Wed May 19 09:45:05 2010 -0700
+++ b/langtools/.hgtags Wed May 19 09:46:11 2010 -0700
@@ -66,3 +66,4 @@
6cea9a143208bc1185ced046942c0f4e45dbeba5 jdk7-b89
71c2c23a7c35b2896c87004023b9743b6d1b7758 jdk7-b90
97b6fa97b8ddb3a49394011c2a0ec5d6535e594c jdk7-b91
+98cba5876cb50fa3c58a313ddd668f5014ff14f6 jdk7-b92