summaryrefslogtreecommitdiff
path: root/gnu/packages/debug.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/debug.scm')
-rw-r--r--gnu/packages/debug.scm74
1 files changed, 0 insertions, 74 deletions
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 0a278a8f5d0..773da375596 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -303,80 +303,6 @@ and uses the same efficient LLVM-based C/C++ @code{clang_delta} reduction
303tool.") 303tool.")
304 (license license:ncsa))) 304 (license license:ncsa)))
305 305
306(define-public american-fuzzy-lop
307 (let ((machine (match (or (%current-target-system)
308 (%current-system))
309 ("x86_64-linux" "x86_64")
310 ("i686-linux" "i386")
311 ("aarch64-linux" "aarch64")
312 ("armhf-linux" "arm")
313 ("mips64el-linux" "mips64el")
314 ("powerpc-linux" "ppc")
315 ;; Prevent errors when querying this package on unsupported
316 ;; platforms, e.g. when running "guix package --search="
317 (_ "UNSUPPORTED"))))
318 (package
319 (name "american-fuzzy-lop")
320 (version "2.57b") ;It seems all releases have the 'b' suffix
321 (source
322 (origin
323 (method git-fetch)
324 (uri (git-reference
325 (url "https://github.com/google/AFL")
326 (commit (string-append "v" version))))
327 (sha256
328 (base32 "0ks0s8iizp7mpc9mlpv126rsny0dkljfsw68689g9jiisjz2z530"))
329 (file-name (git-file-name name version))))
330 (build-system gnu-build-system)
331 (inputs
332 (list qemu-for-american-fuzzy-lop))
333 (arguments
334 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
335 (string-append "DOC_PATH=$(PREFIX)/share/doc/"
336 ,name "-" ,version)
337 "CC=gcc")
338 #:phases (modify-phases %standard-phases
339 (add-after 'unpack 'make-git-checkout-writable
340 (lambda _
341 (for-each make-file-writable (find-files "."))
342 #t))
343 (delete 'configure)
344 ,@(if (string=? (%current-system) (or "x86_64-linux"
345 "i686-linux"))
346 '()
347 '((add-before 'build 'set-afl-flag
348 (lambda _ (setenv "AFL_NO_X86" "1") #t))
349 (add-after 'install 'remove-x86-programs
350 (lambda* (#:key outputs #:allow-other-keys)
351 (let* ((out (assoc-ref outputs "out"))
352 (bin (string-append out "/bin/")))
353 (delete-file (string-append bin "afl-gcc"))
354 (delete-file (string-append bin "afl-g++"))
355 (delete-file (string-append bin "afl-clang"))
356 (delete-file (string-append bin "afl-clang++")))
357 #t))))
358 (add-after
359 ;; TODO: Build and install the afl-llvm tool.
360 'install 'install-qemu
361 (lambda* (#:key inputs outputs #:allow-other-keys)
362 (let ((qemu (assoc-ref inputs "qemu"))
363 (out (assoc-ref outputs "out")))
364 (symlink (string-append qemu "/bin/qemu-" ,machine)
365 (string-append out "/bin/afl-qemu-trace"))
366 #t)))
367 (delete 'check)))) ; tests are run during 'install phase
368 (home-page "https://lcamtuf.coredump.cx/afl/")
369 (synopsis "Security-oriented fuzzer")
370 (description
371 "American fuzzy lop is a security-oriented fuzzer that employs a novel
372type of compile-time instrumentation and genetic algorithms to automatically
373discover clean, interesting test cases that trigger new internal states in the
374targeted binary. This substantially improves the functional coverage for the
375fuzzed code. The compact synthesized corpora produced by the tool are also
376useful for seeding other, more labor- or resource-intensive testing regimes
377down the road.")
378 (license license:asl2.0))))
379
380(define-public qemu-for-american-fuzzy-lop 306(define-public qemu-for-american-fuzzy-lop
381 ;; afl only supports using a single afl-qemu-trace executable, so 307 ;; afl only supports using a single afl-qemu-trace executable, so
382 ;; we only build qemu for the native target. 308 ;; we only build qemu for the native target.