8242468: VS2019 build missing vcruntime140_1.dll
Reviewed-by: tbell, ihse
This commit is contained in:
parent
416f4ed7ae
commit
165fa2450c
@ -177,6 +177,11 @@ else # not java.base
|
|||||||
JMOD_FLAGS += --exclude '$(notdir $(MSVCR_DLL))'
|
JMOD_FLAGS += --exclude '$(notdir $(MSVCR_DLL))'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(VCRUNTIME_1_DLL), )
|
||||||
|
ifneq ($(wildcard $(LIBS_DIR)/$(notdir $(VCRUNTIME_1_DLL))), )
|
||||||
|
JMOD_FLAGS += --exclude '$(notdir $(VCRUNTIME_1_DLL))'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
ifneq ($(MSVCP_DLL), )
|
ifneq ($(MSVCP_DLL), )
|
||||||
ifneq ($(wildcard $(LIBS_DIR)/$(notdir $(MSVCP_DLL))), )
|
ifneq ($(wildcard $(LIBS_DIR)/$(notdir $(MSVCP_DLL))), )
|
||||||
JMOD_FLAGS += --exclude '$(notdir $(MSVCP_DLL))'
|
JMOD_FLAGS += --exclude '$(notdir $(MSVCP_DLL))'
|
||||||
|
@ -141,6 +141,8 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
|
|||||||
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VS_LIB])
|
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VS_LIB])
|
||||||
# Corresponds to --with-msvcr-dll
|
# Corresponds to --with-msvcr-dll
|
||||||
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCR_DLL])
|
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCR_DLL])
|
||||||
|
# Corresponds to --with-vcruntime-1-dll
|
||||||
|
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VCRUNTIME_1_DLL])
|
||||||
# Corresponds to --with-msvcp-dll
|
# Corresponds to --with-msvcp-dll
|
||||||
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCP_DLL])
|
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCP_DLL])
|
||||||
# Corresponds to --with-ucrt-dll-dir
|
# Corresponds to --with-ucrt-dll-dir
|
||||||
|
@ -783,6 +783,7 @@ LIBZ_CFLAGS:=@LIBZ_CFLAGS@
|
|||||||
LIBZ_LIBS:=@LIBZ_LIBS@
|
LIBZ_LIBS:=@LIBZ_LIBS@
|
||||||
LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
|
LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
|
||||||
MSVCR_DLL:=@MSVCR_DLL@
|
MSVCR_DLL:=@MSVCR_DLL@
|
||||||
|
VCRUNTIME_1_DLL:=@VCRUNTIME_1_DLL@
|
||||||
MSVCP_DLL:=@MSVCP_DLL@
|
MSVCP_DLL:=@MSVCP_DLL@
|
||||||
UCRT_DLL_DIR:=@UCRT_DLL_DIR@
|
UCRT_DLL_DIR:=@UCRT_DLL_DIR@
|
||||||
STLPORT_LIB:=@STLPORT_LIB@
|
STLPORT_LIB:=@STLPORT_LIB@
|
||||||
|
@ -90,8 +90,9 @@ VS_SUPPORTED_2017=true
|
|||||||
VS_TOOLSET_SUPPORTED_2017=true
|
VS_TOOLSET_SUPPORTED_2017=true
|
||||||
|
|
||||||
VS_DESCRIPTION_2019="Microsoft Visual Studio 2019"
|
VS_DESCRIPTION_2019="Microsoft Visual Studio 2019"
|
||||||
VS_VERSION_INTERNAL_2019=141
|
VS_VERSION_INTERNAL_2019=142
|
||||||
VS_MSVCR_2019=vcruntime140.dll
|
VS_MSVCR_2019=vcruntime140.dll
|
||||||
|
VS_VCRUNTIME_1_2019=vcruntime140_1.dll
|
||||||
VS_MSVCP_2019=msvcp140.dll
|
VS_MSVCP_2019=msvcp140.dll
|
||||||
VS_ENVVAR_2019="VS160COMNTOOLS"
|
VS_ENVVAR_2019="VS160COMNTOOLS"
|
||||||
VS_USE_UCRT_2019="true"
|
VS_USE_UCRT_2019="true"
|
||||||
@ -299,6 +300,7 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
|
|||||||
fi
|
fi
|
||||||
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
|
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
|
||||||
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
|
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
|
||||||
|
eval VCRUNTIME_1_NAME="\${VS_VCRUNTIME_1_${VS_VERSION}}"
|
||||||
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
|
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
|
||||||
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
|
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
|
||||||
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
|
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
|
||||||
@ -365,6 +367,7 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
|
|||||||
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
|
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
|
||||||
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
|
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
|
||||||
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
|
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
|
||||||
|
eval VCRUNTIME_1_NAME="\${VS_VCRUNTIME_1_${VS_VERSION}}"
|
||||||
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
|
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
|
||||||
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
|
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
|
||||||
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
|
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
|
||||||
@ -802,6 +805,31 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
|
|||||||
AC_SUBST(MSVCP_DLL)
|
AC_SUBST(MSVCP_DLL)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
AC_ARG_WITH(vcruntime-1-dll, [AS_HELP_STRING([--with-vcruntime-1-dll],
|
||||||
|
[path to microsoft C++ runtime dll (vcruntime*_1.dll) (Windows only) @<:@probed@:>@])])
|
||||||
|
|
||||||
|
if test "x$VCRUNTIME_1_NAME" != "x"; then
|
||||||
|
if test "x$with_vcruntime_1_dll" != x; then
|
||||||
|
# If given explicitly by user, do not probe. If not present, fail directly.
|
||||||
|
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($VCRUNTIME_1_NAME, [$with_vcruntime_1_dll],
|
||||||
|
[--with-vcruntime-1-dll])
|
||||||
|
if test "x$MSVC_DLL" = x; then
|
||||||
|
AC_MSG_ERROR([Could not find a proper $VCRUNTIME_1_NAME as specified by --with-vcruntime-1-dll])
|
||||||
|
fi
|
||||||
|
VCRUNTIME_1_DLL="$MSVC_DLL"
|
||||||
|
elif test "x$DEVKIT_VCRUNTIME_1_DLL" != x; then
|
||||||
|
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($VCRUNTIME_1_NAME, [$DEVKIT_VCRUNTIME_1_DLL], [devkit])
|
||||||
|
if test "x$MSVC_DLL" = x; then
|
||||||
|
AC_MSG_ERROR([Could not find a proper $VCRUNTIME_1_NAME as specified by devkit])
|
||||||
|
fi
|
||||||
|
VCRUNTIME_1_DLL="$MSVC_DLL"
|
||||||
|
else
|
||||||
|
TOOLCHAIN_SETUP_MSVC_DLL([${VCRUNTIME_1_NAME}])
|
||||||
|
VCRUNTIME_1_DLL="$MSVC_DLL"
|
||||||
|
fi
|
||||||
|
AC_SUBST(VCRUNTIME_1_DLL)
|
||||||
|
fi
|
||||||
|
|
||||||
AC_ARG_WITH(ucrt-dll-dir, [AS_HELP_STRING([--with-ucrt-dll-dir],
|
AC_ARG_WITH(ucrt-dll-dir, [AS_HELP_STRING([--with-ucrt-dll-dir],
|
||||||
[path to Microsoft Windows Kit UCRT DLL dir (Windows only) @<:@probed@:>@])])
|
[path to Microsoft Windows Kit UCRT DLL dir (Windows only) @<:@probed@:>@])])
|
||||||
|
|
||||||
|
@ -59,12 +59,17 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
FILES := $(MSVCR_DLL), \
|
FILES := $(MSVCR_DLL), \
|
||||||
MACRO := copy-and-chmod))
|
MACRO := copy-and-chmod))
|
||||||
|
|
||||||
|
$(eval $(call SetupCopyFiles,COPY_VCRUNTIME_1, \
|
||||||
|
DEST := $(LIB_DST_DIR), \
|
||||||
|
FILES := $(VCRUNTIME_1_DLL), \
|
||||||
|
MACRO := copy-and-chmod))
|
||||||
|
|
||||||
$(eval $(call SetupCopyFiles,COPY_MSVCP, \
|
$(eval $(call SetupCopyFiles,COPY_MSVCP, \
|
||||||
DEST := $(LIB_DST_DIR), \
|
DEST := $(LIB_DST_DIR), \
|
||||||
FILES := $(MSVCP_DLL), \
|
FILES := $(MSVCP_DLL), \
|
||||||
MACRO := copy-and-chmod))
|
MACRO := copy-and-chmod))
|
||||||
|
|
||||||
TARGETS += $(COPY_MSVCR) $(COPY_MSVCP)
|
TARGETS += $(COPY_MSVCR) $(COPY_VCRUNTIME_1) $(COPY_MSVCP)
|
||||||
|
|
||||||
ifneq ($(UCRT_DLL_DIR), )
|
ifneq ($(UCRT_DLL_DIR), )
|
||||||
$(eval $(call SetupCopyFiles, COPY_UCRT_DLLS, \
|
$(eval $(call SetupCopyFiles, COPY_UCRT_DLLS, \
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@ -33,7 +33,7 @@ VS_VERSION_NUM_NODOT="160"
|
|||||||
VS_DLL_VERSION="140"
|
VS_DLL_VERSION="140"
|
||||||
SDK_VERSION="10"
|
SDK_VERSION="10"
|
||||||
SDK_FULL_VERSION="10.0.17763.0"
|
SDK_FULL_VERSION="10.0.17763.0"
|
||||||
MSVC_DIR="Microsoft.VC141.CRT"
|
MSVC_DIR="Microsoft.VC142.CRT"
|
||||||
MSVC_FULL_VERSION="14.12.27508"
|
MSVC_FULL_VERSION="14.12.27508"
|
||||||
REDIST_FULL_VERSION="14.20.27508"
|
REDIST_FULL_VERSION="14.20.27508"
|
||||||
|
|
||||||
@ -102,6 +102,7 @@ DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz"
|
|||||||
echo "Creating devkit in $DEVKIT_ROOT"
|
echo "Creating devkit in $DEVKIT_ROOT"
|
||||||
|
|
||||||
MSVCR_DLL=${MSVC_DIR}/vcruntime${VS_DLL_VERSION}.dll
|
MSVCR_DLL=${MSVC_DIR}/vcruntime${VS_DLL_VERSION}.dll
|
||||||
|
VCRUNTIME_1_DLL=${MSVC_DIR}/vcruntime${VS_DLL_VERSION}_1.dll
|
||||||
MSVCP_DLL=${MSVC_DIR}/msvcp${VS_DLL_VERSION}.dll
|
MSVCP_DLL=${MSVC_DIR}/msvcp${VS_DLL_VERSION}.dll
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -188,6 +189,7 @@ echo-info "DEVKIT_TOOLCHAIN_PATH_x86_64=\"\$DEVKIT_ROOT/VC/bin/x64:\$DEVKIT_ROOT
|
|||||||
echo-info "DEVKIT_VS_INCLUDE_x86_64=\"\$DEVKIT_ROOT/VC/include;\$DEVKIT_ROOT/VC/atlmfc/include;\$DEVKIT_ROOT/$SDK_VERSION/include/shared;\$DEVKIT_ROOT/$SDK_VERSION/include/ucrt;\$DEVKIT_ROOT/$SDK_VERSION/include/um;\$DEVKIT_ROOT/$SDK_VERSION/include/winrt\""
|
echo-info "DEVKIT_VS_INCLUDE_x86_64=\"\$DEVKIT_ROOT/VC/include;\$DEVKIT_ROOT/VC/atlmfc/include;\$DEVKIT_ROOT/$SDK_VERSION/include/shared;\$DEVKIT_ROOT/$SDK_VERSION/include/ucrt;\$DEVKIT_ROOT/$SDK_VERSION/include/um;\$DEVKIT_ROOT/$SDK_VERSION/include/winrt\""
|
||||||
echo-info "DEVKIT_VS_LIB_x86_64=\"\$DEVKIT_ROOT/VC/lib/x64;\$DEVKIT_ROOT/VC/atlmfc/lib/x64;\$DEVKIT_ROOT/$SDK_VERSION/lib/x64\""
|
echo-info "DEVKIT_VS_LIB_x86_64=\"\$DEVKIT_ROOT/VC/lib/x64;\$DEVKIT_ROOT/VC/atlmfc/lib/x64;\$DEVKIT_ROOT/$SDK_VERSION/lib/x64\""
|
||||||
echo-info "DEVKIT_MSVCR_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCR_DLL\""
|
echo-info "DEVKIT_MSVCR_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCR_DLL\""
|
||||||
|
echo-info "DEVKIT_VCRUNTIME_1_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$VCRUNTIME_1_DLL\""
|
||||||
echo-info "DEVKIT_MSVCP_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCP_DLL\""
|
echo-info "DEVKIT_MSVCP_DLL_x86_64=\"\$DEVKIT_ROOT/VC/redist/x64/$MSVCP_DLL\""
|
||||||
echo-info "DEVKIT_UCRT_DLL_DIR_x86_64=\"\$DEVKIT_ROOT/10/Redist/ucrt/DLLs/x64\""
|
echo-info "DEVKIT_UCRT_DLL_DIR_x86_64=\"\$DEVKIT_ROOT/10/Redist/ucrt/DLLs/x64\""
|
||||||
echo-info ""
|
echo-info ""
|
||||||
|
@ -41,7 +41,7 @@ ifeq ($(call isTargetOs, windows), true)
|
|||||||
$(foreach v, $(JVM_VARIANTS), \
|
$(foreach v, $(JVM_VARIANTS), \
|
||||||
$(eval $(call SetupCopyFiles, COPY_GTEST_MSVCR_$v, \
|
$(eval $(call SetupCopyFiles, COPY_GTEST_MSVCR_$v, \
|
||||||
DEST := $(TEST_IMAGE_DIR)/hotspot/gtest/$v, \
|
DEST := $(TEST_IMAGE_DIR)/hotspot/gtest/$v, \
|
||||||
FILES := $(MSVCR_DLL) $(MSVCP_DLL), \
|
FILES := $(MSVCR_DLL) $(VCRUNTIME_1_DLL) $(MSVCP_DLL), \
|
||||||
FLATTEN := true, \
|
FLATTEN := true, \
|
||||||
)) \
|
)) \
|
||||||
$(eval TARGETS += $$(COPY_GTEST_MSVCR_$v)) \
|
$(eval TARGETS += $$(COPY_GTEST_MSVCR_$v)) \
|
||||||
|
@ -184,6 +184,9 @@ endif
|
|||||||
ifeq ($(call isTargetOs, windows), true)
|
ifeq ($(call isTargetOs, windows), true)
|
||||||
# Supply the name of the C runtime lib.
|
# Supply the name of the C runtime lib.
|
||||||
LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"'
|
LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"'
|
||||||
|
ifneq ($(VCRUNTIME_1_DLL), )
|
||||||
|
LIBJLI_CFLAGS += -DVCRUNTIME_1_DLL_NAME='"$(notdir $(VCRUNTIME_1_DLL))"'
|
||||||
|
endif
|
||||||
ifneq ($(MSVCP_DLL), )
|
ifneq ($(MSVCP_DLL), )
|
||||||
LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"'
|
LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"'
|
||||||
endif
|
endif
|
||||||
|
@ -251,6 +251,23 @@ LoadMSVCRT()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* MSVCR_DLL_NAME */
|
#endif /* MSVCR_DLL_NAME */
|
||||||
|
#ifdef VCRUNTIME_1_DLL_NAME
|
||||||
|
if (GetJREPath(crtpath, MAXPATHLEN)) {
|
||||||
|
if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") +
|
||||||
|
JLI_StrLen(VCRUNTIME_1_DLL_NAME) >= MAXPATHLEN) {
|
||||||
|
JLI_ReportErrorMessage(JRE_ERROR11);
|
||||||
|
return JNI_FALSE;
|
||||||
|
}
|
||||||
|
(void)JLI_StrCat(crtpath, "\\bin\\" VCRUNTIME_1_DLL_NAME); /* Add crt dll */
|
||||||
|
JLI_TraceLauncher("CRT path is %s\n", crtpath);
|
||||||
|
if (_access(crtpath, 0) == 0) {
|
||||||
|
if (LoadLibrary(crtpath) == 0) {
|
||||||
|
JLI_ReportErrorMessage(DLL_ERROR4, crtpath);
|
||||||
|
return JNI_FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* VCRUNTIME_1_DLL_NAME */
|
||||||
#ifdef MSVCP_DLL_NAME
|
#ifdef MSVCP_DLL_NAME
|
||||||
if (GetJREPath(crtpath, MAXPATHLEN)) {
|
if (GetJREPath(crtpath, MAXPATHLEN)) {
|
||||||
if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") +
|
if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user