diff options
author | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2022-08-05 05:29:58 +0200 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2022-09-11 15:46:31 +0200 |
commit | bf33a77ea784cd21e7b1a283c98c2fa76dec1f43 (patch) | |
tree | eae52a960703681d91d17b0912e521af4a761c13 /gnu/packages/gcc.scm | |
parent | 1da91705b0b01b9578353777567e6058242ebb5b (diff) | |
download | guix-bf33a77ea784cd21e7b1a283c98c2fa76dec1f43.tar guix-bf33a77ea784cd21e7b1a283c98c2fa76dec1f43.tar.gz |
gnu: Parameterize libgccjit.
* gnu/packages/gcc.scm (make-libgccjit): New variable.
(libgccjit): Define in terms of make-libgccjit.
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r-- | gnu/packages/gcc.scm | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 11ee631bf4..dd480e930d 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -968,31 +968,33 @@ as the 'native-search-paths' field." (custom-gcc gcc-11 "gdc" '("d") %generic-search-paths))) -(define-public libgccjit +(define-public (make-libgccjit gcc) (package - (inherit gcc-9) + (inherit gcc) (name "libgccjit") (outputs (delete "lib" (package-outputs gcc))) (properties (alist-delete 'hidden? (package-properties gcc))) (arguments - (substitute-keyword-arguments `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - ,@(package-arguments gcc)) + (substitute-keyword-arguments (package-arguments gcc) + ((#:modules _ '()) + '((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26))) ((#:configure-flags flags) - `(append `("--enable-host-shared" - ,(string-append "--enable-languages=jit")) + #~(cons* "--enable-host-shared" + "--enable-languages=jit" (remove (cut string-match "--enable-languages.*" <>) - ,flags))) + #$flags))) ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'remove-broken-or-conflicting-files - (lambda* (#:key outputs #:allow-other-keys) - (for-each delete-file - (find-files (string-append (assoc-ref outputs "out") "/bin") - ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) + #~(modify-phases #$phases + (add-after 'install 'remove-broken-or-conflicting-files + (lambda* (#:key outputs #:allow-other-keys) + (for-each delete-file + (find-files + (string-append (assoc-ref outputs "out") "/bin") + ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) (synopsis "GCC library generating machine code on-the-fly at runtime") (description "This package is part of the GNU Compiler Collection and provides an @@ -1003,6 +1005,8 @@ It can also be used for ahead-of-time code generation for building standalone compilers. The just-in-time (jit) part of the name is now something of a misnomer."))) +(define-public libgccjit (make-libgccjit gcc-9)) + (define (make-gccgo gcc) "Return a gccgo package based on GCC." (let ((gccgo (custom-gcc gcc "gccgo" '("go") %generic-search-paths))) |