From 7adb529949b3c831af674dd32443fea93fb4915c Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 14 May 2020 16:34:52 +0200 Subject: gnu: Add sparse. * gnu/packages/c.scm (sparse): New variable. --- gnu/packages/c.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 160f456f79..5718ec66ac 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2019 Efraim Flashner ;;; Copyright © 2019 Guillaume Le Vaillant ;;; Copyright © 2019 Andreas Enge +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -252,3 +253,38 @@ structures and functions commonly needed, such as maps, deques, linked lists, string formatting and autoresizing, option and config file parsing, type checking casts and more.") (license license:lgpl2.1+))) + +(define-public sparse + (package + (name "sparse") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri + (string-append "mirror://kernel.org/software/devel/sparse/dist/" + "sparse-" version ".tar.xz")) + (sha256 + (base32 + "0qavyryxmhd1rf11akgn1nq3r15k11bqa3qajaq36a56r225rc7x")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl))) + (arguments + '(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-cgcc + (lambda _ + (substitute* "cgcc" + (("'cc'") (string-append "'" (which "gcc") "'"))) + #t))))) + (synopsis "Semantic C parser for Linux development") + (description + "Sparse is a semantic parser for C and is required for Linux development. +It provides a compiler frontend capable of parsing most of ANSI C as well as +many GCC extensions, and a collection of sample compiler backends, including a +static analyzer also called @file{sparse}. Sparse provides a set of +annotations designed to convey semantic information about types, such as what +address space pointers point to, or what locks a function acquires or +releases.") + (home-page "https://sparse.wiki.kernel.org/index.php/Main_Page") + (license license:expat))) -- cgit v1.2.3