diff mbox

:Resend: Add LLVM, clang and clang-runtime-3.8 to GNU Guix

Message ID CAKKYfmF93y5VizvHuhavGLefU6kAz1srQXTuDykDALmcjPWDGQ@mail.gmail.com
State New
Headers show

Commit Message

Dennis Mungai June 30, 2016, 6:15 p.m. UTC
From 38643acf50749212a4455d15a1729002d6dfa04a Mon Sep 17 00:00:00 2001
From: brainiarc7 <dmngaie@gmail.com>
Date: Thu, 30 June 2016 16:47:02 +0300

Subject: [PATCH] Add LLVM 3.8 to GNU Guix

---
 gnu/packages/llvm.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

+                   "1ybcac8hlr9vl3wg8s4v6cp0c0qgqnwprsv85lihbkq3vqv94504"))

On 12 June 2016 at 19:30, Ludovic Courtès <ludo@gnu.org> wrote:
> Hi!
>
> Dennis Mungai <dmngaie@gmail.com> skribis:
>
>> I second Pjotr on this.
>>
>> There are always tools that will lag behind, and having multiple LLVM
>> versions is a reasonable (and possibly unavoidable) compromise, for
>> now.
>>
>> There may be problems with conflicts should a user install such
>> pipelines with differing LLVM and Clang combinations within the same
>> profile, as a worst case scenario.
>
> OK fine.  Currently we have 3.6 and 3.5, so we’d add 3.8 on top of it,
> right?  And the ‘llvm’, ‘clang’ etc. bindings would still point to 3.6?
> Does it even make sense to have unversioned bindings?
>
> The patch you posted earlier adds a number of configure flags, different
> from those currently used in ‘llvm’, and in particular:
>
>> +                           "-DLLVM_INCLUDE_TESTS=OFF" ;; clang target units cannot be built (invalid test targets inherited from llvm result in build failure)
>
> IIUC, this has the effect of disabling tests, which is something we
> avoid unless there’s a good reason.  I don’t understand the comment,
> what’s happening?
>
> Could you remove as many of the configure flags as needed, and add a
> comment for those that need to remain?
>
> Also, as a bonus, could you add a conforming commit log?  :-)
>
>   https://www.gnu.org/software/guix/manual/html_node/Submitting-Patches.html
>
> Thanks in advance!
>
> Ludo’.
diff mbox

Patch

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 3bf019f..e995ff2 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -2,6 +2,9 @@ 
 ;;; Copyright © 2014 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>
+;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl>
+;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +24,8 @@ 
 (define-module (gnu packages llvm)
   #:use-module (guix packages)
   #:use-module (guix licenses)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages libffi)
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
@@ -201,3 +206,37 @@  code analysis tools.")
 (define-public clang-3.5
   (clang-from-llvm llvm-3.5 clang-runtime-3.5
                    "12yv3jwdjcbkrx7zjm8wh4jrvb59v8fdw4mnmz3zc1jb00p9k07w"))
+
+(define-public llvm-3.8
+  (package (inherit llvm)
+    (version "3.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://llvm.org/releases/"
+                           version "/llvm-" version ".src.tar.xz"))
+       (sha256
+        (base32
+         "0ikfq0gxac8xpvxj23l4hk8f12ydx48fljgrz1gl9xp0ks704nsm"))))
+    (native-inputs
+     `(("python" ,python-wrapper)
+       ("perl" ,perl)
+       ("libffi" ,libffi)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE" ;;Same
comment as on the "-DCMAKE_BUILD_WITH_INSTALL_RPATH" cmake option
below.
+                           "-DCMAKE_BUILD_TYPE=Release"
+                           "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
;;Inherit this from the LLVM package here to maintain consistency.
+                           "-DLLVM_ENABLE_PIC=ON" ;;Defaults to on.
+                           "-DLLVM_ENABLE_WERROR=OFF"))))) ;;There's
no need to stop and fail the build if compiler warnings are triggered.
+
+(define-public clang-runtime-3.8
+  (clang-runtime-from-llvm llvm-3.8
+   "1c2nkp9563873ffz22qmhc0wakgj428pch8rmhym8agjamz3ily8"))
+
+(define-public clang-3.8
+  (clang-from-llvm llvm-3.8 clang-runtime-3.8