about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoshua Nelson <jyn514@gmail.com>2021-10-10 21:16:01 -0500
committerJoshua Nelson <jyn514@gmail.com>2021-10-10 21:18:57 -0500
commit7f974d0aae1a6bf7c8211b6cbd80a4f21606280e (patch)
tree474f1a744f36ea11979e3f5728ef2ab90b7b91de
parentf8751436ffce35cd1b7291b03b394166b77ff0da (diff)
downloadrust-7f974d0aae1a6bf7c8211b6cbd80a4f21606280e.tar.gz
rust-7f974d0aae1a6bf7c8211b6cbd80a4f21606280e.zip
Greatly reduce amount of debuginfo compiled for bootstrap itself
Rather than compiling rustbuild and all its dependencies with
`debuginfo=2`, this compiles dependencies without debuginfo and
rustbuild with `debuginfo=1`. On my laptop, this brings compile times
down from ~1:20 to ~1:05.
-rw-r--r--Cargo.toml9
-rw-r--r--src/bootstrap/bootstrap.py3
2 files changed, 10 insertions, 2 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 42dd5d7ef43..8d6afd2b448 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -89,6 +89,15 @@ gimli.debug = 0
 miniz_oxide.debug = 0
 object.debug = 0
 
+# The only package that ever uses debug builds is bootstrap.
+# We care a lot about bootstrap's compile times, so don't include debug info for
+# dependencies, only bootstrap itself.
+[profile.dev]
+debug = 0
+[profile.dev.package]
+# Only use debuginfo=1 to further reduce compile times.
+bootstrap.debug = 1
+
 # We want the RLS to use the version of Cargo that we've got vendored in this
 # repository to ensure that the same exact version of Cargo is used by both the
 # RLS and the Cargo binary itself. The RLS depends on Cargo as a git repository
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
index 05d7b0f611f..c51fdfe7aa4 100644
--- a/src/bootstrap/bootstrap.py
+++ b/src/bootstrap/bootstrap.py
@@ -921,10 +921,9 @@ class RustBuild(object):
         env["LIBRARY_PATH"] = os.path.join(self.bin_root(True), "lib") + \
             (os.pathsep + env["LIBRARY_PATH"]) \
             if "LIBRARY_PATH" in env else ""
+
         # preserve existing RUSTFLAGS
         env.setdefault("RUSTFLAGS", "")
-        env["RUSTFLAGS"] += " -Cdebuginfo=2"
-
         build_section = "target.{}".format(self.build)
         target_features = []
         if self.get_toml("crt-static", build_section) == "true":