Firefox does not fit in 32-bit address space
Mozilla developers have encountered a problem: an error occurs during the compilation of mozilla-inbound for Windows (see bug 709193 ).
An investigation has shown that the linker goes beyond the virtual address space during optimization. It lacks 3 GB of memory that the application allocates 32-bit Windows.
A similar problem arose before the developers in early 2010, when the linker went beyond 2 GB, but then the problem was solved by switching to the 3 GB limit (see bug 543034 ), now there is no such option.
As a temporary solution, the developers froze adding functionality to mozilla-inbound and excluded several new modules from the build: Graphite, libreg and SPDY. Now they think what to do next. In this situation, there are several options: 1) separate part of the libxul code into separate libraries; 2) try switching to MSVC 2010; 3) compile 32-bit builds in a 64-bit OS. The issue is being discussed at mozilla.dev.platform.
For the advanced version of Firefox - the 32-bit version for Windows, which is used by 90% of the audience - a two-step optimization procedure is used on profiles (Profile-Guided Optimization, PGO). After the first pass of the compiler, a browser profile is compiled in a real environment, after which the final compilation of the optimized program is performed. Mozilla switched to PGO four years ago, a new method improved performance by about 10%.
nswindowmediator.cpp (821): fatal error C1001: An internal error has occurred in the compiler. LINK: fatal error LNK1000: Internal error during IMAGE :: BuildImage
An investigation has shown that the linker goes beyond the virtual address space during optimization. It lacks 3 GB of memory that the application allocates 32-bit Windows.
A similar problem arose before the developers in early 2010, when the linker went beyond 2 GB, but then the problem was solved by switching to the 3 GB limit (see bug 543034 ), now there is no such option.
As a temporary solution, the developers froze adding functionality to mozilla-inbound and excluded several new modules from the build: Graphite, libreg and SPDY. Now they think what to do next. In this situation, there are several options: 1) separate part of the libxul code into separate libraries; 2) try switching to MSVC 2010; 3) compile 32-bit builds in a 64-bit OS. The issue is being discussed at mozilla.dev.platform.
For the advanced version of Firefox - the 32-bit version for Windows, which is used by 90% of the audience - a two-step optimization procedure is used on profiles (Profile-Guided Optimization, PGO). After the first pass of the compiler, a browser profile is compiled in a real environment, after which the final compilation of the optimized program is performed. Mozilla switched to PGO four years ago, a new method improved performance by about 10%.