Closed Bug 1480834 Opened 6 years ago Closed 6 years ago

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

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.

Attachment

General

Created:
Updated:
Size: