# HG changeset patch # User jrose # Date 1273806100 25200 # Node ID 8a2f4c03ab6fd61bef39eebc6ed4ceca9e773d10 # Parent ee0850472ca106b09668b877f01e0ed499a95c7b# Parent b5dab6a313fdff4c043250e4d9c8f66fd624d27e Merge diff -r ee0850472ca1 -r 8a2f4c03ab6f .hgtags --- a/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ 44158f6d3b94c0fa020e33632532473d92d1ea96 jdk7-b89 1d1927f9ec097b62c913921e2dfa5dbaf5dc325b jdk7-b90 308ad8f68b8dd68e22d73dd490e110059b732422 jdk7-b91 +ff9031a745d9cc52318f2148e43ca3b07ee08098 jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f .hgtags-top-repo --- a/.hgtags-top-repo Sat May 01 15:05:39 2010 -0700 +++ b/.hgtags-top-repo Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ 7f1ba4459972bf84b8201dc1cc4f62b1fe1c74f4 jdk7-b89 425ba3efabbfe0b188105c10aaf7c3c8fa8d1a38 jdk7-b90 97d8b6c659c29c8493a8b2b72c2796a021a8cf79 jdk7-b91 +5f5c33d417f3a14706b09a4a95e65fa7b6fa54d6 jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f README-builds.html --- a/README-builds.html Sat May 01 15:05:39 2010 -0700 +++ b/README-builds.html Thu May 13 20:01:40 2010 -0700 @@ -183,13 +183,13 @@ Windows X86 (32-bit) Windows XP - Microsoft Visual Studio C++ 2008 Standard Edition + Microsoft Visual Studio C++ 2010 Professional Edition JDK 6u14 FCS Windows X64 (64-bit) Windows Server 2003 - Enterprise x64 Edition - Microsoft Platform SDK - April 2005 + Microsoft Visual Studio C++ 2010 Professional Edition JDK 6u14 FCS @@ -789,11 +789,7 @@
  • Install the - Microsoft Visual Studio Compilers (32-bit). -
  • -
  • - Install the - Microsoft Platform SDK. + Microsoft Visual Studio Compilers).
  • Setup all environment variables for compilers @@ -964,13 +960,28 @@ Windows i586: Microsoft Visual Studio Compilers
    +

    +BEGIN WARNING: 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. END WARNING. +

    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 - VS90COMNTOOLS which + VS100COMNTOOLS which is set by the Microsoft Visual Studio installer.

    Once the compiler is installed, @@ -982,36 +993,21 @@ prior to building the OpenJDK. The above environment variables MUST be set. + This compiler also contains the Windows SDK v 7.0a, + which is an update to the Windows 7 SDK.

    WARNING: Make sure you check out the CYGWIN link.exe WARNING. The path /usr/bin must be after the path to the Visual Studio product.

    - Windows: Microsoft Platform SDK + Windows x64: Microsoft Visual Studio Compilers
    - On X64, 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. -

    - Once the Platform SDK is installed, - it is recommended that you run SetEnv.Cmd /X64 - to set the compiler environment variables - MSSDK, - MSTOOLS, - INCLUDE, - LIB, and - PATH - prior to building the - OpenJDK. - The above environment variables MUST be set. -

    - 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 X64, the set up is much the same in VS2010 + except that you run amd64\VCVARS64.BAT + 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.

    @@ -1314,40 +1310,16 @@ but it's normally found via the DirectX environment variable DXSDK_DIR. - MSVCRT.DLL + MSVCR100.DLL
    - i586 only: - The OpenJDK 32-bit build requires access to a redistributable - MSVCRT.DLL. - If the MSVCRT.DLL is not installed in - the system32 directory set the + The OpenJDK build requires access to a redistributable + MSVCR100.DLL. + This is usually picked up automatically from the redist + directories of Visual Studio 2010. + If this cannot be found set the ALT_MSVCRT_DLL_PATH variable to the location of this file.

    - X64 only: - The OpenJDK 64-bit build requires access to a redistributable - MSVCRT.DLL, which is - usually supplied by the - Platform SDK. - If it is not available from the Platform SDK, - set the - ALT_MSVCRT_DLL_PATH - variable to the location of this file. -

    - MSVCR90.DLL -
    - i586 only: - The - OpenJDK - build requires access to a redistributable - MSVCR90.DLL which should be - supplied by the - Visual Studio product. - If the MSVCR90.DLL is not available from the - Visual Studio product - set the - ALT_MSVCR90_DLL_PATH - variable to the location of this file.
    @@ -1623,11 +1595,10 @@ The location of the MSVCRT.DLL. -
    ALT_MSVCR90_DLL_PATH
    +
    ALT_MSVCRNN_DLL_PATH
    - i586 only: The location of the - MSVCR90.DLL. + MSVCR100.DLL.
    diff -r ee0850472ca1 -r 8a2f4c03ab6f corba/.hgtags --- a/corba/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/corba/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ bb4424c5e778b842c064a8b1aa902b35f4397654 jdk7-b89 56ce07b0eb47b93a98a72adef0f21e602c460623 jdk7-b90 bcd2fc089227559ac5be927923609fac29f067fa jdk7-b91 +930582f667a13391cd0b3e41e8cb760f55e3a5c0 jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f corba/make/common/Defs-windows.gmk --- a/corba/make/common/Defs-windows.gmk Sat May 01 15:05:39 2010 -0700 +++ b/corba/make/common/Defs-windows.gmk Thu May 13 20:01:40 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... diff -r ee0850472ca1 -r 8a2f4c03ab6f corba/make/common/shared/Compiler-msvc.gmk --- a/corba/make/common/shared/Compiler-msvc.gmk Sat May 01 15:05:39 2010 -0700 +++ b/corba/make/common/shared/Compiler-msvc.gmk Thu May 13 20:01:40 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) diff -r ee0850472ca1 -r 8a2f4c03ab6f corba/make/common/shared/Defs-windows.gmk --- a/corba/make/common/shared/Defs-windows.gmk Sat May 01 15:05:39 2010 -0700 +++ b/corba/make/common/shared/Defs-windows.gmk Thu May 13 20:01:40 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 diff -r ee0850472ca1 -r 8a2f4c03ab6f corba/make/common/shared/Platform.gmk --- a/corba/make/common/shared/Platform.gmk Sat May 01 15:05:39 2010 -0700 +++ b/corba/make/common/shared/Platform.gmk Thu May 13 20:01:40 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 = ; diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/.hgtags --- a/hotspot/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -92,3 +92,4 @@ 605c9707a766ff518cd841fc04f9bb4b36a3a30b jdk7-b90 e0a1a502e402dbe7bf2d9102b4084a7e79a99a9b jdk7-b91 25f53b53aaa3eb8b2d5391a1e8de9a76ae1dd8a2 hs18-b03 +3221d1887d30341bedfdac1dbf365ea41beff20f jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/make/windows/build_vm_def.sh --- a/hotspot/make/windows/build_vm_def.sh Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/make/windows/build_vm_def.sh Thu May 13 20:01:40 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 diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/make/windows/makefiles/compile.make --- a/hotspot/make/windows/makefiles/compile.make Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/make/windows/makefiles/compile.make Thu May 13 20:01:40 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- diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/make/windows/makefiles/defs.make --- a/hotspot/make/windows/makefiles/defs.make Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/make/windows/makefiles/defs.make Thu May 13 20:01:40 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 diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/make/windows/makefiles/sanity.make --- a/hotspot/make/windows/makefiles/sanity.make Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/make/windows/makefiles/sanity.make Thu May 13 20:01:40 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. diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Thu May 13 20:01:40 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) { diff -r ee0850472ca1 -r 8a2f4c03ab6f hotspot/src/share/vm/runtime/sharedRuntimeTrig.cpp --- a/hotspot/src/share/vm/runtime/sharedRuntimeTrig.cpp Sat May 01 15:05:39 2010 -0700 +++ b/hotspot/src/share/vm/runtime/sharedRuntimeTrig.cpp Thu May 13 20:01:40 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 // 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; diff -r ee0850472ca1 -r 8a2f4c03ab6f jaxp/.hgtags --- a/jaxp/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/jaxp/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ d2818fd2b036f3b3154a9a7de41afcf4ac679c1b jdk7-b89 c5d932ee326d6f7fd4634b11c7185ea82d184df2 jdk7-b90 b89b2c3044a298d542f84a2e9d957202b7d8cdb9 jdk7-b91 +e6a40e4bb10499fb6ee9db71ab5654e5a17ab75b jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f jaxws/.hgtags --- a/jaxws/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/jaxws/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ bf3675aa7f20fc6f241ce95760005aef2a30ff41 jdk7-b89 ead7c4566a0017bcb44b468b3ac03b60dc5333ce jdk7-b90 cf4686bf35abd1e573f09fa43cbec66403160ae9 jdk7-b91 +df7c033f6a11c0973ab0e74701b1248aee9b659f jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/.hgtags --- a/jdk/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/jdk/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ 4a6abb7e224cc8d9a583c23c5782e4668739a119 jdk7-b89 7f90d0b9dbb7ab4c60d0b0233e4e77fb4fac597c jdk7-b90 08a31cab971fcad4695e913d0f3be7bde3a90747 jdk7-b91 +f2dce7210cc00453c23e53edeec7156f112ca382 jdk7-b92 diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/com/sun/java/pack/Makefile --- a/jdk/make/com/sun/java/pack/Makefile Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/com/sun/java/pack/Makefile Thu May 13 20:01:40 2010 -0700 @@ -152,7 +152,7 @@ $(prep-target) $(LINKER) $(LDDFLAGS) $(UNPACK_EXE_FILES_o) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX) ifdef MT - $(MT) /manifest $(TEMPDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1 + $(MT) /manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1 endif $(CP) $(TEMPDIR)/unpack200$(EXE_SUFFIX) $(UNPACK_EXE) $(install-module-file) diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/Defs-windows.gmk --- a/jdk/make/common/Defs-windows.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/Defs-windows.gmk Thu May 13 20:01:40 2010 -0700 @@ -86,6 +86,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 ifeq ($(ARCH_DATA_MODEL), 64) @@ -94,6 +99,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 EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH) @@ -155,6 +165,7 @@ # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) AUTOMATIC_PCH_OPTION = GX_OPTION = -GX + GZ_OPTION = -GZ ifeq ($(ARCH_DATA_MODEL), 32) CC_OPT/HIGHEST = -Ox -Gy -Os -GB CC_OPT/HIGHER = -Ox -Gy -Os -GB @@ -171,6 +182,7 @@ AUTOMATIC_PCH_OPTION = -YX # Also known as VC7 compiler GX_OPTION = -GX + GZ_OPTION = -GZ ifeq ($(ARCH_DATA_MODEL), 32) # Lowered opt level to try and reduce footprint, dll size especially. # Was: CC_OPT/HIGHEST = -O2 -G6 @@ -190,6 +202,7 @@ AUTOMATIC_PCH_OPTION = # VS2005 compiler, only with Platform SDK right now? GX_OPTION = -EHsc + GZ_OPTION = -RTC1 ifeq ($(ARCH_DATA_MODEL), 32) CC_OPT/HIGHEST = -O2 CC_OPT/HIGHER = -O1 @@ -204,6 +217,23 @@ # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) AUTOMATIC_PCH_OPTION = GX_OPTION = -EHsc + GZ_OPTION = -RTC1 + ifeq ($(ARCH_DATA_MODEL), 32) + CC_OPT/HIGHEST = -O2 + CC_OPT/HIGHER = -O1 + CC_OPT/LOWER = -O1 + else + CC_OPT/HIGHEST = -O2 + CC_OPT/HIGHER = -O1 + CC_OPT/LOWER = -O1 + endif + endif + + ifeq ($(COMPILER_VERSION), VS2010) + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) + AUTOMATIC_PCH_OPTION = + GX_OPTION = -EHsc + GZ_OPTION = -RTC1 ifeq ($(ARCH_DATA_MODEL), 32) CC_OPT/HIGHEST = -O2 CC_OPT/HIGHER = -O1 @@ -282,6 +312,13 @@ CFLAGS_OPT = $(CC_OPT) CFLAGS_DBG = -Od $(MS_RUNTIME_DEBUG_OPTION) + # REMIND: I don't see where CFLAGS_VS2005 is used. I suspect its + # pulled in as a combined "CFLAGS_$(COMPILER_VERSION)" string + # but the lack of this isn't causing any apparent build problems + # with VS 2010 but it could be causing compiler warnings. + # For now, I will add it for all cases : + CFLAGS_VS2010 += -Zc:wchar_t- + # # Starting from VS2005 the wchar_t is handled as a built-in C/C++ data type # by default. However, we expect the wchar_t to be a typedef to the # unsigned short data type. The -Zc:wchar_t- option restores the old @@ -317,6 +354,7 @@ # VS2008 has bufferoverflow baked in: LFLAGS_VS2008 = + LFLAGS_VS2010 = # LFLAGS are the flags given to $(LINK) and used to build the actual DLL file BASELFLAGS = -nologo /opt:REF /incremental:no diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/Modules.gmk --- a/jdk/make/common/Modules.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/Modules.gmk Thu May 13 20:01:40 2010 -0700 @@ -357,6 +357,9 @@ $(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/bin $(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin $(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin + ifeq ($(COMPILER_VERSION), VS2010) + $(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin + endif ifeq ($(ARCH_DATA_MODEL), 32) ifeq ($(COMPILER_VERSION), VS2003) $(CP) $(BINDIR)/msvc*71.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/Release.gmk --- a/jdk/make/common/Release.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/Release.gmk Thu May 13 20:01:40 2010 -0700 @@ -749,6 +749,8 @@ $(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl'` # Construct an initial jre image (initial jdk jre) no trimming or stripping +# See "initial-image-jdk-setup" for an explanation of the rm of +# drive names like C: initial-image-jre:: initial-image-jre-setup \ $(JRE_LICENSES) $(JRE_DOCFILES) \ $(RT_JAR) $(RESOURCES_JAR) $(JSSE_JAR) \ @@ -759,6 +761,10 @@ $(MKDIR) -p $(JRE_IMAGE_DIR)/lib/applet @# Copy in lib directory $(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR) + ifeq ($(USING_CYGWIN),true) + $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]: + $(RM) -rf $(OUTPUTDIR)/[A-Za-z]: + endif @# Make sure all directories are read/execute for everyone $(CHMOD) a+rx `$(FIND) $(JRE_IMAGE_DIR) -type d` @# Remove some files from the jre area @@ -858,11 +864,27 @@ ###################################################### # Note: cpio ($(CPIO)) sometimes leaves directories without rx access. +# REMIND: the $(RM) calls for patterns like c:, d: following $(CPIO) +# are because the 1.7.x versions of cygwin's cpio command drops these +# in the working directory if the output path begins with that pattern +# The one for the output jre subdirectory gets there because cpio sees its +# own dropping in the input jre subdirectory. Need to remove both of these. +# We can remove these RM's if someone figures out how to stop cpio from +# leaving these there. +# Note that its a real problem not because this directory can end up in the +# bundle (I think it won't since it not in bin or lib and those are the +# only places from which we copy everything), but because the presence +# of this file causes cygwin's find to bomb out, thus breaking the build +# in "install". initial-image-jdk-setup: $(RM) -r $(JDK_IMAGE_DIR) $(MKDIR) -p $(JDK_IMAGE_DIR)/jre ($(CD) $(JRE_IMAGE_DIR) && $(FIND) . -depth -print \ | $(CPIO) -pdum $(JDK_IMAGE_DIR)/jre ) + ifeq ($(USING_CYGWIN),true) + $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]: + $(RM) -rf $(JDK_IMAGE_DIR)/jre/[A-Za-z]: + endif $(RM) -rf $(JDK_IMAGE_DIR)/jre/man $(CHMOD) a+rx `$(FIND) $(JDK_IMAGE_DIR) -type d` @@ -923,6 +945,9 @@ $(MKDIR) -p $(JDK_IMAGE_DIR)/bin $(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_IMAGE_DIR)/bin $(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin + ifeq ($(COMPILER_VERSION), VS2010) + $(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin + endif ifeq ($(ARCH_DATA_MODEL), 32) ifeq ($(COMPILER_VERSION), VS2003) $(CP) $(BINDIR)/msvc*71.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/shared/Compiler-msvc.gmk --- a/jdk/make/common/shared/Compiler-msvc.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/shared/Compiler-msvc.gmk Thu May 13 20:01:40 2010 -0700 @@ -67,7 +67,7 @@ COMPILER_VERSION=VS2005 REBASE = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase MTL = $(COMPILER_PATH)../../Common8/Tools/Bin/midl - MT = $(MSDEVTOOLS_PATH)mt + MT = $(MSDEVTOOLS_PATH)/mt ifndef COMPILER_PATH COMPILER_PATH := $(error COMPILER_PATH cannot be empty here) endif @@ -83,6 +83,17 @@ COMPILER_PATH := $(error COMPILER_PATH cannot be empty here) endif endif + ifeq ($(CC_MAJORVER), 16) + 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 + MT = $(MSDEVTOOLS_PATH)mt + ifndef COMPILER_PATH + COMPILER_PATH := $(error COMPILER_PATH cannot be empty here) + endif + endif else # else ARCH_DATA_MODEL is 64 LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}') @@ -122,6 +133,15 @@ COMPILER_VERSION=VS2008 RC = $(MSSDK61)/Bin/X64/rc.exe MT = $(MSSDK61)/Bin/X64/mt.exe + MTL = $(MSSDK61)/Bin/X64/midl.exe + endif + ifeq ($(CC_MAJORVER), 16) + COMPILER_NAME=Microsoft Visual Studio 10 (16.00.30319.01) + COMPILER_VERSION=VS2010 + RC = $(MSDEVTOOLS_PATH)/Bin/x64/rc.exe + RSC = $(MSDEVTOOLS_PATH)/Bin/x64/rc.exe + MT = $(MSDEVTOOLS_PATH)/Bin/x64/mt.exe + MTL = $(MSDEVTOOLS_PATH)/Bin/X64/midl.exe endif # This will cause problems if ALT_COMPILER_PATH is defined to "" # which is a directive to use the PATH. diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/shared/Defs-versions.gmk --- a/jdk/make/common/shared/Defs-versions.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/shared/Defs-versions.gmk Thu May 13 20:01:40 2010 -0700 @@ -165,10 +165,10 @@ REQUIRED_DXSDK_VER = 0x0900 ifeq ($(CC_VERSION),msvc) ifeq ($(ARCH_DATA_MODEL), 32) - REQUIRED_COMPILER_NAME = Visual Studio 9 - REQUIRED_COMPILER_VERSION = VS2008 - REQUIRED_CC_VER = 15.00.21022.08 - REQUIRED_LINK_VER = 9.00.21022.08 + REQUIRED_COMPILER_NAME = Visual Studio 10 + REQUIRED_COMPILER_VERSION = VS2010 + REQUIRED_CC_VER = 16.00.30319.01 + REQUIRED_LINK_VER = 10.00.30319.01 else ifeq ($(ARCH), ia64) REQUIRED_COMPILER_NAME = Microsoft Platform SDK - November 2001 Edition @@ -177,10 +177,10 @@ REQUIRED_LINK_VER = 7.00.9337.7 endif ifeq ($(ARCH), amd64) - REQUIRED_COMPILER_NAME = Microsoft Windows SDK with Visual Studio 9 (6001.18000.367) - REQUIRED_COMPILER_VERSION = VS2008 - REQUIRED_CC_VER = 15.00.21022.08 - REQUIRED_LINK_VER = 9.00.21022.08 + REQUIRED_COMPILER_NAME = Visual Studio 10 + REQUIRED_COMPILER_VERSION = VS2010 + REQUIRED_CC_VER = 16.00.30319.01 + REQUIRED_LINK_VER = 10.00.30319.01 endif endif endif diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/shared/Defs-windows.gmk --- a/jdk/make/common/shared/Defs-windows.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/shared/Defs-windows.gmk Thu May 13 20:01:40 2010 -0700 @@ -248,26 +248,34 @@ # If we still don't have it, look for VSnnCOMNTOOLS (newest first), # set by installer? ifeq ($(_msvc_dir),) - ifdef VS90COMNTOOLS # /Common/Tools directory, use ../../Vc - xVS90COMNTOOLS :="$(subst \,/,$(VS90COMNTOOLS))" - _vs90tools :=$(call FullPath,$(xVS90COMNTOOLS)) + ifdef VS100COMNTOOLS # /Common/Tools directory, use ../../Vc + xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))" + _vs100tools :=$(call FullPath,$(xVS100COMNTOOLS)) endif - ifneq ($(_vs90tools),) - _msvc_dir :=$(_vs90tools)/../../Vc + ifneq ($(_vs100tools),) + _msvc_dir :=$(_vs100tools)/../../Vc else - ifdef VS80COMNTOOLS # /Common/Tools directory, use ../../Vc - xVS80COMNTOOLS :="$(subst \,/,$(VS80COMNTOOLS))" - _vs80tools :=$(call FullPath,$(xVS80COMNTOOLS)) + ifdef VS90COMNTOOLS # /Common/Tools directory, use ../../Vc + xVS90COMNTOOLS :="$(subst \,/,$(VS90COMNTOOLS))" + _vs90tools :=$(call FullPath,$(xVS90COMNTOOLS)) endif - ifneq ($(_vs80tools),) - _msvc_dir :=$(_vs80tools)/../../Vc + ifneq ($(_vs90tools),) + _msvc_dir :=$(_vs90tools)/../../Vc else - ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7 - xVS71COMNTOOLS :="$(subst \,/,$(VS71COMNTOOLS))" - _vs71tools :=$(call FullPath,$(xVS71COMNTOOLS)) + ifdef VS80COMNTOOLS # /Common/Tools directory, use ../../Vc + xVS80COMNTOOLS :="$(subst \,/,$(VS80COMNTOOLS))" + _vs80tools :=$(call FullPath,$(xVS80COMNTOOLS)) endif - ifneq ($(_vs71tools),) - _msvc_dir :=$(_vs71tools)/../../Vc7 + ifneq ($(_vs80tools),) + _msvc_dir :=$(_vs80tools)/../../Vc + else + ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7 + xVS71COMNTOOLS :="$(subst \,/,$(VS71COMNTOOLS))" + _vs71tools :=$(call FullPath,$(xVS71COMNTOOLS)) + endif + ifneq ($(_vs71tools),) + _msvc_dir :=$(_vs71tools)/../../Vc7 + endif endif endif endif @@ -276,12 +284,15 @@ _compiler_bin :=$(_msvc_dir)/Bin # Assume PlatformSDK is in VS71 (will be empty if VS90) _ms_sdk :=$(call FullPath,$(_msvc_dir)/PlatformSDK) - # Assume VS90, then VS80, then VS71 - _redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC90.CRT) + # Assume VS100, then VS90, then VS80, then VS71 + _redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC100.CRT) ifeq ($(_redist_sdk),) - _redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC80.CRT) + _redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC90.CRT) ifeq ($(_redist_sdk),) - _redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v1.1/Bin) + _redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC80.CRT) + ifeq ($(_redist_sdk),) + _redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v1.1/Bin) + endif endif endif endif @@ -316,23 +327,40 @@ endif endif -# Compilers for 64bit are from SDK +# Compilers for 64bit may be from SDK. For VS 2010 we use those. +# The Express compilers don't contain 64 bit compilers, so in +# that case, you additionally need the SDK. At this time, +# there's no 64 bit SDK available that has VS 2010. +# Presumably SDK v7.1 will provide that and we may want to update +# the logic here to work with that. +# However official builds will use the Professional version. ifeq ($(ARCH_DATA_MODEL), 64) - xVS2008 :="$(_program_files32)/Microsoft Visual Studio 9.0/" - VS2008 :=$(call FullPath,$(xVS2008)) - ifneq ($(VS2008),) - _compiler_bin :=$(VS2008)/VC/Bin/$(ARCH) - xMSSDK61 :="$(_program_files)/Microsoft SDKs/Windows/v6.1/" - MSSDK61 :=$(call FullPath,$(xMSSDK61)) - _redist_sdk :=$(VS2008)/VC/redist/x86/Microsoft.VC90.CRT + ifdef VS100COMNTOOLS # /Common7/Tools directory, use ../../Vc + xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))" + _vs100tools :=$(call FullPath,$(xVS100COMNTOOLS)) + endif + ifneq ($(_vs100tools),) + _compiler_bin :=$(_vs100tools)/../../Vc/bin/amd64 + _redist_sdk :=$(_vs100tools)/../../Vc/redist/x64/Microsoft.VC100.CRT + xMSSDK70 :="$(_program_files32)/Microsoft SDKs/Windows/v7.0a/" + MSSDK70 :=$(call FullPath,$(xMSSDK70)) else - ifneq ($(_ms_sdk),) - ifeq ($(ARCH), ia64) - _compiler_bin :=$(_ms_sdk)/Bin/Win64 - endif - ifeq ($(ARCH), amd64) - _compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH) - _redist_sdk :=$(_ms_sdk)/redist/win64/AMD64 + xVS2008 :="$(_program_files32)/Microsoft Visual Studio 9.0/" + VS2008 :=$(call FullPath,$(xVS2008)) + ifneq ($(VS2008),) + _compiler_bin :=$(VS2008)/VC/Bin/$(ARCH) + xMSSDK61 :="$(_program_files)/Microsoft SDKs/Windows/v6.1/" + MSSDK61 :=$(call FullPath,$(xMSSDK61)) + _redist_sdk :=$(VS2008)/VC/redist/x86/Microsoft.VC90.CRT + else + ifneq ($(_ms_sdk),) + ifeq ($(ARCH), ia64) + _compiler_bin :=$(_ms_sdk)/Bin/Win64 + endif + ifeq ($(ARCH), amd64) + _compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH) + _redist_sdk :=$(_ms_sdk)/redist/win64/AMD64 + endif endif endif endif @@ -454,10 +482,14 @@ ifeq ($(ARCH_DATA_MODEL), 32) _NEEDS_MSVCRNN = true else - ifeq ($(VS2008),) - _NEEDS_MSVCRNN = false - else + ifneq ($(VS2010),) _NEEDS_MSVCRNN = true + else + ifneq ($(VS2008),) + _NEEDS_MSVCRNN = true + else + _NEEDS_MSVCRNN = false + endif endif endif @@ -557,6 +589,17 @@ endif CSCRIPT:=$(call AltCheckSpaces,CSCRIPT) +# CABARC: path to cabarc.exe (used in creating install bundles) +ifdef ALT_CABARC + xALT_CABARC :="$(subst \,/,$(ALT_CABARC))" + CABARC =$(xALT_CABARC) +else + _CABARC1 :=$(_system_root)/system32/cabarc.exe + _CABARC2 :=$(DEVTOOLS_PATH)cabarc.exe + CABARC :=$(call FileExists,$(_CABARC1),$(_CABARC2)) +endif +CABARC:=$(call AltCheckSpaces,CABARC) + # MSIVAL2: path to msival2.exe (used in validating install msi files) ifdef ALT_MSIVAL2 xALT_MSIVAL2 :="$(subst \,/,$(ALT_MSIVAL2))" diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/make/common/shared/Platform.gmk --- a/jdk/make/common/shared/Platform.gmk Sat May 01 15:05:39 2010 -0700 +++ b/jdk/make/common/shared/Platform.gmk Thu May 13 20:01:40 2010 -0700 @@ -275,7 +275,12 @@ endif ARCH_FAMILY = $(ARCH) # Where is unwanted output to be delivered? - DEV_NULL = NUL + # MKS uses the special file "NUL", cygwin uses the customary unix file. + ifeq ($(USING_CYGWIN),true) + DEV_NULL = /dev/null + else + DEV_NULL = NUL + endif export DEV_NULL # Classpath separator CLASSPATH_SEPARATOR = ; diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/share/bin/main.c --- a/jdk/src/share/bin/main.c Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/share/bin/main.c Thu May 13 20:01:40 2010 -0700 @@ -33,14 +33,16 @@ #include "defines.h" #ifdef _MSC_VER -#if _MSC_VER > 1400 +#if _MSC_VER > 1400 && _MSC_VER < 1600 /* * When building for Microsoft Windows, main has a dependency on msvcr??.dll. * - * When using Visual Studio 2005 or later, that must be recorded in + * When using Visual Studio 2005 or 2008, that must be recorded in * the [java,javaw].exe.manifest file. * + * As of VS2010 (ver=1600), the runtimes again no longer need manifests. + * * Reference: * C:/Program Files/Microsoft SDKs/Windows/v6.1/include/crtdefs.h */ @@ -67,7 +69,7 @@ "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"") #endif /* _M_AMD64 */ -#endif /* _MSC_VER > 1400 */ +#endif /* _MSC_VER > 1400 && _MSC_VER < 1600 */ #endif /* _MSC_VER */ /* diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/bin/java_md.c --- a/jdk/src/windows/bin/java_md.c Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/bin/java_md.c Thu May 13 20:01:40 2010 -0700 @@ -148,11 +148,18 @@ * assumed to be present in the "JRE path" directory. If it is not found * there (or "JRE path" fails to resolve), skip the explicit load and let * nature take its course, which is likely to be a failure to execute. + * This is clearly completely specific to the exact compiler version + * which isn't very nice, but its hardly the only place. + * No attempt to look for compiler versions in between 2003 and 2010 + * as we aren't supporting building with those. */ #ifdef _MSC_VER #if _MSC_VER < 1400 #define CRT_DLL "msvcr71.dll" #endif +#if _MSC_VER >= 1600 +#define CRT_DLL "msvcr100.dll" +#endif #ifdef CRT_DLL if (GetJREPath(crtpath, MAXPATHLEN)) { (void)JLI_StrCat(crtpath, "\\bin\\" CRT_DLL); /* Add crt dll */ diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/native/sun/jkernel/DownloadDialog.cpp --- a/jdk/src/windows/native/sun/jkernel/DownloadDialog.cpp Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/native/sun/jkernel/DownloadDialog.cpp Thu May 13 20:01:40 2010 -0700 @@ -29,7 +29,10 @@ #define STRICT #ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0400 +/* REMIND : 0x500 means Windows 2000 .. seems like we can update + * for Windows XP when we move the SDK and build platform + */ +#define _WIN32_WINNT 0x0500 #endif #define _ATL_APARTMENT_THREADED diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/native/sun/jkernel/DownloadHelper.cpp --- a/jdk/src/windows/native/sun/jkernel/DownloadHelper.cpp Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/native/sun/jkernel/DownloadHelper.cpp Thu May 13 20:01:40 2010 -0700 @@ -29,7 +29,10 @@ #define STRICT #ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0400 +/* REMIND : 0x500 means Windows 2000 .. seems like we can update + * for Windows XP when we move the SDK and build platform + */ +#define _WIN32_WINNT 0x0500 #endif #define _ATL_APARTMENT_THREADED diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/native/sun/jkernel/stdafx.h --- a/jdk/src/windows/native/sun/jkernel/stdafx.h Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/native/sun/jkernel/stdafx.h Thu May 13 20:01:40 2010 -0700 @@ -36,7 +36,10 @@ #define STRICT #ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0400 +/* REMIND : 0x500 means Windows 2000 .. seems like we can update + * for Windows XP when we move the SDK and build platform + */ +#define _WIN32_WINNT 0x0500 #endif #define _ATL_APARTMENT_THREADED diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp --- a/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp Thu May 13 20:01:40 2010 -0700 @@ -233,7 +233,19 @@ // NONCLIENTMETRICS ncmetrics; - ncmetrics.cbSize = sizeof(ncmetrics); + // Fix for 6944516: specify correct size for ncmetrics on WIN2K/XP + // Microsoft recommend to subtract the size of 'iPaddedBorderWidth' field + // when running on XP. However this can't be referenced at compile time + // with the older SDK, so there use 'lfMessageFont' plus its size. + if (!IS_WINVISTA) { +#if defined(_MSC_VER) && (_MSC_VER >= 1600) { + ncmetrics.cbSize = offsetof(NONCLIENTMETRICS, iPaddedBorderWidth); +#else + ncmetrics.cbSize = offsetof(NONCLIENTMETRICS,lfMessageFont) + sizeof(LOGFONT); +#endif + } else { + ncmetrics.cbSize = sizeof(ncmetrics); + } VERIFY( SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncmetrics.cbSize, &ncmetrics, FALSE) ); SetFontProperty( TEXT("win.frame.captionFont"), ncmetrics.lfCaptionFont ); diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/native/sun/windows/awt_DnDDS.cpp --- a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp Thu May 13 20:01:40 2010 -0700 @@ -29,21 +29,16 @@ //we need inclusion for STL "new" oprators set. #define bad_alloc zbad_alloc #include + +#if defined(_DEBUG) || defined(DEBUG) +extern void * operator new(size_t size, const char * filename, int linenumber); +void * operator new(size_t size) {return operator new(size, "stl", 1);} +#endif +#include + #pragma pop_macro("bad_alloc") //"bad_alloc" is undefined from here -//we need to include any STL container before inclusion due to -//"new" re-redefinition that is in conflict with in-place new allocator -//applied in STL. -#if defined(_DEBUG) || defined(DEBUG) - //forward declaration of "new" operator from - extern void * operator new(size_t size, const char * filename, int linenumber); - //"new" operator definition that is consistent with re-defined - //in "delete" operator - void * operator new(size_t size) {return operator new(size, "stl", 1);} -#endif -#include - #include #include diff -r ee0850472ca1 -r 8a2f4c03ab6f jdk/src/windows/native/sun/windows/awt_TextArea.cpp --- a/jdk/src/windows/native/sun/windows/awt_TextArea.cpp Sat May 01 15:05:39 2010 -0700 +++ b/jdk/src/windows/native/sun/windows/awt_TextArea.cpp Thu May 13 20:01:40 2010 -0700 @@ -758,7 +758,7 @@ si.cbSize = sizeof(SCROLLINFO); si.fMask = SIF_POS | SIF_RANGE | SIF_PAGE; int actualScrollLines = - abs(platfScrollLines * (*delta_accum / WHEEL_DELTA)); + abs((int)(platfScrollLines * (*delta_accum / WHEEL_DELTA))); for (int i = 0; i < actualScrollLines; i++) { if (::GetScrollInfo(hWnd, sb_type, &si)) { if ((wm_msg == WM_VSCROLL) diff -r ee0850472ca1 -r 8a2f4c03ab6f langtools/.hgtags --- a/langtools/.hgtags Sat May 01 15:05:39 2010 -0700 +++ b/langtools/.hgtags Thu May 13 20:01:40 2010 -0700 @@ -66,3 +66,4 @@ 6cea9a143208bc1185ced046942c0f4e45dbeba5 jdk7-b89 71c2c23a7c35b2896c87004023b9743b6d1b7758 jdk7-b90 97b6fa97b8ddb3a49394011c2a0ec5d6535e594c jdk7-b91 +98cba5876cb50fa3c58a313ddd668f5014ff14f6 jdk7-b92