Skip to content

Commit 8031111

Browse files
authored
Make ddg map compilation optional (#2341)
* Make ddg map compilation optional * undo * undo
1 parent ea6e440 commit 8031111

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

libafl_cc/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ categories = ["development-tools::testing", "emulators", "embedded", "os", "no-s
1313

1414
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1515

16+
[features]
17+
default = []
18+
1619
[build-dependencies]
1720
cc = { version = "1.0", features = ["parallel"] }
1821
which = "6.0"

libafl_cc/build.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ fn build_pass(
152152
src_dir: &Path,
153153
src_file: &str,
154154
additional_srcfiles: Option<&Vec<&str>>,
155-
optional: bool,
155+
required: bool,
156156
) {
157157
let dot_offset = src_file.rfind('.').unwrap();
158158
let src_stub = &src_file[..dot_offset];
@@ -164,7 +164,7 @@ fn build_pass(
164164
};
165165

166166
println!("cargo:rerun-if-changed=src/{src_file}");
167-
let r = if cfg!(unix) {
167+
let command_result = if cfg!(unix) {
168168
let r = Command::new(bindir_path.join("clang++"))
169169
.arg("-v")
170170
.arg(format!("--target={}", env::var("HOST").unwrap()))
@@ -198,27 +198,27 @@ fn build_pass(
198198
None
199199
};
200200

201-
match r {
202-
Some(r) => match r {
201+
match command_result {
202+
Some(res) => match res {
203203
Ok(s) => {
204204
if !s.success() {
205-
if optional {
206-
println!("cargo:warning=Skipping src/{src_file} - Exit status: {s}");
205+
if required {
206+
panic!("Failed to compile required compiler pass src/{src_file} - Exit status: {s}");
207207
} else {
208-
panic!("Failed to compile {src_file} - Exit status: {s}");
208+
println!("cargo:warning=Skipping non-required compiler pass src/{src_file} - Reason: Exit status {s}");
209209
}
210210
}
211211
}
212212
Err(err) => {
213-
if optional {
214-
println!("cargo:warning=Skipping src/{src_file} - {err}");
213+
if required {
214+
panic!("Failed to compile required compiler pass src/{src_file} - {err}");
215215
} else {
216-
panic!("Failed to compile {src_file} - {err}");
216+
println!("cargo:warning=Skipping non-required compiler pass src/{src_file} - Reason: {err}");
217217
}
218218
}
219219
},
220220
None => {
221-
println!("cargo:warning=Skipping src/{src_file} - Only supported on Windows or *nix.");
221+
println!("cargo:warning=Skipping compiler pass src/{src_file} - Only supported on Windows or *nix.");
222222
}
223223
}
224224
}
@@ -427,7 +427,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option<usize> = None;
427427
false,
428428
);
429429

430-
for pass in &[
430+
for pass in [
431431
"function-logging.cc",
432432
"cmplog-routines-pass.cc",
433433
"autotokens-pass.cc",
@@ -443,12 +443,12 @@ pub const LIBAFL_CC_LLVM_VERSION: Option<usize> = None;
443443
src_dir,
444444
pass,
445445
None,
446-
false,
446+
true,
447447
);
448448
}
449449

450450
// Optional pass
451-
for pass in &["dump-cfg-pass.cc", "profiling.cc"] {
451+
for pass in ["dump-cfg-pass.cc", "profiling.cc"] {
452452
build_pass(
453453
bindir_path,
454454
out_dir,
@@ -457,7 +457,7 @@ pub const LIBAFL_CC_LLVM_VERSION: Option<usize> = None;
457457
src_dir,
458458
pass,
459459
None,
460-
true,
460+
false,
461461
);
462462
}
463463

libafl_qemu/libafl_qemu_build/src/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ pub fn build(
434434

435435
/*
436436
let mut objects = vec![];
437-
for dir in &[
437+
for dir in [
438438
build_dir.join("libcommon.fa.p"),
439439
build_dir.join(format!("libqemu-{cpu_target}-{target_suffix}.fa.p")),
440440
] {

0 commit comments

Comments
 (0)