Linking xul takes a long time on windows. In a PGO build we need to do it twice. If nothing has changed since the last build, there shouldn't be any need to relink xul.
This came up today, when looking at times for a win32 build with *no* change, specifically: http://production-master.build.mozilla.org:8010/builders/WINNT%205.2%20mozilla-central%20build/builds/1318. The "source" step was no-op, because no source change had happened since last build. However, the "compile" step took 1h51m. Most/all of this time seems to be spent relinking libxul, twice. From irc with ted, one link is needed for linking profiling info, and one link is needed for real optimized link. However, I'm still curious why do we need to do *any* linking if no source has changed?
The build is done in two separate passes, and each pass doesn't know anything about the other except what it can discern from the files it's operating on. If you link a library in the first pass, you *must* re-link it in the second pass. As it stands now, there's no way for the second pass to know that it should re-link if the first pass did, so I punted and made them both re-link all the time.
You need to log in before you can comment on or make changes to this bug.