Skip to content

Commit dadd087

Browse files
author
Niko Matsakis
committed
adjust RFL description to focus on RFC #3716
move list of flags to a FAQ
1 parent aa6d38e commit dadd087

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/2025h1/rfl.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
## Summary
1212

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.
1414

1515
## Motivation
1616

@@ -65,12 +65,7 @@ We also began work on tooling stabilization with an [RFC proposing an approach t
6565

6666
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.
6767

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
7469
* the ability to extract dependency info and to configure no-std without requiring it in the source file:
7570
* currently using `-Zbinary_dep_depinfo=y` and `-Zcrate-attr`
7671
* 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
152147
### Blessed way to rebuild std
153148

154149
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

Comments
 (0)