Skip to content
Commits on Jun 29, 2011
  1. Add autoconf support to detect an LLVM-based C compiler

    This patch adds support to the autoconf scripts to detect
    when we are using a C compiler that uses an LLVM back end.
    An LLVM back end does not support all of the extensions use
    by GCC, so we need to perform some conditional compilation
    in the runtime, particularly for handling thread local
    storage and global register variables.
    The changes here will set the CC_LLVM_BACKEND in the
    autoconf scripts if we detect an llvm-based compiler. We use
    this variable to define the llvm_CC_FLAVOR variable that we
    can use in the runtime code to conditionally compile for
  2. Enable pthread_getspecific() tls for LLVM compiler

    LLVM does not support the __thread attribute for thread
    local storage and may generate incorrect code for global
    register variables. We want to allow building the runtime with
    LLVM-based compilers such as llvm-gcc and clang,
    particularly for MacOS.
    This patch changes the gct variable used by the garbage
    collector to use pthread_getspecific() for thread local
    storage when an llvm based compiler is used to build the
  3. @batterseapower
  4. @batterseapower
  5. @simonmar

    Use the x86/Darwin implementation of Adjustors on all x86 platforms,

    simonmar committed
    as it maintains 16-byte alignment of the stack pointer (see #5250)
  6. Warn if LLVM tools aren't installed (#5169)

    David Terei committed
Commits on Jun 28, 2011
  1. @simonmar

    comment updates

    simonmar committed
  2. @simonmar

    Add a builtin rule for seq# when its argument is a manifest

    simonmar committed
    head-normal-form, and similarly for spark#.
  3. @simonmar

    Add two new primops:

    simonmar committed
      seq#   :: a -> State# s -> (# State# s, a #)
      spark# :: a -> State# s -> (# State# s, a #)
    seq# is a version of seq that can be used in a State#-passing
    context.  We will use it to implement Control.Exception.evaluate and
    thus fix #5129.  Also we have plans to use it to fix #5262.
    spark# is to seq# as par is to pseq.  That is, it creates a spark in a
    State#-passing context.  We will use spark# and seq# to implement rpar
    and rseq respectively in an improved implementation of the Eval monad.
  4. @simonmar

    Fix bug introduced in b2bd63f

    simonmar committed
    HPC expects the end column of a span to be one less than the
    convention used by SrcSpan, and we had lost the "-1", causing various
    HPC tests to fail.
  5. Fix LLVM backend in unregisterised build to use C

    David Terei committed
    calling convention.
    Patch based on one by Karel Gardas.
Commits on Jun 27, 2011
  1. @igfoo
  2. @simonmar

    oops, fix the x86 version of the code in here. I validated on the

    simonmar committed
    wrong platform by mistake.
  3. @igfoo
  4. @simonmar

    Keep the C stack pointer 16-byte aligned on all x86 platforms, not ju…

    simonmar committed
    …st Mac OS X (#5250).
    The OS X ABI requires the C stack pointer to be 16-byte aligned at a
    function call.  As far as I know this is not a requirement on other
    x86 ABIs, but it seems that gcc is now generating SSE2 code that
    assumes stack alignment (-mincoming-stack-boundary defaults to 4), so
    we have to respect 16-byte alignment.
  5. @simonmar

    add missing cases for ArchARM

    simonmar committed
  6. @igfoo
  7. @kgardas @simonmar

    Fix to use %note instead of @note as an ELF section note on ARM archi…

    kgardas committed with simonmar
    It looks like where x86 assembly is using '@' character,
    ARM assembly requires '%' character. This makes a problem in the patch
    814edf4 'Force re-linking if
    the options have changed (#4451)' which makes linking assembly
    file uncompilable on ARM. This patch fixes this.
  8. @simonmar

    Fix strftime string in fingerprint script

    committed with simonmar
    There was an extra % in the strftime string used in the fingerprint
    script to name the output files. It worked fine in python 2.6 on mac
    os, but was producing bad file names in python 2.7 on linux.
Commits on Jun 26, 2011
  1. @trofi @igfoo

    The patch fixes recognition of 'softfloat' targets as valid:

    trofi committed with igfoo
        ghc $ ./configure --build=armv5tel-softfloat-linux-gnueabi \
                          --host=armv5tel-softfloat-linux-gnueabi \
        checking for gfind... no
        checking for find... /usr/bin/find
        checking for sort... /usr/bin/sort
        checking for GHC version date... inferred 7.1.20110626
        checking for ghc... /usr/bin/ghc
        checking version of ghc... 7.0.4
        checking build system type... armv5tel-softfloat-linux-gnueabi
        checking host system type... armv5tel-softfloat-linux-gnueabi
        checking target system type... armv5tel-softfloat-linux-gnueabi
        Unknown vendor softfloat
    Signed-off-by: Sergei Trofimovich <>
  2. @bogiebro @igfoo
  3. @igfoo

    lndir: Ignore .git directories

    igfoo committed
  4. @igfoo
Commits on Jun 25, 2011
  1. @igfoo


    igfoo committed
    It now matches PACKAGES_STAGE2
  2. @igfoo
  3. Fix silly mistake in last commit

    David Terei committed
  4. Speed improvement to LLVM Mangler for large sections.

    David Terei committed
    Patch by Peter Wortmann!
  5. @igfoo
  6. @igfoo

    Fix gcc 4.6 warnings; fixes #5176

    igfoo committed
    Based on a patch from David Terei.
    Some parts are a little ugly (e.g. defining things that only ASSERTs
    use only when DEBUG is defined), so we might want to tweak things a
    I've also turned off -Werror for didn't-inline warnings, as we now
    get a few such warnings.
  7. @igfoo

    Fix a typo in a comment

    igfoo committed
Commits on Jun 24, 2011
  1. @igfoo
  2. @igfoo

    Remove unused variable

    igfoo committed
  3. @igfoo

    Remove unused variable

    igfoo committed
  4. @batterseapower
  5. @igfoo

    Remove a couple of unused bindings

    igfoo committed
Something went wrong with that request. Please try again.