Open Bug 1121421 Opened 10 years ago Updated 3 years ago

./mach package on Windows should tell you about MSVC_REDIST_DIR if your mozconfig doesn't have it set

Categories

(Firefox Build System :: Mach Core, enhancement)

x86_64
Windows 8.1
enhancement

Tracking

(Not tracked)

People

(Reporter: Gijs, Unassigned)

Details

Attachments

(2 files)

So that I don't spend half an evening trying to work out why my builds are exiting on startup with 0 error messages and 0 info from my Windows 10 VM, because that is not nice.
Windows should show an error window talking about missing dlls...
(In reply to Mike Hommey [:glandium] from comment #1) > Windows should show an error window talking about missing dlls... It should, but it didn't. :-(
(In reply to Mike Hommey [:glandium] from comment #1) > Windows should show an error window talking about missing dlls... When I struck this, a "console" program like xpcshell.exe did show the message, but a GUI app (firefox.exe) didn't. Also, I don't use "./mach package" on Windows - I can typically run firefox directly from the obj-dir in a VM guest after building it from the host. If that's common, having "./mach package" complain might not help much.
(In reply to Mark Hammond [:markh] from comment #3) > (In reply to Mike Hommey [:glandium] from comment #1) > > Windows should show an error window talking about missing dlls... > > When I struck this, a "console" program like xpcshell.exe did show the > message, but a GUI app (firefox.exe) didn't. > > Also, I don't use "./mach package" on Windows - I can typically run firefox > directly from the obj-dir in a VM guest after building it from the host. If > that's common, having "./mach package" complain might not help much. I had the same problem, and hadn't tried ./mach package either. I had basically tried to double click firefox.exe from within a VM and got a silent failure. Mark helped me figure it out, but it would be great if firefox.exe would show a notification about the missing DLLs like xpcshell.exe did.
(In reply to :Gijs Kruitbosch from comment #2) > (In reply to Mike Hommey [:glandium] from comment #1) > > Windows should show an error window talking about missing dlls... > > It should, but it didn't. :-( Maybe because: - Loading firefox.exe won't fail because it links the CRT statically to support WinXP SP2. - Loading xul.dll will fail silently because firefox.exe calls SetErrorMode to suppress the Windows dialog.
This is strange, because I do a lot of VM testing and I very often see the Windows dialog reminding me that I forgot to copy msvcr120.dll. Is something different about Win10?
(In reply to David Major [:dmajor] from comment #6) > This is strange, because I do a lot of VM testing and I very often see the > Windows dialog reminding me that I forgot to copy msvcr120.dll. That's my experience too. > Is something different about Win10? I suspect so, but haven't got a "clean" win7 VM to test for sure nothing has changed there (eg, I've no idea how long Firefox has been suppressing the XUL load failure mentioned in comment 5)
I just unzipped a nightly on Win10 and removed the CRT files, and I got the "Couldn't load XPCOM" dialog. It's not quite the dialog I remember, but at least it's not entirely silent. Gijs, are you saying that you didn't get any messages at all?
(In reply to David Major [:dmajor] from comment #8) > I just unzipped a nightly on Win10 and removed the CRT files, and I got the > "Couldn't load XPCOM" dialog. It's not quite the dialog I remember, but at > least it's not entirely silent. Gijs, are you saying that you didn't get any > messages at all? Yes. That's also what bgrins experienced, AIUI. It could be that MS fixed in a later build, or that nightlies and local builds are different enough that we see different behaviour.
I got a silent failure when running a local build from Windows 7, mounted in a Windows 10 VM I downloaded recently from: http://windows.microsoft.com/en-us/windows/preview-iso.
When I tried running from the obj-dir in my VM I also saw no error message on Windows 10 TP about a month ago.
FTR, I just found a clean Windows 8 VM, and I do still see the expected modal dialog with "The program can't start because MSVCRT120.dll is missing...". Further, the Windows 10 event log seems to think the program faulted (ie, crashed). I'm attaching the exported entries, but don't have a debugger on that box to see what it thinks has happened.
I think if you run from a network share you get different behavior.
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #13) > I think if you run from a network share you get different behavior. I just ran from an extracted zipfile in the Win10 VM.
(In reply to :Gijs Kruitbosch from comment #14) > (In reply to Ted Mielczarek [:ted.mielczarek] from comment #13) > > I think if you run from a network share you get different behavior. > I just ran from an extracted zipfile in the Win10 VM. I ran from a network share in a VM in both Win8 and Win10 cases.
Ah, I had an old CRT sitting around on my system. After I got rid of that, launching Firefox immediately breaks into my debugger, which I guess would show up as a silent failure in the absence of a debugger. We're breaking in the delayload handler for mozglue.dll, which has a dependency on msvcr120.dll. Maybe we could probe for msvcr120 before that, and throw a messagebox if it's not found?
Looks like Windows 10 no longer displays the error dialog regardless of the error mode. I wrote a minimal test app and verified that it displayed the error dialog on Win7/8.1, but not on WIn10.
Maybe something like this?
Hit this again today. Ted, could we take something like attachment 8634988 [details] [diff] [review] ?
Flags: needinfo?(ted)
Yeah, that seems like an OK band-aid.
Flags: needinfo?(ted)
Product: Core → Firefox Build System
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: