diff --git a/src/appendix/glossary.md b/src/appendix/glossary.md
index a94eca891..25a8924d1 100644
--- a/src/appendix/glossary.md
+++ b/src/appendix/glossary.md
@@ -78,7 +78,7 @@ Term | Meaning
soundness | A technical term in type theory. Roughly, if a type system is sound, then a program that type-checks is type-safe. That is, one can never (in safe rust) force a value into a variable of the wrong type. (see "completeness").
span | A location in the user's source code, used for error reporting primarily. These are like a file-name/line-number/column tuple on steroids: they carry a start/end point, and also track macro expansions and compiler desugaring. All while being packed into a few bytes (really, it's an index into a table). See the [`Span`] datatype for more.
substs | The substitutions for a given generic type or item (e.g. the `i32`, `u32` in `HashMap`).
-sysroot | The directory for build artifacts that are loaded by the compiler at runtime. ([see more](../building/bootstrapping.html#what-is-a-sysroot))
+sysroot | The directory for build artifacts that are loaded by the compiler at runtime. ([see more](../building/bootstrapping/what-bootstrapping-does.html#what-is-a-sysroot))
tag | The "tag" of an enum/generator encodes the [discriminant](#discriminant) of the active variant/state. Tags can either be "direct" (simply storing the discriminant in a field) or use a ["niche"](#niche).
TAIT | A type-alias `impl Trait`. Introduced in [RFC 2515](https://rust-lang.github.io/rfcs/2515-type_alias_impl_trait.html).
`tcx` | Standard variable name for the "typing context" (`TyCtxt`), main data structure of the compiler. ([see more](../ty.md))
diff --git a/src/backend/libs-and-metadata.md b/src/backend/libs-and-metadata.md
index b92a40b8b..b0823b9a5 100644
--- a/src/backend/libs-and-metadata.md
+++ b/src/backend/libs-and-metadata.md
@@ -164,7 +164,7 @@ compilation.
[`CStore`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/creader/struct.CStore.html
[`CrateMetadata`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/rmeta/decoder/struct.CrateMetadata.html
[`GlobalCtxt`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.GlobalCtxt.html
-[sysroot]: ../building/bootstrapping.md#what-is-a-sysroot
+[sysroot]: ../building/bootstrapping/what-bootstrapping-does.md#what-is-a-sysroot
## Pipelining
diff --git a/src/building/bootstrapping/what-bootstrapping-does.md b/src/building/bootstrapping/what-bootstrapping-does.md
index 6920ee526..60569256e 100644
--- a/src/building/bootstrapping/what-bootstrapping-does.md
+++ b/src/building/bootstrapping/what-bootstrapping-does.md
@@ -85,7 +85,7 @@ because one must first build the new compiler with an older compiler
and then use that to build the new compiler with itself.
For development, you usually only want the `stage1` compiler,
which you can build with `./x build library`.
-See [Building the compiler](./how-to-build-and-run.html#building-the-compiler).
+See [Building the compiler](../how-to-build-and-run.html#building-the-compiler).
### Stage 3: the same-result test
@@ -131,7 +131,7 @@ a compiler that's not nightly. This should never be used except when
bootstrapping the compiler.
[boot]: https://en.wikipedia.org/wiki/Bootstrapping_(compilers)
-[intrinsics]: ../appendix/glossary.md#intrinsic
+[intrinsics]: ../../appendix/glossary.md#intrinsic
[ocaml-compiler]: https://github.com/rust-lang/rust/tree/ef75860a0a72f79f97216f8aaa5b388d98da6480/src/boot
## Understanding stages of bootstrap
@@ -157,7 +157,7 @@ Build artifacts include, but are not limited to:
- [rlib] files, like `stage0-sysroot/rustlib/libstd-6fae108520cf72fe.rlib`
- HTML files generated by rustdoc, like `doc/std`
-[rlib]: ../serialization.md
+[rlib]: ../../serialization.md
#### Examples
@@ -390,7 +390,7 @@ method][env-vars] of configuring C compilers and C flags via environment
variables.
[cc-rs crate]: https://github.com/rust-lang/cc-rs
-[env-vars]: https://github.com/rust-lang/cc-rs#external-configuration-via-environment-variables
+[env-vars]: https://docs.rs/cc/latest/cc/#external-configuration-via-environment-variables
## Clarification of build command's stdout
diff --git a/src/compiler-src.md b/src/compiler-src.md
index 6090c6787..73f203d03 100644
--- a/src/compiler-src.md
+++ b/src/compiler-src.md
@@ -173,7 +173,7 @@ from `src/tools/`, such as [`tidy`] or [`compiletest`].
[`tidy`]: https://github.com/rust-lang/rust/tree/master/src/tools/tidy
[`compiletest`]: https://github.com/rust-lang/rust/tree/master/src/tools/compiletest
-[bootstch]: ./building/bootstrapping.md
+[bootstch]: ./building/bootstrapping/intro.md
## Standard library
diff --git a/src/overview.md b/src/overview.md
index 2a6efc94e..36de212d6 100644
--- a/src/overview.md
+++ b/src/overview.md
@@ -370,7 +370,7 @@ For more details on bootstrapping, see
[the bootstrapping section of the guide][rustc-bootstrap].
[_bootstrapping_]: https://en.wikipedia.org/wiki/Bootstrapping_(compilers)
-[rustc-bootstrap]: building/bootstrapping.md
+[rustc-bootstrap]: building/bootstrapping/intro.md