Opened 12 months ago

Last modified 7 weeks ago

#28240 new task

Think about using mingw-w64 with dwarf exception support for rustc cross-compilation for 32bit Windows

Reported by: gk Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-rbm
Cc: alexcrichton, manish.earth Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description (last modified by gk)

Our workaround we currently use to cope with issues cross-compiling rustc for 32bit Windows is not upstreamable (see: https://github.com/rust-lang/rust/pull/55444 for the arguments). We could think about compiling with a mingw-w64 using dwarf exception support instead, see: (https://github.com/rust-embedded/cross/blob/master/docker/mingw.sh).

However, we should take into account that we want to switch to a mingw-w64/clang-based toolchain soon and should start looking into this ticket not before the other (#28238) is done.

Child Tickets

Change History (5)

comment:1 Changed 7 weeks ago by gk

Description: modified (diff)

comment:2 Changed 7 weeks ago by tom

Hm. I know that mingw-clang-x86 needs sjlj-exceptions because the default SEH exceptions are not supported there. But I'm confused why Tor needs a special case and the Mozilla builds don't.

comment:3 in reply to:  2 ; Changed 7 weeks ago by gk

Replying to tom:

Hm. I know that mingw-clang-x86 needs sjlj-exceptions because the default SEH exceptions are not supported there. But I'm confused why Tor needs a special case and the Mozilla builds don't.

What do you mean with special case? I doubt you are cross-compiling Rust for 32bit Windows. But we do mainly to be able to react "quickly" to potential reproducibility issues (see the infamous #26475 where this stance has helped).

comment:4 in reply to:  3 ; Changed 7 weeks ago by tom

Replying to gk:

Replying to tom:

Hm. I know that mingw-clang-x86 needs sjlj-exceptions because the default SEH exceptions are not supported there. But I'm confused why Tor needs a special case and the Mozilla builds don't.

What do you mean with special case? I doubt you are cross-compiling Rust for 32bit Windows. But we do mainly to be able to react "quickly" to potential reproducibility issues (see the infamous #26475 where this stance has helped).

Right; we're not, we download pre-compiled stuff (and repack it).

So I guess the answer is you need a patch to your version because you're compiling with a different compiler than us. (Presumably, the windows rust components are compiled using clang-cl or msvc on Windows?)

comment:5 in reply to:  4 Changed 7 weeks ago by gk

Replying to tom:

Replying to gk:

Replying to tom:

Hm. I know that mingw-clang-x86 needs sjlj-exceptions because the default SEH exceptions are not supported there. But I'm confused why Tor needs a special case and the Mozilla builds don't.

What do you mean with special case? I doubt you are cross-compiling Rust for 32bit Windows. But we do mainly to be able to react "quickly" to potential reproducibility issues (see the infamous #26475 where this stance has helped).

Right; we're not, we download pre-compiled stuff (and repack it).

So I guess the answer is you need a patch to your version because you're compiling with a different compiler than us. (Presumably, the windows rust components are compiled using clang-cl or msvc on Windows?)

Yes.

Note: See TracTickets for help on using tickets.