summary refs log tree commit diff
path: root/gnu/packages/debug.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2017-08-17 14:10:56 +0300
committerEfraim Flashner <efraim@flashner.co.il>2017-08-17 18:16:57 +0300
commitaacefef22247f4fce1710ffe79e4765a4195a6a1 (patch)
tree56096daaf0d62f0fb5b876f71dbdbe0194315038 /gnu/packages/debug.scm
parent721e1987d059a0041f547300969c323a03635e74 (diff)
downloadguix-aacefef22247f4fce1710ffe79e4765a4195a6a1.tar.gz
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.
Diffstat (limited to 'gnu/packages/debug.scm')
-rw-r--r--gnu/packages/debug.scm23
1 files changed, 19 insertions, 4 deletions
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index bde06f35b9..91fdcde048 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, 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