Skip to content

Commit 66b80a3

Browse files
committed
use serde_json::Value instead of target-spec-json for compatibility
Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
1 parent c98679d commit 66b80a3

3 files changed

Lines changed: 13 additions & 21 deletions

File tree

Cargo.lock

Lines changed: 0 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,4 @@ regex = "1.12"
1414
semver = { version = "1.0", features = ["serde"] }
1515
serde = { version = "1.0", features = ["derive"] }
1616
serde_json = "1.0"
17-
# pin target-spec-json to 0.2.1 as 0.2.3 ist incompatible with older rustc versions
18-
target-spec-json = "=0.2.1"
1917
which = { version = "8", features = ["regex"] }

src/sysroot.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::ops::Not as _;
22
use std::path::PathBuf;
33

44
use anyhow::{Context, Result, bail, ensure};
5-
use target_spec_json::TargetSpec;
5+
use serde_json::{Map, Value, json};
66

77
use crate::cargo_cmd::{CargoCmd, cargo_cmd};
88
use crate::cli::Args;
@@ -26,11 +26,17 @@ pub fn build(args: &Args) -> Result<()> {
2626
let mut spec = get_spec(args, "x86_64-unknown-none")?;
2727
// entry_name seems to be ignored, use RUSTFLAGS with -Clink-args=-eentrypoint instead
2828
//spec.entry_name = Some("entrypoint".into());
29-
spec.code_model = Some("small".into());
30-
spec.linker = Some("rust-lld".into());
31-
spec.linker_flavor = Some("gnu-lld".into());
32-
spec.pre_link_args =
33-
Some([("gnu-lld".to_string(), vec!["-znostart-stop-gc".to_string()])].into());
29+
let Value::Object(custom) = json!({
30+
"code-model": "small",
31+
"linker": "rust-lld",
32+
"linker-flavor": "gnu-lld",
33+
"pre-link-args": {
34+
"gnu-lld": ["-znostart-stop-gc"],
35+
},
36+
}) else {
37+
unreachable!()
38+
};
39+
spec.extend(custom);
3440
spec
3541
}
3642
triplet => bail!(
@@ -199,7 +205,7 @@ Supported values are:
199205
Ok(())
200206
}
201207

202-
fn get_spec(args: &Args, triplet: impl AsRef<str>) -> Result<TargetSpec> {
208+
fn get_spec(args: &Args, triplet: impl AsRef<str>) -> Result<Map<String, Value>> {
203209
let output = cargo_cmd()?
204210
.env_clear()
205211
.envs(args.env.iter())

0 commit comments

Comments
 (0)