From bdd1412fc4e4724827184691030945ffc8c9c9ea Mon Sep 17 00:00:00 2001 From: julihoh Date: Mon, 23 Aug 2021 09:55:13 +0200 Subject: [PATCH] Symcc runtime docsrs fix (#270) * add symcc as submodule * make build script docs.rs aware * bump version of symcc_runtime --- .gitmodules | 3 +++ libafl_concolic/symcc_runtime/Cargo.toml | 2 +- libafl_concolic/symcc_runtime/build.rs | 16 +++++++++++----- libafl_concolic/symcc_runtime/symcc | 1 + 4 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 .gitmodules create mode 160000 libafl_concolic/symcc_runtime/symcc diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..56944864fe --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libafl_concolic/symcc_runtime/symcc"] + path = libafl_concolic/symcc_runtime/symcc + url = ../symcc.git diff --git a/libafl_concolic/symcc_runtime/Cargo.toml b/libafl_concolic/symcc_runtime/Cargo.toml index 15ba4e4c6c..4a8fd4b8a0 100644 --- a/libafl_concolic/symcc_runtime/Cargo.toml +++ b/libafl_concolic/symcc_runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "symcc_runtime" -version = "0.1.0" +version = "0.1.1" edition = "2018" authors = ["Julius Hohnerlein ", "Andrea Fioraldi ", "Dominik Maier "] description = "Build Concolic Tracing tools based on SymCC in Rust" diff --git a/libafl_concolic/symcc_runtime/build.rs b/libafl_concolic/symcc_runtime/build.rs index 2bdc07e93b..26b9e19582 100644 --- a/libafl_concolic/symcc_runtime/build.rs +++ b/libafl_concolic/symcc_runtime/build.rs @@ -66,7 +66,9 @@ fn main() { write_symcc_runtime_bindings_file(&out_path, &cpp_bindings); write_cpp_function_export_macro(&out_path, &cpp_bindings); - if std::env::var("CARGO_FEATURE_NO_CPP_RUNTIME").is_err() { + if std::env::var("CARGO_FEATURE_NO_CPP_RUNTIME").is_err() + && std::env::var("DOCS_RS").is_err() + { let rename_header_path = out_path.join("rename.h"); write_symcc_rename_header(&rename_header_path, &cpp_bindings); build_and_link_symcc_runtime(&symcc_src_path, &rename_header_path); @@ -105,11 +107,15 @@ fn write_cpp_function_export_macro(out_path: &Path, cpp_bindings: &bindgen::Bind } fn checkout_symcc(out_path: &Path) -> PathBuf { - let repo_dir = out_path.join("libafl_symcc_src"); - if !repo_dir.exists() { - clone_symcc(&repo_dir); + if std::env::var("DOCS_RS").is_ok() { + "symcc".into() + } else { + let repo_dir = out_path.join("libafl_symcc_src"); + if !repo_dir.exists() { + clone_symcc(&repo_dir); + } + repo_dir } - repo_dir } fn write_rust_runtime_macro_file(out_path: &Path, symcc_src_path: &Path) { diff --git a/libafl_concolic/symcc_runtime/symcc b/libafl_concolic/symcc_runtime/symcc new file mode 160000 index 0000000000..45cde0269a --- /dev/null +++ b/libafl_concolic/symcc_runtime/symcc @@ -0,0 +1 @@ +Subproject commit 45cde0269ae22aef4cca2e1fb98c3b24f7bb2984