Subject: [PATCH] gnu: Add csmith.

From: Olivier Dion <[email-masked]>
Date: Fri, 4 Aug 2023 16:58:57 -0400

From: Olivier Dion <[email-masked]>

* gnu/packages/linux.scm (csmith): New variable.
---
 gnu/packages/linux.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3aec03a3ec..84ccf5bb13 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -139,6 +139,7 @@ (define-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
@@ -10418,3 +10419,39 @@ (define-public spectre-meltdown-checker
 against the several transient execution CVEs that were published since early
 2018, and gives guidance as to how to mitigate them.")
     (license license:gpl3)))
+
+(define-public csmith
+  (package
+    (name "csmith")
+    (version "2.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/csmith-project/csmith")
+                    (commit (string-append "csmith-" version))))
+              (sha256
+               (base32
+                "0nhrsnv6cny14xz68qb1h30fbwc05adkisk51p3x63mydm60ddl3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list autoconf automake libtool m4 perl))
+    (arguments
+     (list
+      ;; There is no tests.
+      #:tests? #f
+      ;; Do not install headers under include/csmith-VERSION but in include/csmith
+      #:phases
+      `(modify-phases %standard-phases
+         (add-after 'unpack 'patch-includedir
+           (lambda _
+             (substitute* "runtime/Makefile.am"
+               (("\\$\\(includedir\\)/\\$\\(PACKAGE\\)-\\$\\(VERSION\\)")
+                "$(includedir)/$(PACKAGE)"))))
+         (replace 'bootstrap
+           (lambda _
+             (invoke "autoreconf" "-vfi"))))))
+    (home-page "https://github.com/csmith-project/csmith")
+    (synopsis "Random generator of C programs")
+    (description "Csmith primary purpose is to find compiler bugs with random
+programs using differential testing.")
+    (license license:bsd-4)))

base-commit: 17fadbb5ea3b35f962ab1bcd5b8cf4e1d699eb7e
-- 
2.41.0