From 74bf17bb0dee27a431e2fc6d0e07ee1df833cf1b Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Sun, 1 Mar 2020 11:48:20 -0600 Subject: [PATCH] Makefiles: add targets to build unix port, mpy-cross for fuzzing This assumes you have properly install afl-fuzz with afl-clang-fast. Tested with AFLplusplus 2.60c-75-g2c6847b. --- mpy-cross/.gitignore | 1 + mpy-cross/Makefile.fuzz | 6 ++++++ ports/unix/Makefile | 12 ++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 mpy-cross/Makefile.fuzz diff --git a/mpy-cross/.gitignore b/mpy-cross/.gitignore index 0681b685fa..80d7acd423 100644 --- a/mpy-cross/.gitignore +++ b/mpy-cross/.gitignore @@ -3,4 +3,5 @@ /mpy-cross.static /mpy-cross.static.exe /mpy-cross.static-raspbian +/mpy-cross.fuzz /pitools diff --git a/mpy-cross/Makefile.fuzz b/mpy-cross/Makefile.fuzz new file mode 100644 index 0000000000..ca59788f4c --- /dev/null +++ b/mpy-cross/Makefile.fuzz @@ -0,0 +1,6 @@ + +PROG=mpy-cross.fuzz +BUILD=build-static +STATIC_BUILD=1 +CC=afl-clang-fast +include mpy-cross.mk diff --git a/ports/unix/Makefile b/ports/unix/Makefile index 7ffa0fd082..63c4980c31 100644 --- a/ports/unix/Makefile +++ b/ports/unix/Makefile @@ -277,6 +277,18 @@ coverage_test: coverage coverage_clean: $(MAKE) V=2 BUILD=build-coverage PROG=micropython_coverage clean +# build an interpreter for fuzzing +fuzz: + $(MAKE) \ + CC=afl-clang-fast DEBUG=1 \ + CFLAGS_EXTRA='$(CFLAGS_EXTRA) -ffunction-sections' \ + LDFLAGS_EXTRA='$(LDFLAGS_EXTRA)' \ + BUILD=build-fuzz PROG=micropython_fuzz + +fuzz_clean: + $(MAKE) V=2 BUILD=build-fuzz PROG=micropython_fuzz clean + + # Value of configure's --host= option (required for cross-compilation). # Deduce it from CROSS_COMPILE by default, but can be overridden. ifneq ($(CROSS_COMPILE),)