|
10 | 10 |
|
11 | 11 | ## Summary
|
12 | 12 |
|
13 |
| -Continue working towards Rust for Linux on stable, turning focus from language features to compiler and tooling. |
| 13 | +Continue working towards Rust for Linux on stable, turning focus to compiler and tooling. |
14 | 14 |
|
15 | 15 | ## Motivation
|
16 | 16 |
|
@@ -65,12 +65,7 @@ We also began work on tooling stabilization with an [RFC proposing an approach t
|
65 | 65 |
|
66 | 66 | Over the next six months our goal is to stabilize the major bits of tooling used by the Rust for Linux project. Some of these work items are complex enough to be tracked independently as their own project goals, in which case they are linked.
|
67 | 67 |
|
68 |
| -* implementing RFC #3716 to stabilize ABI-modifying compiler flags to control code generation, sanitizer integration, and so forth: |
69 |
| - * arm64: `-Zbranch-protection`, `-Zfixed-x18`, `-Zuse-sync-unwind`. |
70 |
| - * x86: `-Zcf-protection`, `-Zfunction-return`, `-Zno-jump-tables`, `-Zpatchable-function-entry`, retpoline (`+retpoline-external-thunk,+retpoline-indirect-branches,+retpoline-indirect-calls`), SLS (`+harden-sls-ijmp,+harden-sls-ret`). |
71 |
| - * x86 32-bit: `-Zregparm=3`, `-Zreg-struct-return`. |
72 |
| - * LoongArch: `-Zdirect-access-external-data`. |
73 |
| - * production sanitizer flags: `-Zsanitizer=shadow-call-stack`, `-Zsanitizer=kcfi`, `-Zsanitizer-cfi-normalize-integer`. |
| 68 | +* implementing RFC #3716 to allow stabilizing ABI-modifying compiler flags to control code generation, sanitizer integration, and so forth |
74 | 69 | * the ability to extract dependency info and to configure no-std without requiring it in the source file:
|
75 | 70 | * currently using `-Zbinary_dep_depinfo=y` and `-Zcrate-attr`
|
76 | 71 | * stable rustdoc features allowing the RFL project to extract and customize rustdoc tests (`--extract-doctests`);
|
@@ -152,3 +147,17 @@ As discussed on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/257328-c
|
152 | 147 | ### Blessed way to rebuild std
|
153 | 148 |
|
154 | 149 | See [build-std](./build-std.md) goal.
|
| 150 | + |
| 151 | +## Frequently asked questions |
| 152 | + |
| 153 | +### What kind of compiler flags will Rust-for-Linux need? |
| 154 | + |
| 155 | +Implementing RFC #3716, coupled with a [blessed way to build std](./build-std.md), will allow the full use of flags that modify the ABI. We will need to ultimately stabilize the full set of flags used by RFL, which include at least the following: |
| 156 | + |
| 157 | +* arm64: `-Zbranch-protection`, `-Zfixed-x18`, `-Zuse-sync-unwind`. |
| 158 | +* x86: `-Zcf-protection`, `-Zfunction-return`, `-Zno-jump-tables`, `-Zpatchable-function-entry`, retpoline (`+retpoline-external-thunk,+retpoline-indirect-branches,+retpoline-indirect-calls`), SLS (`+harden-sls-ijmp,+harden-sls-ret`). |
| 159 | +* x86 32-bit: `-Zregparm=3`, `-Zreg-struct-return`. |
| 160 | +* LoongArch: `-Zdirect-access-external-data`. |
| 161 | +* production sanitizer flags: `-Zsanitizer=shadow-call-stack`, `-Zsanitizer=kcfi`, `-Zsanitizer-cfi-normalize-integer`. |
| 162 | + |
| 163 | +Stabilization decisions for each flag will be made independently. We will likely take a future goal to drive some percentage of them to stabilization once RFC #3716 is implemented. |
0 commit comments