~ruther/guix-local

270b501ee2b1b4ea4003a60b5568fc4dcb09d9db — Mark H Weaver 11 years ago 84cbe39
gnu: gcc-static: Remove -lgcc_s from GNU_USER_TARGET_LIB_SPEC.

* gnu/packages/make-bootstrap.scm (%gcc-static): Add 'remove-lgcc_s
  phase.
* gnu/packages/gcc.scm (gcc-4.7): Add comment.
2 files changed, 19 insertions(+), 1 deletions(-)

M gnu/packages/gcc.scm
M gnu/packages/make-bootstrap.scm
M gnu/packages/gcc.scm => gnu/packages/gcc.scm +6 -0
@@ 1,5 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 207,6 208,11 @@ where the OS part is overloaded to denote a specific ABI---into GCC
                   ;; libgcc_s.so when pthread_cancel support is needed, but
                   ;; having it in the application's RUNPATH isn't enough; see
                   ;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
                   ;;
                   ;; NOTE: The '-lgcc_s' added below needs to be removed in a
                   ;; later phase of %gcc-static.  If you change the string
                   ;; below, make sure to update the relevant code in
                   ;; %gcc-static package as needed.
                   (format #f "#define GNU_USER_TARGET_LIB_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib -lgcc_s}} \" ~a"
                           libc libc libdir libdir suffix))

M gnu/packages/make-bootstrap.scm => gnu/packages/make-bootstrap.scm +13 -1
@@ 430,7 430,19 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                       "--disable-libquadmath"
                       "--disable-decimal-float")
                      (remove (cut string-match "--(.*plugin|enable-languages)" <>)
                              ,flags))))))
                              ,flags)))
            ((#:phases phases)
             `(alist-cons-after
               'pre-configure 'remove-lgcc_s
               (lambda _
                 ;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in
                 ;; the 'pre-configure phase of our main gcc package, because
                 ;; that shared library is not present in this static gcc.  See
                 ;; <https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00008.html>.
                 (substitute* (find-files "gcc/config"
                                          "^gnu-user.*\\.h$")
                   ((" -lgcc_s}}") "}}")))
               ,phases)))))
     (native-inputs
      (if (%current-target-system)
          `(;; When doing a Canadian cross, we need GMP/MPFR/MPC both