Invoke |mach build faster| and |make -C ... stage-package| directly from Gradle

RESOLVED FIXED in Firefox 66

Status

()

enhancement
RESOLVED FIXED
6 months ago
5 months ago

People

(Reporter: nalexander, Assigned: nalexander)

Tracking

(Blocks 1 bug)

unspecified
Firefox 66
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox66 fixed)

Details

Attachments

(4 attachments, 2 obsolete attachments)

Right now, we indirect through mobile/android/base/Makefile.in.  That's fine, but it's a layer of Makefile gunk that can be removed; and it's preventing some slight GV-specific optimizations (e.g., only invoking stage-package for GV when appropriate).
(Assignee)

Comment 1

6 months ago
This is just an awkward feature of the FasterMake build system:
without a direct consumer, GENERATED_FILES aren't handled.  We
"consume" them into a dummy directory that isn't packaged.  Sadly, the
FasterMake generic rule doesn't handle relative directories smoothly,
so we have to special case that too.

Depends on D12795
(Assignee)

Comment 2

6 months ago
This uses |mach build faster| rather than a custom target, reducing
Make magic and making it easier to reason about the Gradle build.  I
also took the opportunity to improve the task logging.

Depends on D12796
(Assignee)

Comment 3

6 months ago
This will be used to make it very clear when certain tasks are being
skipped, as we move details about Gecko binaries to depend on the
Gradle task execution graph.

Depends on D12797
(Assignee)

Comment 4

6 months ago
This splits the two stage-package invocations (which are rather slow)
between Fennec and GeckoView, hopefully speeding local GV development
up a little (in the IDE).

In addition, we feed the packaged libs (and asset libs) through.

Depends on D12798
Attachment #9027269 - Attachment description: Bug 1509573 - Part 1: Make |mach build faster| handle Android generated files. → Bug 1509573 - Part 1: Make |mach build faster| handle Android generated files. r?froydnj

Comment 5

6 months ago
Pushed by nalexander@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d7e0661e34c2
Part 1: Make |mach build faster| handle Android generated files. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/36cf7b9ce095
Part 2: Use |mach build faster| rather than special Make target. r=snorp
https://hg.mozilla.org/integration/autoland/rev/059741f95cf4
Part 3: Extract shared `onlyIf` Gradle guard. r=snorp
https://hg.mozilla.org/integration/autoland/rev/ace2d2ada8ef
Part 4: Use |make -C ... stage-package| rather than special Make target. r=snorp
As discussed with :nalexander, this breaks local builds of android-x86 on a Linux host:

 0:00.23 /usr/bin/gmake -C /home/eitan/gecko/objdir-android-x86 -j8 -s backend
 0:00.31 /usr/bin/gmake -C faster -j8 -s
 0:00.35 gmake[1]: *** No rule to make target '/home/eitan/gecko/objdir-android-x86/i686-linux-android/release/libgkrust.a', needed by 'libxul.so'.  Stop.
 0:00.35 gmake: *** [/home/eitan/gecko/config/faster/rules.mk:81: /home/eitan/gecko/objdir-android-x86/toolkit/library/dependentlibs.list] Error 2
 0:00.35 gmake: *** Waiting for unfinished jobs....

 0:00.48 303 compiler warnings present.

Comment 8

6 months ago
Backed out for unexpected bustages.

Backout: https://hg.mozilla.org/mozilla-central/rev/ecb2818bcd055bc5381d0702c955ee78a64dc41c
Target Milestone: Firefox 65 → ---

Updated

6 months ago
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
(Assignee)

Comment 9

5 months ago
This was always an accident of history: we forced export tier without
avoiding it in the libs tier.
This was always an accident of history: we forced export tier without
avoiding it in the libs tier.
Attachment #9027271 - Attachment description: Bug 1509573 - Part 3: Extract shared `onlyIf` Gradle guard. r?snorp → Bug 1509573 - Part 1: Use |mach build ...| rather than special Make target. r=snorp,#firefox-build-system-reviewers
Attachment #9027269 - Attachment description: Bug 1509573 - Part 1: Make |mach build faster| handle Android generated files. r?froydnj → Bug 1509573 - Part 2: Make |mach build faster| handle Android generated files. r=froydnj
Attachment #9027272 - Attachment description: Bug 1509573 - Part 4: Use |make -C ... stage-package| rather than special Make target. r?snorp → Bug 1509573 - Part 3: Use |make -C ... stage-package| rather than special Make target. r=snorp
Attachment #9027270 - Attachment is obsolete: true
Attachment #9027271 - Attachment description: Bug 1509573 - Part 1: Use |mach build ...| rather than special Make target. r=snorp,#firefox-build-system-reviewers → Bug 1509573 - Part 1: Use |mach build ...| rather than special Make target. r=snorp

Comment 11

5 months ago
Pushed by nalexander@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6ba198e2a59e
Part 0: Only compile Java via Gradle in export tier. r=chmanchester.mielczarek
https://hg.mozilla.org/integration/autoland/rev/43ddf4c3ae27
Part 1: Use |mach build ...| rather than special Make target. r=snorp
https://hg.mozilla.org/integration/autoland/rev/6fd3033d7cb7
Part 2: Make |mach build faster| handle Android generated files. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/c15860d7d189
Part 3: Use |make -C ... stage-package| rather than special Make target. r=snorp
Attachment #9032241 - Attachment is obsolete: true
Depends on: 1515282
You need to log in before you can comment on or make changes to this bug.