about summary refs log tree commit diff
path: root/src/doc
AgeCommit message (Collapse)AuthorLines
2022-07-28location-detail: disable all location details when passed `none`Hudson Ayers-2/+3
Prior to this fix, `-Z location-detail` provided no mechanism for disabling all location details. This commit also adds a test case to verify that this option continues to work as intended, and clarifies the documentation of this option.
2022-07-28Update custom.mdxtexChooser-2/+2
2022-07-27doc/rustc: describe the uefi target platformsDavid Rheinsberg-0/+255
Add a `platform-support` entry to the rustc-docs for the different `*-unknown-uefi` targets. This describes in detail how this platform works, a few basic examples, and how to compile for the platform. Red Hat is sponsoring my work on this platform, so I am putting myself down as target maintainer. Co-maintainers are more than welcome to join me in the effort. Communication is going on off-list to coordinate the different efforts. Note that the ultimate goal is to move the UEFI targets to Tier-2 so bootloaders can be more easily supported in commercial products. This documentation is the first step towards that goal, but should be a viable documentation even for the current Tier-3 status of the targets. I also want to point out that there is an ongoing GSoC-effort to port the rust standard library to UEFI (by Ayush Singh). While this work is not necessarily required to get to Tier-2, we definitely should coordinate the efforts and update the documentation as soon as any such ports are merged. Note that the targets are already used by multiple commercial and non commercial production systems, including, but not limited to: * Tianocore-EDK2 (Official UEFI SDK by Intel) comes with rust support in its staging repository (not part of any release, yet). (https://github.com/tianocore/edk2-staging/tree) * Intel's research program "Project Mu" uses the rust UEFI targets to show possible future replacements for Tianocore-EDK2. * The Rust OS "Redox" uses the UEFI targets for its bootloader. (https://www.redox-os.org/) * The hugely popular in-depth documentation of OS development in Rust by Philipp Oppermann uses the UEFI targets. (https://os.phil-opp.com/) Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
2022-07-26Document how to build a cross-compilerbstrie-4/+45
2022-07-26Add documentation about Microsoft provided debuggers and CodeView/PDB… (#1406)ridwanabdillahi-1/+35
Co-authored-by: Yuki Okushi <jtitor@2k36.org> Co-authored-by: Ridwan Abdilahi <riabdila@microsoft.com>
2022-07-25Fix some broken link fragments.Eric Huss-2/+2
2022-07-25rust-analyzer is now a subtreeAmos Wenger-1/+2
It used to be a submodule. cf. https://github.com/rust-lang/rust/pull/99603
2022-07-24Auto merge of #95548 - rcvalle:rust-cfi-2, r=nagisabors-29/+85
Add fine-grained LLVM CFI support to the Rust compiler This PR improves the LLVM Control Flow Integrity (CFI) support in the Rust compiler by providing forward-edge control flow protection for Rust-compiled code only by aggregating function pointers in groups identified by their return and parameter types. Forward-edge control flow protection for C or C++ and Rust -compiled code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code share the same virtual address space) will be provided in later work as part of this project by identifying C char and integer type uses at the time types are encoded (see Type metadata in the design document in the tracking issue https://github.com/rust-lang/rust/issues/89653). LLVM CFI can be enabled with -Zsanitizer=cfi and requires LTO (i.e., -Clto). Thank you again, `@eddyb,` `@nagisa,` `@pcc,` and `@tmiasko` for all the help!
2022-07-23Auto merge of #98208 - ivanloz:master, r=nagisabors-1/+16
Add support for LLVM ShadowCallStack. LLVMs ShadowCallStack provides backward edge control flow integrity protection by using a separate shadow stack to store and retrieve a function's return address. LLVM currently only supports this for AArch64 targets. The x18 register is used to hold the pointer to the shadow stack, and therefore this only works on ABIs which reserve x18. Further details are available in the [LLVM ShadowCallStack](https://clang.llvm.org/docs/ShadowCallStack.html) docs. # Usage `-Zsanitizer=shadow-call-stack` # Comments/Caveats * Currently only enabled for the aarch64-linux-android target * Requires the platform to define a runtime to initialize the shadow stack, see the [LLVM docs](https://clang.llvm.org/docs/ShadowCallStack.html) for more detail.
2022-07-23Update documentation for LLVM CFI supportRamon de C Valle-29/+85
This commit updates the documentation for the LLVM Control Flow Integrity (CFI) support in the Rust compiler (see #95548 and #89653).
2022-07-21Update booksEric Huss-0/+0
2022-07-21Debuginfo tests now also support revisions.Luqman Aden-3/+3
2022-07-20Remove implicit names and values from --cfg in --check-cfgUrgau-26/+9
2022-07-20Add ShadowCallStack SupportIvan Lozano-1/+16
Adds support for the LLVM ShadowCallStack sanitizer.
2022-07-19Link to rendered book directlyAmos Wenger-1/+1
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
2022-07-19Fix link to clippy sync docsAmos Wenger-1/+1
2022-07-19remove stray markupTshepang Mbambo-2/+0
2022-07-19renamedTshepang Mbambo-1/+1
2022-07-19sync with hackmd versionTshepang Mbambo-87/+151
See https://hackmd.io/5t8pLdJcRDmqbfN9ZXje3g
2022-07-19replace misleading name (#1401)Tshepang Mbambo-2/+2
2022-07-18Remove a mention to Steve on r? exampleYuki Okushi-5/+3
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-17obey line length limit (part 3)Tshepang Mbambo-7/+20
2022-07-17obey line length limit (part 2)Tshepang Mbambo-1/+7
2022-07-17obey line length limitTshepang Mbambo-1/+4
2022-07-17sync with hackmdHackMD-7/+26
2022-07-17add draft chapterNiko Matsakis-0/+175
2022-07-17add mdbook-mermaidNiko Matsakis-1/+12
2022-07-17use relative linksTshepang Mbambo-43/+43
Used the following command, followed by some manual tweaking: sd 'https://rustc-dev-guide.rust-lang.org/(.+).html' '$1.md' (fd)
2022-07-17fix some typos (#1398)Tshepang Mbambo-6/+6
2022-07-16typo: monomorph docsdavidrusu-1/+1
2022-07-16Rename debugging_opts to unstable_opts, use link5225225-1/+2
2022-07-15address review commentTshepang Mbambo-2/+2
https://github.com/rust-lang/rustc-dev-guide/pull/1392#discussion_r921560851
2022-07-15update date reference on MIR inlinerTshepang Mbambo-2/+3
cc #1379
2022-07-15remove outdated info on debuggingTshepang Mbambo-74/+37
Closes #1391 Also, do some small fixes/improvements while at it.
2022-07-15small fixes to ty chapter (#1390)Tshepang Mbambo-11/+21
2022-07-14Rename aarch64-nintendo-switch to aarch64-nintendo-switch-freestandingleo60228-6/+6
2022-07-14Add aarch64-nintendo-switch.md to SUMMARY.mdleo60228-0/+1
I can't think of any other reason CI might be failing, and I should've done this anyway.
2022-07-14Add docs for Switch targetleo60228-1/+50
2022-07-14Add Nintendo Switch tier 3 targetjam1garner-0/+1
2022-07-13Rename `debugging_opts` to `unstable_opts`Joshua Nelson-1/+1
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`). Rename it to be more clear.
2022-07-13Rollup merge of #98848 - flip1995:clippy-book, r=jyn514Guillaume Gomez-0/+4
Build the Clippy book as part of x.py doc r? ``@ehuss`` since you said you would be interested in helping moving this forward. cc ``@jyn514`` as part of the bootstrap team.
2022-07-11Update the build instructions for the standard libraryJoshua Nelson-43/+30
Since https://github.com/rust-lang/rust/pull/95503, `library/std` means "build just std and its dependencies"; to get the old behavior that built `proc_macro` and `test`, you need `x build library`. - Update `library/std` to `library` - Remove the `-i` suggestions; `incremental = true` is already the default for most profiles, in which case `-i` does nothing. If you don't have incremental enabled, I still think suggesting `-i` is bad idea, because it's easy to forget once, at which point you'll end up rebuilding the whole compiler / standard library. - Remove a few repetitive sections and don't discuss incremental in such detail Incremental works well enough that it should "just work" for most people; I don't think it needs multiple paragraphs of explanation so early in the guide. - Clarify that `test library/std` *only* tests libstd in a few places
2022-07-08Implement support for DWARF version 5.Patrick Walton-0/+9
DWARF version 5 brings a number of improvements over version 4. Quoting from the announcement [1]: > Version 5 incorporates improvements in many areas: better data compression, > separation of debugging data from executable files, improved description of > macros and source files, faster searching for symbols, improved debugging > optimized code, as well as numerous improvements in functionality and > performance. On platforms where DWARF version 5 is supported (Linux, primarily), this commit adds support for it behind a new `-Z dwarf-version=5` flag. [1]: https://dwarfstd.org/Public_Review.php
2022-07-08overview.md: Link to existing Macro Expansion and Name Resolution docs (#1388)Martin Nordholts-2/+2
2022-07-07Git-ignore `pulls.json` (#1386)Yuki Okushi-0/+3
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-07Revert "Add the config needed to get rust-analyzer working on src/bootstrap ↵Santiago Pastorino-4/+0
(#1381)" This reverts commit d955bab63c229c3160e3023f44496ad93a81f3ab.
2022-07-06Use `x.py check` instead of `cargo check` for build scripts (#1384)Joshua Nelson-4/+3
Cargo check isn't supported and gives an error that CFG_CHANNEL is missing. It also generates a new target dir and recompiles dependencies. Use x.py instead, which avoids both issues.
2022-07-06Add Clippy book link to rust doc index pagePhilipp Krones-0/+4
2022-07-05Update booksEric Huss-0/+0
2022-07-03Suggest a separate build directory for rust-analyzer (#1378)Joshua Nelson-0/+4