Closed Bug 1480834 Opened Last year Closed Last year

Build GeckoView for x86_64

Categories

(GeckoView :: General, enhancement, P3)

x86_64
Android
enhancement

Tracking

(geckoview62 wontfix, firefox-esr60 wontfix, firefox62 wontfix, firefox63 wontfix, firefox64 fixed)

RESOLVED FIXED
mozilla64
Tracking Status
geckoview62 --- wontfix
firefox-esr60 --- wontfix
firefox62 --- wontfix
firefox63 --- wontfix
firefox64 --- fixed

People

(Reporter: cpeterson, Assigned: jchen)

References

(Depends on 1 open bug)

Details

Attachments

(9 files)

46 bytes, text/x-phabricator-request
dminor
: review+
Details | Review
46 bytes, text/x-phabricator-request
nalexander
: review+
Details | Review
46 bytes, text/x-phabricator-request
glandium
: review+
Details | Review
46 bytes, text/x-phabricator-request
glandium
: review+
Details | Review
46 bytes, text/x-phabricator-request
glandium
: review+
Details | Review
46 bytes, text/x-phabricator-request
Details | Review
46 bytes, text/x-phabricator-request
nalexander
: review+
Details | Review
46 bytes, text/x-phabricator-request
nalexander
: review+
dustin
: review+
jlorenzo
: review+
Details | Review
46 bytes, text/x-phabricator-request
nalexander
: review+
froydnj
: review+
Details | Review
The Google Play Store will require all apps that include native code to include 64-bit builds (ARM64 and x86_64) by August 2019:

https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html

TBD: Once we have x86_64 builds, should we test x86_64 instead of or in addition to x86? Do we have any telemetry showing how common x86_64 devices are compared to x86?
Depends on: 1477259
Add GN config files and updated moz.build files for building WebRTC on
Android x86_64.
Add x86-64 as an option for Android builds in the build system.
Add necessary checks to make the linker build on x86-64.
On 64-bit Android, `pthread_cond_timedwait_monotonic_np` is only
available for API 28+. The issue is, even though the NDK header does not
define `pthread_cond_timedwait_monotonic_np` for API 27 and below, the
NDK library _does_ include the function (in order to support builds
targeting API 28+).

During our configure test, the compiler only emits a warning about
`pthread_cond_timedwait_monotonic_np` being undefined, but linking
succeeds because the function is present in the library. Because linking
succeeds, the test inadvertently passes. This patch adds a '-Werror'
flag to the compilation, so the warning turns into an error to make the
test fail.
Currently, when building for Android x86-64 on Linux x86-64, we drop the
'--target' flag, which causes the build to fail. This patch adds a check
for OS mismatch, so we keep the '--target' flag in this situation.
Comment on attachment 9004665 [details]
Bug 1480834 - 4. Specify -Werror for pthread_cond_timedwait_monotonic_np check; r=glandium

Mike Hommey [:glandium] has approved the revision.
Attachment #9004665 - Flags: review+
Comment on attachment 9004666 [details]
Bug 1480834 - 5. Keep target flag when building for Android on Linux; r=glandium

Mike Hommey [:glandium] has approved the revision.
Attachment #9004666 - Flags: review+
Attachment #9004664 - Attachment description: Bug 1480834 - 3. Support x86-64 in linker; r?glandium → Bug 1480834 - 3. Fix linker compile errors under x86-64; r?glandium
Comment on attachment 9004664 [details]
Bug 1480834 - 3. Fix linker compile errors under x86-64; r=glandium

Mike Hommey [:glandium] has approved the revision.
Attachment #9004664 - Flags: review+
Comment on attachment 9004662 [details]
Bug 1480834 - 1. Add WebRTC config for x86_64 on Android; r=dminor

Dan Minor [:dminor] has approved the revision.
Attachment #9004662 - Flags: review+
Comment on attachment 9004663 [details]
Bug 1480834 - 2. Add x86-64 build support; r=nalexander

Nick Alexander :nalexander [he/him] has approved the revision.
Attachment #9004663 - Flags: review+
Attachment #9004662 - Attachment description: Bug 1480834 - 1. Add WebRTC config for x86_64 on Android; r?dminor → Bug 1480834 - 1. Add WebRTC config for x86_64 on Android; r=dminor
Attachment #9004663 - Attachment description: Bug 1480834 - 2. Add x86-64 build support; r?nalexander → Bug 1480834 - 2. Add x86-64 build support; r=nalexander
Attachment #9004664 - Attachment description: Bug 1480834 - 3. Fix linker compile errors under x86-64; r?glandium → Bug 1480834 - 3. Fix linker compile errors under x86-64; r=glandium
Attachment #9004665 - Attachment description: Bug 1480834 - 4. Specify -Werror for pthread_cond_timedwait_monotonic_np check; r?glandium → Bug 1480834 - 4. Specify -Werror for pthread_cond_timedwait_monotonic_np check; r=glandium
Attachment #9004666 - Attachment description: Bug 1480834 - 5. Keep target flag when building for Android on Linux; r?glandium → Bug 1480834 - 5. Keep target flag when building for Android on Linux; r=glandium
Add config files for building Android for x86-64.
Add x86-64 as a rust target so we can build Android for x86-64.
Comment on attachment 9008223 [details]
Bug 1480834 - 6. Add Android x86-64 configs; r=nalexander

Nick Alexander :nalexander [he/him] has approved the revision.
Attachment #9008223 - Flags: review+
Comment on attachment 9008224 [details]
Bug 1480834 - 7. Add Android x86-64 tasks; r=nalexander r=dustin r=jlorenzo

Nick Alexander :nalexander [he/him] has approved the revision.
Attachment #9008224 - Flags: review+
Comment on attachment 9008225 [details]
Bug 1480834 - 8. Add x86-64 as rust target; r=nalexander r=froydnj

Nick Alexander :nalexander [he/him] has approved the revision.
Attachment #9008225 - Flags: review+
Comment on attachment 9008225 [details]
Bug 1480834 - 8. Add x86-64 as rust target; r=nalexander r=froydnj

Nathan Froyd [:froydnj] has approved the revision.
Attachment #9008225 - Flags: review+
Comment on attachment 9008224 [details]
Bug 1480834 - 7. Add Android x86-64 tasks; r=nalexander r=dustin r=jlorenzo

Dustin J. Mitchell [:dustin] pronoun: he has approved the revision.
Attachment #9008224 - Flags: review+
Comment on attachment 9008224 [details]
Bug 1480834 - 7. Add Android x86-64 tasks; r=nalexander r=dustin r=jlorenzo

Johan Lorenzo [:jlorenzo] has approved the revision.
Attachment #9008224 - Flags: review+
Once we have x86-64 builds of GV, James recommends that we test x86-64 instead of x86 (or run only smoke tests on x86).
Attachment #9008223 - Attachment description: Bug 1480834 - 6. Add Android x86-64 configs; r?nalexander r?dustin → Bug 1480834 - 6. Add Android x86-64 configs; r=nalexander
Attachment #9008224 - Attachment description: Bug 1480834 - 7. Add Android x86-64 tasks; r?nalexander r?dustin → Bug 1480834 - 7. Add Android x86-64 tasks; r=nalexander r=dustin r=jlorenzo
Attachment #9008225 - Attachment description: Bug 1480834 - 8. Add x86-64 as rust target; r?rillian → Bug 1480834 - 8. Add x86-64 as rust target; r=nalexander r=froydnj
Pushed by nchen@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/2eb3342c3ea4
0. Drop mips and update NDK platform to 16; r=jchen
https://hg.mozilla.org/integration/mozilla-inbound/rev/2d0a7ce39cfc
1. Add WebRTC config for x86_64 on Android; r=dminor
https://hg.mozilla.org/integration/mozilla-inbound/rev/b78b12273560
2. Add x86-64 build support; r=nalexander
https://hg.mozilla.org/integration/mozilla-inbound/rev/c12699660620
3. Fix linker compile errors under x86-64; r=glandium
https://hg.mozilla.org/integration/mozilla-inbound/rev/ced591ff6815
4. Specify -Werror for pthread_cond_timedwait_monotonic_np check; r=glandium
https://hg.mozilla.org/integration/mozilla-inbound/rev/704af02a849d
5. Keep target flag when building for Android on Linux; r=glandium
https://hg.mozilla.org/integration/mozilla-inbound/rev/bbceefcad976
6. Add Android x86-64 configs; r=nalexander
https://hg.mozilla.org/integration/mozilla-inbound/rev/1dd3bc1e9fd7
7. Add Android x86-64 tasks; r=nalexander r=dustin r=jlorenzo
https://hg.mozilla.org/integration/mozilla-inbound/rev/3eff52855cdb
8. Add x86-64 as rust target; r=nalexander r=froydnj
(In reply to Pulsebot from comment #23)
> https://hg.mozilla.org/integration/mozilla-inbound/rev/1dd3bc1e9fd7
> 7. Add Android x86-64 tasks; r=nalexander r=dustin r=jlorenzo

Johan, do you know why this new Android x86-64 build task is listed on Treeherder as "android-5-0-x86_64 opt" even though android.yml specifies `description: "Android 5.0 x86-64 Opt"`?

https://searchfox.org/mozilla-central/rev/bdc89dfd7869e418d788b28eb60ab8d94e708a15/taskcluster/ci/build/android.yml#582,589
Flags: needinfo?(jlorenzo)
I see the confusion! The description you pointed out is used by Taskcluster itself. See description field here: https://tools.taskcluster.net/groups/DJ_YBK4uQTq3HD2NdQlyVQ/tasks/I32BJ4JqTYW7BOkLLx_eAA/details.

Treeherder uses its own naming. You have a to make a PR like these ones: https://github.com/mozilla/treeherder/pull/2701 and https://github.com/mozilla/treeherder/pull/2737.
Flags: needinfo?(jlorenzo)
Depends on: 1491912
Depends on: 1505536
Blocks: 1505536
No longer depends on: 1505536
Product: Firefox for Android → GeckoView
Target Milestone: Firefox 64 → mozilla64
You need to log in before you can comment on or make changes to this bug.