Closed Bug 1166996 Opened 11 years ago Closed 11 years ago

rustc doesn't support MacOS X 10.6

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(firefox41 affected)

RESOLVED FIXED
Tracking Status
firefox41 --- affected

People

(Reporter: rillian, Unassigned)

References

Details

The rust standard library uses thread local storage features which are no supported in MacOS X versions prior to 10.7. Firefox still has many users on 10.6. To ship rust code for Mac desktop we either need to drop 10.6 support, or figure out how to build rust code in a way that works there. See https://github.com/rust-lang/rust/issues/25342 for upstream details.
Given the number of users affected, dropping 10.6 support isn't the correct choice this year, so we need to fix rust. Proposals include: - building a custom rust toolchain with a pthread-based implementation of thread local storage - adding shim or link pass to stub out the objectionable symbols at link time. Crashing is fine if they're called is fine until we drop 10.6 support.
Flags: needinfo?(ajones)
Flags: needinfo?(ajones)
Now that https://github.com/rust-lang/rust/pull/25858 has landed, I believe that Gecko just needs to make sure to build its own Rust compiler and configure it with `--disable-elf-tls` and it should be good to go!
The --disable-elf-tls configure switch has been backported to the beta branch and will be 1.1.x, so we can build against a custom build of the stable toolchain that much sooner. Remaining to unblock this to to modify gecko's configure script to check whether rustc is compatible with the MACOSX_DEPLOYMENT_TARGET so --enable-rust will reject inappropriate rust toolchains.
Depends on: 1181441
We have workarounds for 1.1.x and later, so I'm closing this. Some issues for follow-up work: https://github.com/rust-lang/rust/issues/26581 https://github.com/rust-lang/rust/issues/27057
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.