Make ddg map compilation optional (#2341)
* Make ddg map compilation optional * undo * undo
This commit is contained in:
parent
ea6e440762
commit
8031111660
@ -13,6 +13,9 @@ categories = ["development-tools::testing", "emulators", "embedded", "os", "no-s
|
|||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = []
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
cc = { version = "1.0", features = ["parallel"] }
|
cc = { version = "1.0", features = ["parallel"] }
|
||||||
which = "6.0"
|
which = "6.0"
|
||||||
|
@ -152,7 +152,7 @@ fn build_pass(
|
|||||||
src_dir: &Path,
|
src_dir: &Path,
|
||||||
src_file: &str,
|
src_file: &str,
|
||||||
additional_srcfiles: Option<&Vec<&str>>,
|
additional_srcfiles: Option<&Vec<&str>>,
|
||||||
optional: bool,
|
required: bool,
|
||||||
) {
|
) {
|
||||||
let dot_offset = src_file.rfind('.').unwrap();
|
let dot_offset = src_file.rfind('.').unwrap();
|
||||||
let src_stub = &src_file[..dot_offset];
|
let src_stub = &src_file[..dot_offset];
|
||||||
@ -164,7 +164,7 @@ fn build_pass(
|
|||||||
};
|
};
|
||||||
|
|
||||||
println!("cargo:rerun-if-changed=src/{src_file}");
|
println!("cargo:rerun-if-changed=src/{src_file}");
|
||||||
let r = if cfg!(unix) {
|
let command_result = if cfg!(unix) {
|
||||||
let r = Command::new(bindir_path.join("clang++"))
|
let r = Command::new(bindir_path.join("clang++"))
|
||||||
.arg("-v")
|
.arg("-v")
|
||||||
.arg(format!("--target={}", env::var("HOST").unwrap()))
|
.arg(format!("--target={}", env::var("HOST").unwrap()))
|
||||||
@ -198,27 +198,27 @@ fn build_pass(
|
|||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
match r {
|
match command_result {
|
||||||
Some(r) => match r {
|
Some(res) => match res {
|
||||||
Ok(s) => {
|
Ok(s) => {
|
||||||
if !s.success() {
|
if !s.success() {
|
||||||
if optional {
|
if required {
|
||||||
println!("cargo:warning=Skipping src/{src_file} - Exit status: {s}");
|
panic!("Failed to compile required compiler pass src/{src_file} - Exit status: {s}");
|
||||||
} else {
|
} else {
|
||||||
panic!("Failed to compile {src_file} - Exit status: {s}");
|
println!("cargo:warning=Skipping non-required compiler pass src/{src_file} - Reason: Exit status {s}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
if optional {
|
if required {
|
||||||
println!("cargo:warning=Skipping src/{src_file} - {err}");
|
panic!("Failed to compile required compiler pass src/{src_file} - {err}");
|
||||||
} else {
|
} else {
|
||||||
panic!("Failed to compile {src_file} - {err}");
|
println!("cargo:warning=Skipping non-required compiler pass src/{src_file} - Reason: {err}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
None => {
|
None => {
|
||||||
println!("cargo:warning=Skipping src/{src_file} - Only supported on Windows or *nix.");
|
println!("cargo:warning=Skipping compiler pass src/{src_file} - Only supported on Windows or *nix.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option<usize> = None;
|
|||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
for pass in &[
|
for pass in [
|
||||||
"function-logging.cc",
|
"function-logging.cc",
|
||||||
"cmplog-routines-pass.cc",
|
"cmplog-routines-pass.cc",
|
||||||
"autotokens-pass.cc",
|
"autotokens-pass.cc",
|
||||||
@ -443,12 +443,12 @@ pub const LIBAFL_CC_LLVM_VERSION: Option<usize> = None;
|
|||||||
src_dir,
|
src_dir,
|
||||||
pass,
|
pass,
|
||||||
None,
|
None,
|
||||||
false,
|
true,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Optional pass
|
// Optional pass
|
||||||
for pass in &["dump-cfg-pass.cc", "profiling.cc"] {
|
for pass in ["dump-cfg-pass.cc", "profiling.cc"] {
|
||||||
build_pass(
|
build_pass(
|
||||||
bindir_path,
|
bindir_path,
|
||||||
out_dir,
|
out_dir,
|
||||||
@ -457,7 +457,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option<usize> = None;
|
|||||||
src_dir,
|
src_dir,
|
||||||
pass,
|
pass,
|
||||||
None,
|
None,
|
||||||
true,
|
false,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -434,7 +434,7 @@ pub fn build(
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
let mut objects = vec![];
|
let mut objects = vec![];
|
||||||
for dir in &[
|
for dir in [
|
||||||
build_dir.join("libcommon.fa.p"),
|
build_dir.join("libcommon.fa.p"),
|
||||||
build_dir.join(format!("libqemu-{cpu_target}-{target_suffix}.fa.p")),
|
build_dir.join(format!("libqemu-{cpu_target}-{target_suffix}.fa.p")),
|
||||||
] {
|
] {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user