about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--config.example.toml5
-rw-r--r--src/bootstrap/src/core/config/config.rs9
2 files changed, 13 insertions, 1 deletions
diff --git a/config.example.toml b/config.example.toml
index ac5e491b4b5..2dddb0099c1 100644
--- a/config.example.toml
+++ b/config.example.toml
@@ -164,6 +164,11 @@
 #build-config = {}
 
 # =============================================================================
+# Tweaking how GCC is compiled
+# =============================================================================
+[gcc]
+
+# =============================================================================
 # General build configuration options
 # =============================================================================
 [build]
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
index ac24da9f86b..7fda61b70f9 100644
--- a/src/bootstrap/src/core/config/config.rs
+++ b/src/bootstrap/src/core/config/config.rs
@@ -676,6 +676,7 @@ pub(crate) struct TomlConfig {
     build: Option<Build>,
     install: Option<Install>,
     llvm: Option<Llvm>,
+    gcc: Option<Gcc>,
     rust: Option<Rust>,
     target: Option<HashMap<String, TomlTarget>>,
     dist: Option<Dist>,
@@ -710,7 +711,7 @@ trait Merge {
 impl Merge for TomlConfig {
     fn merge(
         &mut self,
-        TomlConfig { build, install, llvm, rust, dist, target, profile, change_id }: Self,
+        TomlConfig { build, install, llvm, gcc, rust, dist, target, profile, change_id }: Self,
         replace: ReplaceOpt,
     ) {
         fn do_merge<T: Merge>(x: &mut Option<T>, y: Option<T>, replace: ReplaceOpt) {
@@ -729,6 +730,7 @@ impl Merge for TomlConfig {
         do_merge(&mut self.build, build, replace);
         do_merge(&mut self.install, install, replace);
         do_merge(&mut self.llvm, llvm, replace);
+        do_merge(&mut self.gcc, gcc, replace);
         do_merge(&mut self.rust, rust, replace);
         do_merge(&mut self.dist, dist, replace);
 
@@ -996,6 +998,11 @@ define_config! {
 }
 
 define_config! {
+    /// TOML representation of how the GCC build is configured.
+    struct Gcc {}
+}
+
+define_config! {
     struct Dist {
         sign_folder: Option<String> = "sign-folder",
         upload_addr: Option<String> = "upload-addr",