diff options
Diffstat (limited to 'gnu/packages/debug.scm')
-rw-r--r-- | gnu/packages/debug.scm | 65 |
1 files changed, 43 insertions, 22 deletions
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 27193c8bba..0fc1f513ba 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages perl) #:use-module (gnu packages pretty-print) - #:use-module (gnu packages qemu) + #:use-module (gnu packages virtualization) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -166,12 +167,15 @@ tools that process C/C++ code.") (%current-system)) ("x86_64-linux" "x86_64") ("i686-linux" "i386") + ("aarch64-linux" "aarch64") + ("armhf-linux" "arm") + ("mips64el-linux" "mips64el") ;; Prevent errors when querying this package on unsupported ;; platforms, e.g. when running "guix package --search=" (_ "UNSUPPORTED")))) (package (name "american-fuzzy-lop") - (version "2.15b") ;It seems all releases have the 'b' suffix + (version "2.49b") ;It seems all releases have the 'b' suffix (source (origin (method url-fetch) @@ -179,7 +183,7 @@ tools that process C/C++ code.") "afl-" version ".tgz")) (sha256 (base32 - "04n2jfkchpz6a07w694b0im1vcmc3220ryqcaasa7vix7784wzs2")))) + "1lc8mpwlbyb1iil9961yfysp8l2l4nw0s07781m1haiz4jq2rigp")))) (build-system gnu-build-system) (inputs `(("custom-qemu" @@ -234,6 +238,20 @@ tools that process C/C++ code.") "CC=gcc") #:phases (modify-phases %standard-phases (delete 'configure) + ,@(if (string=? (%current-system) (or "x86_64-linux" + "i686-linux")) + '() + '((add-before 'build 'set-afl-flag + (lambda _ (setenv "AFL_NO_X86" "1") #t)) + (add-after 'install 'remove-x86-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/"))) + (delete-file (string-append bin "afl-gcc")) + (delete-file (string-append bin "afl-g++")) + (delete-file (string-append bin "afl-clang")) + (delete-file (string-append bin "afl-clang++"))) + #t)))) (add-after ;; TODO: Build and install the afl-llvm tool. 'install 'install-qemu @@ -243,10 +261,7 @@ tools that process C/C++ code.") (symlink (string-append qemu "/bin/qemu-" ,machine) (string-append out "/bin/afl-qemu-trace")) #t))) - (delete 'check)))) - (supported-systems (fold delete - %supported-systems - '("armhf-linux" "mips64el-linux"))) + (delete 'check)))) ; Tests are run during 'install phase. (home-page "http://lcamtuf.coredump.cx/afl") (synopsis "Security-oriented fuzzer") (description @@ -287,20 +302,26 @@ down the road.") ;; not accept a directory name instead. To let the gnu-build-system's ;; patch-* phases work properly, we unpack the source first, then ;; repack before the configure phase. - `(#:configure-flags '("--with-make-tar=./make.tar.xz") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-make - (lambda* (#:key inputs #:allow-other-keys) - (zero? (system* "tar" "xf" (assoc-ref inputs "make-source"))))) - (add-before 'configure 'repack-make - (lambda _ - (zero? (system* "tar" "cJf" "./make.tar.xz" - (string-append "make-" - ,(package-version gnu-make)))))) - (add-before 'configure 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + (let ((make-dir (string-append "make-" (package-version gnu-make)))) + `(#:configure-flags '("--with-make-tar=./make.tar.xz") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-make + (lambda* (#:key inputs #:allow-other-keys) + (zero? (system* "tar" "xf" (assoc-ref inputs "make-source"))))) + (add-after 'unpack-make 'set-default-shell + (lambda _ + ;; Taken mostly directly from (@ (gnu packages base) gnu-make) + (substitute* (string-append ,make-dir "/job.c") + (("default_shell = .*$") + (format #f "default_shell = \"~a\";\n" + (which "sh")))))) + (add-before 'configure 'repack-make + (lambda _ + (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))) + (add-before 'configure 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi")))))))) (home-page "https://github.com/losalamos/stress-make") (synopsis "Expose race conditions in Makefiles") (description |