Open Bug 1330192 Opened 7 years ago Updated 2 years ago

Fix or remove UCRT dlls in dependentlibs.list

Categories

(Firefox Build System :: General, defect)

Unspecified
Windows
defect

Tracking

(Not tracked)

People

(Reporter: emk, Unassigned)

Details

dependentlibs.list does not follow the dependency transitively. For example, the dependency graph of universal CRT is as follows:
  xul.dll -> api-ms-win-crt-*.dll -> ucrtbase.dll -> api-ms-win-core-*.dll -> (system DLLs)
The current dependentlibs.list only contains api-ms-win-crt-*.dll (that is, direct xul.dll dependencies.)

But do we need this at all, given that the current incomplete list did not cause any problems? Rather, it caused a performance regression (bug 1264276). Moreover, we already removed some DLLs from the list to improve performance (bug 970123 and 978509).
Summary: Fix or remove dependentlibs.list → Fix or remove UCRT dlls in dependentlibs.list
(In reply to Masatoshi Kimura [:emk] from comment #0)
> dependentlibs.list does not follow the dependency transitively. For example,
> the dependency graph of universal CRT is as follows:
>   xul.dll -> api-ms-win-crt-*.dll -> ucrtbase.dll -> api-ms-win-core-*.dll
> -> (system DLLs)
> The current dependentlibs.list only contains api-ms-win-crt-*.dll (that is,
> direct xul.dll dependencies.)
> 
> But do we need this at all, given that the current incomplete list did not
> cause any problems? Rather, it caused a performance regression (bug
> 1264276).

That's actually not necessarily a performance regression. That would need to be measured carefully on spinning disks.
(In reply to Mike Hommey [:glandium] from comment #1)
> That's actually not necessarily a performance regression. That would need to
> be measured carefully on spinning disks.

If api-ms-win-core-*.dlls are in the API set[1], they will not even be read from the disk. On Win7, only 6 dlls are not in the API set. On Win8+, all api-ms-win-core-*.dlls are in the API set. On Win10, api-ms-win-crt-*.dlls are also in the API set (because UCRT is part of the system). It can only degrade performance to read ahead UCRT DLLs explicitly.

[1] https://msdn.microsoft.com/ja-jp/library/windows/desktop/hh802935(v=vs.85).aspx
Product: Core → Firefox Build System
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.