# HG changeset patch # User ikrylov # Date 1401455510 -14400 # Node ID 60ace1f28c4b52af00833dd980741d90cb81a093 # Parent 9319242e1e230f23decd8c49f360db2e9eb09f0e 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 diff -r 9319242e1e23 -r 60ace1f28c4b make/common/shared/Compiler-msvc.gmk --- 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