From ec38858b2d4945a7b9643244f945b92943885391 Mon Sep 17 00:00:00 2001 From: "Dongjia \"toka\" Zhang" Date: Thu, 17 Nov 2022 04:44:26 +0900 Subject: [PATCH] Fix Makefile.toml (#893) * don't use submodules * fix * add * fix * a * fix * doesn't work :weary: * fix * Update build_and_test.yml * Update build_and_test.yml * Update build_and_test.yml --- .github/workflows/build_and_test.yml | 3 +++ fuzzers/frida_libpng/Makefile.toml | 21 ++++++++++++++++--- fuzzers/fuzzbench/Makefile.toml | 2 +- fuzzers/fuzzbench_text/Makefile.toml | 2 +- fuzzers/libfuzzer_libmozjpeg/Makefile.toml | 2 +- fuzzers/libfuzzer_libpng/Makefile.toml | 2 +- .../libfuzzer_libpng_accounting/Makefile.toml | 2 +- fuzzers/libfuzzer_libpng_cmin/Makefile.toml | 2 +- fuzzers/libfuzzer_libpng_ctx/Makefile.toml | 2 +- .../libfuzzer_libpng_launcher/Makefile.toml | 2 +- fuzzers/libfuzzer_stb_image/Makefile.toml | 3 ++- .../Makefile.toml | 3 ++- .../libfuzzer_stb_image_sugar/Makefile.toml | 3 ++- 13 files changed, 35 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index ed54819a5c..1c8278abf7 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -159,6 +159,9 @@ jobs: run: rustup toolchain install nightly --component rustfmt --component clippy --allow-downgrade - name: Add no_std toolchain run: rustup toolchain install nightly-x86_64-unknown-linux-gnu ; rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu + - name: Install python + if: runner.os == 'macOS' + run: brew install --force-bottle --overwrite python@3.11 - uses: lyricwulf/abc@v1 with: # todo: remove afl++-clang when nyx support samcov_pcguard diff --git a/fuzzers/frida_libpng/Makefile.toml b/fuzzers/frida_libpng/Makefile.toml index 5dd57af624..58c7313b31 100644 --- a/fuzzers/frida_libpng/Makefile.toml +++ b/fuzzers/frida_libpng/Makefile.toml @@ -1,8 +1,11 @@ # Variables [env] -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${CARGO_MAKE_WORKING_DIRECTORY}${SEP}target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +SEP={ source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "/", mapping = {"linux" = "/", "macos" = "/", "windows" = "\\"} } FUZZER_NAME={ source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "frida_fuzzer", mapping = {"linux" = "frida_fuzzer", "macos" = "frida_fuzzer", "windows" = "frida_fuzzer.exe"} } -FUZZER = '${CARGO_TARGET_DIR}/release/${FUZZER_NAME}' +FUZZER = '${CARGO_TARGET_DIR}${SEP}release${SEP}${FUZZER_NAME}' + + [tasks.unsupported] script_runner="@shell" @@ -61,10 +64,22 @@ cl /c harness_win.cpp && link harness_win.obj /dll # Fuzzer [tasks.fuzzer] +linux_alias = "fuzzer_unix" +mac_alias = "fuzzer_unix" +windows_alias = "fuzzer_windows" + +[tasks.fuzzer_unix] script_runner="@shell" script=''' cargo build --release -cp ${CARGO_TARGET_DIR}/release/${FUZZER_NAME} . +cp ${CARGO_TARGET_DIR}${SEP}release${SEP}${FUZZER_NAME} . +''' + +[tasks.fuzzer_windows] +script_runner="@shell" +script=''' +cargo build --release +cp ./target/release/${FUZZER_NAME} . ''' # Run the fuzzer diff --git a/fuzzers/fuzzbench/Makefile.toml b/fuzzers/fuzzbench/Makefile.toml index 14c6b92387..ca64b0a9c3 100644 --- a/fuzzers/fuzzbench/Makefile.toml +++ b/fuzzers/fuzzbench/Makefile.toml @@ -1,5 +1,5 @@ [env] -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } FUZZER_NAME="fuzzer" PROJECT_DIR = { script = ["pwd"] } diff --git a/fuzzers/fuzzbench_text/Makefile.toml b/fuzzers/fuzzbench_text/Makefile.toml index b3abf57a89..2d3d85ea72 100644 --- a/fuzzers/fuzzbench_text/Makefile.toml +++ b/fuzzers/fuzzbench_text/Makefile.toml @@ -1,5 +1,5 @@ [env] -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } FUZZER_NAME="fuzzer" PROJECT_DIR = { script = ["pwd"] } diff --git a/fuzzers/libfuzzer_libmozjpeg/Makefile.toml b/fuzzers/libfuzzer_libmozjpeg/Makefile.toml index 7eb98ff1df..81434cfbc7 100644 --- a/fuzzers/libfuzzer_libmozjpeg/Makefile.toml +++ b/fuzzers/libfuzzer_libmozjpeg/Makefile.toml @@ -1,7 +1,7 @@ # Variables [env] FUZZER_NAME='fuzzer_mozjpeg' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = '${CARGO_TARGET_DIR}/release/libafl_cc' LIBAFL_CXX = '${CARGO_TARGET_DIR}/release/libafl_cxx' FUZZER = '${CARGO_TARGET_DIR}/release/${FUZZER_NAME}' diff --git a/fuzzers/libfuzzer_libpng/Makefile.toml b/fuzzers/libfuzzer_libpng/Makefile.toml index b3eec10d76..b4c6c5d653 100644 --- a/fuzzers/libfuzzer_libpng/Makefile.toml +++ b/fuzzers/libfuzzer_libpng/Makefile.toml @@ -1,7 +1,7 @@ # Variables [env] FUZZER_NAME='fuzzer_libpng' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = '${CARGO_TARGET_DIR}/release/libafl_cc' LIBAFL_CXX = '${CARGO_TARGET_DIR}/release/libafl_cxx' FUZZER = '${CARGO_TARGET_DIR}/release/${FUZZER_NAME}' diff --git a/fuzzers/libfuzzer_libpng_accounting/Makefile.toml b/fuzzers/libfuzzer_libpng_accounting/Makefile.toml index 63d129ef16..1ad37cc2b9 100644 --- a/fuzzers/libfuzzer_libpng_accounting/Makefile.toml +++ b/fuzzers/libfuzzer_libpng_accounting/Makefile.toml @@ -1,6 +1,6 @@ # Variables [env] -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } FUZZER_NAME='fuzzer_libpng_accounting' LIBAFL_CC = '${CARGO_TARGET_DIR}/release/libafl_cc' LIBAFL_CXX = '${CARGO_TARGET_DIR}/release/libafl_cxx' diff --git a/fuzzers/libfuzzer_libpng_cmin/Makefile.toml b/fuzzers/libfuzzer_libpng_cmin/Makefile.toml index 81d9b046d8..110c46948e 100644 --- a/fuzzers/libfuzzer_libpng_cmin/Makefile.toml +++ b/fuzzers/libfuzzer_libpng_cmin/Makefile.toml @@ -1,7 +1,7 @@ # Variables [env] FUZZER_NAME='fuzzer_libpng' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = '${CARGO_TARGET_DIR}/release/libafl_cc' LIBAFL_CXX = '${CARGO_TARGET_DIR}/release/libafl_cxx' FUZZER = '${CARGO_TARGET_DIR}/release/${FUZZER_NAME}' diff --git a/fuzzers/libfuzzer_libpng_ctx/Makefile.toml b/fuzzers/libfuzzer_libpng_ctx/Makefile.toml index 60a2781efe..dc50cf4dd4 100644 --- a/fuzzers/libfuzzer_libpng_ctx/Makefile.toml +++ b/fuzzers/libfuzzer_libpng_ctx/Makefile.toml @@ -1,7 +1,7 @@ # Variables [env] FUZZER_NAME='fuzzer_libpng_ctx' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = '${CARGO_TARGET_DIR}/release/libafl_cc' LIBAFL_CXX = '${CARGO_TARGET_DIR}/release/libafl_cxx' FUZZER = '${CARGO_TARGET_DIR}/release/${FUZZER_NAME}' diff --git a/fuzzers/libfuzzer_libpng_launcher/Makefile.toml b/fuzzers/libfuzzer_libpng_launcher/Makefile.toml index 4f0ca2db28..4aacab7394 100644 --- a/fuzzers/libfuzzer_libpng_launcher/Makefile.toml +++ b/fuzzers/libfuzzer_libpng_launcher/Makefile.toml @@ -1,7 +1,7 @@ # Variables [env] FUZZER_NAME='fuzzer_libpng_launcher' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = '${CARGO_TARGET_DIR}/release/libafl_cc' LIBAFL_CXX = '${CARGO_TARGET_DIR}/release/libafl_cxx' FUZZER = '${CARGO_TARGET_DIR}/release/${FUZZER_NAME}' diff --git a/fuzzers/libfuzzer_stb_image/Makefile.toml b/fuzzers/libfuzzer_stb_image/Makefile.toml index 90d84d1c04..c4e5ca6f89 100644 --- a/fuzzers/libfuzzer_stb_image/Makefile.toml +++ b/fuzzers/libfuzzer_stb_image/Makefile.toml @@ -1,10 +1,11 @@ # Variables [env] FUZZER_NAME='libfuzzer_stb_image' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/release/libafl_cc', mapping = {"windows" = '.\\target\\release\\libafl_cc.exe'} } LIBAFL_CXX = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/release/libafl_cxx', mapping = {"windows" = '.\\target\\release\\libafl_cxx.exe'} } FUZZER = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/release/libfuzzer_stb_image', mapping = {"windows" = '.\\target\\release\\libfuzzer_stb_image.exe'} } +PROJECT_DIR = { script = ["pwd"] } # Compilers [tasks.cxx] diff --git a/fuzzers/libfuzzer_stb_image_concolic/Makefile.toml b/fuzzers/libfuzzer_stb_image_concolic/Makefile.toml index 9564f6f71f..32036970bf 100644 --- a/fuzzers/libfuzzer_stb_image_concolic/Makefile.toml +++ b/fuzzers/libfuzzer_stb_image_concolic/Makefile.toml @@ -1,7 +1,8 @@ # Variables [env] -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } FUZZER_NAME='libfuzzer_stb_image_concolic' +PROJECT_DIR = { script = ["pwd"] } # Compilers [tasks.runtime] diff --git a/fuzzers/libfuzzer_stb_image_sugar/Makefile.toml b/fuzzers/libfuzzer_stb_image_sugar/Makefile.toml index 7aa09a0116..0206937e37 100644 --- a/fuzzers/libfuzzer_stb_image_sugar/Makefile.toml +++ b/fuzzers/libfuzzer_stb_image_sugar/Makefile.toml @@ -1,10 +1,11 @@ # Variables [env] FUZZER_NAME='libfuzzer_stb_image_sugar' -CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } +CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } LIBAFL_CC = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/release/libafl_cc', mapping = {"windows" = '.\\target\\release\\libafl_cc.exe'} } LIBAFL_CXX = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/release/libafl_cxx', mapping = {"windows" = '.\\target\\release\\libafl_cxx.exe'} } FUZZER = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/release/libfuzzer_stb_image_sugar', mapping = {"windows" = '.\\target\\release\\libfuzzer_stb_image_sugar.exe'} } +PROJECT_DIR = { script = ["pwd"] } # Compilers [tasks.cxx]