|  | 
| 6 | 6 | ui/codegen/assembly test suites. It provides `core` stubs for tests that need to | 
| 7 | 7 | build for cross-compiled targets but do not need/want to run. | 
| 8 | 8 | 
 | 
|  | 9 | +<div class="warning"> | 
|  | 10 | +Please note that [`minicore`] is only intended for `core` items, and explicitly | 
|  | 11 | +**not** `std` or `alloc` items because `core` items are applicable to a wider | 
|  | 12 | +range of tests. | 
|  | 13 | +</div> | 
|  | 14 | + | 
| 9 | 15 | A test can use [`minicore`] by specifying the `//@ add-core-stubs` directive. | 
| 10 | 16 | Then, mark the test with `#![feature(no_core)]` + `#![no_std]` + `#![no_core]`. | 
| 11 | 17 | Due to Edition 2015 extern prelude rules, you will probably need to declare | 
| 12 | 18 | `minicore` as an extern crate. | 
| 13 | 19 | 
 | 
|  | 20 | +## Implied compiler flags | 
|  | 21 | + | 
| 14 | 22 | Due to the `no_std` + `no_core` nature of these tests, `//@ add-core-stubs` | 
| 15 | 23 | implies and requires that the test will be built with `-C panic=abort`. | 
| 16 |  | -Unwinding panics are not supported. | 
|  | 24 | +**Unwinding panics are not supported.** | 
|  | 25 | + | 
|  | 26 | +Tests will also be built with `-C force-unwind-tables=yes` to preserve CFI | 
|  | 27 | +directives in assembly tests. | 
|  | 28 | + | 
|  | 29 | +TL;DR: `//@ add-core-stubs` implies two compiler flags: | 
|  | 30 | + | 
|  | 31 | +1. `-C panic=abort` | 
|  | 32 | +2. `-C force-unwind-tables=yes` | 
|  | 33 | + | 
|  | 34 | +## Adding more `core` stubs | 
| 17 | 35 | 
 | 
| 18 | 36 | If you find a `core` item to be missing from the [`minicore`] stub, consider | 
| 19 | 37 | adding it to the test auxiliary if it's likely to be used or is already needed | 
| 20 | 38 | by more than one test. | 
| 21 | 39 | 
 | 
| 22 |  | -<div class="warning"> | 
| 23 |  | -Please note that [`minicore`] is only intended for `core` items, and explicitly | 
| 24 |  | -**not** `std` or `alloc` items because `core` items are applicable to a wider | 
| 25 |  | -range of tests. | 
| 26 |  | -</div> | 
| 27 |  | - | 
| 28 | 40 | ## Example codegen test that uses `minicore` | 
| 29 | 41 | 
 | 
| 30 | 42 | ```rust,no_run | 
|  | 
0 commit comments