Hi, I have submitted a patch for review:
https://gerrit.libreoffice.org/3990 To pull it, you can do: git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/90/3990/1 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. Conflicts: scp2/source/ooo/vc_redist.scp Change-Id: I47060f8ff764ca1156596139ecbec003f964bc60 --- M download M external/msvcp100/README_msvcX100.dll M external/prj/d.lst M oowintool M scp2/source/ooo/vc_redist.scp M scp2/source/winexplorerext/file_winexplorerext.scp M scp2/source/winexplorerext/module_winexplorerext.scp 7 files changed, 58 insertions(+), 37 deletions(-) diff --git a/download b/download index 985443c..a04d1f4 100755 --- a/download +++ b/download @@ -50,14 +50,9 @@ fi if [ "$COM" = "MSC" ]; then - if [ "$CPUNAME" = "INTEL" ]; then - ver="" - else - ver="-64" - fi # use oowintool to copy CRT dlls and manifest - if ! ./oowintool --msvc-copy-dlls"$ver" ./external/msvcp ; then - echo "oowintool failed to copy CRT" + if ! ./oowintool --msvc-copy-dlls-64 ./external/msvcp ; then + echo "oowintool failed to copy 64-bit CRT" exit 1 fi @@ -65,11 +60,6 @@ if ! ./oowintool --msvc-copy-msms"$ver" ./external/msm"$VCVER" ; then echo "oowintool failed to copy merge modules" exit 1 - fi - if [ "$CPUNAME" = "INTEL" ]; then - if ! ./oowintool --msvc-copy-msms-64 ./external/msm"$VCVER" ; then - echo "WARNING: oowintool failed to copy x64 merge modules, installation will lack the 64-bit Explorer extension" - fi fi fi diff --git a/external/msvcp100/README_msvcX100.dll b/external/msvcp100/README_msvcX100.dll index a1b0e73..ada64ed 100644 --- a/external/msvcp100/README_msvcX100.dll +++ b/external/msvcp100/README_msvcX100.dll @@ -1,2 +1,2 @@ -Put msvcp100.dll, msvcr100.dll in this directory for Windows builds using a +Put 64-bit msvcp100.dll, msvcr100.dll in this directory for Windows builds using a VS 2010 / VC 10.0 compiler. diff --git a/external/prj/d.lst b/external/prj/d.lst index 7ee2582..c357edc 100644 --- a/external/prj/d.lst +++ b/external/prj/d.lst @@ -36,6 +36,10 @@ ..\msvcp90\msvcr90*.dll %_DEST%\bin ..\msvcp90\Microsoft.VC90.CRT.manifest %_DEST%\bin\Microsoft.VC90.CRT.manifest ..\msvcp90\Microsoft.VC90.DebugCRT.manifest %_DEST%\bin\Microsoft.VC90.DebugCRT.manifest +..\msvcp100\msvcp100*.dll %_DEST%\bin +..\msvcp100\msvcr100*.dll %_DEST%\bin +..\msvcp110\msvcp110*.dll %_DEST%\bin +..\msvcp110\msvcr110*.dll %_DEST%\bin ..\msm90\*.msm %_DEST%\bin ..\msm100\*.msm %_DEST%\bin ..\msm110\*.msm %_DEST%\bin diff --git a/oowintool b/oowintool index 26221f0..6f5ab7c 100755 --- a/oowintool +++ b/oowintool @@ -313,7 +313,7 @@ my $srcdir = (cygpath ($ver->{'product_dir'}, 'w', 'u') . '/' . $ver->{'dll_path'}); - $srcdir =~ s/x86/amd64/ if ($arch eq 'amd64'); + $srcdir =~ s|/x86/|/x64/| if ($arch eq 'amd64'); copy_dll ($srcdir, "msvcp" . $ver->{'dll_suffix'} . ".dll", $dest . $ver->{'dll_suffix'}); diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp index fa7d1c2..82cd0d0 100644 --- a/scp2/source/ooo/vc_redist.scp +++ b/scp2/source/ooo/vc_redist.scp @@ -87,26 +87,4 @@ #endif -#if defined(WITH_VC100_REDIST) - -MergeModule gid_MergeModule_Microsoft_VC100_CRT_x64 - Feature = gm_Root; - Name = "Microsoft_VC100_CRT_x64.msm"; - RootDir = "TARGETDIR"; - ComponentCondition = "VC_REDIST=1"; -End - -#endif - -#if defined(WITH_VC110_REDIST) - -MergeModule gid_MergeModule_Microsoft_VC110_CRT_x64 - Feature = gm_Root; - Name = "Microsoft_VC110_CRT_x64.msm"; - RootDir = "TARGETDIR"; - ComponentCondition = "VC_REDIST=1"; -End - -#endif - #endif diff --git a/scp2/source/winexplorerext/file_winexplorerext.scp b/scp2/source/winexplorerext/file_winexplorerext.scp index f2a2a89..1aadacf 100644 --- a/scp2/source/winexplorerext/file_winexplorerext.scp +++ b/scp2/source/winexplorerext/file_winexplorerext.scp @@ -95,3 +95,48 @@ Dir = SCP2_OOO_BIN_DIR; Name = "shlxtmsi.dll"; End + +#ifdef BUILD_X64 + +#if defined(WITH_VC100_REDIST) + +File gid_File_Lib_Msvcr100 + LIB_FILE_BODY; + Styles = (PACKED); + Dir = gid_Dir_Shlxthdl; + Name = "msvcr100.dll"; + ComponentCondition = "VersionNT64"; +End + +File gid_File_Lib_Msvcp100 + LIB_FILE_BODY; + Styles = (PACKED); + Dir = gid_Dir_Shlxthdl; + Name = "msvcp100.dll"; + ComponentCondition = "VersionNT64"; +End + +#endif + +#if defined(WITH_VC110_REDIST) + +File gid_File_Lib_Msvcr110 + LIB_FILE_BODY; + Styles = (PACKED); + Dir = gid_Dir_Shlxthdl; + Name = "msvcr110.dll"; + ComponentCondition = "VersionNT64"; +End + +File gid_File_Lib_Msvcp110 + LIB_FILE_BODY; + Styles = (PACKED); + Dir = gid_Dir_Shlxthdl; + Name = "msvcp110.dll"; + ComponentCondition = "VersionNT64"; +End + +#endif + +#endif + diff --git a/scp2/source/winexplorerext/module_winexplorerext.scp b/scp2/source/winexplorerext/module_winexplorerext.scp index 3932e4f..6756a30 100644 --- a/scp2/source/winexplorerext/module_winexplorerext.scp +++ b/scp2/source/winexplorerext/module_winexplorerext.scp @@ -51,5 +51,9 @@ Dirs = (gid_Dir_Shlxthdl); Files = (gid_File_Lib_Shlxthdl64, gid_File_Lib_OOoFilt64, - gid_File_Lib_PropertyHdl64); + gid_File_Lib_PropertyHdl64, + gid_File_Lib_Msvcp100, + gid_File_Lib_Msvcr100, + gid_File_Lib_Msvcp110, + gid_File_Lib_Msvcr110); End -- To view, visit https://gerrit.libreoffice.org/3990 To unsubscribe, visit https://gerrit.libreoffice.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I47060f8ff764ca1156596139ecbec003f964bc60 Gerrit-PatchSet: 1 Gerrit-Project: core Gerrit-Branch: libreoffice-4-0 Gerrit-Owner: Andras Timar <ati...@suse.com> _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice