diff options
author | Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | 2020-05-14 16:34:52 +0200 |
---|---|---|
committer | Jan Nieuwenhuizen <janneke@gnu.org> | 2020-05-14 16:57:31 +0200 |
commit | 7adb529949b3c831af674dd32443fea93fb4915c (patch) | |
tree | f358a007fb4a29e01fc029ea41e21f4d9969b338 /gnu/packages | |
parent | 5c7e477c6cfe89aa4dfce557ea181e5aa8ba8a05 (diff) | |
download | guix-7adb529949b3c831af674dd32443fea93fb4915c.tar.gz |
gnu: Add sparse.
* gnu/packages/c.scm (sparse): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/c.scm | 36 |
1 files changed, 36 insertions, 0 deletions
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 <efraim@flashner.co.il> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; 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))) |