~ruther/guix-local

fcdebadf39a073516df4b3e2c39fda87032d4394 — Mark H Weaver 11 years ago ee06af5
gnu: gcc-4.9: Fix build on MIPS.

* gnu/packages/gcc.scm (gcc-4.9): Add 'join-two-line-dynamic-linker-defns
  phase.
1 files changed, 23 insertions(+), 1 deletions(-)

M gnu/packages/gcc.scm
M gnu/packages/gcc.scm => gnu/packages/gcc.scm +23 -1
@@ 280,7 280,29 @@ Go.  It also includes runtime support libraries for these languages.")
                                 version "/gcc-" version ".tar.bz2"))
             (sha256
              (base32
               "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))))))
               "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))))

    ;; TODO: In core-updates, improve the 'pre-configure phase of the main
    ;; 'gcc' package so that the 'join-two-line-dynamic-linker-defns phase is
    ;; no longer needed here.  Then the entire 'arguments' override below can
    ;; be removed.
    (arguments
     (substitute-keyword-arguments (package-arguments gcc-4.7)
       ((#:phases phases)
        `(alist-cons-before
          'pre-configure 'join-two-line-dynamic-linker-defns
          (lambda* (#:key inputs outputs #:allow-other-keys)
            (let ((libc (assoc-ref inputs "libc")))
              (when libc
                ;; Join two-line definitions of GLIBC_DYNAMIC_LINKER* into a
                ;; single line, to allow the 'pre-configure phase to work
                ;; properly.
                (substitute* (find-files "gcc/config"
                                         "^linux(64|-elf)?\\.h$")
                  (("(#define GLIBC_DYNAMIC_LINKER[^ ]*.*)\\\\\n$" _ line)
                   line)))
              #t))
          ,phases))))))

(define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
  "Return a custom version of GCC that supports LANGUAGES."