~ruther/guix-local

d0abf829a95b5a4501eae452e03ca8b1d47b0b16 — Ludovic Courtès 10 years ago 9942e80
gnu: Add libstdc++ as a standalone package.

* gnu/packages/gcc.scm (make-libstdc++): New procedure.
  (libstdc++-4.9): New variable.
* gnu/packages/commencement.scm (libstdc++): Add TODO comment.
2 files changed, 27 insertions(+), 0 deletions(-)

M gnu/packages/commencement.scm
M gnu/packages/gcc.scm
M gnu/packages/commencement.scm => gnu/packages/commencement.scm +1 -0
@@ 497,6 497,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define libstdc++
  ;; Intermediate libstdc++ that will allow us to build the final GCC
  ;; (remember that GCC-BOOT0 cannot build libstdc++.)
  ;; TODO: Write in terms of 'make-libstdc++'.
  (package-with-bootstrap-guile
   (package (inherit gcc-4.8)
     (name "libstdc++")

M gnu/packages/gcc.scm => gnu/packages/gcc.scm +26 -0
@@ 347,6 347,32 @@ Go.  It also includes runtime support libraries for these languages.")
                            '("gcc-arm-link-spec-fix.patch"
                              "gcc-5.0-libvtv-runpath.patch")))))))

(define-public (make-libstdc++ gcc)
  "Return a libstdc++ package based on GCC.  The primary use case is when
using compilers other than GCC."
  (package
    (inherit gcc)
    (name "libstdc++")
    (arguments
     `(#:out-of-source? #t
       #:phases (alist-cons-before
                 'configure 'chdir
                 (lambda _
                   (chdir "libstdc++-v3"))
                 %standard-phases)
       #:configure-flags `("--disable-libstdcxx-pch"
                           ,(string-append "--with-gxx-include-dir="
                                           (assoc-ref %outputs "out")
                                           "/include"))))
    (outputs '("out" "debug"))
    (inputs '())
    (native-inputs '())
    (propagated-inputs '())
    (synopsis "GNU C++ standard library")))

(define-public libstdc++-4.9
  (make-libstdc++ gcc-4.9))

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