Changes to ghc(5)

Changes to ghc:
commit 4842dde46b28b2c48fc65003b27403a4ed7acfcd
Author: Kyle J. Van Berendonck <kvanberendonck@gmail.com>
Date:   Sat Mar 29 20:59:58 2014 +1100

    Fix `make help`

    Signed-off-by: Austin Seipp <austin@well-typed.com>

commit 9ca17f8850aeaf1fd2109532338da2ffc0e8be1b
Author: Erlend Hamberg <erlend@hamberg.no>
Date:   Thu Mar 6 23:27:29 2014 +0100

    Separate thousands when printing allocated bytes

    When printing allocated bytes (`:set +s` in ghci), separate thousands
    to make it easier to read large allocations sizes, e.g. “1,200,000
    bytes”.

    Signed-off-by: Austin Seipp <austin@well-typed.com>

commit 8586f600613a6a99fee8fe707b00adab1a340641
Author: Colin Watson <cjwatson@debian.org>
Date:   Sat Apr 12 02:13:48 2014 +0100

    Add the powerpc64le architecture

    This is ArchUnknown for now, as it requires some porting work over and
    above powerpc64 due to such things as the different function calling
    sequence in the ELFv2 ABI.  For now, an unregisterised port is better
    than nothing.

    Signed-off-by: Colin Watson <cjwatson@debian.org>
    Signed-off-by: Austin Seipp <austin@well-typed.com>

commit 5a31f231eebfb8140f9b519b166094d9d4fc2d79
Author: Colin Watson <cjwatson@debian.org>
Date:   Sat Apr 12 01:55:07 2014 +0100

    Be less untruthful about the prototypes of external functions

    GHC's generated C code uses dummy prototypes for foreign imports.  At the
    moment these all claim to be (void), i.e. functions of zero arguments.  On
    most platforms this doesn't matter very much: calls to these functions put
    the parameters in the usual places anyway, and (with the exception of
    varargs) things just work.

    However, the ELFv2 ABI on ppc64 optimises stack allocation
    (http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01149.html): a call to a
    function that has a prototype, is not varargs, and receives all parameters
    in registers rather than on the stack does not require the caller to
    allocate an argument save area.  The incorrect prototypes cause GCC to
    believe that all functions declared this way can be called without an
    argument save area, but if the callee has sufficiently many arguments then
    it will expect that area to be present, and will thus corrupt the caller's
    stack.  This happens in particular with calls to runInteractiveProcess in
    libraries/process/cbits/runProcess.c.

    The simplest fix appears to be to declare these external functions with an
    unspecified argument list rather than a void argument list.  This is no
    worse for platforms that don't care either way, and allows a successful
    bootstrap of GHC 7.8 on little-endian Linux ppc64 (which uses the ELFv2
    ABI).

    Fixes #8965

    Signed-off-by: Colin Watson <cjwatson@debian.org>
    Signed-off-by: Austin Seipp <austin@well-typed.com>

commit c29bf984dd20431cd4344e8a5c444d7a5be08389
Author: Colin Watson <cjwatson@debian.org>
Date:   Mon Apr 21 22:26:56 2014 -0500

    ghc: initial AArch64 patches

    Signed-off-by: Austin Seipp <austin@well-typed.com>