Actually, the problem on Linux is also PGO.
I'm a Firefox developer.
This is slightly inaccurate. We aren't running out of memory to link Firefox, we're running out of memory to run Profile-Guided Optimization (PGO) on Firefox.
PGO looks at what is actually executed during a given workload and optimizes based on that. It can be a pretty big win — 30% in some workloads —so we work pretty hard to keep it going.
Unfortunately, PGO needs to have not only all the code, but all the intermediate representations and other metadata about the code in memory at one time. (That's why we're running out of memory.)
Unfortunately, MSVC doesn't support producing a 32-bit binary using their 64-bit compiler.
(FWIW, Chrome has *always* been too big to use PGO.)