~ruther/guix-local

8309c3899aee9429df51eba4566c67d0cc27f68c — Ludovic Courtès 10 years ago c5b65f7
gnu: commencement: Use GMP 6.0.0a for bootstrapping.

* gnu/packages/multiprecision.scm (gmp-6.0): New variable.
* gnu/packages/commencement.scm (gcc-boot0, gcc-final): Use it.
* gnu/packages/patches/gmp-arm-asm-nothumb.patch: New file, reinstated
from before e414a7d.
* gnu-system.am (dist_patch_DATA): Add it.
M gnu-system.am => gnu-system.am +1 -0
@@ 491,6 491,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/glibc-locale-incompatibility.patch	\
  gnu/packages/patches/glibc-o-largefile.patch			\
  gnu/packages/patches/glibc-versioned-locpath.patch		\
  gnu/packages/patches/gmp-arm-asm-nothumb.patch		\
  gnu/packages/patches/gmp-faulty-test.patch			\
  gnu/packages/patches/gnucash-price-quotes-perl.patch		\
  gnu/packages/patches/gnutls-doc-fix.patch			\

M gnu/packages/commencement.scm => gnu/packages/commencement.scm +3 -3
@@ 231,7 231,7 @@
                                        (package-full-name lib)
                                        char-set:letter)
                                      ,(package-name lib)))
                          (list gmp mpfr mpc))))
                          (list gmp-6.0 mpfr mpc))))
               (alist-cons-after
                'install 'symlink-libgcc_eh
                (lambda* (#:key outputs #:allow-other-keys)


@@ 245,7 245,7 @@
                      (symlink "libgcc.a" "libgcc_eh.a"))))
                ,phases))))))

     (inputs `(("gmp-source" ,(package-source gmp))
     (inputs `(("gmp-source" ,(package-source gmp-6.0))
               ("mpfr-source" ,(package-source mpfr))
               ("mpc-source" ,(package-source mpc))
               ("binutils-cross" ,binutils-boot0)


@@ 636,7 636,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
                     ("static-bash" ,static-bash-for-glibc)
                     ,@(package-native-inputs gcc-boot0)))

    (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp)))
    (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
              ("mpfr-source" ,(package-source mpfr))
              ("mpc-source" ,(package-source mpc))
              ("ld-wrapper" ,ld-wrapper-boot3)

M gnu/packages/multiprecision.scm => gnu/packages/multiprecision.scm +18 -0
@@ 60,6 60,24 @@ cryptography and computational algebra.")
   (license lgpl3+)
   (home-page "http://gmplib.org/")))

(define-public gmp-6.0
  ;; We keep this one around to bootstrap GCC, to work around a compilation
  ;; issue on ARM.  See
  ;; <https://gmplib.org/list-archives/gmp-bugs/2015-December/003848.html>.
  (package
    (inherit gmp)
    (version "6.0.0a")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gmp/gmp-"
                                  version ".tar.xz"))
              (sha256
               (base32
                "0r5pp27cy7ch3dg5v0rsny8bib1zfvrza6027g2mp5f6v8pd6mli"))
              (patches (map search-patch
                            '("gmp-arm-asm-nothumb.patch"
                              "gmp-faulty-test.patch")))))))

(define-public mpfr
  (package
   (name "mpfr")

A gnu/packages/patches/gmp-arm-asm-nothumb.patch => gnu/packages/patches/gmp-arm-asm-nothumb.patch +21 -0
@@ 0,0 1,21 @@

# HG changeset patch
# User Torbjorn Granlund <tege@gmplib.org>
# Date 1396602422 -7200
# Node ID 676e2d0f0e4dd301a7066079d2c9326c25c34a40
# Parent  0194a75b56b21a9196626430af86c5bd9110c42d
Conditionalise ARM asm on !__thumb__.

diff -r 0194a75b56b2 -r 676e2d0f0e4d mpn/generic/div_qr_1n_pi1.c
--- a/mpn/generic/div_qr_1n_pi1.c	Thu Apr 03 23:58:51 2014 +0200
+++ b/mpn/generic/div_qr_1n_pi1.c	Fri Apr 04 11:07:02 2014 +0200
@@ -130,7 +130,7 @@
 	     "%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
 #endif
 
-#if defined (__arm__) && W_TYPE_SIZE == 32
+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
 #define add_mssaaaa(m, sh, sl, ah, al, bh, bl)				\
   __asm__ (  "adds	%2, %5, %6\n\t"					\
 	     "adcs	%1, %3, %4\n\t"					\