rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
93.58k stars 12.05k forks source link

Fix unwinding on 32-bit watchOS ARM (v2) #124748

Closed madsmtm closed 1 week ago

madsmtm commented 1 week ago

This PR is identical to https://github.com/rust-lang/rust/pull/124494, which was approved and merged but then removed from master by a force-push due to a CI bug.

r? Mark-Simulacrum

Original PR description:


Found while doing https://github.com/rust-lang/rust/pull/124491, I wanted to unify the code under target_vendor = "apple", and found that Clang actually specifies that watchOS ARM 32-bit does not use SjLj.

I don't have an Apple Watch from that generation at hand to test this myself (series 1 to 3), and I don't think it will be sufficient to test it in the simulator (as it's architecture-specific), so maybe someone else could do so?

N.B. The code is written in a way to support 32-bit iOS and tvOS ARM devices (which do use SjLj) for future compatibility even though we currently only have a target for 32-bit iOS ARM (if you think that's excessive, then I'll change it).

@rustbot label O-watchos

dtolnay commented 1 week ago

@bors r=Mark-Simulacrum

bors commented 1 week ago

:pushpin: Commit fa22863f1b13251014c5cae1532c96582749978f has been approved by Mark-Simulacrum

It is now in the queue for this repository.