Closed Bug 899792 Opened 10 years ago Closed 10 years ago

Establish new tier for export-y things


(Firefox Build System :: General, defect)

Not set


(Not tracked)



(Reporter: gps, Assigned: gps)


(Blocks 1 open bug)



(1 file, 1 obsolete file)

As part of removing the recursive traversal of the export tier, I plan to establish a new tier that does things nonrecursively. Patch will be uploaded momentarily.
A new build tier is introduced: precompile. The intention is to replace
the export subtier with something better and nonrecursive. IPDL and
WebIDL code generation have been moved into this new tier and are
performed concurrently. This appears to reduce build times due to fewer
"single threaded" build actions.

The subtier tracking UI has been updated to reflect operations that can
occur in parallel. As subtiers are started, they turn yellow. They can
then complete in any order.

Nonrecursive targets have been added to preserve the IPDL and WebIDL
build targets such that developers can type |make| from leaf directories
like they have always done.
Attachment #783372 - Flags: review?(mh+mozilla)
Assignee: nobody → gps
Moved precompile tier after nspr building because of future issue with
XPIDL dependencies.
Attachment #783383 - Flags: review?(mh+mozilla)
Attachment #783372 - Attachment is obsolete: true
Attachment #783372 - Flags: review?(mh+mozilla)
Comment on attachment 783383 [details] [diff] [review]
Establish precompile tier and move IPDL and WebIDL build rules

Review of attachment 783383 [details] [diff] [review]:

::: config/makefiles/
@@ +48,5 @@
>  define define_nonrecursive_target
>  $(1)::
> +	$$(MAKE) -C $(or $(4),$$(DEPTH)) $(if $(3),-f $(3),) $(2)

$(addprefix -f ,$(3)) does the same as $(if $(3),-f $(3),) and is usually preferred in our makefiles.
Attachment #783383 - Flags: review?(mh+mozilla) → review+
I have no clue how this broke the tree!

I verified breakage with try:

However, I can't reproduce locally, even if I blow away ccache. Nothing in this patch should have changed anything later in the build.

Most weird.
Theory: This is a file case sensitivity issue.
A ha - things work during the first i386 pass but fail during the 2nd x86_64 run. This is likely a tier traversal bug or something funky like that.
I added a .PHONY target for the renamed export rules for ipdl and webidl and this fixed things according to a try push. IMO it didn't warrant additional review since it's a trivial make'ism, so I landed.
Blocks: 900330
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.