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.
gnu: gcc: Improve dynamic linker patching code. * gnu/packages/gcc.scm (gcc-4.7): Join multi-line definitions of GLIBC_DYNAMIC_LINKER* before attempting substitutions. (gcc-4.9)[arguments]: Remove arguments override.
gnu: patchelf: Update to 0.8. * gnu/packages/elf.scm (patchelf): Update to 0.8. * gnu/packages/patches/patchelf-page-size.patch: Adapt to new version.
gnu: bash: Update to 4.3.33. * gnu/packages/bash.scm (%patch-series-4.3): Add patches 31-33.