XPCOM preloads delay load modules on Windows

RESOLVED FIXED in mozilla17

Status

()

Core
Widget: Win32
RESOLVED FIXED
5 years ago
3 years ago

People

(Reporter: jimm, Assigned: glandium)

Tracking

Trunk
mozilla17
x86_64
Windows 8.1
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: completed-elm)

Attachments

(1 attachment, 2 obsolete attachments)

(Reporter)

Description

5 years ago
Really weird behavior now that we include vccorlib110 in our distribution. This doesn't get in the way of running the app, but it does generate an error that you can dismiss. There are some hackish ways around this but I'd like to try and understand why windows is temporarily loading a delay load module when it shouldn't.

'firefox.exe' (Win32): Loaded 'C:\Users\jim\Desktop\firefox\msvcp110.dll'.
'firefox.exe' (Win32): Loaded 'C:\Users\jim\Desktop\firefox\gkmedias.dll'.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msdmo.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msimg32.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Users\jim\Desktop\firefox\vccorlib110.dll'.
'firefox.exe' (Win32): Unloaded 'C:\Users\jim\Desktop\firefox\vccorlib110.dll'
'firefox.exe' (Win32): Loaded 'C:\Users\jim\Desktop\firefox\xul.dll'.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\IPHLPAPI.DLL'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winnsi.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\setupapi.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Windows\SysWOW64\devobj.dll'. Symbols loaded.
'firefox.exe' (Win32): Loaded 'C:\Users\jim\Desktop\firefox\dummyvccorlib.dll'.
(Reporter)

Comment 1

5 years ago
Created attachment 642702 [details] [diff] [review]
patch

Turns out this isn't Windows, it's our preloading logic in xpcomglue which loads a list of dependency libs on startup, including vccorlib110.dll.
Assignee: nobody → jmathies
(Reporter)

Comment 2

5 years ago
Created attachment 642712 [details] [diff] [review]
patch

w/needed make logic
Attachment #642702 - Attachment is obsolete: true
(Reporter)

Comment 3

5 years ago
https://hg.mozilla.org/projects/elm/rev/bf5acae0c984

testing this on elm first to be sure it's working as expected.
Whiteboard: completed-elm
(Reporter)

Comment 4

5 years ago
Comment on attachment 642712 [details] [diff] [review]
patch

Slight enhancement to dependentlibs.py which allows callers to filter certain libs out of the resulting list. We use this on Win8 to avoid loading a delay load module which will fail to load on os < Win8.
Attachment #642712 - Flags: review?(mh+mozilla)
(Assignee)

Comment 5

5 years ago
Created attachment 642888 [details] [diff] [review]
Skip delayload libraries in dependentlibs.py

Jim, can you test this?
Attachment #642888 - Flags: review?(ted.mielczarek)
(Assignee)

Updated

5 years ago
Assignee: jmathies → mh+mozilla
(Assignee)

Comment 6

5 years ago
Comment on attachment 642712 [details] [diff] [review]
patch

Better not to rely on manual work when the required data is already there in the dlls.
Attachment #642712 - Flags: review?(mh+mozilla) → review-
(Reporter)

Comment 7

5 years ago
Comment on attachment 642712 [details] [diff] [review]
patch

Yes, that seems to do the trick.
Attachment #642712 - Attachment is obsolete: true
Attachment #642888 - Flags: review?(ted.mielczarek) → review+
(Assignee)

Comment 8

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/41f7e82c794c
Target Milestone: --- → mozilla17
(Reporter)

Updated

5 years ago
Summary: Windows loader still loads vccorlib110 if it's present on Win7 → XPCOM preloads delay load modules on Windows

Comment 9

5 years ago
https://hg.mozilla.org/mozilla-central/rev/41f7e82c794c
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
OS: Windows 8 Metro → Windows 8.1
You need to log in before you can comment on or make changes to this bug.