Closed Bug 569268 Opened 15 years ago Closed 15 years ago

Package correct Visual C++ CRT DLLs based on compiler version (fixes MSVCR100.dll error message on startup)

Categories

(Firefox :: Installer, defect)

x86_64
Windows 7
defect
Not set
major

Tracking

()

VERIFIED FIXED

People

(Reporter: armenzg, Assigned: ted)

References

()

Details

Attachments

(1 file)

Steps to reproduce: * Install ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/firefox-3.7a5pre.en-US.win64-x86_64.zip on Windows 64-bit machine without VS2010 being installed * Run firefox.exe Expected results: * Firefox starts Actual results: * A message saying that MSVCR100.dll is missing is raised NOTE: can someone please verify this? I am just filing what I have seen on the mailing lists. The following are comments from the mailing list: > I suspect that this is a packaging issue -- if we build with VC10, > then we have to redist the VC10 runtime, which has a different name. ... > Exactly. > If you don't have MSVC2010 (Express) installed you need to manually > install the 2010 redistributables. Link, I guess: > http://www.google.com/url?sa=D&q=http://www.microsoft.com/downloads/details.aspx%3Fdisplaylang%3Den%26FamilyID%3Dbd512d9e-43c8-4655-81bf-9350143d5867&usg=AFQjCNHqjaREpVPUahBpSs0NAxZlABVTEA > The reason the 32bit builds don't require the 2008 redistributables is > that they don't use the real MS CRT but a custom build CRT > (mozcrt19.dll) that has jemalloc patched in. Once jemalloc gets ported > to WIN64 the msvcr100 dependency should go away. From IRC: > nthomas: armenzg_mtg: is the problem with users needing the MS runtime > redistributable that we don't have jemalloc w/ vs2010 yet, and the workaround > (http://hg.mozilla.org/mozilla-central/file/tip/browser/installer/package-manifest.in#l58) > doesn't support 2010 filenames either ? > nthomas: if so, and we updated the manifest (with some #ifdef), and set > WIN32_REDIST_DIR pointing to the right path, then the builds would just work > armenzg_mtg: I don't know the code myself I can point at the code tomorrow > and bringing it up at the meeting to see if people can look at it
I've got the same problem.
(From bug 569248) (In reply to comment #0) > User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.3) > Gecko/20100401 Firefox/3.6.3 > Build Identifier: > http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.7a5pre.en-US.win64-x86_64.installer.exe > > When I try to start the new x86_64 Build (downloaded May 31) I always get this > message and Minefield will not open: > http://pic.leech.it/pic.php?id=e0f0dceerror.png > The Message in english: > "firefox.exe - Systemerror > > The application could not be startet because MSVCR100.dll is missed on this > computer. Reinstall the application to solve the problem." > > Reinstall does NOT solve the problem, I tried it twice. > > Reproducible: Always > > Steps to Reproduce: > 1. Download Minefield 3.7a5pre x64 (May 31 build) > 2. Start it > 3. > Actual Results: > I got the message I showed up above. > > Expected Results: > Start ;)
The workaround should be installing the Microsoft Visual C++ 2010 Redistributable Package (x64): http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867
Should we (or can we) redistribute it with the 64-bit builds?
(In reply to comment #4) > The workaround should be installing the Microsoft Visual C++ 2010 > Redistributable Package This only is a workaround for this nightlys. It looks like MID: x-qdndVRK4WHx53RnZ2dnUVZ_uednZ2d@mozilla.org tells the real problem. mozcrt19.dll must be updated for 64bit.
Component: General → Installer
QA Contact: general → installer
As comment #7 noted this is not really an installer issue and the package-manifest.in needs to be updated to include the msvc runtime... it really needs to be updated to include the appropriate msvc runtime for all versions of msvc when MOZ_MEMORY is not defined.
(In reply to comment #8) > As comment #7 noted this is not really an installer issue and the > package-manifest.in needs to be updated to include the msvc runtime... it > really needs to be updated to include the appropriate msvc runtime for all > versions of msvc when MOZ_MEMORY is not defined. Robert, should we add entries of both VC++2008 runtime files and VC++2010 runtime files? Currently there is no macro to detect VC++ version.
There are two problems here: a) We need to set WIN32_REDIST_DIR in the mozconfig file to get the VC++ runtime DLLs copied to dist/bin. (The build system already knows to copy the right files, you just need to point it at the correct directory: http://mxr.mozilla.org/mozilla-central/source/build/win32/Makefile.in#85 ) b) We need to package those files in package-manifest.in. Currently we have support for the --enable-jemalloc case, and the non-jemalloc Visual C++ 2005 case, but not 2008 or 2010. It should be easy enough to add some defines per-VC version to pick the right one.)
Depends on: 569373
Assignee: nobody → ted.mielczarek
Status: NEW → ASSIGNED
Attachment #448547 - Flags: review?(nrthomas)
Summary: Missing MSVCR100.dll for Windows 64-bit builds → Package correct Visual C++ CRT DLLs based on compiler version
(In reply to comment #10) > There are two problems here: > a) We need to set WIN32_REDIST_DIR in the mozconfig file to get the VC++ > runtime DLLs copied to dist/bin. (The build system already knows to copy the > right files, you just need to point it at the correct directory: > http://mxr.mozilla.org/mozilla-central/source/build/win32/Makefile.in#85 ) I split this off to bug 569375 since I hijacked this bug for part b).
Summary: Package correct Visual C++ CRT DLLs based on compiler version → Package correct Visual C++ CRT DLLs based on compiler version (fixes MSVCR100.dll error message on startup)
Comment on attachment 448547 [details] [diff] [review] package the correct VC++ CRT DLLs based on compiler version Looks good. I'm curious what MS changed so we don't need a manifest or the msvcm files for VS2010.
Attachment #448547 - Flags: review?(nrthomas) → review+
Keywords: checkin-needed
I can checkin my own patches. :) I'll land this tomorrow. Nick: http://msdn.microsoft.com/en-us/library/dd293574.aspx They dropped SxS for some reason. (Doesn't say why.)
Keywords: checkin-needed
Comment on attachment 448547 [details] [diff] [review] package the correct VC++ CRT DLLs based on compiler version http://hg.mozilla.org/mozilla-central/rev/9837814d8d86
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Blocks: 630857
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: