mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: cross-base: Let glibc use the right Binutils programs.
This replaces ‘glibc-cross-objdump.patch’ and ‘glibc-cross-objcopy.patch’ (not applied to glibc@2.38): these patches were committed upstream and later reverted on the grounds that ‘gcc -print-prog-name=objdump’ should find the cross ‘objdump’: https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/ * gnu/packages/cross-base.scm (cross-libc*): Add ‘add-cross-binutils-to-PATH’ phase. Change-Id: I38dc7a6134177ec73313c0a9c8b0a12c85c60e26
This commit is contained in:
parent
7c575fac52
commit
4a4508c241
1 changed files with 45 additions and 29 deletions
|
@ -698,35 +698,51 @@ returned."
|
|||
(guix build utils)
|
||||
(srfi srfi-26))
|
||||
|
||||
,@(package-arguments libc))
|
||||
((#:configure-flags flags)
|
||||
`(cons ,(string-append "--host=" target)
|
||||
,(if (target-hurd? target)
|
||||
`(append (list "--disable-werror"
|
||||
,@%glibc/hurd-configure-flags)
|
||||
,flags)
|
||||
flags)))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'configure 'set-cross-kernel-headers-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((kernel (assoc-ref inputs "kernel-headers"))
|
||||
(cpath (string-append kernel "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
',%gcc-cross-include-paths)
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append kernel "/lib")) ; for Hurd's libihash
|
||||
#t)))
|
||||
,@(if (target-hurd? target)
|
||||
'((add-after 'install 'augment-libc.so
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out")))
|
||||
(substitute* (string-append out "/lib/libc.so")
|
||||
(("/[^ ]+/lib/libc.so.0.3")
|
||||
(string-append out "/lib/libc.so.0.3"
|
||||
" libmachuser.so libhurduser.so"))))
|
||||
#t)))
|
||||
'())))))
|
||||
,@(package-arguments libc))
|
||||
((#:configure-flags flags)
|
||||
`(cons ,(string-append "--host=" target)
|
||||
,(if (target-hurd? target)
|
||||
`(append (list "--disable-werror"
|
||||
,@%glibc/hurd-configure-flags)
|
||||
,flags)
|
||||
flags)))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'configure 'set-cross-kernel-headers-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((kernel (assoc-ref inputs "kernel-headers"))
|
||||
(cpath (string-append kernel "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
',%gcc-cross-include-paths)
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append kernel "/lib")) ; for Hurd's libihash
|
||||
#t)))
|
||||
(add-before 'configure 'add-cross-binutils-to-PATH
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
|
||||
;; -print-prog-name=objdump' returns the correct name. See
|
||||
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
|
||||
(define cross-objdump
|
||||
(search-input-file
|
||||
inputs
|
||||
(string-append ,target "/bin/objdump")))
|
||||
|
||||
(define cross-binutils
|
||||
(dirname cross-objdump))
|
||||
|
||||
(format #t "adding '~a' to the front of 'PATH'~%"
|
||||
cross-binutils)
|
||||
(setenv "PATH" (string-append cross-binutils ":" (getenv "PATH")))))
|
||||
,@(if (target-hurd? target)
|
||||
'((add-after 'install 'augment-libc.so
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out")))
|
||||
(substitute* (string-append out "/lib/libc.so")
|
||||
(("/[^ ]+/lib/libc.so.0.3")
|
||||
(string-append out "/lib/libc.so.0.3"
|
||||
" libmachuser.so libhurduser.so"))))
|
||||
#t)))
|
||||
'())))))
|
||||
|
||||
;; Shadow the native "kernel-headers" because glibc's recipe expects the
|
||||
;; "kernel-headers" input to point to the right thing.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue