Opened 10 days ago

Closed 3 days ago

#26329 closed defect (fixed)

Rust invocation for Firefox on 32bit Windows is failing

Reported by: gk Owned by: tbb-team
Priority: Very High Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: ff60-esr, TorBrowserTeam201806R
Cc: sukhbir, boklm Actual Points:
Parent ID: #26203 Points:
Reviewer: Sponsor:

Description

Firefox's configure is failing when checking for a functional rustc with

 0:32.86 DEBUG: Executing: `/var/tmp/dist/rust/bin/rustc --crate-type staticlib --target=i686-pc-windows-gnu -o /tmp/conftest66YTEr.rlib /tmp/conftestkSgS7j.rs`
 0:32.86 DEBUG: The command returned non-zero exit status 101.
 0:32.86 DEBUG: Its error output was:
 0:32.86 DEBUG: | error: the crate `panic_unwind` does not have the panic strategy `unwind`
 0:32.86 DEBUG: |
 0:32.86 DEBUG: | error: aborting due to previous error
 0:32.86 DEBUG: |
 0:32.86 ERROR: Cannot compile for i686-w64-mingw32 with /var/tmp/dist/rust/bin/rustc

Firefox is getting compiled with panic=abort (https://dxr.mozilla.org/mozilla-central/source/testing/geckodriver/.cargo/config) for 32bit Windows and we intend to create a Rustc compiler with that panic strategy as well, given that cross-compiling with panic=unwind is not working (see: comment:1:ticket:25894).

While compiling every crate in the std lib with panic-abort is working it seems we still miss some crucial bit here.

One option to test would be if we can get rid of panic_unwind if we don't need it anyway when compiling for 32bit Windows. For what it is worth, the compiler as we have it right now is working for tor compiled with Rust.

Child Tickets

Change History (3)

comment:1 Changed 10 days ago by gk

Okay, let's go with plan d): Alex Crichton pointed me to https://github.com/rust-lang/rust/pull/49633 a while ago as a potential stopgap solution. It turns out that one works in the sense that 32bit tor for Windows with Rust enabled is still compiling and running AND that I am now hitting #26326.

I'll post a proper patch for this bug once I can verify that Tor Browser properly compiles and runs.

If that still hits some problems we could think about plan e) to ditch SjLj exception handling for 32bit Windows in favor of Dwarf2 or we could think about resorting to the official std lib for the time being.

comment:2 Changed 4 days ago by gk

Cc: boklm added
Keywords: TorBrowserTeam201806R added; TorBrowserTeam201806 removed
Status: newneeds_review

Okay, this works for me and I get a functional 32bit Windows Tor Browser. bug_26329 (https://gitweb.torproject.org/user/gk/tor-browser-build.git/commit/?h=bug_26329&id=3751474686ba0d2cc7b8a4086114332cbc36e29c) in my public tor-browser-build repo has a fix for review.

comment:3 Changed 3 days ago by boklm

Resolution: fixed
Status: needs_reviewclosed

This looks good to me. I pushed the patch to master as commit 3751474686ba0d2cc7b8a4086114332cbc36e29c.

Note: See TracTickets for help on using tickets.