Closed Bug 1336479 Opened 7 years ago Closed 7 years ago

Get QR builds for 32-bit desktop platforms


(Core :: Graphics: WebRender, defect, P3)

Other Branch



Tracking Status
firefox54 --- fixed


(Reporter: kats, Assigned: kats)



(Whiteboard: [gfx-noted])


(3 files)

Right now our desktop QR builds are all 64-bit, because it was easier. IIRC there were some issues with 32-bit builds. We'll need to hammer those out in order to get QR builds to tier-1 status or to have --enable-webrender the default.
I did a try push with a 32-bit linux build and it failed with this:

[task 2017-02-06T22:03:18.547663Z] 22:03:18     INFO -  error: failed to run custom build command for `x11 v2.12.1`
[task 2017-02-06T22:03:18.547967Z] 22:03:18     INFO -  process didn't exit successfully: `/home/worker/workspace/build/src/obj-firefox/toolkit/library/gtest/rust/./release/build/x11-f0209bff941bc17f/build-script-build` (exit code: 101)
[task 2017-02-06T22:03:18.548120Z] 22:03:18     INFO -  --- stderr
[task 2017-02-06T22:03:18.548421Z] 22:03:18     INFO -  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error(PkgConfig(CrossCompilation), State { next_error: None })', ../src/libcore/
[task 2017-02-06T22:03:18.548762Z] 22:03:18     INFO -  note: Run with `RUST_BACKTRACE=1` for a backtrace.
[task 2017-02-06T22:03:18.549810Z] 22:03:18     INFO -  /home/worker/workspace/build/src/config/ recipe for target 'force-cargo-library-build' failed

the x11 crate is pulled in by offscreen_gl_context, so if we ditch that (which IIRC sotaro was planning on doing, by making the webrender->offscreen_gl_context dependency optional) then this problem goes away.
I was able to do a successful 32-bit build on windows locally. I used the "stable-i686-pc-windows-msvc" rust toolchain (set it to the default toolchain via rustup) and the 32-bit mozillabuild shell. mozconfig was simple:

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-win32-wr
mk_add_options AUTOCLOBBER=1
ac_add_options --enable-webrender

I'll see if I can get it going in automation as well.
Going back to linux - I wasn't able to figure out how to do a 32-bit linux build on my 64-bit machine, but I used a 1-click loaner to discover that I can reproduce the x11 build failure like so:
- make sure the rustup toolchain is stable-x86_64-unknown-linux-gnu and the i686-unknown-linux-gnu target is installed
- do a fresh clone of the webrender standalone repo
- in webrender/webrender do `cargo build --target=i686-unknown-linux-gnu`

This basically cross-compiles webrender from a 64-bit host to a 32-bit target, and x11 (or more specifically pkgconfig) doesn't like that. I'll see if I can find a good fix.
Assignee: nobody → bugmail
Note that I'm only enabling these builds on the graphics branch.
Comment on attachment 8835055 [details]
Bug 1336479 - Add 32-bit windows QR builds.
Attachment #8835055 - Flags: review?(kmoir) → review+
Comment on attachment 8835054 [details]
Bug 1336479 - Add 32-bit linux QR builds.
Attachment #8835054 - Flags: review?(kmoir) → review+
Pushed by
Add 32-bit linux QR builds. r=kmoir
Add 32-bit windows QR builds. r=kmoir
Attachment #8835110 - Flags: review+
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
You need to log in before you can comment on or make changes to this bug.