changeset 105:60ace1f28c4b

OPENJDK6-32: OpenJDK6-b31 isn't compatible with Windows platform Summary: Fixing broken build in openjdk6 for windows. This change bumps up the VS compiler required for build to VS2010 and brings in multiple changes in awt and network stacks from openjdk7u required for compiler upgrade. Reviewed-by: andrew Contributed-by: vladislav@azulsystems.com, ygaevsky@azulsystems.com, ivan@azulsystems.com
author ikrylov
date Fri, 30 May 2014 17:11:50 +0400
parents 9319242e1e23
children b221ddfc8abb
files make/common/shared/Compiler-msvc.gmk
diffstat 1 files changed, 43 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/make/common/shared/Compiler-msvc.gmk	Thu Apr 10 11:53:59 2014 -0400
+++ b/make/common/shared/Compiler-msvc.gmk	Fri May 30 17:11:50 2014 +0400
@@ -23,6 +23,15 @@
 # questions.
 #
 
+# This file is a derivative work resulting from (and including) modifications
+# made by Azul Systems, Inc. The date of such changes is 2014.
+# These modification are copyright 2014 Azul Systems, Inc., and are made 
+# available on the same license terms set forth above.
+#
+# Please contact Azul Systems, Inc., 1173 Borregas Avenue, Sunnyvale, CA 94089
+# USA or visit www.azulsystems.com if you need additional information or have
+# any questions.
+
 #
 # MSVC Compiler settings
 #
@@ -41,97 +50,51 @@
   # Fill in unknown values
   COMPILER_NAME=Unknown MSVC Compiler
   COMPILER_VERSION=
-  REQUIRED_CC_VER=
-  REQUIRED_LINK_VER=
+  REQUIRED_CC_VER=16.10.40219.01
+  REQUIRED_LINK_VER=10.00.40219.01
   
   # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
   NMAKE          = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
 
-  # SDK-64 and MSVC6 put REBASE.EXE in a different places - go figure...
-  ifeq ($(ARCH_DATA_MODEL), 32)
-    CC_VER  := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$8}')
-    LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
-    CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$5}')
-    CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
-    REQUIRED_CCTYPE = Optimizing
-    REQUIRED_CC_VER = 13.10.3077
-    REQUIRED_LINK_VER = 7.10.3077
-    ifeq ($(CC_MAJORVER), 12)
-      # This should be: CC_VER=12.00.8168 LINK_VER=6.00.8447
-      COMPILER_NAME=Visual C++ 6.0 Professional + VC6-SP 3
-      COMPILER_VERSION=VC6
-      REBASE     = $(COMPILER_PATH)rebase
-      MTL        = $(COMPILER_PATH)midl
+ # Compiler version and type (Always get word after "Version")
+  CC_VER  := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
+
+  LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
+  CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
+  
+  # The VS2010 compiler is the same one used on both 32bit and 64bit
+  ifeq ($(CC_MAJORVER), 16)
+    COMPILER_NAME=Microsoft Visual Studio 10 (16.00.30319.01)
+    COMPILER_VERSION=VS2010
+    ifeq ($(WINDOWSSDKDIR),)
+      WINDOWSSDKDIR := $(error WINDOWSSDKDIR cannot be empty here)
     endif
-    ifeq ($(CC_MAJORVER), 13)
-      # This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077
-      COMPILER_NAME=Visual Studio .NET 2003 Professional C++
-      COMPILER_VERSION=VS2003
-      REBASE     = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase
-      MTL        = $(COMPILER_PATH)../../Common7/Tools/Bin/midl
-      ifndef COMPILER_PATH
-	COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
-      endif
-    endif
-    ifeq ($(CC_MAJORVER), 14)
-      # This should be: CC_VER=14.00.0000 LINK_VER=8.00.0000
-      # NOTE: This compiler has not been tried yet on 32bit systems
-      COMPILER_NAME=Visual Studio .NET 2005
-      COMPILER_VERSION=VS2005
-      REBASE     = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase
-      MTL        = $(COMPILER_PATH)../../Common8/Tools/Bin/midl
-      ifndef COMPILER_PATH
-	COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
+    ifeq ($(ARCH_DATA_MODEL), 32)
+      _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin
+    else
+      ifeq ($(ARCH), ia64)
+        _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/ia64
+      else
+        _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/x64
       endif
     endif
-  else
-    CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$7}')
-    LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
-    CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$4}')
-    CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
-    CC_MINORVER :=$(call MinorVersion,$(CC_VER))
-    CC_MICROVER :=$(call MicroVersion,$(CC_VER))
-    ifeq ($(ARCH), ia64)
-      REQUIRED_CC_VER = 13.00.9337.7
-      REQUIRED_LINK_VER = 7.00.9337.7
-    endif
-    ifeq ($(ARCH), amd64)
-      REQUIRED_CC_VER = 14.00.40310.41
-      REQUIRED_LINK_VER = 8.00.40310.39
-    endif
-    ifeq ($(CC_MAJORVER), 13)
-      ifeq ($(ARCH), ia64)
-        # This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7
-        COMPILER_NAME=Microsoft Platform SDK - November 2001 Edition
-        COMPILER_VERSION=VS2003
-      endif
-    endif
-    ifeq ($(CC_MAJORVER), 14)
-      ifeq ($(ARCH), amd64)
-        ifeq ($(CC_MICROVER), 30701)
-          # This should be: CC_VER=14.00.30701 LINK_VER=8.00.30701
-	  # WARNING: it says 14, but it is such an early build it doesn't
-	  #          have all the VS2005 compiler option changes, so treat
-	  #          this like a VS2003 compiler.
-          COMPILER_NAME=Microsoft Platform SDK - February 2003 Edition
-          COMPILER_VERSION=VS2003
-        else
-          # This should be: CC_VER=14.00.40310.41 LINK_VER=8.00.40310.39
-	  COMPILER_NAME=Microsoft Platform SDK - April 2005 Edition (3790.1830)
-          COMPILER_VERSION=VS2005
-        endif
-      endif
-    endif
-    # This will cause problems if ALT_COMPILER_PATH is defined to ""
-    # which is a directive to use the PATH.
-    REBASE         = $(COMPILER_PATH)../REBASE
-    ifndef COMPILER_PATH
-      COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
-    endif
+    RC     = $(_OTHER_TOOLS_BIN)/RC.Exe
+    REBASE = $(_OTHER_TOOLS_BIN)/ReBase.Exe
+    MT     = $(_OTHER_TOOLS_BIN)/mt.exe
+    MTL    = $(_OTHER_TOOLS_BIN)/midl.exe
+  endif
+ 
+  # These variables can never be empty
+  ifndef COMPILER_PATH
+    COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
   endif
   ifndef COMPILER_VERSION
     COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here)
   endif
+  ifneq ($(COMPILER_VERSION),VS2010)
+    COMPILER_VERSION := $(error COMPILER_VERSION must be VS2010)
+  endif
+
   # Shared library generation flag
   SHARED_LIBRARY_FLAG = -LD
 endif