Mon, 29 Oct 2018 14:43:07 -0700
8202557: OpenJDK fails to start in Windows 7 and 8.1 after upgrading compiler to VC 2017
Reviewed-by: tbell, erikj
1.1 --- a/common/autoconf/basics.m4 Wed Oct 17 13:00:32 2018 +0100 1.2 +++ b/common/autoconf/basics.m4 Mon Oct 29 14:43:07 2018 -0700 1.3 @@ -500,6 +500,8 @@ 1.4 BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCR_DLL]) 1.5 # Corresponds to --with-msvcp-dll 1.6 BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCP_DLL]) 1.7 + # Corresponds to --with-ucrt-dll-dir 1.8 + BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_UCRT_DLL_DIR]) 1.9 fi 1.10 1.11 AC_MSG_CHECKING([for devkit])
2.1 --- a/common/autoconf/generated-configure.sh Wed Oct 17 13:00:32 2018 +0100 2.2 +++ b/common/autoconf/generated-configure.sh Mon Oct 29 14:43:07 2018 -0700 2.3 @@ -640,6 +640,7 @@ 2.4 ENABLE_INTREE_EC 2.5 SALIB_NAME 2.6 HOTSPOT_MAKE_ARGS 2.7 +UCRT_DLL_DIR 2.8 MSVCP_DLL 2.9 MSVCR_DLL 2.10 LIBCXX 2.11 @@ -1095,6 +1096,7 @@ 2.12 with_stdc__lib 2.13 with_msvcr_dll 2.14 with_msvcp_dll 2.15 +with_ucrt_dll_dir 2.16 with_dxsdk 2.17 with_dxsdk_lib 2.18 with_dxsdk_include 2.19 @@ -1956,6 +1958,8 @@ 2.20 (Windows only) [probed] 2.21 --with-msvcp-dll path to microsoft C++ runtime dll (msvcp*.dll) 2.22 (Windows only) [probed] 2.23 + --with-ucrt-dll-dir path to Microsoft Windows Kit UCRT DLL dir (Windows 2.24 + only) [probed] 2.25 --with-dxsdk Deprecated. Option is kept for backwards 2.26 compatibility and is ignored 2.27 --with-dxsdk-lib Deprecated. Option is kept for backwards 2.28 @@ -4290,6 +4294,7 @@ 2.29 VS_MSVCR_2017=vcruntime140.dll 2.30 VS_MSVCP_2017=msvcp140.dll 2.31 VS_ENVVAR_2017="VS150COMNTOOLS" 2.32 +VS_USE_UCRT_2017="true" 2.33 VS_VS_INSTALLDIR_2017="Microsoft Visual Studio/2017" 2.34 VS_EDITIONS_2017="Community Professional Enterprise" 2.35 VS_SDK_INSTALLDIR_2017= 2.36 @@ -4337,7 +4342,7 @@ 2.37 #CUSTOM_AUTOCONF_INCLUDE 2.38 2.39 # Do not change or remove the following line, it is needed for consistency checks: 2.40 -DATE_WHEN_GENERATED=1539613812 2.41 +DATE_WHEN_GENERATED=1540846365 2.42 2.43 ############################################################################### 2.44 # 2.45 @@ -14911,6 +14916,12 @@ 2.46 eval DEVKIT_MSVCP_DLL="\${DEVKIT_MSVCP_DLL_${OPENJDK_TARGET_CPU}}" 2.47 fi 2.48 2.49 + # Corresponds to --with-ucrt-dll-dir 2.50 + 2.51 + if test "x$DEVKIT_UCRT_DLL_DIR" = x; then 2.52 + eval DEVKIT_UCRT_DLL_DIR="\${DEVKIT_UCRT_DLL_DIR_${OPENJDK_TARGET_CPU}}" 2.53 + fi 2.54 + 2.55 fi 2.56 2.57 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for devkit" >&5 2.58 @@ -25408,6 +25419,7 @@ 2.59 eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}" 2.60 eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}" 2.61 eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}" 2.62 + eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}" 2.63 eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}" 2.64 VS_PATH="$TOOLCHAIN_PATH:$PATH" 2.65 2.66 @@ -26142,6 +26154,7 @@ 2.67 eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}" 2.68 eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}" 2.69 eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}" 2.70 + eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}" 2.71 # The rest of the variables are already evaled while probing 2.72 { $as_echo "$as_me:${as_lineno-$LINENO}: Found $VS_DESCRIPTION" >&5 2.73 $as_echo "$as_me: Found $VS_DESCRIPTION" >&6;} 2.74 @@ -26550,8 +26563,11 @@ 2.75 VS_INCLUDE=`$ECHO "$VS_INCLUDE" | $SED 's/\\\\* *$//'` 2.76 VS_LIB=`$ECHO "$VS_LIB" | $SED 's/\\\\* *$//'` 2.77 VCINSTALLDIR=`$ECHO "$VCINSTALLDIR" | $SED 's/\\\\* *$//'` 2.78 - WindowsSDKDir=`$ECHO "$WindowsSDKDir" | $SED 's/\\\\* *$//'` 2.79 + WindowsSdkDir=`$ECHO "$WindowsSdkDir" | $SED 's/\\\\* *$//'` 2.80 WINDOWSSDKDIR=`$ECHO "$WINDOWSSDKDIR" | $SED 's/\\\\* *$//'` 2.81 + if test -z "$WINDOWSSDKDIR"; then 2.82 + WINDOWSSDKDIR="$WindowsSdkDir" 2.83 + fi 2.84 # Remove any paths containing # (typically F#) as that messes up make. This 2.85 # is needed if visual studio was installed with F# support. 2.86 VS_PATH=`$ECHO "$VS_PATH" | $SED 's/[^:#]*#[^:]*://g'` 2.87 @@ -48765,13 +48781,125 @@ 2.88 if test "x$VCINSTALLDIR" != x; then 2.89 CYGWIN_VC_INSTALL_DIR="$VCINSTALLDIR" 2.90 2.91 - windows_path="$CYGWIN_VC_INSTALL_DIR" 2.92 - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.93 - unix_path=`$CYGPATH -u "$windows_path"` 2.94 - CYGWIN_VC_INSTALL_DIR="$unix_path" 2.95 - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.96 - unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` 2.97 - CYGWIN_VC_INSTALL_DIR="$unix_path" 2.98 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.99 + 2.100 + # Input might be given as Windows format, start by converting to 2.101 + # unix format. 2.102 + path="$CYGWIN_VC_INSTALL_DIR" 2.103 + new_path=`$CYGPATH -u "$path"` 2.104 + 2.105 + # Cygwin tries to hide some aspects of the Windows file system, such that binaries are 2.106 + # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered 2.107 + # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then 2.108 + # "foo.exe" is OK but "foo" is an error. 2.109 + # 2.110 + # This test is therefore slightly more accurate than "test -f" to check for file precense. 2.111 + # It is also a way to make sure we got the proper file name for the real test later on. 2.112 + test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null` 2.113 + if test "x$test_shortpath" = x; then 2.114 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&5 2.115 +$as_echo "$as_me: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&6;} 2.116 + as_fn_error $? "Cannot locate the the path of CYGWIN_VC_INSTALL_DIR" "$LINENO" 5 2.117 + fi 2.118 + 2.119 + # Call helper function which possibly converts this using DOS-style short mode. 2.120 + # If so, the updated path is stored in $new_path. 2.121 + 2.122 + input_path="$new_path" 2.123 + # Check if we need to convert this using DOS-style short mode. If the path 2.124 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.125 + # take no chances and rewrite it. 2.126 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.127 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]` 2.128 + if test "x$has_forbidden_chars" != x; then 2.129 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.130 + shortmode_path=`$CYGPATH -s -m -a "$input_path"` 2.131 + path_after_shortmode=`$CYGPATH -u "$shortmode_path"` 2.132 + if test "x$path_after_shortmode" != "x$input_to_shortpath"; then 2.133 + # Going to short mode and back again did indeed matter. Since short mode is 2.134 + # case insensitive, let's make it lowercase to improve readability. 2.135 + shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.136 + # Now convert it back to Unix-style (cygpath) 2.137 + input_path=`$CYGPATH -u "$shortmode_path"` 2.138 + new_path="$input_path" 2.139 + fi 2.140 + fi 2.141 + 2.142 + test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/` 2.143 + if test "x$test_cygdrive_prefix" = x; then 2.144 + # As a simple fix, exclude /usr/bin since it's not a real path. 2.145 + if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then 2.146 + # The path is in a Cygwin special directory (e.g. /home). We need this converted to 2.147 + # a path prefixed by /cygdrive for fixpath to work. 2.148 + new_path="$CYGWIN_ROOT_PATH$input_path" 2.149 + fi 2.150 + fi 2.151 + 2.152 + 2.153 + if test "x$path" != "x$new_path"; then 2.154 + CYGWIN_VC_INSTALL_DIR="$new_path" 2.155 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&5 2.156 +$as_echo "$as_me: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&6;} 2.157 + fi 2.158 + 2.159 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.160 + 2.161 + path="$CYGWIN_VC_INSTALL_DIR" 2.162 + has_colon=`$ECHO $path | $GREP ^.:` 2.163 + new_path="$path" 2.164 + if test "x$has_colon" = x; then 2.165 + # Not in mixed or Windows style, start by that. 2.166 + new_path=`cmd //c echo $path` 2.167 + fi 2.168 + 2.169 + 2.170 + input_path="$new_path" 2.171 + # Check if we need to convert this using DOS-style short mode. If the path 2.172 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.173 + # take no chances and rewrite it. 2.174 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.175 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]` 2.176 + if test "x$has_forbidden_chars" != x; then 2.177 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.178 + new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.179 + fi 2.180 + 2.181 + 2.182 + windows_path="$new_path" 2.183 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.184 + unix_path=`$CYGPATH -u "$windows_path"` 2.185 + new_path="$unix_path" 2.186 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.187 + unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` 2.188 + new_path="$unix_path" 2.189 + fi 2.190 + 2.191 + if test "x$path" != "x$new_path"; then 2.192 + CYGWIN_VC_INSTALL_DIR="$new_path" 2.193 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&5 2.194 +$as_echo "$as_me: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&6;} 2.195 + fi 2.196 + 2.197 + # Save the first 10 bytes of this path to the storage, so fixpath can work. 2.198 + all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}") 2.199 + 2.200 + else 2.201 + # We're on a posix platform. Hooray! :) 2.202 + path="$CYGWIN_VC_INSTALL_DIR" 2.203 + has_space=`$ECHO "$path" | $GREP " "` 2.204 + if test "x$has_space" != x; then 2.205 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&5 2.206 +$as_echo "$as_me: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&6;} 2.207 + as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 2.208 + fi 2.209 + 2.210 + # Use eval to expand a potential ~ 2.211 + eval path="$path" 2.212 + if test ! -f "$path" && test ! -d "$path"; then 2.213 + as_fn_error $? "The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is not found." "$LINENO" 5 2.214 + fi 2.215 + 2.216 + CYGWIN_VC_INSTALL_DIR="`cd "$path"; $THEPWDCMD -L`" 2.217 fi 2.218 2.219 if test "$VS_VERSION" -lt 2017; then 2.220 @@ -50056,13 +50184,125 @@ 2.221 if test "x$VCINSTALLDIR" != x; then 2.222 CYGWIN_VC_INSTALL_DIR="$VCINSTALLDIR" 2.223 2.224 - windows_path="$CYGWIN_VC_INSTALL_DIR" 2.225 - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.226 - unix_path=`$CYGPATH -u "$windows_path"` 2.227 - CYGWIN_VC_INSTALL_DIR="$unix_path" 2.228 - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.229 - unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` 2.230 - CYGWIN_VC_INSTALL_DIR="$unix_path" 2.231 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.232 + 2.233 + # Input might be given as Windows format, start by converting to 2.234 + # unix format. 2.235 + path="$CYGWIN_VC_INSTALL_DIR" 2.236 + new_path=`$CYGPATH -u "$path"` 2.237 + 2.238 + # Cygwin tries to hide some aspects of the Windows file system, such that binaries are 2.239 + # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered 2.240 + # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then 2.241 + # "foo.exe" is OK but "foo" is an error. 2.242 + # 2.243 + # This test is therefore slightly more accurate than "test -f" to check for file precense. 2.244 + # It is also a way to make sure we got the proper file name for the real test later on. 2.245 + test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null` 2.246 + if test "x$test_shortpath" = x; then 2.247 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&5 2.248 +$as_echo "$as_me: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&6;} 2.249 + as_fn_error $? "Cannot locate the the path of CYGWIN_VC_INSTALL_DIR" "$LINENO" 5 2.250 + fi 2.251 + 2.252 + # Call helper function which possibly converts this using DOS-style short mode. 2.253 + # If so, the updated path is stored in $new_path. 2.254 + 2.255 + input_path="$new_path" 2.256 + # Check if we need to convert this using DOS-style short mode. If the path 2.257 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.258 + # take no chances and rewrite it. 2.259 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.260 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]` 2.261 + if test "x$has_forbidden_chars" != x; then 2.262 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.263 + shortmode_path=`$CYGPATH -s -m -a "$input_path"` 2.264 + path_after_shortmode=`$CYGPATH -u "$shortmode_path"` 2.265 + if test "x$path_after_shortmode" != "x$input_to_shortpath"; then 2.266 + # Going to short mode and back again did indeed matter. Since short mode is 2.267 + # case insensitive, let's make it lowercase to improve readability. 2.268 + shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.269 + # Now convert it back to Unix-style (cygpath) 2.270 + input_path=`$CYGPATH -u "$shortmode_path"` 2.271 + new_path="$input_path" 2.272 + fi 2.273 + fi 2.274 + 2.275 + test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/` 2.276 + if test "x$test_cygdrive_prefix" = x; then 2.277 + # As a simple fix, exclude /usr/bin since it's not a real path. 2.278 + if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then 2.279 + # The path is in a Cygwin special directory (e.g. /home). We need this converted to 2.280 + # a path prefixed by /cygdrive for fixpath to work. 2.281 + new_path="$CYGWIN_ROOT_PATH$input_path" 2.282 + fi 2.283 + fi 2.284 + 2.285 + 2.286 + if test "x$path" != "x$new_path"; then 2.287 + CYGWIN_VC_INSTALL_DIR="$new_path" 2.288 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&5 2.289 +$as_echo "$as_me: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&6;} 2.290 + fi 2.291 + 2.292 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.293 + 2.294 + path="$CYGWIN_VC_INSTALL_DIR" 2.295 + has_colon=`$ECHO $path | $GREP ^.:` 2.296 + new_path="$path" 2.297 + if test "x$has_colon" = x; then 2.298 + # Not in mixed or Windows style, start by that. 2.299 + new_path=`cmd //c echo $path` 2.300 + fi 2.301 + 2.302 + 2.303 + input_path="$new_path" 2.304 + # Check if we need to convert this using DOS-style short mode. If the path 2.305 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.306 + # take no chances and rewrite it. 2.307 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.308 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]` 2.309 + if test "x$has_forbidden_chars" != x; then 2.310 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.311 + new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.312 + fi 2.313 + 2.314 + 2.315 + windows_path="$new_path" 2.316 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.317 + unix_path=`$CYGPATH -u "$windows_path"` 2.318 + new_path="$unix_path" 2.319 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.320 + unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` 2.321 + new_path="$unix_path" 2.322 + fi 2.323 + 2.324 + if test "x$path" != "x$new_path"; then 2.325 + CYGWIN_VC_INSTALL_DIR="$new_path" 2.326 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&5 2.327 +$as_echo "$as_me: Rewriting CYGWIN_VC_INSTALL_DIR to \"$new_path\"" >&6;} 2.328 + fi 2.329 + 2.330 + # Save the first 10 bytes of this path to the storage, so fixpath can work. 2.331 + all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}") 2.332 + 2.333 + else 2.334 + # We're on a posix platform. Hooray! :) 2.335 + path="$CYGWIN_VC_INSTALL_DIR" 2.336 + has_space=`$ECHO "$path" | $GREP " "` 2.337 + if test "x$has_space" != x; then 2.338 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&5 2.339 +$as_echo "$as_me: The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is invalid." >&6;} 2.340 + as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 2.341 + fi 2.342 + 2.343 + # Use eval to expand a potential ~ 2.344 + eval path="$path" 2.345 + if test ! -f "$path" && test ! -d "$path"; then 2.346 + as_fn_error $? "The path of CYGWIN_VC_INSTALL_DIR, which resolves as \"$path\", is not found." "$LINENO" 5 2.347 + fi 2.348 + 2.349 + CYGWIN_VC_INSTALL_DIR="`cd "$path"; $THEPWDCMD -L`" 2.350 fi 2.351 2.352 if test "$VS_VERSION" -lt 2017; then 2.353 @@ -50991,6 +51231,295 @@ 2.354 fi 2.355 2.356 2.357 +# Check whether --with-ucrt-dll-dir was given. 2.358 +if test "${with_ucrt_dll_dir+set}" = set; then : 2.359 + withval=$with_ucrt_dll_dir; 2.360 +fi 2.361 + 2.362 + 2.363 + if test "x$USE_UCRT" = "xtrue"; then 2.364 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCRT DLL dir" >&5 2.365 +$as_echo_n "checking for UCRT DLL dir... " >&6; } 2.366 + if test "x$with_ucrt_dll_dir" != x; then 2.367 + if test -z "$(ls -d "$with_ucrt_dll_dir/*.dll" 2> /dev/null)"; then 2.368 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 2.369 +$as_echo "no" >&6; } 2.370 + as_fn_error $? "Could not find any dlls in $with_ucrt_dll_dir" "$LINENO" 5 2.371 + else 2.372 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_ucrt_dll_dir" >&5 2.373 +$as_echo "$with_ucrt_dll_dir" >&6; } 2.374 + UCRT_DLL_DIR="$with_ucrt_dll_dir" 2.375 + 2.376 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.377 + 2.378 + # Input might be given as Windows format, start by converting to 2.379 + # unix format. 2.380 + path="$UCRT_DLL_DIR" 2.381 + new_path=`$CYGPATH -u "$path"` 2.382 + 2.383 + # Cygwin tries to hide some aspects of the Windows file system, such that binaries are 2.384 + # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered 2.385 + # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then 2.386 + # "foo.exe" is OK but "foo" is an error. 2.387 + # 2.388 + # This test is therefore slightly more accurate than "test -f" to check for file precense. 2.389 + # It is also a way to make sure we got the proper file name for the real test later on. 2.390 + test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null` 2.391 + if test "x$test_shortpath" = x; then 2.392 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of UCRT_DLL_DIR, which resolves as \"$path\", is invalid." >&5 2.393 +$as_echo "$as_me: The path of UCRT_DLL_DIR, which resolves as \"$path\", is invalid." >&6;} 2.394 + as_fn_error $? "Cannot locate the the path of UCRT_DLL_DIR" "$LINENO" 5 2.395 + fi 2.396 + 2.397 + # Call helper function which possibly converts this using DOS-style short mode. 2.398 + # If so, the updated path is stored in $new_path. 2.399 + 2.400 + input_path="$new_path" 2.401 + # Check if we need to convert this using DOS-style short mode. If the path 2.402 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.403 + # take no chances and rewrite it. 2.404 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.405 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]` 2.406 + if test "x$has_forbidden_chars" != x; then 2.407 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.408 + shortmode_path=`$CYGPATH -s -m -a "$input_path"` 2.409 + path_after_shortmode=`$CYGPATH -u "$shortmode_path"` 2.410 + if test "x$path_after_shortmode" != "x$input_to_shortpath"; then 2.411 + # Going to short mode and back again did indeed matter. Since short mode is 2.412 + # case insensitive, let's make it lowercase to improve readability. 2.413 + shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.414 + # Now convert it back to Unix-style (cygpath) 2.415 + input_path=`$CYGPATH -u "$shortmode_path"` 2.416 + new_path="$input_path" 2.417 + fi 2.418 + fi 2.419 + 2.420 + test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/` 2.421 + if test "x$test_cygdrive_prefix" = x; then 2.422 + # As a simple fix, exclude /usr/bin since it's not a real path. 2.423 + if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then 2.424 + # The path is in a Cygwin special directory (e.g. /home). We need this converted to 2.425 + # a path prefixed by /cygdrive for fixpath to work. 2.426 + new_path="$CYGWIN_ROOT_PATH$input_path" 2.427 + fi 2.428 + fi 2.429 + 2.430 + 2.431 + if test "x$path" != "x$new_path"; then 2.432 + UCRT_DLL_DIR="$new_path" 2.433 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting UCRT_DLL_DIR to \"$new_path\"" >&5 2.434 +$as_echo "$as_me: Rewriting UCRT_DLL_DIR to \"$new_path\"" >&6;} 2.435 + fi 2.436 + 2.437 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.438 + 2.439 + path="$UCRT_DLL_DIR" 2.440 + has_colon=`$ECHO $path | $GREP ^.:` 2.441 + new_path="$path" 2.442 + if test "x$has_colon" = x; then 2.443 + # Not in mixed or Windows style, start by that. 2.444 + new_path=`cmd //c echo $path` 2.445 + fi 2.446 + 2.447 + 2.448 + input_path="$new_path" 2.449 + # Check if we need to convert this using DOS-style short mode. If the path 2.450 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.451 + # take no chances and rewrite it. 2.452 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.453 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]` 2.454 + if test "x$has_forbidden_chars" != x; then 2.455 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.456 + new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.457 + fi 2.458 + 2.459 + 2.460 + windows_path="$new_path" 2.461 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.462 + unix_path=`$CYGPATH -u "$windows_path"` 2.463 + new_path="$unix_path" 2.464 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.465 + unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` 2.466 + new_path="$unix_path" 2.467 + fi 2.468 + 2.469 + if test "x$path" != "x$new_path"; then 2.470 + UCRT_DLL_DIR="$new_path" 2.471 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting UCRT_DLL_DIR to \"$new_path\"" >&5 2.472 +$as_echo "$as_me: Rewriting UCRT_DLL_DIR to \"$new_path\"" >&6;} 2.473 + fi 2.474 + 2.475 + # Save the first 10 bytes of this path to the storage, so fixpath can work. 2.476 + all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}") 2.477 + 2.478 + else 2.479 + # We're on a posix platform. Hooray! :) 2.480 + path="$UCRT_DLL_DIR" 2.481 + has_space=`$ECHO "$path" | $GREP " "` 2.482 + if test "x$has_space" != x; then 2.483 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of UCRT_DLL_DIR, which resolves as \"$path\", is invalid." >&5 2.484 +$as_echo "$as_me: The path of UCRT_DLL_DIR, which resolves as \"$path\", is invalid." >&6;} 2.485 + as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 2.486 + fi 2.487 + 2.488 + # Use eval to expand a potential ~ 2.489 + eval path="$path" 2.490 + if test ! -f "$path" && test ! -d "$path"; then 2.491 + as_fn_error $? "The path of UCRT_DLL_DIR, which resolves as \"$path\", is not found." "$LINENO" 5 2.492 + fi 2.493 + 2.494 + UCRT_DLL_DIR="`cd "$path"; $THEPWDCMD -L`" 2.495 + fi 2.496 + 2.497 + fi 2.498 + elif test "x$DEVKIT_UCRT_DLL_DIR" != "x"; then 2.499 + UCRT_DLL_DIR="$DEVKIT_UCRT_DLL_DIR" 2.500 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UCRT_DLL_DIR" >&5 2.501 +$as_echo "$UCRT_DLL_DIR" >&6; } 2.502 + else 2.503 + CYGWIN_WINDOWSSDKDIR="${WINDOWSSDKDIR}" 2.504 + 2.505 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.506 + 2.507 + # Input might be given as Windows format, start by converting to 2.508 + # unix format. 2.509 + path="$CYGWIN_WINDOWSSDKDIR" 2.510 + new_path=`$CYGPATH -u "$path"` 2.511 + 2.512 + # Cygwin tries to hide some aspects of the Windows file system, such that binaries are 2.513 + # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered 2.514 + # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then 2.515 + # "foo.exe" is OK but "foo" is an error. 2.516 + # 2.517 + # This test is therefore slightly more accurate than "test -f" to check for file precense. 2.518 + # It is also a way to make sure we got the proper file name for the real test later on. 2.519 + test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null` 2.520 + if test "x$test_shortpath" = x; then 2.521 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CYGWIN_WINDOWSSDKDIR, which resolves as \"$path\", is invalid." >&5 2.522 +$as_echo "$as_me: The path of CYGWIN_WINDOWSSDKDIR, which resolves as \"$path\", is invalid." >&6;} 2.523 + as_fn_error $? "Cannot locate the the path of CYGWIN_WINDOWSSDKDIR" "$LINENO" 5 2.524 + fi 2.525 + 2.526 + # Call helper function which possibly converts this using DOS-style short mode. 2.527 + # If so, the updated path is stored in $new_path. 2.528 + 2.529 + input_path="$new_path" 2.530 + # Check if we need to convert this using DOS-style short mode. If the path 2.531 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.532 + # take no chances and rewrite it. 2.533 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.534 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]` 2.535 + if test "x$has_forbidden_chars" != x; then 2.536 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.537 + shortmode_path=`$CYGPATH -s -m -a "$input_path"` 2.538 + path_after_shortmode=`$CYGPATH -u "$shortmode_path"` 2.539 + if test "x$path_after_shortmode" != "x$input_to_shortpath"; then 2.540 + # Going to short mode and back again did indeed matter. Since short mode is 2.541 + # case insensitive, let's make it lowercase to improve readability. 2.542 + shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.543 + # Now convert it back to Unix-style (cygpath) 2.544 + input_path=`$CYGPATH -u "$shortmode_path"` 2.545 + new_path="$input_path" 2.546 + fi 2.547 + fi 2.548 + 2.549 + test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/` 2.550 + if test "x$test_cygdrive_prefix" = x; then 2.551 + # As a simple fix, exclude /usr/bin since it's not a real path. 2.552 + if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then 2.553 + # The path is in a Cygwin special directory (e.g. /home). We need this converted to 2.554 + # a path prefixed by /cygdrive for fixpath to work. 2.555 + new_path="$CYGWIN_ROOT_PATH$input_path" 2.556 + fi 2.557 + fi 2.558 + 2.559 + 2.560 + if test "x$path" != "x$new_path"; then 2.561 + CYGWIN_WINDOWSSDKDIR="$new_path" 2.562 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CYGWIN_WINDOWSSDKDIR to \"$new_path\"" >&5 2.563 +$as_echo "$as_me: Rewriting CYGWIN_WINDOWSSDKDIR to \"$new_path\"" >&6;} 2.564 + fi 2.565 + 2.566 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.567 + 2.568 + path="$CYGWIN_WINDOWSSDKDIR" 2.569 + has_colon=`$ECHO $path | $GREP ^.:` 2.570 + new_path="$path" 2.571 + if test "x$has_colon" = x; then 2.572 + # Not in mixed or Windows style, start by that. 2.573 + new_path=`cmd //c echo $path` 2.574 + fi 2.575 + 2.576 + 2.577 + input_path="$new_path" 2.578 + # Check if we need to convert this using DOS-style short mode. If the path 2.579 + # contains just simple characters, use it. Otherwise (spaces, weird characters), 2.580 + # take no chances and rewrite it. 2.581 + # Note: m4 eats our [], so we need to use [ and ] instead. 2.582 + has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]` 2.583 + if test "x$has_forbidden_chars" != x; then 2.584 + # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \) 2.585 + new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 2.586 + fi 2.587 + 2.588 + 2.589 + windows_path="$new_path" 2.590 + if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then 2.591 + unix_path=`$CYGPATH -u "$windows_path"` 2.592 + new_path="$unix_path" 2.593 + elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then 2.594 + unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'` 2.595 + new_path="$unix_path" 2.596 + fi 2.597 + 2.598 + if test "x$path" != "x$new_path"; then 2.599 + CYGWIN_WINDOWSSDKDIR="$new_path" 2.600 + { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting CYGWIN_WINDOWSSDKDIR to \"$new_path\"" >&5 2.601 +$as_echo "$as_me: Rewriting CYGWIN_WINDOWSSDKDIR to \"$new_path\"" >&6;} 2.602 + fi 2.603 + 2.604 + # Save the first 10 bytes of this path to the storage, so fixpath can work. 2.605 + all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}") 2.606 + 2.607 + else 2.608 + # We're on a posix platform. Hooray! :) 2.609 + path="$CYGWIN_WINDOWSSDKDIR" 2.610 + has_space=`$ECHO "$path" | $GREP " "` 2.611 + if test "x$has_space" != x; then 2.612 + { $as_echo "$as_me:${as_lineno-$LINENO}: The path of CYGWIN_WINDOWSSDKDIR, which resolves as \"$path\", is invalid." >&5 2.613 +$as_echo "$as_me: The path of CYGWIN_WINDOWSSDKDIR, which resolves as \"$path\", is invalid." >&6;} 2.614 + as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5 2.615 + fi 2.616 + 2.617 + # Use eval to expand a potential ~ 2.618 + eval path="$path" 2.619 + if test ! -f "$path" && test ! -d "$path"; then 2.620 + as_fn_error $? "The path of CYGWIN_WINDOWSSDKDIR, which resolves as \"$path\", is not found." "$LINENO" 5 2.621 + fi 2.622 + 2.623 + CYGWIN_WINDOWSSDKDIR="`cd "$path"; $THEPWDCMD -L`" 2.624 + fi 2.625 + 2.626 + dll_subdir=$OPENJDK_TARGET_CPU 2.627 + if test "x$dll_subdir" = "xx86_64"; then 2.628 + dll_subdir="x64" 2.629 + fi 2.630 + UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir" 2.631 + if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then 2.632 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 2.633 +$as_echo "no" >&6; } 2.634 + as_fn_error $? "Could not find any dlls in $UCRT_DLL_DIR" "$LINENO" 5 2.635 + else 2.636 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UCRT_DLL_DIR" >&5 2.637 +$as_echo "$UCRT_DLL_DIR" >&6; } 2.638 + fi 2.639 + fi 2.640 + else 2.641 + UCRT_DLL_DIR= 2.642 + fi 2.643 + 2.644 + 2.645 + 2.646 2.647 # Check whether --with-dxsdk was given. 2.648 if test "${with_dxsdk+set}" = set; then :
3.1 --- a/common/autoconf/spec.gmk.in Wed Oct 17 13:00:32 2018 +0100 3.2 +++ b/common/autoconf/spec.gmk.in Mon Oct 29 14:43:07 2018 -0700 3.3 @@ -576,6 +576,7 @@ 3.4 LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ 3.5 MSVCR_DLL:=@MSVCR_DLL@ 3.6 MSVCP_DLL:=@MSVCP_DLL@ 3.7 +UCRT_DLL_DIR:=@UCRT_DLL_DIR@ 3.8 3.9 3.10 # ADD_SRCS takes a single argument with source roots
4.1 --- a/common/autoconf/toolchain_windows.m4 Wed Oct 17 13:00:32 2018 +0100 4.2 +++ b/common/autoconf/toolchain_windows.m4 Mon Oct 29 14:43:07 2018 -0700 4.3 @@ -76,6 +76,7 @@ 4.4 VS_MSVCR_2017=vcruntime140.dll 4.5 VS_MSVCP_2017=msvcp140.dll 4.6 VS_ENVVAR_2017="VS150COMNTOOLS" 4.7 +VS_USE_UCRT_2017="true" 4.8 VS_VS_INSTALLDIR_2017="Microsoft Visual Studio/2017" 4.9 VS_EDITIONS_2017="Community Professional Enterprise" 4.10 VS_SDK_INSTALLDIR_2017= 4.11 @@ -265,6 +266,7 @@ 4.12 eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}" 4.13 eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}" 4.14 eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}" 4.15 + eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}" 4.16 eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}" 4.17 VS_PATH="$TOOLCHAIN_PATH:$PATH" 4.18 4.19 @@ -310,6 +312,7 @@ 4.20 eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}" 4.21 eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}" 4.22 eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}" 4.23 + eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}" 4.24 # The rest of the variables are already evaled while probing 4.25 AC_MSG_NOTICE([Found $VS_DESCRIPTION]) 4.26 break 4.27 @@ -433,8 +436,11 @@ 4.28 VS_INCLUDE=`$ECHO "$VS_INCLUDE" | $SED 's/\\\\* *$//'` 4.29 VS_LIB=`$ECHO "$VS_LIB" | $SED 's/\\\\* *$//'` 4.30 VCINSTALLDIR=`$ECHO "$VCINSTALLDIR" | $SED 's/\\\\* *$//'` 4.31 - WindowsSDKDir=`$ECHO "$WindowsSDKDir" | $SED 's/\\\\* *$//'` 4.32 + WindowsSdkDir=`$ECHO "$WindowsSdkDir" | $SED 's/\\\\* *$//'` 4.33 WINDOWSSDKDIR=`$ECHO "$WINDOWSSDKDIR" | $SED 's/\\\\* *$//'` 4.34 + if test -z "$WINDOWSSDKDIR"; then 4.35 + WINDOWSSDKDIR="$WindowsSdkDir" 4.36 + fi 4.37 # Remove any paths containing # (typically F#) as that messes up make. This 4.38 # is needed if visual studio was installed with F# support. 4.39 VS_PATH=`$ECHO "$VS_PATH" | $SED 's/[[^:#]]*#[^:]*://g'` 4.40 @@ -505,7 +511,7 @@ 4.41 if test "x$MSVC_DLL" = x; then 4.42 if test "x$VCINSTALLDIR" != x; then 4.43 CYGWIN_VC_INSTALL_DIR="$VCINSTALLDIR" 4.44 - BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(CYGWIN_VC_INSTALL_DIR) 4.45 + BASIC_FIXUP_PATH(CYGWIN_VC_INSTALL_DIR) 4.46 if test "$VS_VERSION" -lt 2017; then 4.47 # Probe: Using well-known location from Visual Studio 12.0 and older 4.48 if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then 4.49 @@ -639,5 +645,42 @@ 4.50 fi 4.51 AC_SUBST(MSVCP_DLL) 4.52 fi 4.53 + 4.54 + AC_ARG_WITH(ucrt-dll-dir, [AS_HELP_STRING([--with-ucrt-dll-dir], 4.55 + [path to Microsoft Windows Kit UCRT DLL dir (Windows only) @<:@probed@:>@])]) 4.56 + 4.57 + if test "x$USE_UCRT" = "xtrue"; then 4.58 + AC_MSG_CHECKING([for UCRT DLL dir]) 4.59 + if test "x$with_ucrt_dll_dir" != x; then 4.60 + if test -z "$(ls -d "$with_ucrt_dll_dir/*.dll" 2> /dev/null)"; then 4.61 + AC_MSG_RESULT([no]) 4.62 + AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir]) 4.63 + else 4.64 + AC_MSG_RESULT([$with_ucrt_dll_dir]) 4.65 + UCRT_DLL_DIR="$with_ucrt_dll_dir" 4.66 + BASIC_FIXUP_PATH([UCRT_DLL_DIR]) 4.67 + fi 4.68 + elif test "x$DEVKIT_UCRT_DLL_DIR" != "x"; then 4.69 + UCRT_DLL_DIR="$DEVKIT_UCRT_DLL_DIR" 4.70 + AC_MSG_RESULT($UCRT_DLL_DIR) 4.71 + else 4.72 + CYGWIN_WINDOWSSDKDIR="${WINDOWSSDKDIR}" 4.73 + BASIC_FIXUP_PATH([CYGWIN_WINDOWSSDKDIR]) 4.74 + dll_subdir=$OPENJDK_TARGET_CPU 4.75 + if test "x$dll_subdir" = "xx86_64"; then 4.76 + dll_subdir="x64" 4.77 + fi 4.78 + UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir" 4.79 + if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then 4.80 + AC_MSG_RESULT([no]) 4.81 + AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR]) 4.82 + else 4.83 + AC_MSG_RESULT($UCRT_DLL_DIR) 4.84 + fi 4.85 + fi 4.86 + else 4.87 + UCRT_DLL_DIR= 4.88 + fi 4.89 + AC_SUBST(UCRT_DLL_DIR) 4.90 ]) 4.91