aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--build-aux/download.scm7
-rw-r--r--gnu-system.am29
-rw-r--r--gnu/packages/autotools.scm54
-rw-r--r--gnu/packages/base.scm90
-rw-r--r--gnu/packages/bootstrap.scm63
-rwxr-xr-xgnu/packages/bootstrap/mips64el-linux/bashbin0 -> 1409080 bytes
-rwxr-xr-xgnu/packages/bootstrap/mips64el-linux/mkdirbin0 -> 698500 bytes
-rwxr-xr-xgnu/packages/bootstrap/mips64el-linux/tarbin0 -> 1283708 bytes
-rwxr-xr-xgnu/packages/bootstrap/mips64el-linux/xzbin0 -> 851736 bytes
-rw-r--r--gnu/packages/cross-base.scm9
-rw-r--r--gnu/packages/gd.scm5
-rw-r--r--gnu/packages/gdb.scm7
-rw-r--r--gnu/packages/libffi.scm4
-rw-r--r--gnu/packages/linux.scm3
-rw-r--r--gnu/packages/lsh.scm3
-rw-r--r--gnu/packages/m4.scm7
-rw-r--r--gnu/packages/make-bootstrap.scm37
-rw-r--r--gnu/packages/mit-krb5.scm9
-rw-r--r--gnu/packages/mp3.scm3
-rw-r--r--gnu/packages/multiprecision.scm4
-rw-r--r--gnu/packages/oggvorbis.scm3
-rw-r--r--gnu/packages/patches/alsa-lib-mips-atomic-fix.patch42
-rw-r--r--gnu/packages/patches/binutils-loongson-madd-fix.patch44
-rw-r--r--gnu/packages/patches/binutils-loongson-workaround.patch34
-rw-r--r--gnu/packages/patches/gd-mips64-deplibs-fix.patch17
-rw-r--r--gnu/packages/patches/gdb-loongson-madd-fix.patch44
-rw-r--r--gnu/packages/patches/glibc-make-4.0.patch12
-rw-r--r--gnu/packages/patches/libffi-mips-n32-fix.patch21
-rw-r--r--gnu/packages/patches/libmad-mips-newgcc.patch16
-rw-r--r--gnu/packages/patches/liboop-mips64-deplibs-fix.patch17
-rw-r--r--gnu/packages/patches/libtheora-config-guess.patch37
-rw-r--r--gnu/packages/patches/libtool-skip-tests-for-mips.patch12
-rw-r--r--gnu/packages/patches/mit-krb5-init-fix.patch18
-rw-r--r--gnu/packages/patches/tar-gets-undeclared.patch26
-rw-r--r--gnu/packages/perl.scm5
-rw-r--r--gnu/packages/readline.scm11
-rw-r--r--guix/build-system/cmake.scm3
-rw-r--r--guix/build-system/gnu.scm6
-rw-r--r--guix/build-system/python.scm5
-rw-r--r--guix/build/gnu-build-system.scm10
-rw-r--r--guix/build/utils.scm2
-rw-r--r--guix/packages.scm26
-rw-r--r--m4/guix.m42
-rw-r--r--tests/packages.scm3
45 files changed, 570 insertions, 181 deletions
diff --git a/.gitignore b/.gitignore
index 78b16800bf..b5a87f44aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,6 +46,7 @@ config.cache
/doc/version.texi
/gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz
/gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz
+/gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
/guix/config.scm
/nix/nix-daemon/nix-daemon.cc
/nix/config.h
diff --git a/build-aux/download.scm b/build-aux/download.scm
index 91b41bcec1..68ad7773f5 100644
--- a/build-aux/download.scm
+++ b/build-aux/download.scm
@@ -45,7 +45,12 @@
(match (string-tokenize file (char-set-complement (char-set #\/)))
((_ ... system basename)
(string->uri (string-append %url-base "/" system
- "/20130105/" basename)))))
+ (match system
+ ("mips64el-linux"
+ "/20131017/")
+ (_
+ "/20130105/"))
+ basename)))))
(match (command-line)
((_ file expected-hash)
diff --git a/gnu-system.am b/gnu-system.am
index 3b0c2b88ea..9d7d29f7f7 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -1,6 +1,7 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
+# Copyright © 2013 Mark H Weaver <mhw@netris.org>
#
# This file is part of GNU Guix.
#
@@ -203,11 +204,14 @@ GNU_SYSTEM_MODULES = \
patchdir = $(guilemoduledir)/gnu/packages/patches
dist_patch_DATA = \
+ gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \
gnu/packages/patches/apr-skip-getservbyname-test.patch \
gnu/packages/patches/automake-skip-amhello-tests.patch \
gnu/packages/patches/avahi-localstatedir.patch \
gnu/packages/patches/bigloo-gc-shebangs.patch \
gnu/packages/patches/binutils-ld-new-dtags.patch \
+ gnu/packages/patches/binutils-loongson-madd-fix.patch \
+ gnu/packages/patches/binutils-loongson-workaround.patch \
gnu/packages/patches/cdparanoia-fpic.patch \
gnu/packages/patches/cmake-fix-tests.patch \
gnu/packages/patches/cpio-gets-undeclared.patch \
@@ -219,12 +223,15 @@ dist_patch_DATA = \
gnu/packages/patches/flex-bison-tests.patch \
gnu/packages/patches/gawk-shell.patch \
gnu/packages/patches/gcc-cross-environment-variables.patch \
+ gnu/packages/patches/gd-mips64-deplibs-fix.patch \
+ gnu/packages/patches/gdb-loongson-madd-fix.patch \
gnu/packages/patches/glib-tests-desktop.patch \
gnu/packages/patches/glib-tests-homedir.patch \
gnu/packages/patches/glib-tests-newnet.patch \
gnu/packages/patches/glib-tests-prlimit.patch \
gnu/packages/patches/glibc-bootstrap-system.patch \
gnu/packages/patches/glibc-ldd-x86_64.patch \
+ gnu/packages/patches/glibc-make-4.0.patch \
gnu/packages/patches/glibc-no-ld-so-cache.patch \
gnu/packages/patches/grub-gets-undeclared.patch \
gnu/packages/patches/gstreamer-0.10-bison3.patch \
@@ -235,11 +242,17 @@ dist_patch_DATA = \
gnu/packages/patches/guile-relocatable.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
gnu/packages/patches/libevent-dns-tests.patch \
+ gnu/packages/patches/libffi-mips-n32-fix.patch \
+ gnu/packages/patches/liboop-mips64-deplibs-fix.patch \
+ gnu/packages/patches/libmad-mips-newgcc.patch \
+ gnu/packages/patches/libtheora-config-guess.patch \
gnu/packages/patches/libtool-skip-tests.patch \
+ gnu/packages/patches/libtool-skip-tests-for-mips.patch \
gnu/packages/patches/m4-gets-undeclared.patch \
gnu/packages/patches/m4-readlink-EINVAL.patch \
gnu/packages/patches/make-impure-dirs.patch \
gnu/packages/patches/mcron-install.patch \
+ gnu/packages/patches/mit-krb5-init-fix.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/procps-make-3.82.patch \
@@ -250,7 +263,6 @@ dist_patch_DATA = \
gnu/packages/patches/readline-link-ncurses.patch \
gnu/packages/patches/ripperx-libm.patch \
gnu/packages/patches/scheme48-tests.patch \
- gnu/packages/patches/tar-gets-undeclared.patch \
gnu/packages/patches/tcsh-fix-autotest.patch \
gnu/packages/patches/teckit-cstdio.patch \
gnu/packages/patches/valgrind-glibc.patch \
@@ -261,6 +273,7 @@ dist_patch_DATA = \
bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
+bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux
dist_bootstrap_x86_64_linux_DATA = \
gnu/packages/bootstrap/x86_64-linux/bash \
@@ -274,12 +287,20 @@ dist_bootstrap_i686_linux_DATA = \
gnu/packages/bootstrap/i686-linux/tar \
gnu/packages/bootstrap/i686-linux/xz
+dist_bootstrap_mips64el_linux_DATA = \
+ gnu/packages/bootstrap/mips64el-linux/bash \
+ gnu/packages/bootstrap/mips64el-linux/mkdir \
+ gnu/packages/bootstrap/mips64el-linux/tar \
+ gnu/packages/bootstrap/mips64el-linux/xz
+
# Big bootstrap binaries are not included in the tarball. Instead, they
# are downloaded.
nodist_bootstrap_x86_64_linux_DATA = \
gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz
nodist_bootstrap_i686_linux_DATA = \
gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz
+nodist_bootstrap_mips64el_linux_DATA = \
+ gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
# Those files must remain executable, so they remain executable once
# imported into the store.
@@ -288,7 +309,8 @@ install-data-hook:
DISTCLEANFILES = \
$(nodist_bootstrap_x86_64_linux_DATA) \
- $(nodist_bootstrap_i686_linux_DATA)
+ $(nodist_bootstrap_i686_linux_DATA) \
+ $(nodist_bootstrap_mips64el_linux_DATA)
# Method to download a file from an external source.
DOWNLOAD_FILE = \
@@ -302,3 +324,6 @@ gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz:
gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz:
$(MKDIR_P) `dirname "$@"`
$(DOWNLOAD_FILE) "$@" "f9a7c6f4c556eaafa2a69bcf07d4ffbb6682ea831d4c9da9ba095aca3ccd217c"
+gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz:
+ $(MKDIR_P) `dirname "$@"`
+ $(DOWNLOAD_FILE) "$@" "1735d8b3f94749a4a349b6135f3aaa089f65dc62951c89c6c43ba0f2fc34211d"
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index ab0c7dcbdf..90f80872ed 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -216,7 +216,10 @@ simplifying the entire process for the developer.")
version ".tar.gz"))
(sha256
(base32
- "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk"))))
+ "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk"))
+ (patches
+ (list (search-patch "libtool-skip-tests.patch")
+ (search-patch "libtool-skip-tests-for-mips.patch")))))
(build-system gnu-build-system)
(native-inputs `(("m4" ,m4)
("perl" ,perl)))
@@ -228,33 +231,30 @@ simplifying the entire process for the developer.")
"out")) ; libltdl.so, ltdl.h, etc.
(arguments
- `(#:patches (list (assoc-ref %build-inputs "patch/skip-tests"))
- ,@(if (%current-target-system)
- '() ; no `check' phase when cross-building
- '(#:phases (alist-cons-before
- 'check 'pre-check
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Run the test suite in parallel, if possible.
- (let ((ncores
- (cond
- ((getenv "NIX_BUILD_CORES")
- =>
- (lambda (n)
- (if (zero? (string->number n))
- (number->string (current-processor-count))
- n)))
- (else "1"))))
- (setenv "TESTSUITEFLAGS"
- (string-append "-j" ncores)))
+ (if (%current-target-system)
+ '() ; no `check' phase when cross-building
+ '(#:phases (alist-cons-before
+ 'check 'pre-check
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Run the test suite in parallel, if possible.
+ (let ((ncores
+ (cond
+ ((getenv "NIX_BUILD_CORES")
+ =>
+ (lambda (n)
+ (if (zero? (string->number n))
+ (number->string (current-processor-count))
+ n)))
+ (else "1"))))
+ (setenv "TESTSUITEFLAGS"
+ (string-append "-j" ncores)))
- ;; Path references to /bin/sh.
- (let ((bash (assoc-ref inputs "bash")))
- (substitute* "tests/testsuite"
- (("/bin/sh")
- (string-append bash "/bin/bash")))))
- %standard-phases)))))
- (inputs `(("patch/skip-tests"
- ,(search-patch "libtool-skip-tests.patch"))))
+ ;; Path references to /bin/sh.
+ (let ((bash (assoc-ref inputs "bash")))
+ (substitute* "tests/testsuite"
+ (("/bin/sh")
+ (string-append bash "/bin/bash")))))
+ %standard-phases))))
(synopsis "Generic shared library support tools")
(description
"Libtool is a script to help in the creation of shared libraries. By
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 8cee8f850b..41e1a8d049 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -73,14 +73,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
- (version "2.14")
+ (version "2.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
- "1qbjb1l7f9blckc5pqy8jlf6482hpx4awn2acmhyf5mv9wfq03p7"))))
+ "052kjsafg2x7n2zpy3iw4pzwf8fdfng5pcvi9v3chx3rb1786nmz"))))
(build-system gnu-build-system)
(synopsis "Print lines matching a pattern")
(description
@@ -130,18 +130,15 @@ is often used for substituting text patterns in a stream.")
(define-public tar
(package
(name "tar")
- (version "1.26")
+ (version "1.27")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/tar/tar-"
version ".tar.bz2"))
(sha256
(base32
- "0hbdkzmchq9ycr2x1pxqdcgdbaxksh8c6ac0jf75jajhcks6jlss"))))
+ "0yrwmx2f721ahpnki4fnzvnmrd3md3bq417icb4wrjky7k3caf12"))))
(build-system gnu-build-system)
- (inputs `(("patch/gets" ,(search-patch "tar-gets-undeclared.patch"))))
- (arguments
- `(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
(synopsis "Managing tar archives")
(description
"Tar provides the ability to create tar archives, as well as the
@@ -212,19 +209,15 @@ interactive means to merge two files.")
version ".tar.gz"))
(sha256
(base32
- "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3"))))
+ "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks3"))
+ (patches (list (search-patch "findutils-absolute-paths.patch")))))
(build-system gnu-build-system)
- (native-inputs
- `(("patch/absolute-paths"
- ,(search-patch "findutils-absolute-paths.patch"))))
(arguments
- `(#:patches (list (assoc-ref %build-inputs "patch/absolute-paths"))
-
- ;; Work around cross-compilation failure.
- ;; See <http://savannah.gnu.org/bugs/?27299#comment1>.
- ,@(if (%current-target-system)
- '(#:configure-flags '("gl_cv_func_wcwidth_works=yes"))
- '())))
+ ;; Work around cross-compilation failure.
+ ;; See <http://savannah.gnu.org/bugs/?27299#comment1>.
+ (if (%current-target-system)
+ '(#:configure-flags '("gl_cv_func_wcwidth_works=yes"))
+ '()))
(synopsis "Operating on files matching given criteria")
(description
"Findutils supplies the basic file directory searching utilities of the
@@ -283,21 +276,20 @@ functionality beyond that which is outlined in the POSIX standard.")
(define-public gnu-make
(package
(name "make")
- (version "3.82")
+ (version "4.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/make/make-" version
".tar.bz2"))
(sha256
(base32
- "0ri98385hsd7li6rh4l5afcq92v8l2lgiaz85wgcfh4w2wzsghg2"))))
+ "1nyvn8mknw0mf7727lprva3lisl1y0n03lvar342rrpdmz3qc1p6"))
+ (patches (list (search-patch "make-impure-dirs.patch")))))
(build-system gnu-build-system)
- (native-inputs
- `(("patch/impure-dirs" ,(search-patch "make-impure-dirs.patch"))))
+ (inputs `(("guile" ,guile-2.0)))
(outputs '("out" "debug"))
(arguments
- '(#:patches (list (assoc-ref %build-inputs "patch/impure-dirs"))
- #:phases (alist-cons-before
+ '(#:phases (alist-cons-before
'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
@@ -328,7 +320,10 @@ change.")
version ".tar.bz2"))
(sha256
(base32
- "15qhbkz3r266xaa52slh857qn3abw7rb2x2jnhpfrafpzrb4x4gy"))))
+ "15qhbkz3r266xaa52slh857qn3abw7rb2x2jnhpfrafpzrb4x4gy"))
+ (patches (list (search-patch "binutils-ld-new-dtags.patch")
+ (search-patch "binutils-loongson-workaround.patch")
+ (search-patch "binutils-loongson-madd-fix.patch")))))
(build-system gnu-build-system)
;; Split Binutils in several outputs, mostly to avoid collisions in
@@ -337,11 +332,8 @@ change.")
"lib")) ; libbfd.a, bfd.h, etc.
;; TODO: Add dependency on zlib + those for Gold.
- (native-inputs
- `(("patch/new-dtags" ,(search-patch "binutils-ld-new-dtags.patch"))))
(arguments
- `(#:patches (list (assoc-ref %build-inputs "patch/new-dtags"))
- #:configure-flags '(;; Add `-static-libgcc' to not retain a dependency
+ `(#:configure-flags '(;; Add `-static-libgcc' to not retain a dependency
;; on GCC when bootstrapping.
"LDFLAGS=-static-libgcc"
@@ -372,7 +364,11 @@ archives.")
version ".tar.xz"))
(sha256
(base32
- "18spla703zav8dq9fw7rbzkyv9qfisxb26p7amg1x3wjh7iy3d1c"))))
+ "18spla703zav8dq9fw7rbzkyv9qfisxb26p7amg1x3wjh7iy3d1c"))
+ (patches (map search-patch
+ '("glibc-no-ld-so-cache.patch"
+ "glibc-ldd-x86_64.patch"
+ "glibc-make-4.0.patch")))))
(build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -387,8 +383,6 @@ archives.")
(arguments
`(#:out-of-source? #t
- #:patches (list (assoc-ref %build-inputs "patch/ld.so.cache")
- (assoc-ref %build-inputs "patch/ldd"))
#:configure-flags
(list "--enable-add-ons"
"--sysconfdir=/etc"
@@ -472,11 +466,7 @@ archives.")
(zero? (system* "make" "localedata/install-locales")))
%standard-phases))))
- (inputs `(("patch/ld.so.cache"
- ,(search-patch "glibc-no-ld-so-cache.patch"))
- ("patch/ldd"
- ,(search-patch "glibc-ldd-x86_64.patch"))
- ("static-bash" ,(static-package bash-light))))
+ (inputs `(("static-bash" ,(static-package bash-light))))
(synopsis "The GNU C Library")
(description
"Any Unix-like operating system needs a C library: the library which
@@ -574,6 +564,10 @@ and daylight-saving rules.")
((#:phases phases)
`(alist-replace
'build (lambda _
+ ;; Don't attempt to build 'guile.c' since we don't
+ ;; have Guile here.
+ (substitute* "build.sh"
+ (("guile\\.\\$\\{OBJEXT\\}") ""))
(zero? (system* "./build.sh")))
(alist-replace
'install (lambda* (#:key outputs #:allow-other-keys)
@@ -1005,6 +999,14 @@ store.")
(current-source-location)
#:guile %bootstrap-guile)))
+(define-public gnu-make-final
+ ;; The final GNU Make, which uses the final Guile.
+ (package-with-bootstrap-guile
+ (package-with-explicit-inputs gnu-make
+ `(("guile" ,guile-final)
+ ,@%boot4-inputs)
+ (current-source-location))))
+
(define-public ld-wrapper
;; The final `ld' wrapper, which uses the final Guile.
(package (inherit ld-wrapper-boot3)
@@ -1015,9 +1017,13 @@ store.")
'("guile" "bash"))))))
(define-public %final-inputs
- ;; Final derivations used as implicit inputs by `gnu-build-system'.
- (let ((finalize (cut package-with-explicit-inputs <> %boot4-inputs
- (current-source-location))))
+ ;; Final derivations used as implicit inputs by 'gnu-build-system'. We
+ ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are
+ ;; used for origins that have patches, thereby avoiding circular
+ ;; dependencies.
+ (let ((finalize (compose package-with-bootstrap-guile
+ (cut package-with-explicit-inputs <> %boot4-inputs
+ (current-source-location)))))
`(,@(map (match-lambda
((name package)
(list name (finalize package))))
@@ -1031,8 +1037,8 @@ store.")
("sed" ,sed)
("grep" ,grep)
("findutils" ,findutils)
- ("gawk" ,gawk)
- ("make" ,gnu-make)))
+ ("gawk" ,gawk)))
+ ("make" ,gnu-make-final)
("bash" ,bash-final)
("ld-wrapper" ,ld-wrapper)
("binutils" ,binutils-final)
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 11f54ad051..d369edb8b6 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -64,11 +64,21 @@
#:guile %bootstrap-guile
#:system system)))
+ (define %bootstrap-patch-inputs
+ ;; Packages used when an <origin> has a non-empty 'patches' field.
+ `(("tar" ,%bootstrap-coreutils&co)
+ ("xz" ,%bootstrap-coreutils&co)
+ ("bzip2" ,%bootstrap-coreutils&co)
+ ("gzip" ,%bootstrap-coreutils&co)
+ ("patch" ,%bootstrap-coreutils&co)))
+
(let ((orig-method (origin-method source)))
(origin (inherit source)
(method (cond ((eq? orig-method url-fetch)
(boot url-fetch))
- (else orig-method))))))
+ (else orig-method)))
+ (patch-guile %bootstrap-guile)
+ (patch-inputs %bootstrap-patch-inputs))))
(define (package-from-tarball name source program-to-test description)
"Return a package that correspond to the extraction of SOURCE.
@@ -170,7 +180,12 @@ check whether everything is alright."
(xz (->store "xz"))
(mkdir (->store "mkdir"))
(bash (->store "bash"))
- (guile (->store "guile-2.0.7.tar.xz"))
+ (guile (->store
+ (match (%current-system)
+ ("mips64el-linux"
+ "guile-2.0.9.tar.xz")
+ (_
+ "guile-2.0.7.tar.xz"))))
(builder
(add-text-to-store store
"build-bootstrap-guile.sh"
@@ -209,7 +224,11 @@ $out/bin/guile --version~%"
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
- "/20130105/static-binaries.tar.xz")
+ (match system
+ ("mips64el-linux"
+ "/20131017/static-binaries.tar.xz")
+ (_
+ "/20130105/static-binaries.tar.xz")))
%bootstrap-base-urls))
(sha256
(match system
@@ -218,7 +237,10 @@ $out/bin/guile --version~%"
"0md23alzy6nc5f16pric7mkagczdzr8xbh074sb3rjzrls06j1ls"))
("i686-linux"
(base32
- "0nzj1lmm9b94g7k737cr4w1dv282w5nmhb53238ikax9r6pkc0yb"))))))
+ "0nzj1lmm9b94g7k737cr4w1dv282w5nmhb53238ikax9r6pkc0yb"))
+ ("mips64el-linux"
+ (base32
+ "17k5f1322b7n1difhlyw4cghxvq8fxj7wlhzghh4y362fshvvw1c"))))))
"true" ; the program to test
"Bootstrap binaries of Coreutils, Awk, etc."))
@@ -228,7 +250,11 @@ $out/bin/guile --version~%"
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
- "/20130105/binutils-2.22.tar.xz")
+ (match system
+ ("mips64el-linux"
+ "/20131017/binutils-2.23.2.tar.xz")
+ (_
+ "/20130105/binutils-2.22.tar.xz")))
%bootstrap-base-urls))
(sha256
(match system
@@ -237,7 +263,10 @@ $out/bin/guile --version~%"
"1ffmk2yy2pxvkqgzrkzp3s4jpn4qaaksyk3b5nsc5cjwfm7qkgzh"))
("i686-linux"
(base32
- "1rafk6aq4sayvv3r3d2khn93nkyzf002xzh0xadlyci4mznr6b0a"))))))
+ "1rafk6aq4sayvv3r3d2khn93nkyzf002xzh0xadlyci4mznr6b0a"))
+ ("mips64el-linux"
+ (base32
+ "1dpnmscgg1fxg9xmlbvcm1d8h8brjgqwaal748w3v3qf33is4sl6"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
@@ -279,7 +308,11 @@ $out/bin/guile --version~%"
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
- "/20130105/glibc-2.17.tar.xz")
+ (match (%current-system)
+ ("mips64el-linux"
+ "/20131017/glibc-2.18.tar.xz")
+ (_
+ "/20130105/glibc-2.17.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
@@ -288,7 +321,10 @@ $out/bin/guile --version~%"
"18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3"))
("i686-linux"
(base32
- "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))
+ "08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88"))
+ ("mips64el-linux"
+ (base32
+ "1w9x8r2him7qbqlm7ah1aq04kk2ydma44jzgdzsdj3kjx36sqyq1")))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library")
(description #f)
(home-page #f)
@@ -347,7 +383,11 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
- "/20130105/gcc-4.7.2.tar.xz")
+ (match (%current-system)
+ ("mips64el-linux"
+ "/20131017/gcc-4.7.3.tar.xz")
+ (_
+ "/20130105/gcc-4.7.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
@@ -356,7 +396,10 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
"1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px"))
("i686-linux"
(base32
- "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))
+ "06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2"))
+ ("mips64el-linux"
+ (base32
+ "0g9z8cdlnlzbg67607rxxfk5vi4xjsdc7c2agvdnyzlp0shib6rb")))))))))
(native-search-paths
(list (search-path-specification
(variable "CPATH")
diff --git a/gnu/packages/bootstrap/mips64el-linux/bash b/gnu/packages/bootstrap/mips64el-linux/bash
new file mode 100755
index 0000000000..403671d2fa
--- /dev/null
+++ b/gnu/packages/bootstrap/mips64el-linux/bash
Binary files differ
diff --git a/gnu/packages/bootstrap/mips64el-linux/mkdir b/gnu/packages/bootstrap/mips64el-linux/mkdir
new file mode 100755
index 0000000000..c8d3285b38
--- /dev/null
+++ b/gnu/packages/bootstrap/mips64el-linux/mkdir
Binary files differ
diff --git a/gnu/packages/bootstrap/mips64el-linux/tar b/gnu/packages/bootstrap/mips64el-linux/tar
new file mode 100755
index 0000000000..0cdf7cce2c
--- /dev/null
+++ b/gnu/packages/bootstrap/mips64el-linux/tar
Binary files differ
diff --git a/gnu/packages/bootstrap/mips64el-linux/xz b/gnu/packages/bootstrap/mips64el-linux/xz
new file mode 100755
index 0000000000..b0622ba946
--- /dev/null
+++ b/gnu/packages/bootstrap/mips64el-linux/xz
Binary files differ
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 0731103bfa..41128b73cd 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -70,11 +70,11 @@
"Return a cross-compiler for TARGET, where TARGET is a GNU triplet. Use
XBINUTILS as the associated cross-Binutils. If LIBC is false, then build a
GCC that does not target a libc; otherwise, target that libc."
- (package (inherit gcc-4.7)
+ (package (inherit gcc-4.8)
(name (string-append "gcc-cross-"
(if libc "" "sans-libc-")
target))
- (source (origin (inherit (package-source gcc-4.7))
+ (source (origin (inherit (package-source gcc-4.8))
(patches
(list (search-patch "gcc-cross-environment-variables.patch")))))
(arguments
@@ -85,7 +85,7 @@ GCC that does not target a libc; otherwise, target that libc."
(srfi srfi-1)
(srfi srfi-26))
- ,@(substitute-keyword-arguments (package-arguments gcc-4.7)
+ ,@(substitute-keyword-arguments (package-arguments gcc-4.8)
((#:configure-flags flags)
`(append (list ,(string-append "--target=" target)
,@(gcc-configure-flags-for-triplet target)
@@ -101,6 +101,7 @@ GCC that does not target a libc; otherwise, target that libc."
"--enable-languages=c"
"--disable-threads" ; libgcc, would need libc
+ "--disable-libatomic"
"--disable-libmudflap"
"--disable-libgomp"
"--disable-libssp"
@@ -186,7 +187,7 @@ GCC that does not target a libc; otherwise, target that libc."
("libc-native" ,@(assoc-ref %final-inputs "libc"))
;; Remaining inputs.
- ,@(let ((inputs (append (package-inputs gcc-4.7)
+ ,@(let ((inputs (append (package-inputs gcc-4.8)
(alist-delete "libc" %final-inputs))))
(if libc
`(("libc" ,libc)
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index 13bcd45f77..ce3db6709c 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -20,6 +20,7 @@
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (gnu packages)
#:use-module (gnu packages libpng)
#:use-module (gnu packages libjpeg)
#:use-module (gnu packages fontutils)
@@ -40,7 +41,9 @@
(uri "https://bitbucket.org/libgd/gd-libgd/get/GD_2_0_33.tar.gz")
(sha256
(base32
- "0yrbx8mj9pykyzm0zl1q86xlkdvkajcsf5jmg688vhw9yc5wmbbw"))))
+ "0yrbx8mj9pykyzm0zl1q86xlkdvkajcsf5jmg688vhw9yc5wmbbw"))
+ (patches
+ (list (search-patch "gd-mips64-deplibs-fix.patch")))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 09e00aaeb1..ddf94f9eaa 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gdb)
+ #:use-module (gnu packages)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages dejagnu)
@@ -39,13 +40,15 @@
version ".tar.bz2"))
(sha256
(base32
- "1r32s6vqgskw6pz9pmp41b8injd51c4bbxr6ifdpyid52j5a7pz3"))))
+ "1r32s6vqgskw6pz9pmp41b8injd51c4bbxr6ifdpyid52j5a7pz3"))
+ (patches (list (search-patch "gdb-loongson-madd-fix.patch")))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
'configure 'post-configure
(lambda _
- (patch-makefile-SHELL "gdb/gdbserver/Makefile.in"))
+ (for-each patch-makefile-SHELL
+ (find-files "." "Makefile\\.in")))
%standard-phases)))
(inputs
`(("expat" ,expat)
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index e4a2761273..d1a834d9c5 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages libffi)
+ #:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
@@ -46,7 +47,8 @@
name "-" version ".tar.gz"))
(sha256
(base32
- "077ibkf84bvcd6rw1m6jb107br63i2pp301rkmsbgg6300adxp8x"))))
+ "077ibkf84bvcd6rw1m6jb107br63i2pp301rkmsbgg6300adxp8x"))
+ (patches (list (search-patch "libffi-mips-n32-fix.patch")))))
(build-system gnu-build-system)
(arguments `(#:modules ((guix build utils) (guix build gnu-build-system)
(ice-9 ftw) (srfi srfi-26))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index cd1c921626..eab4280324 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -473,7 +473,8 @@ trace of all the system calls made by a another process/program.")
version ".tar.bz2"))
(sha256
(base32
- "0fx057746dj7rjdi0jnvx2m9b0y1lgdkh1hks87d8w32xyihf3k9"))))
+ "0fx057746dj7rjdi0jnvx2m9b0y1lgdkh1hks87d8w32xyihf3k9"))
+ (patches (list (search-patch "alsa-lib-mips-atomic-fix.patch")))))
(build-system gnu-build-system)
(home-page "http://www.alsa-project.org/")
(synopsis "The Advanced Linux Sound Architecture libraries")
diff --git a/gnu/packages/lsh.scm b/gnu/packages/lsh.scm
index 58040839e1..7d9ba78a5e 100644
--- a/gnu/packages/lsh.scm
+++ b/gnu/packages/lsh.scm
@@ -43,7 +43,8 @@
version ".tar.gz"))
(sha256
(base32
- "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l"))))
+ "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l"))
+ (patches (list (search-patch "liboop-mips64-deplibs-fix.patch")))))
(build-system gnu-build-system)
(home-page "http://www.lysator.liu.se/liboop/")
(synopsis "Event loop library")
diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm
index f341b246a2..6bfe564148 100644
--- a/gnu/packages/m4.scm
+++ b/gnu/packages/m4.scm
@@ -33,7 +33,8 @@
version ".tar.bz2"))
(sha256
(base32
- "0w0da1chh12mczxa5lnwzjk9czi3dq6gnnndbpa6w4rj76b1yklf"))))
+ "0w0da1chh12mczxa5lnwzjk9czi3dq6gnnndbpa6w4rj76b1yklf"))
+ (patches (list (search-patch "m4-readlink-EINVAL.patch")))))
(build-system gnu-build-system)
(arguments
;; XXX: Disable tests on those platforms with know issues.
@@ -41,8 +42,6 @@
'("x86_64-darwin"
"i686-cygwin"
"i686-sunos")))
- #:patches (list (assoc-ref %build-inputs
- "patch/readlink-EINVAL"))
#:phases (alist-cons-before
'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
@@ -55,8 +54,6 @@
(("/bin/sh")
(format #f "~a/bin/bash" bash)))))
%standard-phases)))
- (inputs `(("patch/readlink-EINVAL"
- ,(search-patch "m4-readlink-EINVAL.patch"))))
(synopsis "Macro processor")
(description
"GNU M4 is an implementation of the M4 macro language, which features
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 8c148f7086..defc32bc08 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -64,7 +64,13 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
;; and can use statically-linked NSS modules.
`(cons* "--disable-nscd" "--disable-build-nscd"
"--enable-static-nss"
- ,flags))))))
+ ,flags))))
+
+ ;; Remove the 'debug' output to allow bit-reproducible builds (when the
+ ;; 'debug' output is used, ELF files end up with a .gnu_debuglink, which
+ ;; includes a CRC of the corresponding debugging symbols; those symbols
+ ;; contain store file names, so the CRC changes at every rebuild.)
+ (outputs (delete "debug" (package-outputs base)))))
(define (package-with-relocatable-glibc p)
"Return a variant of P that uses the libc as defined by
@@ -94,10 +100,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
("cross-binutils" ,(cross-binutils target))
,@%final-inputs))
`(("libc" ,(glibc-for-bootstrap))
- ("gcc" ,(package (inherit gcc-4.7)
+ ("gcc" ,(package (inherit gcc-4.8)
(inputs
`(("libc",(glibc-for-bootstrap))
- ,@(package-inputs gcc-4.7)))))
+ ,@(package-inputs gcc-4.8)))))
,@(fold alist-delete %final-inputs '("libc" "gcc")))))
(package-with-explicit-inputs p inputs
@@ -127,7 +133,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(#f '())
(x (list x))))
- ;; Remove the `debug' output.
+ ;; Remove the 'debug' output (see above for the reason.)
(outputs '("out"))))
(bzip2 (package (inherit bzip2)
(arguments
@@ -363,6 +369,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(string-append incdir "/asm"))
(copy-recursively (string-append linux "/include/asm-generic")
(string-append incdir "/asm-generic"))
+
+ ;; Remove the '.install' and '..install.cmd' files; the latter
+ ;; contains store paths, which prevents bit reproducibility.
+ (for-each delete-file (find-files incdir "\\.install"))
+
#t))))
(inputs `(("libc" ,(let ((target (%current-target-system)))
(if target
@@ -378,7 +389,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(define %gcc-static
;; A statically-linked GCC, with stripped-down functionality.
(package-with-relocatable-glibc
- (package (inherit gcc-4.7)
+ (package (inherit gcc-4.8)
(name "gcc-static")
(arguments
`(#:modules ((guix build utils)
@@ -386,7 +397,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(srfi srfi-1)
(srfi srfi-26)
(ice-9 regex))
- ,@(substitute-keyword-arguments (package-arguments gcc-4.7)
+ ,@(substitute-keyword-arguments (package-arguments gcc-4.8)
((#:guile _) #f)
((#:implicit-inputs? _) #t)
((#:configure-flags flags)
@@ -409,11 +420,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
("mpfr-source" ,(package-source mpfr))
("mpc-source" ,(package-source mpc))
("binutils" ,binutils)
- ,@(package-inputs gcc-4.7))))))
+ ,@(package-inputs gcc-4.8))))))
(define %gcc-stripped
;; The subset of GCC files needed for bootstrap.
- (package (inherit gcc-4.7)
+ (package (inherit gcc-4.8)
(name "gcc-stripped")
(build-system trivial-build-system)
(source #f)
@@ -429,6 +440,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(let* ((out (assoc-ref %outputs "out"))
(bindir (string-append out "/bin"))
(libdir (string-append out "/lib"))
+ (includedir (string-append out "/include"))
(libexecdir (string-append out "/libexec"))
(gcc (assoc-ref %build-inputs "gcc")))
(copy-recursively (string-append gcc "/bin") bindir)
@@ -444,6 +456,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
libexecdir)
(for-each remove-store-references
(find-files libexecdir ".*"))
+
+ ;; Starting from GCC 4.8, helper programs built natively
+ ;; (‘genchecksum’, ‘gcc-nm’, etc.) rely on C++ headers.
+ (copy-recursively (string-append gcc "/include/c++")
+ (string-append includedir "/c++"))
#t))))
(inputs `(("gcc" ,%gcc-static)))))
@@ -461,6 +478,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(name (string-append (package-name guile-2.0) "-static"))
(source source)
(synopsis "Statically-linked and relocatable Guile")
+
+ ;; Remove the 'debug' output (see above for the reason.)
+ (outputs (delete "debug" (package-outputs guile-2.0)))
+
(propagated-inputs
`(("bdw-gc" ,libgc)
,@(alist-delete "bdw-gc"
diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm
index 8222212d95..361cd36f25 100644
--- a/gnu/packages/mit-krb5.scm
+++ b/gnu/packages/mit-krb5.scm
@@ -37,6 +37,8 @@
(sha256 (base32
"1daiaxgkxcryqs37w28v4x1vajqmay4l144d1zd9c2d7jjxr9gcs"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("patch/init-fix" ,(search-patch "mit-krb5-init-fix.patch"))))
(inputs `(("bison" ,bison)
("perl" ,perl)))
(arguments
@@ -51,7 +53,12 @@
(and (zero? (system* "tar" "xvf" source))
(zero? (system* "tar" "xvf" (string-append inner ".tar.gz")))
(chdir inner)
- (chdir "src"))))
+ (chdir "src")
+ ;; XXX The current patch system does not support unusual
+ ;; source unpack methods, so we have to apply this patch in a
+ ;; non-standard way.
+ (zero? (system* "patch" "-p1" "--batch" "-i"
+ (assoc-ref %build-inputs "patch/init-fix"))))))
(alist-replace
'check
(lambda* (#:key inputs #:allow-other-keys #:rest args)
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index b604a36291..5f69255d2a 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -44,7 +44,8 @@
version ".tar.gz"))
(sha256
(base32
- "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))))
+ "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
+ (patches (list (search-patch "libmad-mips-newgcc.patch")))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 6692d26b59..c9e691a626 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -27,7 +27,7 @@
(define-public gmp
(package
(name "gmp")
- (version "5.1.2")
+ (version "5.1.3")
(source (origin
(method url-fetch)
(uri
@@ -35,7 +35,7 @@
version ".tar.xz"))
(sha256
(base32
- "1hnbxz7a6jrli8ph27i8zb6k2f456zn6l5xi78yhskzbxjk47nf7"))))
+ "0wbhn3wih61vjcs94q531fipfvvzqfq2v4qr03rl3xaggyiyvqny"))))
(build-system gnu-build-system)
(native-inputs `(("m4" ,m4)))
(outputs '("out" "debug"))
diff --git a/gnu/packages/oggvorbis.scm b/gnu/packages/oggvorbis.scm
index 1b1630e1fb..e2084b06b3 100644
--- a/gnu/packages/oggvorbis.scm
+++ b/gnu/packages/oggvorbis.scm
@@ -100,7 +100,8 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
version ".tar.xz"))
(sha256
(base32
- "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk"))))
+ "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk"))
+ (patches (list (search-patch "libtheora-config-guess.patch")))))
(build-system gnu-build-system)
(inputs `(("libvorbis" ,libvorbis)))
;; The .pc files refer to libogg.
diff --git a/gnu/packages/patches/alsa-lib-mips-atomic-fix.patch b/gnu/packages/patches/alsa-lib-mips-atomic-fix.patch
new file mode 100644
index 0000000000..8c37bd3ac4
--- /dev/null
+++ b/gnu/packages/patches/alsa-lib-mips-atomic-fix.patch
@@ -0,0 +1,42 @@
+Fix the declarations of inlined atomic ops for mips.
+
+This patch was copied from Debian.
+
+--- alsa-lib/include/iatomic.h.orig 2013-05-21 04:48:28.000000000 -0400
++++ alsa-lib/include/iatomic.h 2013-10-29 13:01:37.055995968 -0400
+@@ -720,7 +720,7 @@
+ * Atomically adds @i to @v. Note that the guaranteed useful range
+ * of an atomic_t is only 24 bits.
+ */
+-extern __inline__ void atomic_add(int i, atomic_t * v)
++static __inline__ void atomic_add(int i, atomic_t * v)
+ {
+ unsigned long temp;
+
+@@ -744,7 +744,7 @@
+ * Atomically subtracts @i from @v. Note that the guaranteed
+ * useful range of an atomic_t is only 24 bits.
+ */
+-extern __inline__ void atomic_sub(int i, atomic_t * v)
++static __inline__ void atomic_sub(int i, atomic_t * v)
+ {
+ unsigned long temp;
+
+@@ -763,7 +763,7 @@
+ /*
+ * Same as above, but return the result value
+ */
+-extern __inline__ int atomic_add_return(int i, atomic_t * v)
++static __inline__ int atomic_add_return(int i, atomic_t * v)
+ {
+ unsigned long temp, result;
+
+@@ -784,7 +784,7 @@
+ return result;
+ }
+
+-extern __inline__ int atomic_sub_return(int i, atomic_t * v)
++static __inline__ int atomic_sub_return(int i, atomic_t * v)
+ {
+ unsigned long temp, result;
+
diff --git a/gnu/packages/patches/binutils-loongson-madd-fix.patch b/gnu/packages/patches/binutils-loongson-madd-fix.patch
new file mode 100644
index 0000000000..364ccd67e3
--- /dev/null
+++ b/gnu/packages/patches/binutils-loongson-madd-fix.patch
@@ -0,0 +1,44 @@
+Fix the Loongson 2F specific fused multiply-add instructions on paired singles to
+use the encoding recognized by the processor, as opposed to the mistaken english
+Loongson 2F documentation.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- binutils/opcodes/mips-opc.c.orig 2012-09-04 10:21:10.000000000 -0400
++++ binutils/opcodes/mips-opc.c 2013-10-06 02:23:33.679983766 -0400
+@@ -931,7 +931,7 @@
+ {"madd.s", "D,S,T", 0x72000018, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F },
+ {"madd.ps", "D,R,S,T", 0x4c000026, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"madd.ps", "D,S,T", 0x45600018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"madd.ps", "D,S,T", 0x71600018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"madd.ps", "D,S,T", 0x72c00018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ {"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, L1 },
+ {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 },
+ {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, 0, G1 },
+@@ -1041,7 +1041,7 @@
+ {"msub.s", "D,S,T", 0x72000019, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F },
+ {"msub.ps", "D,R,S,T", 0x4c00002e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"msub.ps", "D,S,T", 0x45600019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"msub.ps", "D,S,T", 0x71600019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"msub.ps", "D,S,T", 0x72c00019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ {"msub", "s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, L1 },
+ {"msub", "s,t", 0x70000004, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 },
+ {"msub", "7,s,t", 0x70000004, 0xfc00e7ff, MOD_a|RD_s|RD_t, 0, D32 },
+@@ -1157,7 +1157,7 @@
+ {"nmadd.s", "D,S,T", 0x7200001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F },
+ {"nmadd.ps","D,R,S,T", 0x4c000036, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"nmadd.ps", "D,S,T", 0x4560001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"nmadd.ps", "D,S,T", 0x7160001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"nmadd.ps", "D,S,T", 0x72c0001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ {"nmsub.d", "D,R,S,T", 0x4c000039, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I4_33 },
+ {"nmsub.d", "D,S,T", 0x4620001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+ {"nmsub.d", "D,S,T", 0x7220001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+@@ -1166,7 +1166,7 @@
+ {"nmsub.s", "D,S,T", 0x7200001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F },
+ {"nmsub.ps","D,R,S,T", 0x4c00003e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"nmsub.ps", "D,S,T", 0x4560001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"nmsub.ps", "D,S,T", 0x7160001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"nmsub.ps", "D,S,T", 0x72c0001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ /* nop is at the start of the table. */
+ {"nor", "d,v,t", 0x00000027, 0xfc0007ff, WR_d|RD_s|RD_t, 0, I1 },
+ {"nor", "t,r,I", 0, (int) M_NOR_I, INSN_MACRO, 0, I1 },
diff --git a/gnu/packages/patches/binutils-loongson-workaround.patch b/gnu/packages/patches/binutils-loongson-workaround.patch
new file mode 100644
index 0000000000..f43572a53d
--- /dev/null
+++ b/gnu/packages/patches/binutils-loongson-workaround.patch
@@ -0,0 +1,34 @@
+Enable the workaround for the Loongson 2F bug by default.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- binutils/gas/config/tc-mips.c.orig 2012-09-04 10:21:03.000000000 -0400
++++ binutils/gas/config/tc-mips.c 2013-10-06 02:23:21.651983768 -0400
+@@ -910,10 +910,10 @@
+ };
+
+ /* ...likewise -mfix-loongson2f-jump. */
+-static bfd_boolean mips_fix_loongson2f_jump;
++static bfd_boolean mips_fix_loongson2f_jump = FALSE;
+
+ /* ...likewise -mfix-loongson2f-nop. */
+-static bfd_boolean mips_fix_loongson2f_nop;
++static bfd_boolean mips_fix_loongson2f_nop = TRUE;
+
+ /* True if -mfix-loongson2f-nop or -mfix-loongson2f-jump passed. */
+ static bfd_boolean mips_fix_loongson2f;
+--- binutils/gas/testsuite/gas/mips/mips.exp.orig 2012-09-04 10:17:13.000000000 -0400
++++ binutils/gas/testsuite/gas/mips/mips.exp 2013-10-06 02:23:21.663983768 -0400
+@@ -91,6 +91,12 @@
+
+ # Catch because the variable won't be set the first time through.
+ catch {unset mips_arches}
++
++ # Disable the loongson2f nop fix by default, because most of the
++ # existing test cases for mips will fail otherwise.
++ global ASFLAGS
++ set old_ASFLAGS "$ASFLAGS"
++ set ASFLAGS "$ASFLAGS -mno-fix-loongson2f-nop"
+ }
+
+ # mips_arch_create ARCH GPRSIZE EXTENDS PROPS AS_FLAGS OBJDUMP_FLAGS \
diff --git a/gnu/packages/patches/gd-mips64-deplibs-fix.patch b/gnu/packages/patches/gd-mips64-deplibs-fix.patch
new file mode 100644
index 0000000000..6231310cdb
--- /dev/null
+++ b/gnu/packages/patches/gd-mips64-deplibs-fix.patch
@@ -0,0 +1,17 @@
+Patch configure script to choose pass_all deplibs check method for
+linux-gnu* systems on mips64. This is a temporary hack until libgd
+bootstraps their build system with a newer libtool.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- libgd-gd/src/configure.orig 2006-04-05 11:56:57.000000000 -0400
++++ libgd-gd/src/configure 2013-11-02 17:56:19.123995838 -0400
+@@ -4457,7 +4457,7 @@
+ # This must be Linux ELF.
+ linux-gnu*)
+ case $host_cpu in
+- alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | s390* | x86_64*)
++ alpha* | hppa* | i*86 | mips | mipsel | mips64 | mips64el | powerpc* | sparc* | ia64* | s390* | x86_64*)
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
diff --git a/gnu/packages/patches/gdb-loongson-madd-fix.patch b/gnu/packages/patches/gdb-loongson-madd-fix.patch
new file mode 100644
index 0000000000..0d50dd2dd4
--- /dev/null
+++ b/gnu/packages/patches/gdb-loongson-madd-fix.patch
@@ -0,0 +1,44 @@
+Fix the Loongson 2F specific fused multiply-add instructions on paired singles to
+use the encoding recognized by the processor, as opposed to the mistaken english
+Loongson 2F documentation.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- gdb/opcodes/mips-opc.c.orig 2013-02-09 05:24:18.000000000 -0500
++++ gdb/opcodes/mips-opc.c 2013-10-27 23:35:20.191997541 -0400
+@@ -956,7 +956,7 @@
+ {"madd.s", "D,S,T", 0x4600001c, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, EE },
+ {"madd.ps", "D,R,S,T", 0x4c000026, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"madd.ps", "D,S,T", 0x45600018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"madd.ps", "D,S,T", 0x71600018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"madd.ps", "D,S,T", 0x72c00018, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ {"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, L1 },
+ {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 },
+ {"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, 0, G1 },
+@@ -1084,7 +1084,7 @@
+ {"msub.s", "D,S,T", 0x4600001d, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, EE },
+ {"msub.ps", "D,R,S,T", 0x4c00002e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"msub.ps", "D,S,T", 0x45600019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"msub.ps", "D,S,T", 0x71600019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"msub.ps", "D,S,T", 0x72c00019, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ {"msub", "s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, L1 },
+ {"msub", "s,t", 0x70000004, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 },
+ {"msub", "7,s,t", 0x70000004, 0xfc00e7ff, MOD_a|RD_s|RD_t, 0, D32 },
+@@ -1218,7 +1218,7 @@
+ {"nmadd.s", "D,S,T", 0x7200001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F },
+ {"nmadd.ps","D,R,S,T", 0x4c000036, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"nmadd.ps", "D,S,T", 0x4560001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"nmadd.ps", "D,S,T", 0x7160001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"nmadd.ps", "D,S,T", 0x72c0001a, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ {"nmsub.d", "D,R,S,T", 0x4c000039, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I4_33 },
+ {"nmsub.d", "D,S,T", 0x4620001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+ {"nmsub.d", "D,S,T", 0x7220001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+@@ -1227,7 +1227,7 @@
+ {"nmsub.s", "D,S,T", 0x7200001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_S, 0, IL2F },
+ {"nmsub.ps","D,R,S,T", 0x4c00003e, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, 0, I5_33 },
+ {"nmsub.ps", "D,S,T", 0x4560001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2E },
+-{"nmsub.ps", "D,S,T", 0x7160001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
++{"nmsub.ps", "D,S,T", 0x72c0001b, 0xffe0003f, RD_S|RD_T|WR_D|FP_D, 0, IL2F },
+ /* nop is at the start of the table. */
+ {"nor", "d,v,t", 0x00000027, 0xfc0007ff, WR_d|RD_s|RD_t, 0, I1 },
+ {"nor", "t,r,I", 0, (int) M_NOR_I, INSN_MACRO, 0, I1 },
diff --git a/gnu/packages/patches/glibc-make-4.0.patch b/gnu/packages/patches/glibc-make-4.0.patch
new file mode 100644
index 0000000000..d83de1d33d
--- /dev/null
+++ b/gnu/packages/patches/glibc-make-4.0.patch
@@ -0,0 +1,12 @@
+Allow libc to be compiled with GNU Make 4.0.
+
+--- glibc-2.18/configure 2013-08-11 00:52:55.000000000 +0200
++++ glibc-2.18/configure 2013-10-16 16:53:09.000000000 +0200
+@@ -4772,7 +4772,7 @@ $as_echo_n "checking version of $MAKE...
+ ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 3.79* | 3.[89]*)
++ 3.79* | 3.[89]* | 4.*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
diff --git a/gnu/packages/patches/libffi-mips-n32-fix.patch b/gnu/packages/patches/libffi-mips-n32-fix.patch
new file mode 100644
index 0000000000..87ec48f883
--- /dev/null
+++ b/gnu/packages/patches/libffi-mips-n32-fix.patch
@@ -0,0 +1,21 @@
+Fix handling of uint32_t arguments on the MIPS N32 ABI.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- libffi/src/mips/ffi.c.orig 2013-03-16 07:19:39.000000000 -0400
++++ libffi/src/mips/ffi.c 2013-10-22 01:11:03.111985247 -0400
+@@ -170,7 +170,14 @@
+ break;
+
+ case FFI_TYPE_UINT32:
++#ifdef FFI_MIPS_N32
++ /* The N32 ABI requires that 32-bit integers
++ be sign-extended to 64-bits, regardless of
++ whether they are signed or unsigned. */
++ *(ffi_arg *)argp = *(SINT32 *)(* p_argv);
++#else
+ *(ffi_arg *)argp = *(UINT32 *)(* p_argv);
++#endif
+ break;
+
+ /* This can only happen with 64bit slots. */
diff --git a/gnu/packages/patches/libmad-mips-newgcc.patch b/gnu/packages/patches/libmad-mips-newgcc.patch
new file mode 100644
index 0000000000..d22c51255e
--- /dev/null
+++ b/gnu/packages/patches/libmad-mips-newgcc.patch
@@ -0,0 +1,16 @@
+Fix MIPS assembly code to work with newer GCC, where the "=h"
+constraint is no longer supported.
+
+--- libmad/fixed.h.orig 2004-02-16 21:02:03.000000000 -0500
++++ libmad/fixed.h 2011-10-29 18:47:21.000000000 -0400
+@@ -304,8 +304,8 @@
+ * significant bit depends on OPT_ACCURACY via mad_f_scale64().
+ */
+ # define MAD_F_MLX(hi, lo, x, y) \
+- asm ("mult %2,%3" \
+- : "=l" (lo), "=h" (hi) \
++ asm ("mult %2,%3\n\tmfhi %1" \
++ : "=l" (lo), "=r" (hi) \
+ : "%r" (x), "r" (y))
+
+ # if defined(HAVE_MADD_ASM)
diff --git a/gnu/packages/patches/liboop-mips64-deplibs-fix.patch b/gnu/packages/patches/liboop-mips64-deplibs-fix.patch
new file mode 100644
index 0000000000..b91754a8cc
--- /dev/null
+++ b/gnu/packages/patches/liboop-mips64-deplibs-fix.patch
@@ -0,0 +1,17 @@
+Patch configure script to choose pass_all deplibs check method for
+linux-gnu* systems on mips64. This is a temporary hack until liboop
+bootstraps their build system with a newer libtool.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- liboop/configure.orig 2003-10-26 11:41:19.000000000 -0500
++++ liboop/configure 2013-11-02 18:09:11.079995796 -0400
+@@ -3395,7 +3395,7 @@
+ # This must be Linux ELF.
+ linux*)
+ case $host_cpu in
+- alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
++ alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | mips64 | mips64el | powerpc* | sparc* | s390* | sh*)
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
diff --git a/gnu/packages/patches/libtheora-config-guess.patch b/gnu/packages/patches/libtheora-config-guess.patch
new file mode 100644
index 0000000000..9529ea7101
--- /dev/null
+++ b/gnu/packages/patches/libtheora-config-guess.patch
@@ -0,0 +1,37 @@
+Minimally patch libtheora's ancient config.guess to support mips64.
+
+--- libtheora/config.guess.orig 2009-02-23 22:50:50.000000000 -0500
++++ libtheora/config.guess 2013-10-31 23:49:48.155999944 -0400
+@@ -798,25 +798,24 @@
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+- mips:Linux:*:*)
++ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+- #undef mips
+- #undef mipsel
++ #undef ${UNAME_MACHINE}
++ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+- CPU=mipsel
++ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+- CPU=mips
++ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+ EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+- rm -f $dummy.c && rmdir $tmpdir
+- test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit 0; }
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
diff --git a/gnu/packages/patches/libtool-skip-tests-for-mips.patch b/gnu/packages/patches/libtool-skip-tests-for-mips.patch
new file mode 100644
index 0000000000..36587d23c2
--- /dev/null
+++ b/gnu/packages/patches/libtool-skip-tests-for-mips.patch
@@ -0,0 +1,12 @@
+TEMPORARY HACK: Disable a test that fails on MIPS.
+
+--- libtool/Makefile.in.orig 2011-10-17 06:18:55.000000000 -0400
++++ libtool/Makefile.in 2013-10-12 20:41:50.669067382 -0400
+@@ -890,7 +890,6 @@
+ tests/demo-pic-make.test \
+ tests/demo-pic-exec.test \
+ tests/demo-nopic.test \
+- tests/demo-nopic-make.test \
+ tests/demo-nopic-exec.test \
+ tests/cdemo-shared.test \
+ tests/cdemo-shared-make.test \
diff --git a/gnu/packages/patches/mit-krb5-init-fix.patch b/gnu/packages/patches/mit-krb5-init-fix.patch
new file mode 100644
index 0000000000..13e49c2789
--- /dev/null
+++ b/gnu/packages/patches/mit-krb5-init-fix.patch
@@ -0,0 +1,18 @@
+Fix the early context initialization code to avoid assuming that
+arguments will be evaluated from right to left.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- src/lib/krb5/krb/t_cc_config.c.orig 2012-12-17 21:47:05.000000000 -0500
++++ src/lib/krb5/krb/t_cc_config.c 2013-10-29 18:19:16.547994590 -0400
+@@ -117,8 +117,8 @@
+ int c;
+ unsigned int i;
+
+- bail_on_err(context, "Error initializing Kerberos library",
+- krb5_init_context(&context));
++ ret = krb5_init_context(&context);
++ bail_on_err(context, "Error initializing Kerberos library", ret);
+ bail_on_err(context, "Error getting location of default ccache",
+ krb5_cc_default(context, &ccache));
+ server = NULL;
diff --git a/gnu/packages/patches/tar-gets-undeclared.patch b/gnu/packages/patches/tar-gets-undeclared.patch
deleted file mode 100644
index 301a09dde1..0000000000
--- a/gnu/packages/patches/tar-gets-undeclared.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-This patch is needed to allow builds with newer versions of
-the GNU libc (2.16+).
-
-This is a backport of this patch:
-
-commit 66712c23388e93e5c518ebc8515140fa0c807348
-Author: Eric Blake <eblake@redhat.com>
-Date: Thu Mar 29 13:30:41 2012 -0600
-
- stdio: don't assume gets any more
-
---- tar-1.26/gnu/stdio.in.h 2012-07-02 14:28:45.000000000 +0200
-+++ tar-1.26/gnu/stdio.in.h 2012-07-02 14:28:50.000000000 +0200
-@@ -160,12 +160,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not
- "use gnulib module fflush for portable POSIX compliance");
- #endif
-
--/* It is very rare that the developer ever has full control of stdin,
-- so any use of gets warrants an unconditional warning. Assume it is
-- always declared, since it is required by C89. */
--#undef gets
--_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
--
- #if @GNULIB_FOPEN@
- # if @REPLACE_FOPEN@
- # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index c677a1b7e2..21cdc5cea7 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -34,11 +34,11 @@
version ".tar.gz"))
(sha256
(base32
- "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))))
+ "15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))
+ (patches (list (search-patch "perl-no-sys-dirs.patch")))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
- #:patches (list (assoc-ref %build-inputs "patch/no-sys-dirs"))
#:phases
(alist-replace
'configure
@@ -62,7 +62,6 @@
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")))))
%standard-phases)))
- (inputs `(("patch/no-sys-dirs" ,(search-patch "perl-no-sys-dirs.patch"))))
(native-search-paths (list (search-path-specification
(variable "PERL5LIB")
(directories '("lib/perl5/site_perl")))))
diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm
index 1fbbd69d7e..5e8d7d7003 100644
--- a/gnu/packages/readline.scm
+++ b/gnu/packages/readline.scm
@@ -45,15 +45,12 @@
version ".tar.gz"))
(sha256
(base32
- "10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr"))))
+ "10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr"))
+ (patches (list (search-patch "readline-link-ncurses.patch")))
+ (patch-flags '("-p0"))))
(build-system gnu-build-system)
(propagated-inputs `(("ncurses" ,ncurses)))
- (inputs `(("patch/link-ncurses"
- ,(search-patch "readline-link-ncurses.patch"))))
- (arguments `(#:patches (list (assoc-ref %build-inputs
- "patch/link-ncurses"))
- #:patch-flags '("-p0")
- #:configure-flags
+ (arguments `(#:configure-flags
(list (string-append "LDFLAGS=-Wl,-rpath -Wl,"
(assoc-ref %build-inputs "ncurses")
"/lib"))
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index 38f11cb3c3..e09f165b97 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -47,7 +47,6 @@
(outputs '("out")) (configure-flags ''())
(search-paths '())
(make-flags ''())
- (patches ''()) (patch-flags ''("--batch" "-p1"))
(cmake (default-cmake))
(out-of-source? #f)
(tests? #t)
@@ -80,8 +79,6 @@ provides a 'CMakeLists.txt' file as its build system."
#:search-paths ',(map search-path-specification->sexp
(append search-paths
(standard-search-paths)))
- #:patches ,patches
- #:patch-flags ,patch-flags
#:phases ,phases
#:configure-flags ,configure-flags
#:make-flags ,make-flags
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 5f13f8ee29..7725b8b67a 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -252,7 +252,6 @@ System: GCC, GNU Make, Bash, Coreutils, etc."
(search-paths '())
(configure-flags ''())
(make-flags ''())
- (patches ''()) (patch-flags ''("--batch" "-p1"))
(out-of-source? #f)
(tests? #t)
(test-target "check")
@@ -300,8 +299,6 @@ which could lead to gratuitous input divergence."
#:search-paths ',(map search-path-specification->sexp
(append implicit-search-paths
search-paths))
- #:patches ,patches
- #:patch-flags ,patch-flags
#:phases ,phases
#:configure-flags ,configure-flags
#:make-flags ,make-flags
@@ -390,7 +387,6 @@ inputs."
(configure-flags ''())
(make-flags ''())
- (patches ''()) (patch-flags ''("--batch" "-p1"))
(out-of-source? #f)
(tests? #f) ; nothing can be done
(test-target "check")
@@ -473,8 +469,6 @@ platform."
search-path-specification->sexp
(append implicit-host-search-paths
native-search-paths))
- #:patches ,patches
- #:patch-flags ,patch-flags
#:phases ,phases
#:configure-flags ,configure-flags
#:make-flags ,make-flags
diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
index cf7ca7d3e1..32b1f36a94 100644
--- a/guix/build-system/python.scm
+++ b/guix/build-system/python.scm
@@ -58,9 +58,8 @@ prepended to the name."
(let* ((build-system (package-build-system p))
(rewrite-if-package
(lambda (content)
- ;; CONTENT may be a string (e.g., for patches), in which case it
- ;; is returned, or a package, which is rewritten with the new
- ;; PYTHON and NEW-PREFIX.
+ ;; CONTENT may be a file name, in which case it is returned, or a
+ ;; package, which is rewritten with the new PYTHON and NEW-PREFIX.
(if (package? content)
(package-with-explicit-python content python
old-prefix new-prefix)
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index ebcb185e13..65c9fcd1bd 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -115,14 +115,6 @@ makefiles."
;; Patch `SHELL' in generated makefiles.
(for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$")))
-(define* (patch #:key (patches '()) (patch-flags '("--batch" "-p1"))
- #:allow-other-keys)
- (every (lambda (p)
- (format #t "applying patch `~a'~%" p)
- (zero? (apply system* "patch"
- (append patch-flags (list "--input" p)))))
- patches))
-
(define* (configure #:key target native-inputs inputs outputs
(configure-flags '()) out-of-source?
#:allow-other-keys)
@@ -344,7 +336,7 @@ makefiles."
;; Standard build phases, as a list of symbol/procedure pairs.
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
- (phases set-paths unpack patch
+ (phases set-paths unpack
patch-source-shebangs configure patch-generated-file-shebangs
build check install
patch-shebangs strip)))
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 8cc9c1ee1f..a37ace31af 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -207,7 +207,7 @@ matches REGEXP."
(lambda (file stat errno result)
(format (current-error-port) "find-files: ~a: ~a~%"
file (strerror errno))
- #f)
+ result)
'()
dir)
string<?))
diff --git a/guix/packages.scm b/guix/packages.scm
index d4a295e3ac..9a2f08d862 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -113,13 +113,16 @@
(snippet origin-snippet (default #f)) ; sexp or #f
(patch-flags origin-patch-flags ; list of strings
(default '("-p1")))
+
+ ;; Patching requires Guile, GNU Patch, and a few more. These two fields are
+ ;; used to specify these dependencies when needed.
(patch-inputs origin-patch-inputs ; input list or #f
(default #f))
(modules origin-modules ; list of module names
(default '()))
(imported-modules origin-imported-modules ; list of module names
(default '()))
- (patch-guile origin-patch-guile ; derivation or #f
+ (patch-guile origin-patch-guile ; package or #f
(default #f)))
(define-syntax base32
@@ -272,11 +275,10 @@ corresponds to the arguments expected by `set-path-environment-variable'."
("lzip" ,(ref '(gnu packages compression) 'lzip))
("patch" ,(ref '(gnu packages base) 'patch)))))
-(define (default-guile store system)
- "Return a derivation of d the default Guile package for SYSTEM."
- (let* ((distro (resolve-interface '(gnu packages base)))
- (guile (module-ref distro 'guile-final)))
- (package-derivation store guile system)))
+(define (default-guile)
+ "Return the default Guile package for SYSTEM."
+ (let ((distro (resolve-interface '(gnu packages base))))
+ (module-ref distro 'guile-final)))
(define* (patch-and-repack store source patches
#:key
@@ -402,7 +404,13 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
guile-for-build)
;; Patches and/or a snippet.
(let ((source (method store uri 'sha256 sha256 name
- #:system system)))
+ #:system system))
+ (guile (match (or guile-for-build (%guile-for-build)
+ (default-guile))
+ ((? package? p)
+ (package-derivation store p system))
+ ((? derivation? drv)
+ drv))))
(patch-and-repack store source patches
#:inputs inputs
#:snippet snippet
@@ -410,9 +418,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
#:system system
#:modules modules
#:imported-modules modules
- #:guile-for-build (or guile-for-build
- (%guile-for-build)
- (default-guile store system)))))
+ #:guile-for-build guile)))
((and (? string?) (? store-path?) file)
file)
((? string? file)
diff --git a/m4/guix.m4 b/m4/guix.m4
index 63fa00be2f..a98378db79 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -86,7 +86,7 @@ courageous and port the GNU System distribution to it (see
# Currently only Linux-based systems are supported, and only on some
# platforms.
case "$guix_system" in
- x86_64-linux|i686-linux)
+ x86_64-linux|i686-linux|mips64el-linux)
;;
*)
if test "x$guix_courageous" = "xyes"; then
diff --git a/tests/packages.scm b/tests/packages.scm
index 7c5dd9f4e1..803cabb061 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -140,8 +140,7 @@
`(("tar" ,%bootstrap-coreutils&co)
("xz" ,%bootstrap-coreutils&co)
("patch" ,%bootstrap-coreutils&co)))
- (patch-guile (package-derivation %store
- %bootstrap-guile))
+ (patch-guile %bootstrap-guile)
(modules '((guix build utils)))
(imported-modules modules)
(snippet '(begin