gnu: gcc-toolchain: Add "static" output.

This allows the use of 'gcc-toolchain' to create statically-linked
executables (requires libc.a.)

* gnu/packages/commencement.scm (make-gcc-toolchain): Add "static"
output.  Add "libc-static" to 'inputs'.  Add call to 'union-build' for
the "static" output.
This commit is contained in:
Ludovic Courtès 2018-04-28 22:27:49 +02:00
parent 48167ccd75
commit 5a48a066ab
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1026,7 +1026,10 @@ (define (make-gcc-toolchain gcc)
(union-build (assoc-ref %outputs "debug") (union-build (assoc-ref %outputs "debug")
(list (assoc-ref %build-inputs (list (assoc-ref %build-inputs
"libc-debug"))))))) "libc-debug")))
(union-build (assoc-ref %outputs "static")
(list (assoc-ref %build-inputs
"libc-static")))))))
(native-search-paths (package-native-search-paths gcc)) (native-search-paths (package-native-search-paths gcc))
(search-paths (package-search-paths gcc)) (search-paths (package-search-paths gcc))
@ -1038,7 +1041,7 @@ (define (make-gcc-toolchain gcc)
be installed in user profiles. This includes GCC, as well as libc (headers be installed in user profiles. This includes GCC, as well as libc (headers
and binaries, plus debugging symbols in the 'debug' output), and Binutils.") and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
(home-page "https://gcc.gnu.org/") (home-page "https://gcc.gnu.org/")
(outputs '("out" "debug")) (outputs '("out" "debug" "static"))
;; The main raison d'être of this "meta-package" is (1) to conveniently ;; The main raison d'être of this "meta-package" is (1) to conveniently
;; install everything that we need, and (2) to make sure ld-wrapper comes ;; install everything that we need, and (2) to make sure ld-wrapper comes
@ -1047,7 +1050,8 @@ (define (make-gcc-toolchain gcc)
("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper"))) ("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
("binutils" ,binutils-final) ("binutils" ,binutils-final)
("libc" ,glibc-final) ("libc" ,glibc-final)
("libc-debug" ,glibc-final "debug"))))) ("libc-debug" ,glibc-final "debug")
("libc-static" ,glibc-final "static")))))
(define-public gcc-toolchain-4.8 (define-public gcc-toolchain-4.8
(make-gcc-toolchain gcc-4.8)) (make-gcc-toolchain gcc-4.8))