Closed Bug 466399 Opened 16 years ago Closed 16 years ago

Investigate incomplete recompilation of build dependency on Mac

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: igor, Unassigned)

References

Details

Attachments

(3 files)

+++ This bug was initially created as a clone of Bug #466328 +++

The landing of bug 453157 exposed that on Mac some dependencies are not recompiled during the build. In particular, the patch from the bug changes js/src/xpconnect/idl/nsIXPConnect.idl meaning that all files that includes either it or the generated nsIXPConnect.h must be updated. 

But this does not happened at least on OS X 10.5.2 mozilla-central leak test build. There the first build after the landing has not recompiled caps/src/nsScriptSecurityManager.cpp , see http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1227482337.1227482532.13672.gz&fulltext=1

Compare that with the corresponding log for the Linux leak test, where the file is recompiled: http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1227482337.1227484197.18755.gz&fulltext=1
Component: Release Engineering → Build Config
Product: mozilla.org → Core
QA Contact: release → build-config
Version: other → Trunk
So we saw major dependency problems on Mac again today, and the problem seems pretty bad from a symptoms point-of-view.

I landed a change that touched nsPresContext.h.  This should force practically every file in layout/ to rebuild.  It did in fact force every file in layout/base/ to rebuild, but it didn't force any of the files in any other directories to rebuild.

If I (in my own build) compare the way nsPresContext.h is listed in the files inside layout/generic/.deps to the way it's listed in layout/base/.deps/, in the latter it's listed as ../../dist/include/layout/nsPresContext.h, whereas in the former it's listed as /builds/dbaron/mozilla-central/mozilla/layout/base/nsPresContext.h.

If that's also true on the build machines (could somebody please check?), then it seems like the problem is that make's dependency checking is no longer following symlinks on these machines.  In other words, it's only looking at the timestamp of the symlink itself, rather than both that timestamp and the timestamp of what the symlink links to.
(That said, it's possible we do that dependency checking ourselves, although I think make does it for us; I think it's just the way we get those dependencies into the makefile that's hacky and not the way we check for them.)
Actually, that's not done by make; it's done by build/unix/mddepend.pl.
In reply to comment #1, it's similar on bm-xserve16. All but two references in generic/.deps are to ../../dist/include/layout/nsPresContext.h (except one each in nsGfxScrollFrame.pp, nsObjectFrame.pp; everything in base/.deps is an absolute path to the source dir.

Is there an nsinstall of nsPresContext.h to dist/include in the build log ? ie instead of the symlinks being dodgy, is it exporting ok ?
A bit different, 41/80 generic/ refs to dist, the rest to absolute-ish paths. All of base/ are absolute.
(In reply to comment #4)
> Is there an nsinstall of nsPresContext.h to dist/include in the build log ? ie
> instead of the symlinks being dodgy, is it exporting ok ?

Both obj-firefox/{i386,ppc}/dist/include/layout/nsPresContext.h link to layout/base/nsPresContext.h OK, at least at the moment on bm-xserve16.
Over in bug 464093 we were searching for ways to clean up disk space, because --save-temps is needed for Breakpad but massively blows out the required disk space (inducing pain as you bring up more branches/repos). Removing .deps/* breaks depend builds though.

Checked this in because dbaron is pretty surre it'll get us fixed up, but would appreciate your check Ted.
Attachment #350114 - Flags: review?(ted.mielczarek)
This is live on the production and staging buildbot masters (moz2-master).
Attachment #350114 - Flags: review?(ted.mielczarek) → review+
Comment on attachment 350114 [details] [diff] [review]
[checked in] removing .deps/* breaks depend builds

Naughty, naughty!
Builds seem to be OK since this landed.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: