Skip to content

Commit 487e8d8

Browse files
committed
Suggested -fpregs instead of +soft-float.
Has the same effect, but turning off a feature matches the other flags better than turning on a feature (which actually turns off a feature).
1 parent 3b1a956 commit 487e8d8

2 files changed

Lines changed: 30 additions & 16 deletions

File tree

‎src/doc/rustc/src/platform-support/thumbv7em-none-eabi.md‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ to use these flags.
3535
| CPU | FPU | DSP | Target CPU | Target Features |
3636
| ---------- | --- | --- | ----------- | --------------- |
3737
| Any | No | Yes | None | None |
38-
| Cortex-M4 | No | Yes |`cortex-m4`|`+soft-float`|
38+
| Cortex-M4 | No | Yes |`cortex-m4`|`-fpregs`|
3939
| Cortex-M4F | SP | Yes |`cortex-m4`| None |
40-
| Cortex-M7 | No | Yes |`cortex-m7`|`+soft-float`|
40+
| Cortex-M7 | No | Yes |`cortex-m7`|`-fpregs`|
4141
| Cortex-M7F | SP | Yes |`cortex-m7`|`-fp64`|
4242
| Cortex-M7F | DP | Yes |`cortex-m7`| None |
4343

@@ -50,6 +50,13 @@ to use these flags.
5050
| Cortex-M7F | SP | Yes |`cortex-m7`|`-fp64`|
5151
| Cortex-M7F | DP | Yes |`cortex-m7`| None |
5252

53+
<divclass="warning">
54+
55+
Never use the `-fpregs`*target-feature* with these `eabihf` targets
56+
as it will cause compilation units to have different ABIs, which is unsound.
57+
58+
</div>
59+
5360
### Arm Cortex-M4 and Arm Cortex-M4F
5461

5562
The target CPU is `cortex-m4`.
@@ -59,7 +66,7 @@ The target CPU is `cortex-m4`.
5966
* enabled by default with this *target*
6067
* Cortex-M4F has a single precision FPU
6168
* support is enabled by default with this *target-cpu*
62-
* disable support using the `+soft-float`feature (`eabi` only)
69+
* disable support using the `-fpregs`*target-feature* (`eabi` only)
6370

6471
### Arm Cortex-M7 and Arm Cortex-M7F
6572

@@ -71,4 +78,4 @@ The target CPU is `cortex-m7`.
7178
* Cortex-M7F have either a single-precision or double-precision FPU
7279
* double-precision support is enabled by default with this *target-cpu*
7380
* opt-out by using the `-f64`*target-feature*
74-
* disable support entirely using the `+soft-float`feature (`eabi` only)
81+
* disable support entirely using the `-fpregs`*target-feature* (`eabi` only)

‎src/doc/rustc/src/platform-support/thumbv8m.main-none-eabi.md‎

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,22 @@ to use these flags.
3939
| CPU | FPU | DSP | MVE | Target CPU | Target Features |
4040
| ----------- | --- | --- | --------- | ------------- | --------------------- |
4141
| Unspecified | No | No | No | None | None |
42-
| Cortex-M33 | No | No | No |`cortex-m33`|`+soft-float,-dsp`|
43-
| Cortex-M33 | No | Yes | No |`cortex-m33`|`+soft-float`|
42+
| Cortex-M33 | No | No | No |`cortex-m33`|`-fpregs,-dsp`|
43+
| Cortex-M33 | No | Yes | No |`cortex-m33`|`-fpregs`|
4444
| Cortex-M33 | SP | No | No |`cortex-m33`|`-dsp`|
4545
| Cortex-M33 | SP | Yes | No |`cortex-m33`| None |
46-
| Cortex-M35P | No | No | No |`cortex-m35p`|`+soft-float,-dsp`|
47-
| Cortex-M35P | No | Yes | No |`cortex-m35p`|`+soft-float`|
46+
| Cortex-M35P | No | No | No |`cortex-m35p`|`-fpregs,-dsp`|
47+
| Cortex-M35P | No | Yes | No |`cortex-m35p`|`-fpregs`|
4848
| Cortex-M35P | SP | No | No |`cortex-m35p`|`-dsp`|
4949
| Cortex-M35P | SP | Yes | No |`cortex-m35p`| None |
50-
| Cortex-M55 | No | Yes | No |`cortex-m55`|`+soft-float,-mve`|
50+
| Cortex-M55 | No | Yes | No |`cortex-m55`|`-fpregs,-mve`|
5151
| Cortex-M55 | DP | Yes | No |`cortex-m55`|`-mve`|
52-
| Cortex-M55 | No | Yes | Int |`cortex-m55`|`+soft-float,-mve.fp`|
52+
| Cortex-M55 | No | Yes | Int |`cortex-m55`|`-fpregs,-mve.fp,+mve`|
5353
| Cortex-M55 | DP | Yes | Int |`cortex-m55`|`-mve.fp`|
5454
| Cortex-M55 | DP | Yes | Int+Float |`cortex-m55`| None |
55-
| Cortex-M85 | No | Yes | No |`cortex-m85`|`+soft-float,-mve`|
55+
| Cortex-M85 | No | Yes | No |`cortex-m85`|`-fpregs,-mve`|
5656
| Cortex-M85 | DP | Yes | No |`cortex-m85`|`-mve`|
57-
| Cortex-M85 | No | Yes | Int |`cortex-m85`|`+soft-float,-mve.fp`|
57+
| Cortex-M85 | No | Yes | Int |`cortex-m85`|`-fpregs,-mve.fp,+mve`|
5858
| Cortex-M85 | DP | Yes | Int |`cortex-m85`|`-mve.fp`|
5959
| Cortex-M85 | DP | Yes | Int+Float |`cortex-m85`| None |
6060

@@ -74,6 +74,13 @@ to use these flags.
7474
| Cortex-M85 | DP | Yes | Int |`cortex-m85`|`-mve.fp`|
7575
| Cortex-M85 | DP | Yes | Int+Float |`cortex-m85`| None |
7676

77+
<divclass="warning">
78+
79+
Never use the `-fpregs`*target-feature* with these `eabihf` targets
80+
as it will cause compilation units to have different ABIs, which is unsound.
81+
82+
</div>
83+
7784
### Arm Cortex-M33
7885

7986
The target CPU is `cortex-m33`.
@@ -83,7 +90,7 @@ The target CPU is `cortex-m33`.
8390
* enabled by default with this *target-cpu*
8491
* Has an optional single precision FPU
8592
* support is enabled by default with this *target-cpu*
86-
* disable support using the `+soft-float`feature (`eabi` only)
93+
* disable support using the `-fpregs`*target-feature* (`eabi` only)
8794

8895
### Arm Cortex-M35P
8996

@@ -94,7 +101,7 @@ The target CPU is `cortex-m35p`.
94101
* enabled by default with this *target-cpu*
95102
* Has an optional single precision FPU
96103
* support is enabled by default with this *target-cpu*
97-
* disable support using the `+soft-float`feature (`eabi` only)
104+
* disable support using the `-fpregs`*target-feature* (`eabi` only)
98105

99106
### Arm Cortex-M55
100107

@@ -106,7 +113,7 @@ The target CPU is `cortex-m55`.
106113
* Has an optional double-precision FPU that also supports half-precision FP16
107114
values
108115
* support is enabled by default with this *target-cpu*
109-
* disable support using the `+soft-float`feature (`eabi` only)
116+
* disable support using the `-fpregs`*target-feature* (`eabi` only)
110117
* Has optional support for M-Profile Vector Extensions
111118
* Also known as *Helium Technology*
112119
* Available with only integer support, or both integer/float support
@@ -125,7 +132,7 @@ The target CPU is `cortex-m85`.
125132
* Has an optional double-precision FPU that also supports half-precision FP16
126133
values
127134
* support is enabled by default with this *target-cpu*
128-
* disable support using the `+soft-float`feature (`eabi` only)
135+
* disable support using the `-fpregs`*target-feature* (`eabi` only)
129136
* Has optional support for M-Profile Vector Extensions
130137
* Also known as *Helium Technology*
131138
* Available with only integer support, or both integer/float support

0 commit comments

Comments
 (0)