On 11 дек, 21:27, Kyle Huey <
m...@kylehuey.com> wrote:
> At the end of last week our Windows PGO builds started failing on
> mozilla-inbound (
https://bugzilla.mozilla.org/show_bug.cgi?id=709193).
> After some investigation we determined that the problem seems to be that
> the linker is running out of virtual address space during the optimization
> phase.
>
> This is not the first time we've run into this problem (e.g. Bug 543034).
> A couple years ago we hit the 2 GB virtual address space limit. The build
> machines were changed to use /3GB and that additional GB of address space
> bought us some time. This time unfortunately the options aren't as easy as
> flipping a switch.
>
> As a temporary measure, we've turned off or ripped out a few new pieces of
> code (Graphite, SPDY, libreg) which has brought us back down under the
> limit for the moment. We don't really know how much breathing space we
> have (but it's probably pretty small).
>
> Our three options at this point:
>
> 1) Make libxul smaller - Either by removing code entirely or by splitting
> things into separate shared libraries.
> 2) Move to MSVC 2010 - We know that changesets that reliably failed to link
> on MSVC 2005 linked successfully with MSVC 2010. What we don't know is how
> much this helps (I expect the answer is somewhere between a lot and a
> little). We can't really do this for (at the bare minimum) a couple more
> weeks anyways due to product considerations about what OSs we support.
> 3) Do our 32 bit builds on machines running a 64 bit OS. This will allow
> the linker to use 4 GB of address space.
>
> I think we need to pursue a combination of (1) in the short term and (3) in
> the slightly less short term. Gal has some ideas on what we can do for (1)
> that I'm investigating.
>
> In the mean time, mozilla-inbound is closed, and mozilla-central is
> restricted to approvals only. The only things currently allowed to land on
> mozilla-central are:
>
> - Test-only/NPOTB changes
> - Changes that only touch Spidermonkey (which is not part of libxul on
> Windows, and thus not contributing to the problem).
> - Changes that only touch other cpp code that doesn't not end up in libxul
> (cpp code in browser/, things like sqlite, angle, nss, nspr, etc).
> - JS/XUL/HTML changes.
>
> I'm hopeful that we can hack libxul enough to get the tree open
> provisionally soon.
>
> - Kyle
Guys, how about to completely rewrite XUL? From ground-up? Come on,
guys, XUL is just HUUUUUGE. So huge that you need to radically shrink
it up to use on modern platforms, and especially on Android.
That was just idea, I'm not pushing you to do it right now.