aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/llvm.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/llvm.scm')
-rw-r--r--gnu/packages/llvm.scm90
1 files changed, 72 insertions, 18 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 3bf019fa83..c380eba122 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -1,7 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,7 +21,7 @@
(define-module (gnu packages llvm)
#:use-module (guix packages)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
@@ -28,6 +29,8 @@
#:use-module (gnu packages)
#:use-module (gnu packages gcc)
#:use-module (gnu packages bootstrap) ;glibc-dynamic-linker
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages xml))
@@ -35,7 +38,7 @@
(define-public llvm
(package
(name "llvm")
- (version "3.6.2")
+ (version "3.8.1")
(source
(origin
(method url-fetch)
@@ -43,14 +46,21 @@
version "/llvm-" version ".src.tar.xz"))
(sha256
(base32
- "153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn"))))
+ "1ybmnid4pw2hxn12ax5qa5kl1ldfns0njg8533y3mzslvd5cx0kf"))))
(build-system cmake-build-system)
(native-inputs
- `(("python" ,python-wrapper)
+ `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
("perl" ,perl)))
+ (inputs
+ `(("libffi" ,libffi)
+ ("zlib" ,zlib)))
(arguments
`(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE")))
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
+ "-DLLVM_ENABLE_FFI:BOOL=TRUE")
+
+ ;; Don't use '-g' during the build, to save space.
+ #:build-type "Release"))
(home-page "http://www.llvm.org")
(synopsis "Optimizing compiler infrastructure")
(description
@@ -60,7 +70,7 @@ languages. It currently supports compilation of C and C++ programs, using
front-ends derived from GCC 4.0.1. A new front-end for the C family of
languages is in development. The compiler infrastructure includes mirror sets
of programming tools as well as libraries with equivalent functionality.")
- (license ncsa)))
+ (license license:ncsa)))
(define (clang-runtime-from-llvm llvm hash)
(package
@@ -78,8 +88,8 @@ of programming tools as well as libraries with equivalent functionality.")
`(("llvm" ,llvm)))
(arguments
`(;; Don't use '-g' during the build to save space.
- #:build-type "Release"))
-
+ #:build-type "Release"
+ #:tests? #f)) ; Tests require gtest
(home-page "http://compiler-rt.llvm.org")
(synopsis "Runtime library for Clang/LLVM")
(description
@@ -87,12 +97,13 @@ of programming tools as well as libraries with equivalent functionality.")
functions for C and C++ programs. It also provides header files that allow C
and C++ source code to interface with the \"sanitization\" passes of the clang
compiler. In LLVM this library is called \"compiler-rt\".")
- (license ncsa)
+ (license license:ncsa)
;; <http://compiler-rt.llvm.org/> doesn't list MIPS as supported.
(supported-systems (delete "mips64el-linux" %supported-systems))))
-(define (clang-from-llvm llvm clang-runtime hash)
+(define* (clang-from-llvm llvm clang-runtime hash
+ #:key (patches '("clang-libc-search-path.patch")))
(package
(name "clang")
(version (package-version llvm))
@@ -102,7 +113,7 @@ compiler. In LLVM this library is called \"compiler-rt\".")
(uri (string-append "http://llvm.org/releases/"
version "/cfe-" version ".src.tar.xz"))
(sha256 (base32 hash))
- (patches (search-patches "clang-libc-search-path.patch"))))
+ (patches (map search-patch patches))))
;; Using cmake allows us to treat llvm as an external library. There
;; doesn't seem to be any way to do this with clang's autotools-based
;; build system.
@@ -170,20 +181,63 @@ compiler. In LLVM this library is called \"compiler-rt\".")
Objective-C++ programming languages. It uses LLVM as its back end. The Clang
project includes the Clang front end, the Clang static analyzer, and several
code analysis tools.")
- (license ncsa)))
+ (license license:ncsa)))
(define-public clang-runtime
(clang-runtime-from-llvm
llvm
- "11qx8d3pbfqjaj2x207pvlvzihbs1z2xbw4crpz7aid6h1yz6bqg"))
+ "0p0y85c7izndbpg2l816z7z7558axq11d5pwkm4h11sdw7d13w0d"))
(define-public clang
(clang-from-llvm llvm clang-runtime
+ "1prc72xmkgx8wrzmrr337776676nhsp1qd3mw2bvb22bzdnq7lsc"
+ #:patches '("clang-3.8-libc-search-path.patch")))
+
+(define-public llvm-3.7
+ (package (inherit llvm)
+ (version "3.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://llvm.org/releases/"
+ version "/llvm-" version ".src.tar.xz"))
+ (sha256
+ (base32
+ "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy"))))))
+
+(define-public clang-runtime-3.7
+ (clang-runtime-from-llvm
+ llvm-3.7
+ "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx"))
+
+(define-public clang-3.7
+ (clang-from-llvm llvm-3.7 clang-runtime-3.7
+ "0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn"))
+
+(define-public llvm-3.6
+ (package (inherit llvm)
+ (version "3.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://llvm.org/releases/"
+ version "/llvm-" version ".src.tar.xz"))
+ (sha256
+ (base32
+ "153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn"))))))
+
+(define-public clang-runtime-3.6
+ (clang-runtime-from-llvm
+ llvm-3.6
+ "11qx8d3pbfqjaj2x207pvlvzihbs1z2xbw4crpz7aid6h1yz6bqg"))
+
+(define-public clang-3.6
+ (clang-from-llvm llvm-3.6 clang-runtime-3.6
"1wwr8s6lzr324hv4s1k6na4j5zv6n9kdhi14s4kb9b13d93814df"))
(define-public llvm-3.5
(package (inherit llvm)
- (version "3.5.0")
+ (version "3.5.2")
(source
(origin
(method url-fetch)
@@ -191,13 +245,13 @@ code analysis tools.")
version "/llvm-" version ".src.tar.xz"))
(sha256
(base32
- "00swb43mzlvda8306arlg2jw7g6k3acwfccgf1k4c2pgd3rrkq98"))))))
+ "0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4"))))))
(define-public clang-runtime-3.5
(clang-runtime-from-llvm
llvm-3.5
- "0dl1kbrhz96djsxqr61iw5h788s7ncfpfb7aayixky1bhdaydcx4"))
+ "1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal"))
(define-public clang-3.5
(clang-from-llvm llvm-3.5 clang-runtime-3.5
- "12yv3jwdjcbkrx7zjm8wh4jrvb59v8fdw4mnmz3zc1jb00p9k07w"))
+ "0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg"))