gnu: Fix make-gcc-libc.

Until now the following wouldn't build:
--8<---------------cut here---------------start------------->8---
(use-modules (gnu packages commencement)
             (gnu packages gcc)
             (gnu packages base))

(make-gcc-libc gcc-9 glibc-2.27)
--8<---------------cut here---------------end--------------->8---

* gnu/packages/base.scm (make-gcc-libc)[phases]: Add environment
variables to place the target libc on the system header search path.
[make-flags]: Remove unncessary FLAGS_FOR_TARGET.
[native-inputs]: Construct in a way that doesn't require emptying
inputs.
This commit is contained in:
Carl Dong 2019-10-25 00:12:38 -04:00
parent 76dbadac59
commit 2b1d708294
No known key found for this signature in database
GPG key ID: 0CC52153197991A5

View file

@ -981,18 +981,23 @@ (define-public (make-gcc-libc base-gcc libc)
(substitute-keyword-arguments
(ensure-keyword-arguments (package-arguments base-gcc)
'(#:implicit-inputs? #f))
((#:make-flags flags)
`(let ((libc (assoc-ref %build-inputs "libc")))
;; FLAGS_FOR_TARGET are needed for the target libraries to receive
;; the -Bxxx for the startfiles.
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
,flags)))))
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'treat-glibc-as-system-header
(lambda _
(let ((libc (assoc-ref %build-inputs "libc")))
;; GCCs build processes requires that the libc
;; we're building against is on the system header
;; search path.
(for-each (lambda (var)
(setenv var (string-append libc "/include")))
'("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
#t)))))))
(native-inputs
`(("libc" ,libc)
("libc:static" ,libc "static")
,@(append (package-inputs base-gcc)
(fold alist-delete (%final-inputs) '("libc" "libc:static")))))
(inputs '())))
`(,@(package-native-inputs base-gcc)
,@(append (fold alist-delete (%final-inputs) '("libc" "libc:static")))
("libc" ,libc)
("libc:static" ,libc "static")))))
(define-public (make-glibc-locales glibc)
(package