~ruther/guix-local

fc649d0aada3d71de75ee6ca149bc8bbd045efd5 — Carlos Sánchez de La Lama 9 years ago 0c1b29d
gnu: gcc: Adjust for PowerPC.

* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add powerpc specific
substitutions for dynamic linker and start files locations in
'pre-configure' phase.
* gnu/packages/make-bootstrap.scm (%gcc-static)[arguments]: Add
"gcc/config/rs6000/sysv4.h" to the list of files in 'remove-lgcc_s'
phase.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 20 insertions(+), 4 deletions(-)

M gnu/packages/gcc.scm
M gnu/packages/make-bootstrap.scm
M gnu/packages/gcc.scm => gnu/packages/gcc.scm +17 -2
@@ 4,6 4,7 @@
;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 211,7 212,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC

                ;; Fix the dynamic linker's file name.
                (substitute* (find-files "gcc/config"
                                         "^(linux|gnu)(64|-elf|-eabi)?\\.h$")
                                         "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
                  (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
                   (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
                           suffix


@@ 240,7 241,21 @@ where the OS part is overloaded to denote a specific ABI---into GCC
                   (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
                           libc line))))
                           libc line)))

              ;; The rs6000 (a.k.a. powerpc) config in GCC does not use
              ;; GNU_USER_* defines.  Do the above for this case.
              (substitute*
                  "gcc/config/rs6000/sysv4.h"
                (("#define LIB_LINUX_SPEC (.*)$" _ suffix)
                 (format #f "#define LIB_LINUX_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
                         libc libc libdir suffix))
                (("#define	STARTFILE_LINUX_SPEC.*$" line)
                 (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
                         libc line))))

              ;; Don't retain a dependency on the build-time sed.
              (substitute* "fixincludes/fixincl.x"

M gnu/packages/make-bootstrap.scm => gnu/packages/make-bootstrap.scm +3 -2
@@ 441,8 441,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                 ;; 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$")
                 (substitute* (cons "gcc/config/rs6000/sysv4.h"
                                    (find-files "gcc/config"
                                                "^gnu-user.*\\.h$"))
                   ((" -lgcc_s}}") "}}")))
               ,phases)))))
     (native-inputs