Skip to content

Commit 8e6f50b

Browse files
committed
fix path and the ordering logic
Signed-off-by: onur-ozkan <[email protected]>
1 parent 3f70f19 commit 8e6f50b

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

Diff for: src/bootstrap/src/core/config/config.rs

+28-26
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,30 @@ impl Merge for TomlConfig {
776776
}
777777
}
778778

779+
self.change_id.inner.merge(None, &mut Default::default(), change_id.inner, replace);
780+
self.profile.merge(None, &mut Default::default(), profile, replace);
781+
782+
do_merge(&mut self.build, build, replace);
783+
do_merge(&mut self.install, install, replace);
784+
do_merge(&mut self.llvm, llvm, replace);
785+
do_merge(&mut self.gcc, gcc, replace);
786+
do_merge(&mut self.rust, rust, replace);
787+
do_merge(&mut self.dist, dist, replace);
788+
789+
match (self.target.as_mut(), target) {
790+
(_, None) => {}
791+
(None, Some(target)) => self.target = Some(target),
792+
(Some(original_target), Some(new_target)) => {
793+
for (triple, new) in new_target {
794+
if let Some(original) = original_target.get_mut(&triple) {
795+
original.merge(None, &mut Default::default(), new, replace);
796+
} else {
797+
original_target.insert(triple, new);
798+
}
799+
}
800+
}
801+
}
802+
779803
let parent_dir = parent_config_path
780804
.as_ref()
781805
.and_then(|p| p.parent().map(ToOwned::to_owned))
@@ -810,30 +834,6 @@ impl Merge for TomlConfig {
810834

811835
included_extensions.remove(&include_path);
812836
}
813-
814-
self.change_id.inner.merge(None, &mut Default::default(), change_id.inner, replace);
815-
self.profile.merge(None, &mut Default::default(), profile, replace);
816-
817-
do_merge(&mut self.build, build, replace);
818-
do_merge(&mut self.install, install, replace);
819-
do_merge(&mut self.llvm, llvm, replace);
820-
do_merge(&mut self.gcc, gcc, replace);
821-
do_merge(&mut self.rust, rust, replace);
822-
do_merge(&mut self.dist, dist, replace);
823-
824-
match (self.target.as_mut(), target) {
825-
(_, None) => {}
826-
(None, Some(target)) => self.target = Some(target),
827-
(Some(original_target), Some(new_target)) => {
828-
for (triple, new) in new_target {
829-
if let Some(original) = original_target.get_mut(&triple) {
830-
original.merge(None, &mut Default::default(), new, replace);
831-
} else {
832-
original_target.insert(triple, new);
833-
}
834-
}
835-
}
836-
}
837837
}
838838
}
839839

@@ -1640,12 +1640,14 @@ impl Config {
16401640
// This must be handled before applying the `profile` since `include`s should always take
16411641
// precedence over `profile`s.
16421642
for include_path in toml.include.clone().unwrap_or_default().iter().rev() {
1643-
let included_toml = get_toml(include_path).unwrap_or_else(|e| {
1643+
let include_path = toml_path.parent().unwrap().join(include_path);
1644+
1645+
let included_toml = get_toml(&include_path).unwrap_or_else(|e| {
16441646
eprintln!("ERROR: Failed to parse '{}': {e}", include_path.display());
16451647
exit!(2);
16461648
});
16471649
toml.merge(
1648-
Some(toml_path.join(include_path)),
1650+
Some(include_path),
16491651
&mut Default::default(),
16501652
included_toml,
16511653
ReplaceOpt::IgnoreDuplicate,

0 commit comments

Comments
 (0)