summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2013-05-28 08:38:48 -0700
committerAndras Timar <atimar@suse.com>2013-05-28 08:40:51 -0700
commit5c0a2940428c5c4b8451ee4e9ce30f0b7739f3c8 (patch)
treea21119ca96b87741d49a533fa4d94276b970b5b5 /configure.ac
parentb55ad00ec1d672808a0eaa92738d05ffbdaf21c9 (diff)
make 64-bit shell extensions work, put 64-bit VC runtime in the same dir
Unlike in case of msvcr90.dll, which went to WinSxS, msvcr100.dll is installed to the "system32" folder. Windows installer automatically replaces it to SysWOW64. The problem is that this way 64-bit dlls end up in the wrong directory. They conflict with the 32-bit dlls, and will not be installed. Therefore 64-bit shell extensions will not work, unless the 64-bit VC runtime is installed from other source. It is not possible to install both 32-bit and 64-bit VC Runtime with merge modules in case of VS 2010 and VS 2012. For the 64-bit shell extensions, we can install the runtime dlls next to the files. Change-Id: I157048a521662bbac568d1660e46576935f0ea9f
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac52
1 files changed, 17 insertions, 35 deletions
diff --git a/configure.ac b/configure.ac
index 889d4e72d67a..1818f2ca5577 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4855,48 +4855,30 @@ find_msms()
else
AC_MSG_ERROR([Merge module Microsoft_VC90_CRT_x86_x64.msm not found])
fi
- else
- if test -e $msmdir/Microsoft_VC${VCVER}_CRT_x64.msm; then
- msms="$msms Microsoft_VC${VCVER}_CRT_x64.msm"
- else
- AC_MSG_ERROR([Merge module Microsoft_VC${VCVER}_CRT_x64.msm not found])
- fi
fi
fi
}
-find_msvc_dlls()
+find_msvc_x64_dlls()
{
- if test "$CPUNAME" = "INTEL"; then
- vsarch=x86
- elif test $VCVER = 9; then
- vsarch=amd64
- else
- vsarch=x64
- fi
-
- msvcdllpath="$VC_PRODUCT_DIR/redist/$vsarch/Microsoft.VC${VCVER}.CRT"
- MSVC_DEBUG_DLL_PATH="$VC_PRODUCT_DIR/redist/Debug_NonRedist/$vsarch/Microsoft.VC${VCVER}.DebugCRT"
- msvcdlls="msvcp${VCVER}.dll msvcr${VCVER}.dll"
- MSVC_DEBUG_DLLS="msvcp${VCVER}d.dll msvcr${VCVER}d.dll"
- if test "$VCVER" = "90"; then
- msvcdlls="$msvcdlls msvcm90.dll Microsoft.VC90.CRT.manifest"
- MSVC_DEBUG_DLLS="$MSVC_DEBUG_DLLS msvcm90d.dll Microsoft.VC90.DebugCRT.manifest"
- fi
-
- for dll in $msvcdlls; do
- if ! test -f "$msvcdllpath/$dll"; then
- AC_MSG_ERROR([can not find $dll in $msvcdllpath])
- fi
- done
- if test -n "$MSVC_USE_DEBUG_RUNTIME"; then
- for dll in $MSVC_DEBUG_DLLS; do
- if ! test -f "$MSVC_DEBUG_DLL_PATH/$dll"; then
- AC_MSG_ERROR([can not find $dll in $MSVC_DEBUG_DLL_PATH])
+ if test "$VCVER" != "90"; then
+ msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
+ MSVC_DEBUG_DLL_PATH="$VC_PRODUCT_DIR/redist/Debug_NonRedist/$vsarch/Microsoft.VC${VCVER}.DebugCRT"
+ msvcdlls="msvcp${VCVER}.dll msvcr${VCVER}.dll"
+ MSVC_DEBUG_DLLS="msvcp${VCVER}d.dll msvcr${VCVER}d.dll"
+ for dll in $msvcdlls; do
+ if ! test -f "$msvcdllpath/$dll"; then
+ AC_MSG_ERROR([can not find $dll in $msvcdllpath])
fi
done
+ if test -n "$MSVC_USE_DEBUG_RUNTIME"; then
+ for dll in $MSVC_DEBUG_DLLS; do
+ if ! test -f "$MSVC_DEBUG_DLL_PATH/$dll"; then
+ AC_MSG_ERROR([can not find $dll in $MSVC_DEBUG_DLL_PATH])
+ fi
+ done
+ fi
fi
-
}
if test "$build_os" = "cygwin"; then
@@ -6056,7 +6038,7 @@ AC_SUBST([JITC_PROCESSOR_TYPE])
# Misc Windows Stuff
if test $_os = "WINNT" -a "$WITH_MINGW" != yes; then
- find_msvc_dlls
+ find_msvc_x64_dlls
find_msms
MSVC_DLL_PATH="$msvcdllpath"
MSVC_DLLS="$msvcdlls"