build-system/gnu: Patch /usr/bin/file in all 'configure' files. * guix/build/utils.scm (patch-/usr/bin/file): New procedure. * guix/build/gnu-build-system.scm (patch-usr-bin-file): Rewrite using it. Patch all the files returned by 'find-files' that are executable. * gnu/packages/gawk.scm (gawk)[arguments]: Remove use of 'substitute*' for 'extension/configure'.
gnu: Add bootstrap binaries for 'armhf-linux'. * gnu/packages/bootstrap/armhf-linux/bash, gnu/packages/bootstrap/armhf-linux/mkdir, gnu/packages/bootstrap/armhf-linux/tar, gnu/packages/bootstrap/armhf-linux/xz: New files. * gnu-system.am (bootstrap_armhf_linuxdir, dist_bootstrap_armhf_linux_DATA) (nodist_bootstrap_armhf_linux_DATA): New variables. (DISTCLEANFILES): Add $(nodist_bootstrap_armhf_linux_DATA). (gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz): New target. * build-aux/download.scm (file-name->uri): Use newer date in URI for armhf-linux. * gnu/packages/bootstrap.scm (raw-build): Use "guile-2.0.11.tar.xz" on armhf-linux. (glibc-dynamic-linker, %bootstrap-coreutils&co, %bootstrap-binutils) (%bootstrap-glibc, %bootstrap-gcc): Add armhf-linux cases. * m4/guix.m4 (GUIX_SYSTEM_TYPE): Add armhf case. (GUIX_ASSERT_SUPPORTED_SYSTEM): Add armhf-linux to list of supported systems. * doc/guix.texi (GNU Distribution): Add armhf-linux to the list of supported systems.
gnu: libtool: Skip nopic test on ARM and MIPS systems. * gnu/packages/patches/libtool-skip-tests.patch: Skip nopic test on ARM and MIPS systems.
gnu: Add toolchain support for 'armhf-linux'. Based on preliminary work by John Darrington <john@darrington.wattle.id.au>. * gnu/packages/cross-base.scm (xgcc-armhf): New variable. * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add armhf case. (gcc-4.7)[pre-configure]: Add gcc/config/*/linux-eabi.h to the list of files in which to patch GLIBC_DYNAMIC_LINKER. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add armhf case. * guix/utils.scm (gnu-triplet->nix-system, nix-system->gnu-triplet): Add armhf cases.
gnu: patchelf: On ARM, apply experimental patch to get it working. * gnu/packages/patches/patchelf-rework-for-arm.patch: New file. * gnu-system.am: Add it. * gnu/packages/elf.scm: Apply patch when the target is ARM.
gnu: gmp: Apply fixes for armhf. * gnu/packages/patches/gmp-arm-asm-nothumb.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/multiprecision.scm (gmp): Add patch. Include --build triplet in configure args when building natively. * gnu/packages/commencement.scm (gcc-final): Use bootstrap guile to build gmp-source.
gnu: gcc: Use 'gcc-configure-flags-for-triplet' for native compilers too. * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Do not export it. (gcc-4.7): Pass the result of 'gcc-configure-flags-for-triplet' to configure for all builds, including native ones. * gnu/packages/cross-base.scm (cross-gcc-arguments): Do not add the result of 'gcc-configure-flags-for-triplet' here, since it is now included in the configure-flags inherited from gcc-4.8.
Move 'nix-system->gnu-triplet' to (guix utils) and export it. * gnu/packages/commencement.scm (nix-system->gnu-triplet): Move to... * guix/utils.scm (nix-system->gnu-triplet): ... here. Fix docstring typo.
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.
gnu: bootstrap: Fix egrep and fgrep after unpacking bootstrap binaries. * gnu/packages/bootstrap.scm (%bootstrap-coreutils&co): Add #:snippet argument to 'package-from-tarball' that calls 'patch-shebang' on egrep and fgrep after unpacking. Test 'fgrep' instead of 'true'.
gnu: bootstrap: Add support for snippets to 'package-from-tarball'. * gnu/packages/bootstrap.scm (package-from-tarball): Add new keyword argument #:snippet.
gnu: tcl: Pass --mandir to configure. This partially reverts 9b1bf33081652210502c6ef34506e27a9bc60f06. "gnu: Remove a bunch of now unneeded '--mandir' configure flags." * gnu/packages/tcl.scm (tcl)[arguments]: Put back the --mandir configure flag, with a comment explaining why it's still needed.
gnu: Make libtool and libltdl completely separate. * gnu/packages/autotools.scm (libtool)[outputs]: Remove. [arguments]: Remove 'if' around arguments. Add #:configure-flags. * gnu/packages/apr.scm (apr)[inputs]: Change libtool to libltdl. * gnu/packages/fontutils.scm (libuninameslist)[native-inputs]: Remove "libtool-bin". * gnu/packages/global.scm (global): Change libtool to libltdl. * gnu/packages/gnunet.scm (libextractor, gnunet): Likewise. * gnu/packages/graphviz.scm (graphviz): Likewise. * gnu/packages/libcanberra.scm (libcanberra): Likewise. * gnu/packages/libevent.scm (libuv)[native-inputs]: Remove "bin" part for libtool. * gnu/packages/mail.scm (mailutils): Change libtool to libltdl. (libetpan): Remove "bin" part for libtool. * gnu/packages/mp3.scm (libmp3splt): Change libtool to libltdl. * gnu/packages/openldap.scm (openldap): Remove "bin" part of libtool. Move it from 'inputs' to 'native-inputs'. * gnu/packages/photo.scm (libgphoto2): Change libtool to libltdl. * gnu/packages/pulseaudio.scm (pulseaudio): Likewise. * gnu/packages/ssh.scm (guile-ssh): Remove "bin" part of libtool. * gnu/packages/web.scm (libpsl): Likewise. * gnu/packages/weechat.scm (weechat): Move libtool to 'native-inputs' and add libltdl to 'inputs'.
gnu: libtool: Update to 2.4.4. * gnu/packages/patches/libtool-2.4-skip-tests.patch: Rename to... * gnu/packages/patches/libtool-skip-tests.patch: ... this. * gnu/packages/patches/libtool-skip-tests-for-mips.patch: Remove. * gnu-system.am (dist_patch_DATA): Adjust accordingly. * gnu/packages/autotools.scm (libtool): Update to 2.4.4. (libtool-2.4.4): Remove.
gnu: guile: Depend on 'libltdl' rather than 'libtool'. * gnu/packages/guile.scm (guile-1.8, guile-2.0): Replace LIBTOOL with LIBLTDL.
gnu: libtool: Add libltdl as a separate package. * gnu/packages/autotools.scm (libltdl): New variable.
gnu: libtool: Use 'parallel-job-count' to get the argument for '-j'. * gnu/packages/autotools.scm (libtool)[arguments] <check>: Use (parallel-job-count) instead of hand-written code.
Revert "gnu: gcc: Add '-lgcc_s' only when '-pthread' is given." This reverts commit 9097e666d48c9b6c0263dcbe60b5af69ff7689f4. This turned out not to be a good strategy. Some build system, e.g. tcl's, do not pass -pthread on GNU/Linux by default, but merely link with -lpthread. Also, Ludovic found other cases where libgcc_s is dlopened by libc that have nothing to do with pthreads, e.g. to walk the stack.
gnu: guile: Apply fixes for arm. * gnu/packages/patches/guile-arm-fixes.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/guile.scm (guile-2.0): Add patch.
gnu: gcc: Add '-lgcc_s' only when '-pthread' is given. Suggested by Ludovic Courtès <ludo@gnu.org>. * gnu/packages/gcc.scm (gcc-4.7): In our modified GNU_USER_TARGET_LIB_SPEC, add '-lgcc_s' only when '-pthread' is given.