gnu: cross-base: Do not strip cross-gcc.

Fixes a regression introduced in 9063ef0 whereby #:strip-binaries? would be
left to #t, leading to an invalid cross-built libgcc.a (see
<http://hydra.gnu.org/build/492479/nixlog/1/tail-reload>.)

* gnu/packages/cross-base.scm (cross-gcc-arguments): Add #:strip-binaries? #f
  unconditionally.  Replace 'install' phase to use "make install-strip".
This commit is contained in:
Ludovic Courtès 2015-06-10 23:19:30 +02:00
parent ab999c2516
commit 2a1552c608
1 changed files with 96 additions and 90 deletions

View File

@ -86,7 +86,13 @@ may be either a libc package or #f.)"
;; Set the current target system so that 'glibc-dynamic-linker' returns the ;; Set the current target system so that 'glibc-dynamic-linker' returns the
;; right name. ;; right name.
(parameterize ((%current-target-system target)) (parameterize ((%current-target-system target))
(substitute-keyword-arguments (package-arguments gcc-4.9) ;; Disable stripping as this can break binaries, with object files of
;; libgcc.a showing up as having an unknown architecture. See
;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
;; for instance.
(let ((args `(#:strip-binaries? #f
,@(package-arguments gcc-4.9))))
(substitute-keyword-arguments args
((#:configure-flags flags) ((#:configure-flags flags)
`(append (list ,(string-append "--target=" target) `(append (list ,(string-append "--target=" target)
,@(if libc ,@(if libc
@ -141,7 +147,13 @@ may be either a libc package or #f.)"
'("as" "nm")) '("as" "nm"))
(symlink wrapper (string-append libexec "/ld")) (symlink wrapper (string-append libexec "/ld"))
#t)) #t))
,phases))) (alist-replace
'install
(lambda _
;; Unlike our 'strip' phase, this will do the right thing
;; for cross-compilers.
(zero? (system* "make" "install-strip")))
,phases))))
(if libc (if libc
`(alist-cons-before `(alist-cons-before
'configure 'set-cross-path 'configure 'set-cross-path
@ -174,13 +186,7 @@ may be either a libc package or #f.)"
(remove cross? libpath) ":")) (remove cross? libpath) ":"))
#t))) #t)))
,phases) ,phases)
phases))) phases)))))))
((#:strip-binaries? _)
;; Disable stripping as this can break binaries, with object files of
;; libgcc.a showing up as having an unknown architecture. See
;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
;; for instance.
#f))))
(define (cross-gcc-patches target) (define (cross-gcc-patches target)
"Return GCC patches needed for TARGET." "Return GCC patches needed for TARGET."