guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/03: gnu: qemu-for-american-fuzzy-lop: Fix build.


From: guix-commits
Subject: 01/03: gnu: qemu-for-american-fuzzy-lop: Fix build.
Date: Thu, 1 Apr 2021 06:46:04 -0400 (EDT)

efraim pushed a commit to branch master
in repository guix.

commit b82cc0b90e271ef1cd1bd91f3f1ae729918eccd0
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Thu Apr 1 13:00:52 2021 +0300

    gnu: qemu-for-american-fuzzy-lop: Fix build.
    
    * gnu/packages/debug.scm (qemu-for-american-fuzzy-lop)[source]: Add
    patch.
    * gnu/packages/patches/qemu-glibc-2.30.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                               |  1 +
 gnu/packages/debug.scm                     |  5 +--
 gnu/packages/patches/qemu-glibc-2.30.patch | 57 ++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 3eeae5e..b037b39 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1610,6 +1610,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/qemu-build-info-manual.patch            \
   %D%/packages/patches/qemu-CVE-2021-20203.patch               \
   %D%/packages/patches/qemu-glibc-2.27.patch                   \
+  %D%/packages/patches/qemu-glibc-2.30.patch                   \
   %D%/packages/patches/qpdfview-qt515-compat.patch             \
   %D%/packages/patches/qrcodegen-cpp-make-install.patch                \
   %D%/packages/patches/qt4-ldflags.patch                       \
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index b3a000e..f67f32a 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier 
<bavier@posteo.net>
-;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner 
<efraim@flashner.co.il>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
@@ -269,7 +269,8 @@ down the road.")
               (base32
                "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))
              (patches
-              (search-patches "qemu-glibc-2.27.patch"))))
+              (search-patches "qemu-glibc-2.27.patch"
+                              "qemu-glibc-2.30.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Running tests in parallel can occasionally lead to failures, like:
diff --git a/gnu/packages/patches/qemu-glibc-2.30.patch 
b/gnu/packages/patches/qemu-glibc-2.30.patch
new file mode 100644
index 0000000..1b74dee
--- /dev/null
+++ b/gnu/packages/patches/qemu-glibc-2.30.patch
@@ -0,0 +1,57 @@
+This patch was taken from NixOS
+https://raw.githubusercontent.com/Mindavi/nixpkgs/1a737743a829746e48f4869ac517ff29c23c9d09/pkgs/tools/security/afl/qemu-patches/syscall-glibc2_30.diff
+It is based on an unmerged patch against american-fuzzy-lop and was
+never merged upstream because the author was unable to sign Google's CLA.
+Based on 
https://github.com/google/AFL/commit/6c917e3d63a2a0685d58c3518524f9615b001893.patch
+
+--- qemu-2.10.0-clean/linux-user/syscall.c     2020-03-12 18:47:47.898592169 
+0100
++++ qemu-2.10.0/linux-user/syscall.c   2020-03-13 09:13:42.461809699 +0100
+@@ -34,6 +34,7 @@
+ #include <sys/resource.h>
+ #include <sys/swap.h>
+ #include <linux/capability.h>
++#include <linux/sockios.h> // https://lkml.org/lkml/2019/6/3/988
+ #include <sched.h>
+ #include <sys/timex.h>
+ #ifdef __ia64__
+@@ -256,7 +257,9 @@ static type name (type1 arg1,type2 arg2,
+ #endif
+ 
+ #ifdef __NR_gettid
+-_syscall0(int, gettid)
++// taken from https://patchwork.kernel.org/patch/10862231/
++#define __NR_sys_gettid __NR_gettid
++_syscall0(int, sys_gettid)
+ #else
+ /* This is a replacement for the host gettid() and must return a host
+    errno. */
+@@ -6219,7 +6222,7 @@ static void *clone_func(void *arg)
+     cpu = ENV_GET_CPU(env);
+     thread_cpu = cpu;
+     ts = (TaskState *)cpu->opaque;
+-    info->tid = gettid();
++    info->tid = sys_gettid();
+     task_settid(ts);
+     if (info->child_tidptr)
+         put_user_u32(info->tid, info->child_tidptr);
+@@ -6363,9 +6366,9 @@ static int do_fork(CPUArchState *env, un
+                mapping.  We can't repeat the spinlock hack used above because
+                the child process gets its own copy of the lock.  */
+             if (flags & CLONE_CHILD_SETTID)
+-                put_user_u32(gettid(), child_tidptr);
++                put_user_u32(sys_gettid(), child_tidptr);
+             if (flags & CLONE_PARENT_SETTID)
+-                put_user_u32(gettid(), parent_tidptr);
++                put_user_u32(sys_gettid(), parent_tidptr);
+             ts = (TaskState *)cpu->opaque;
+             if (flags & CLONE_SETTLS)
+                 cpu_set_tls (env, newtls);
+@@ -11402,7 +11405,7 @@ abi_long do_syscall(void *cpu_env, int n
+         break;
+ #endif
+     case TARGET_NR_gettid:
+-        ret = get_errno(gettid());
++        ret = get_errno(sys_gettid());
+         break;
+ #ifdef TARGET_NR_readahead
+     case TARGET_NR_readahead:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]