gnu: Parameterize libgccjit.
* gnu/packages/gcc.scm (make-libgccjit): New variable. (libgccjit): Define in terms of make-libgccjit.master
parent
1da91705b0
commit
bf33a77ea7
|
@ -968,30 +968,32 @@ as the 'native-search-paths' field."
|
||||||
(custom-gcc gcc-11 "gdc" '("d")
|
(custom-gcc gcc-11 "gdc" '("d")
|
||||||
%generic-search-paths)))
|
%generic-search-paths)))
|
||||||
|
|
||||||
(define-public libgccjit
|
(define-public (make-libgccjit gcc)
|
||||||
(package
|
(package
|
||||||
(inherit gcc-9)
|
(inherit gcc)
|
||||||
(name "libgccjit")
|
(name "libgccjit")
|
||||||
(outputs (delete "lib" (package-outputs gcc)))
|
(outputs (delete "lib" (package-outputs gcc)))
|
||||||
(properties (alist-delete 'hidden? (package-properties gcc)))
|
(properties (alist-delete 'hidden? (package-properties gcc)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments `(#:modules ((guix build gnu-build-system)
|
(substitute-keyword-arguments (package-arguments gcc)
|
||||||
|
((#:modules _ '())
|
||||||
|
'((guix build gnu-build-system)
|
||||||
(guix build utils)
|
(guix build utils)
|
||||||
(ice-9 regex)
|
(ice-9 regex)
|
||||||
(srfi srfi-1)
|
(srfi srfi-1)
|
||||||
(srfi srfi-26))
|
(srfi srfi-26)))
|
||||||
,@(package-arguments gcc))
|
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
`(append `("--enable-host-shared"
|
#~(cons* "--enable-host-shared"
|
||||||
,(string-append "--enable-languages=jit"))
|
"--enable-languages=jit"
|
||||||
(remove (cut string-match "--enable-languages.*" <>)
|
(remove (cut string-match "--enable-languages.*" <>)
|
||||||
,flags)))
|
#$flags)))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-after 'install 'remove-broken-or-conflicting-files
|
(add-after 'install 'remove-broken-or-conflicting-files
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(for-each delete-file
|
(for-each delete-file
|
||||||
(find-files (string-append (assoc-ref outputs "out") "/bin")
|
(find-files
|
||||||
|
(string-append (assoc-ref outputs "out") "/bin")
|
||||||
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))))))))
|
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))))))))
|
||||||
(synopsis "GCC library generating machine code on-the-fly at runtime")
|
(synopsis "GCC library generating machine code on-the-fly at runtime")
|
||||||
(description
|
(description
|
||||||
|
@ -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
|
compilers. The just-in-time (jit) part of the name is now something of a
|
||||||
misnomer.")))
|
misnomer.")))
|
||||||
|
|
||||||
|
(define-public libgccjit (make-libgccjit gcc-9))
|
||||||
|
|
||||||
(define (make-gccgo gcc)
|
(define (make-gccgo gcc)
|
||||||
"Return a gccgo package based on GCC."
|
"Return a gccgo package based on GCC."
|
||||||
(let ((gccgo (custom-gcc gcc "gccgo" '("go") %generic-search-paths)))
|
(let ((gccgo (custom-gcc gcc "gccgo" '("go") %generic-search-paths)))
|
||||||
|
|
Reference in New Issue