~ruther/guix-local

aacefef22247f4fce1710ffe79e4765a4195a6a1 — Efraim Flashner 8 years ago 721e198
gnu: american-fuzzy-lop: Add support for non-Intel architectures.

* gnu/packages/debug.scm (americal-fuzzy-lop): Add qemu target for
non-Intel targets.
[arguments]: On non-Intel systems, add phase to disable non-Intel
architecture warning and remove incompatible binaries.
1 files changed, 19 insertions(+), 4 deletions(-)

M gnu/packages/debug.scm
M gnu/packages/debug.scm => gnu/packages/debug.scm +19 -4
@@ 1,5 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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.
;;;


@@ 166,6 167,9 @@ 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"))))


@@ 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