Skip to content

Commit f529c28

Browse files
authored
Merge pull request #1096 from wesleywiser/musl_update
Add post for updated musl targets
2 parents 1af122d + 09dfbf0 commit f529c28

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
layout: post
3+
title: "Updating Rust's Linux musl targets"
4+
author: Wesley Wiser
5+
description: "musl targets will soon ship with musl 1.2"
6+
team: The Compiler Team <https://www.rust-lang.org/governance/teams/compiler>
7+
---
8+
9+
Beginning with Rust 1.71 (slated for stable release on 2023-07-13), the various `*-linux-musl` targets will [ship][PR] with musl 1.2.3.
10+
These targets currently use musl 1.1.24.
11+
While musl 1.2.3 introduces some [new features][musl features], most notably [64-bit time][time64] on all platforms, it is ABI compatible with earlier musl versions.
12+
13+
As such, this change is unlikely to affect you.
14+
15+
# Updated targets
16+
17+
The following targets will be updated:
18+
19+
| Target | [Support Tier][tiers] |
20+
| - | - |
21+
| `aarch64-unknown-linux-musl` | Tier 2 with Host Tools |
22+
| `x86_64-unknown-linux-musl` | Tier 2 with Host Tools |
23+
| `arm-unknown-linux-musleabi` | Tier 2 |
24+
| `arm-unknown-linux-musleabihf` | Tier 2 |
25+
| `armv5te-unknown-linux-musleabi` | Tier 2 |
26+
| `armv7-unknown-linux-musleabi` | Tier 2 |
27+
| `armv7-unknown-linux-musleabihf` | Tier 2 |
28+
| `i586-unknown-linux-musl` | Tier 2 |
29+
| `i686-unknown-linux-musl` | Tier 2 |
30+
| `mips-unknown-linux-musl` | Tier 2 |
31+
| `mips64-unknown-linux-muslabi64` | Tier 2 |
32+
| `mips64el-unknown-linux-muslabi64` | Tier 2 |
33+
| `mipsel-unknown-linux-musl` | Tier 2 |
34+
| `hexagon-unknown-linux-musl` | Tier 3 |
35+
| `mips64-openwrt-linux-musl` | Tier 3 |
36+
| `powerpc-unknown-linux-musl` | Tier 3 |
37+
| `powerpc64-unknown-linux-musl` | Tier 3 |
38+
| `powerpc64le-unknown-linux-musl` | Tier 3 |
39+
| `riscv32gc-unknown-linux-musl` | Tier 3 |
40+
| `riscv64gc-unknown-linux-musl` | Tier 3 |
41+
| `s390x-unknown-linux-musl` | Tier 3 |
42+
| `thumbv7neon-unknown-linux-musleabihf` | Tier 3 |
43+
44+
Note: musl 1.2.3 does not raise the minimum required Linux kernel version for any target.
45+
46+
# Will 64-bit time break the `libc` crate on 32-bit targets?
47+
48+
No, the musl project made this change carefully preserving ABI compatibility.
49+
The `libc` crate will continue to function correctly without modification.
50+
51+
A future version of the `libc` crate will [update][libc PR] the definitions of time-related structures and functions to be 64-bit on all musl targets however this is blocked on the musl targets themselves first being updated.
52+
At present, there is no anticipated date when this change will take place and care will be taken to help the Rust ecosystem transition successfully to the updated time-related definitions.
53+
54+
[libc PR]: https://github.com/rust-lang/libc/pull/3068
55+
[musl features]: https://musl.libc.org/releases.html
56+
[PR]: https://github.com/rust-lang/rust/pull/107129
57+
[tiers]: https://doc.rust-lang.org/nightly/rustc/platform-support.html
58+
[time64]: https://musl.libc.org/time64.html

0 commit comments

Comments
 (0)