Lines Matching +full:macos +full:- +full:gcc
11 docker run -ti -v /location/of/your/target:/src aflplusplus/aflplusplus
23 NOTE: depending on your Debian/Ubuntu/Kali/... release, replace `-14` with
27 sudo apt-get update
28 …udo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev li…
30 sudo apt-get install -y lld-14 llvm-14 llvm-14-dev clang-14 || sudo apt-get install -y lld llvm llv…
31 …t-get install -y gcc-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-plugin-dev libstdc++-$…
32 sudo apt-get install -y ninja-build # for QEMU mode
39 It is recommended to install the newest available gcc, clang and llvm-dev
44 assisting tooling compiled but are not interested in binary-only targets, then
48 make source-only
53 * all: the main AFL++ binaries and llvm/gcc instrumentation
54 * binary-only: everything for binary-only fuzzing: frida_mode, nyx_mode,
57 * source-only: everything for source code fuzzing: nyx_mode, libdislocator,
59 * distrib: everything (for both binary-only and source code fuzzing)
64 * code-format: format the code, do this before you commit and send a PR please!
80 * STATIC - compile AFL++ static
81 * CODE_COVERAGE - compile the target for code coverage (see docs/instrumentation/README.llvm.md)
82 * ASAN_BUILD - compiles AFL++ with memory sanitizer for debug purposes
83 * UBSAN_BUILD - compiles AFL++ tools with undefined behaviour sanitizer for debug purposes
84 * DEBUG - no optimization, -ggdb3, all warnings and -Werror
85 * LLVM_DEBUG - shows llvm deprecation warnings
86 * PROFILING - compile afl-fuzz with profiling information
87 * INTROSPECTION - compile afl-fuzz with mutation introspection
88 * NO_PYTHON - disable python support
89 * NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
90 * NO_UTF - do not use UTF-8 for line rendering in status screen (fallback to G1 box drawing, of van…
91 * NO_NYX - disable building nyx mode dependencies
92 * NO_CORESIGHT - disable building coresight (arm64 only)
93 * NO_UNICORN_ARM64 - disable building unicorn on arm64
94 * AFL_NO_X86 - if compiling on non-intel/amd platforms
95 * LLVM_CONFIG - if your distro doesn't use the standard name for llvm-config (e.g., Debian)
97 e.g.: `make LLVM_CONFIG=llvm-config-14`
99 ## MacOS X on x86 and arm64 (M1)
101 MacOS has some gotchas due to the idiosyncrasies of the platform.
103 To build AFL, install llvm (and perhaps gcc) from brew and follow the general
111 freshly installed clang, clang++, llvm-config, gmake and coreutils, e.g.:
114 # Depending on your MacOS system + brew version it is either
130 `afl-gcc` will fail unless you have GCC installed, but that is using outdated
131 instrumentation anyway. `afl-clang` might fail too depending on your PATH setup.
132 But you don't want neither, you want `afl-clang-fast` anyway :) Note that
133 `afl-clang-lto`, `afl-gcc-fast` and `qemu_mode` are not working on MacOS.
135 The crash reporting daemon that comes by default with MacOS X will cause
139 launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
140 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist
144 and definitely don't look POSIX-compliant. This means two things:
146 - Fuzzing will be probably slower than on Linux. In fact, some folks report
148 MacOS X.
149 - Some non-portable, platform-specific code may be incompatible with the AFL++
151 environment before starting afl-fuzz.
153 User emulation mode of QEMU does not appear to be supported on MacOS X, so
154 black-box instrumentation mode (`-Q`) will not work. However, FRIDA mode (`-O`)
155 works on both x86 and arm64 MacOS boxes.
157 MacOS X supports SYSV shared memory used by AFL's instrumentation, but the
162 $ ipcs -M
190 [http://www.spy-hill.com/help/apple/SharedMemory.html](http://www.spy-hill.com/help/apple/SharedMem…