@ -8,7 +8,7 @@ To quickly get started fuzzing Bitcoin Core using [libFuzzer](https://llvm.org/d
$ git clone https://github.com/bitcoin/bitcoin
$ git clone https://github.com/bitcoin/bitcoin
$ cd bitcoin/
$ cd bitcoin/
$ ./autogen.sh
$ ./autogen.sh
$ CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=address,fuzzer,undefined
$ CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=address,fuzzer,undefined --enable-c++17
# macOS users: If you have problem with this step then make sure to read "macOS hints for
# macOS users: If you have problem with this step then make sure to read "macOS hints for
# libFuzzer" on https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md#macos-hints-for-libfuzzer
# libFuzzer" on https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md#macos-hints-for-libfuzzer
$ make
$ make
@ -103,7 +103,7 @@ You may also need to take care of giving the correct path for `clang` and
Full configure that was tested on macOS Catalina with `brew` installed `llvm` :
Full configure that was tested on macOS Catalina with `brew` installed `llvm` :
```sh
```sh
./configure --enable-fuzz --with-sanitizers=fuzzer,address,undefined CC=/usr/local/opt/llvm/bin/clang CXX=/usr/local/opt/llvm/bin/clang++ --disable-asm
./configure --enable-fuzz --with-sanitizers=fuzzer,address,undefined CC=/usr/local/opt/llvm/bin/clang CXX=/usr/local/opt/llvm/bin/clang++ --disable-asm --enable-c++17
```
```
Read the [libFuzzer documentation ](https://llvm.org/docs/LibFuzzer.html ) for more information. This [libFuzzer tutorial ](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md ) might also be of interest.
Read the [libFuzzer documentation ](https://llvm.org/docs/LibFuzzer.html ) for more information. This [libFuzzer tutorial ](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md ) might also be of interest.
@ -121,7 +121,7 @@ $ git clone https://github.com/google/afl
$ make -C afl/
$ make -C afl/
$ make -C afl/llvm_mode/
$ make -C afl/llvm_mode/
$ ./autogen.sh
$ ./autogen.sh
$ CC=$(pwd)/afl/afl-clang-fast CXX=$(pwd)/afl/afl-clang-fast++ ./configure --enable-fuzz
$ CC=$(pwd)/afl/afl-clang-fast CXX=$(pwd)/afl/afl-clang-fast++ ./configure --enable-fuzz --enable-c++17
$ make
$ make
# For macOS you may need to ignore x86 compilation checks when running "make". If so,
# For macOS you may need to ignore x86 compilation checks when running "make". If so,
# try compiling using: AFL_NO_X86=1 make
# try compiling using: AFL_NO_X86=1 make
@ -148,7 +148,7 @@ $ git clone https://github.com/google/honggfuzz
$ cd honggfuzz/
$ cd honggfuzz/
$ make
$ make
$ cd ..
$ cd ..
$ CC=$(pwd)/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$(pwd)/honggfuzz/hfuzz_cc/hfuzz-clang++ ./configure --enable-fuzz --with-sanitizers=address,undefined
$ CC=$(pwd)/honggfuzz/hfuzz_cc/hfuzz-clang CXX=$(pwd)/honggfuzz/hfuzz_cc/hfuzz-clang++ ./configure --enable-fuzz --with-sanitizers=address,undefined --enable-c++17
$ make
$ make
$ mkdir -p inputs/
$ mkdir -p inputs/
$ honggfuzz/honggfuzz -i inputs/ -- src/test/fuzz/process_message
$ honggfuzz/honggfuzz -i inputs/ -- src/test/fuzz/process_message