@@ -41,6 +41,14 @@ struct Cli {
41
41
42
42
#[derive(Debug, Clone, Deserialize)]
43
43
struct ConfigFile {
44
+ /// Whether to pass --inlines to dump_syms (cli flag overrides this)
45
+ inlines: Option<bool>,
46
+
47
+ /// What custom `-Csymbol-mangling-version` should be passed to rustc
48
+ #[serde(rename = "rust-mangling")]
49
+ rust_mangling: Option<String>,
50
+
51
+ // Various dirs
44
52
#[serde(default = "default_run_dir")]
45
53
run_dir: String,
46
54
#[serde(default = "default_install_dir")]
@@ -52,6 +60,7 @@ struct ConfigFile {
52
60
#[serde(default = "default_report_dir")]
53
61
report_dir: String,
54
62
63
+ // Various deps
55
64
#[serde(rename = "minidump-stackwalk")]
56
65
minidump_stackwalk: Dep,
57
66
dump_syms: Dep,
@@ -131,6 +140,7 @@ struct BuildEnv {
131
140
dump_dir: Utf8PathBuf,
132
141
report_dir: Utf8PathBuf,
133
142
run_dir: Utf8PathBuf,
143
+ rust_mangling: Option<String>,
134
144
}
135
145
136
146
/////////////////////////////////////////////////////////
@@ -293,6 +303,7 @@ fn do_pipeline(cli: &Cli, config: &ConfigFile) -> Result<(), PipelineError> {
293
303
report_dir: run_dir.join(&config.report_dir),
294
304
run_dir,
295
305
_root_dir: root_dir,
306
+ rust_mangling: config.rust_mangling.clone(),
296
307
};
297
308
298
309
if env.run_dir.exists() {
@@ -324,13 +335,15 @@ fn do_pipeline(cli: &Cli, config: &ConfigFile) -> Result<(), PipelineError> {
324
335
println!("artifacts built!");
325
336
println!();
326
337
338
+ let default_inlines = false;
339
+ let inlines = config.inlines.unwrap_or(default_inlines) || cli.inlines;
327
340
let app_sym = do_dump_syms(
328
341
&dump_syms.installed,
329
342
app.orig_bin_path
330
343
.as_ref()
331
344
.expect("app must be rebuilt for dump_syms!"),
332
345
&env,
333
- cli. inlines,
346
+ inlines,
334
347
)?;
335
348
let client_sym = do_dump_syms(
336
349
&dump_syms.installed,
@@ -339,7 +352,7 @@ fn do_pipeline(cli: &Cli, config: &ConfigFile) -> Result<(), PipelineError> {
339
352
.as_ref()
340
353
.expect("crash-client must be rebuilt for dump_syms!"),
341
354
&env,
342
- cli. inlines,
355
+ inlines,
343
356
)?;
344
357
let suite = do_get_suite(&app.installed)?;
345
358
@@ -710,6 +723,10 @@ fn build(to_build: &str, dep: &Dep, env: &BuildEnv) -> Result<InstallOutput, Pip
710
723
if cfg!(target_os = "macos") {
711
724
rustflags.push_str(" -Csplit-debuginfo=packed");
712
725
}
726
+ if let Some(rust_mangling) = &env.rust_mangling {
727
+ use std::fmt::Write;
728
+ write!(rustflags, " -Csymbol-mangling-version={}", rust_mangling).unwrap();
729
+ }
713
730
714
731
command.env("RUSTFLAGS", rustflags);
715
732
}
0 commit comments