summary refs log tree commit diff
path: root/gnu/packages/gcc.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r--gnu/packages/gcc.scm38
1 files changed, 15 insertions, 23 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index b652521bb8..414f31cb3c 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -64,15 +64,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
          '())))
 
 (define-public gcc-4.7
-  (let* ((stripped? #t)                           ; TODO: make this a parameter
-         (install-target
-          (lambda ()
-            ;; The 'install-strip' rule uses the native 'strip' instead of
-            ;; 'TARGET-strip' when cross-compiling.  Thus, use 'install' in that
-            ;; case.
-            (if (and stripped? (not (%current-target-system)))
-                "install-strip"
-                "install")))
+  (let* ((stripped? #t)      ;whether to strip the compiler, not the libraries
          (maybe-target-tools
           (lambda ()
             ;; Return the `_FOR_TARGET' variables that are needed when
@@ -144,8 +136,9 @@ where the OS part is overloaded to denote a specific ABI---into GCC
 
       ;; Separate out the run-time support libraries because all the
       ;; dynamic-linked objects depend on it.
-      (outputs '("out"                     ; commands, etc. (60+ MiB)
-                 "lib"))                   ; libgcc_s, libgomp, etc. (15+ MiB)
+      (outputs '("out"                    ;commands, etc. (60+ MiB)
+                 "lib"                    ;libgcc_s, libgomp, etc. (15+ MiB)
+                 "debug"))                ;debug symbols of run-time libraries
 
       (inputs `(("gmp" ,gmp)
                 ("mpfr" ,mpfr)
@@ -160,7 +153,6 @@ where the OS part is overloaded to denote a specific ABI---into GCC
 
       (arguments
        `(#:out-of-source? #t
-         #:strip-binaries? ,stripped?
          #:configure-flags ,(configure-flags)
          #:make-flags
          ;; None of the flags below are needed when doing a Canadian cross.
@@ -235,8 +227,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC
                    ;; 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))
+\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
+                           libc libc libdir suffix))
                   (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
                    (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
 #define STANDARD_STARTFILE_PREFIX_2 \"\"
@@ -248,6 +240,14 @@ where the OS part is overloaded to denote a specific ABI---into GCC
                 (("static char const sed_cmd_z\\[\\] =.*;")
                  "static char const sed_cmd_z[] = \"sed\";"))
 
+              (when (file-exists? "libbacktrace")
+                ;; GCC 4.8+ comes with libbacktrace.  By default it builds
+                ;; with -Werror, which fails with a -Wcast-qual error in glibc
+                ;; 2.21's stdlib-bsearch.h.  Remove -Werror.
+                (substitute* "libbacktrace/configure"
+                  (("WARN_FLAGS=(.*)-Werror" _ flags)
+                   (string-append "WARN_FLAGS=" flags))))
+
               ;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s.
               ;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354>
               ;; and <http://bugs.gnu.org/20358>.
@@ -280,11 +280,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
              (substitute* "Makefile"
                (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
                 "TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))
-           (alist-replace 'install
-                          (lambda* (#:key outputs #:allow-other-keys)
-                            (zero?
-                             (system* "make" ,(install-target))))
-                          %standard-phases)))))
+           %standard-phases))))
 
       (native-search-paths
        (list (search-path-specification
@@ -313,10 +309,6 @@ Go.  It also includes runtime support libraries for these languages.")
               (sha256
                (base32
                 "15c6gwm6dzsaagamxkak5smdkf1rdfbqqjs9jdbrp3lbg4ism02a"))
-
-              ;; ARM 'link' spec issue reported at
-              ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65711> and
-              ;; <https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01387.html>.
               (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
 
 (define-public gcc-4.9