diff --git a/make/windows/makefiles/compile.make b/make/windows/makefiles/compile.make index 6f82606795509f5a9a3e8ccba8d8ac0a088d6e8f..2afae3cabeb30e8f8e75dcca4a977665a47736e8 100644 --- a/make/windows/makefiles/compile.make +++ b/make/windows/makefiles/compile.make @@ -147,6 +147,15 @@ COMPILER_NAME=VS2010 !if "$(MSC_VER)" == "1700" COMPILER_NAME=VS2012 !endif +!if "$(MSC_VER)" == "1800" +COMPILER_NAME=VS2013 +!endif +!if "$(MSC_VER)" == "1900" +COMPILER_NAME=VS2015 +!endif +!if "$(MSC_VER)" == "1912" +COMPILER_NAME=VS2017 +!endif !endif # By default, we do not want to use the debug version of the msvcrt.dll file @@ -250,6 +259,52 @@ MT=mt.exe SAFESEH_FLAG = /SAFESEH !endif +!if "$(COMPILER_NAME)" == "VS2013" +PRODUCT_OPT_OPTION = /O2 /Oy- +FASTDEBUG_OPT_OPTION = /O2 /Oy- +DEBUG_OPT_OPTION = /Od +GX_OPTION = /EHsc +LD_FLAGS = /manifest $(LD_FLAGS) +MP_FLAG = /MP +# Manifest Tool - used in VS2005 and later to adjust manifests stored +# as resources inside build artifacts. +!if "x$(MT)" == "x" +MT=mt.exe +!endif +SAFESEH_FLAG = /SAFESEH +!endif + + +!if "$(COMPILER_NAME)" == "VS2015" +PRODUCT_OPT_OPTION = /O2 /Oy- +FASTDEBUG_OPT_OPTION = /O2 /Oy- +DEBUG_OPT_OPTION = /Od +GX_OPTION = /EHsc +LD_FLAGS = /manifest $(LD_FLAGS) +MP_FLAG = /MP +# Manifest Tool - used in VS2005 and later to adjust manifests stored +# as resources inside build artifacts. +!if "x$(MT)" == "x" +MT=mt.exe +!endif +SAFESEH_FLAG = /SAFESEH +!endif + +!if "$(COMPILER_NAME)" == "VS2017" +PRODUCT_OPT_OPTION = /O2 /Oy- +FASTDEBUG_OPT_OPTION = /O2 /Oy- +DEBUG_OPT_OPTION = /Od +GX_OPTION = /EHsc +LD_FLAGS = /manifest $(LD_FLAGS) +MP_FLAG = /MP +# Manifest Tool - used in VS2005 and later to adjust manifests stored +# as resources inside build artifacts. +!if "x$(MT)" == "x" +MT=mt.exe +!endif +SAFESEH_FLAG = /SAFESEH +!endif + !if "$(BUILDARCH)" == "i486" LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS) !endif diff --git a/make/windows/makefiles/sanity.make b/make/windows/makefiles/sanity.make index b502cfaa65f956baee28c684234ad69899ebcc5d..5a76ad72404b5455ab494a530eac5be1ac052ce4 100644 --- a/make/windows/makefiles/sanity.make +++ b/make/windows/makefiles/sanity.make @@ -28,8 +28,15 @@ 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 "1600" if "$(MSC_VER)" NEQ "1700" \ + if "$(MSC_VER)" NEQ "1800" \ + if "$(MSC_VER)" NEQ "1900" \ + if "$(MSC_VER)" NEQ "1912" \ echo *** WARNING *** unrecognized cl.exe version $(MSC_VER) ($(RAW_MSC_VER)). Use FORCE_MSC_VER to override automatic detection. checkLink: @ if "$(LD_VER)" NEQ "710" if "$(LD_VER)" NEQ "800" if "$(LD_VER)" NEQ "900" if "$(LD_VER)" NEQ "1000" if "$(LD_VER)" NEQ "1100" \ + if "$(LD_VER)" NEQ "1200" \ + if "$(LD_VER)" NEQ "1300" \ + if "$(LD_VER)" NEQ "1400" \ + if "$(LD_VER)" NEQ "1412" \ echo *** WARNING *** unrecognized link.exe version $(LD_VER) ($(RAW_LD_VER)). Use FORCE_LD_VER to override automatic detection. diff --git a/make/windows/makefiles/vm.make b/make/windows/makefiles/vm.make index 229be6870a7f57954c34dab151f1fe098a0243df..61a8f08c8521d4667524adc07574b04077494166 100644 --- a/make/windows/makefiles/vm.make +++ b/make/windows/makefiles/vm.make @@ -128,8 +128,8 @@ CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER !if "$(USE_PRECOMPILED_HEADER)" != "0" CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" -!if "$(COMPILER_NAME)" == "VS2012" -# VS2012 requires this object file to be listed: +!if "$(COMPILER_NAME)" == "VS2012" || "$(COMPILER_NAME)" == "VS2013" || "$(COMPILER_NAME)" == "VS2015" || "$(COMPILER_NAME)" == "VS2017" +# VS2012 and later require this object file to be listed: LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj !endif !else diff --git a/src/share/vm/runtime/vm_version.cpp b/src/share/vm/runtime/vm_version.cpp index 50063e6f83fb55e06ac0e888d40f60126cf2babd..445f1b846529e4801433d32853e4513586c9f3ca 100644 --- a/src/share/vm/runtime/vm_version.cpp +++ b/src/share/vm/runtime/vm_version.cpp @@ -218,6 +218,12 @@ const char* Abstract_VM_Version::internal_vm_info_string() { #define HOTSPOT_BUILD_COMPILER "MS VC++ 10.0 (VS2010)" #elif _MSC_VER == 1700 #define HOTSPOT_BUILD_COMPILER "MS VC++ 11.0 (VS2012)" + #elif _MSC_VER == 1800 + #define HOTSPOT_BUILD_COMPILER "MS VC++ 12.0 (VS2013)" + #elif _MSC_VER == 1900 + #define HOTSPOT_BUILD_COMPILER "MS VC++ 14.0 (VS2015)" + #elif _MSC_VER == 1912 + #define HOTSPOT_BUILD_COMPILER "MS VC++ 15.5 (VS2017)" #else #define HOTSPOT_BUILD_COMPILER "unknown MS VC++:" XSTR(_MSC_VER) #endif