Fix fuzzbench build (#1004)
* Fix -z,defs handle * Add libfuzzer_no_link_main option in libfuzzer * Use libfuzzer_no_link_main for fuzzbench * no_link_main feature --------- Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
This commit is contained in:
parent
f8a4a020e8
commit
44b69666da
@ -7,6 +7,7 @@ edition = "2021"
|
||||
[features]
|
||||
default = ["std"]
|
||||
std = []
|
||||
no_link_main = ["libafl_targets/libfuzzer_no_link_main"]
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
|
@ -7,6 +7,7 @@ edition = "2021"
|
||||
[features]
|
||||
default = ["std"]
|
||||
std = []
|
||||
no_link_main = ["libafl_targets/libfuzzer_no_link_main"]
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
|
@ -167,8 +167,10 @@ impl CompilerWrapper for ClangWrapper {
|
||||
i += 1;
|
||||
continue;
|
||||
}
|
||||
"-z" => {
|
||||
if i + 1 < args.len() && args[i + 1].as_ref() == "defs" {
|
||||
"-z" | "-Wl,-z" => {
|
||||
if i + 1 < args.len()
|
||||
&& (args[i + 1].as_ref() == "defs" || args[i + 1].as_ref() == "-Wl,defs")
|
||||
{
|
||||
i += 2;
|
||||
continue;
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ categories = ["development-tools::testing", "emulators", "embedded", "os", "no-s
|
||||
default = ["std", "sanitizers_flags"]
|
||||
std = ["libafl/std"]
|
||||
libfuzzer = []
|
||||
libfuzzer_no_link_main = ["libfuzzer"]
|
||||
sanitizers_flags = []
|
||||
pointer_maps = []
|
||||
sancov_pcguard_edges = []
|
||||
|
@ -84,9 +84,13 @@ fn main() {
|
||||
{
|
||||
println!("cargo:rerun-if-changed=src/libfuzzer.c");
|
||||
|
||||
cc::Build::new()
|
||||
.file(src_dir.join("libfuzzer.c"))
|
||||
.compile("libfuzzer");
|
||||
let mut libfuzzer = cc::Build::new();
|
||||
libfuzzer.file(src_dir.join("libfuzzer.c"));
|
||||
|
||||
#[cfg(feature = "libfuzzer_no_link_main")]
|
||||
libfuzzer.define("FUZZER_NO_LINK_MAIN", "1");
|
||||
|
||||
libfuzzer.compile("libfuzzer");
|
||||
}
|
||||
|
||||
println!("cargo:rerun-if-changed=src/common.h");
|
||||
|
@ -18,6 +18,8 @@ EXT_FUNC_IMPL(LLVMFuzzerTestOneInput, int, (uint8_t *Data, size_t Size), false)
|
||||
|
||||
EXT_FUNC_IMPL(libafl_main, void, (void), false) {
|
||||
}
|
||||
|
||||
#ifndef FUZZER_NO_LINK_MAIN
|
||||
EXT_FUNC_IMPL(main, int, (int argc, char** argv), false) {
|
||||
libafl_main();
|
||||
return 0;
|
||||
@ -30,6 +32,7 @@ int main(int argc, char** argv) {
|
||||
libafl_main();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user