Closed Bug 880564 Opened 6 years ago Closed 6 years ago

Some files are rebuilt every time

Categories

(Firefox Build System :: General, defect)

x86_64
macOS
defect
Not set

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 740359

People

(Reporter: Ehsan, Unassigned)

References

Details

(Whiteboard: [buildfaster:?])

If you do a clean build, and then do another one right away, the following files seem to be rebuilt unnecessarily:

 0:46.43 nsChromeRegistry.cpp
 0:51.13 XPCComponents.cpp
 0:51.15 nsXPConnect.cpp
 2:02.54 webapprt.mm
 2:14.72 nsBrowserApp.cpp

The first three cause libxul to be relinked again.
Blocks: 755684
Depends on: 742169
Hardware: x86 → x86_64
Whiteboard: [buildfaster:?]
Depends on: 876566
$ mach build -v chrome/src
 0:00.65 /usr/bin/make -C chrome/src -j8
 0:00.99 /usr/bin/make export
 0:00.99 if test -d ../../dist/bin/browser ; then touch ../../dist/bin/browser/.purgecaches ; fi
 0:01.00 if test -d ../../dist/bin/webapprt ; then touch ../../dist/bin/webapprt/.purgecaches ; fi
 0:01.01 make[1]: Nothing to be done for `export'.
 0:01.01 /usr/bin/make libs
 0:01.14 make[1]: Nothing to be done for `libs'.
 0:01.15 /usr/bin/make tools
 0:01.17 make[1]: Nothing to be done for `tools'.

I guess I'll need to build on Windows to find out why the dependencies there are causing it to get rebuilt.
(In reply to comment #1)
> $ mach build -v chrome/src
>  0:00.65 /usr/bin/make -C chrome/src -j8
>  0:00.99 /usr/bin/make export
>  0:00.99 if test -d ../../dist/bin/browser ; then touch
> ../../dist/bin/browser/.purgecaches ; fi
>  0:01.00 if test -d ../../dist/bin/webapprt ; then touch
> ../../dist/bin/webapprt/.purgecaches ; fi
>  0:01.01 make[1]: Nothing to be done for `export'.
>  0:01.01 /usr/bin/make libs
>  0:01.14 make[1]: Nothing to be done for `libs'.
>  0:01.15 /usr/bin/make tools
>  0:01.17 make[1]: Nothing to be done for `tools'.
> 
> I guess I'll need to build on Windows to find out why the dependencies there
> are causing it to get rebuilt.

FWIW I see this on Mac.
(In reply to Gregory Szorc [:gps] from comment #1)
> $ mach build -v chrome/src

It probably requires a top-level build.
(In reply to comment #3)
> (In reply to Gregory Szorc [:gps] from comment #1)
> > $ mach build -v chrome/src
> 
> It probably requires a top-level build.

Oh, yes.  It does.
It's probably the result of us blowing away parts of dist/ at the beginning of a build and invalidating mtimes when a file is copied (not symlinked) into dist/. That is in turn probably due to some one-off install/copy rule that isn't INSTALL_TARGETS. But this is only speculation.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 740359
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.