Skip to content
  • Herbert Valerio Riedel's avatar
    Autoconf: detect and set CFLAGS/CPPFLAGS needed for C99 mode · afc48f89
    Herbert Valerio Riedel authored
    This is the first phase of addressing #11757 which aims to make C99
    support a base-line requirement for GHC and clean up the code-base to
    use C99 facilities when sensible.
    
    This patch exploits the logic/heuristic used by `AC_PROG_CC_C99` to
    determine the flags needed in case the C compiler isn't able to compile
    C99 code in its current mode. We can't use `AC_PROG_CC_C99` directly
    though because GHC's build-system expects CC to contain a filename
    without any flags, while `AC_PROG_CC_C99` would e.g. result in
    `CC="gcc -std=gnu99"`. Morever, we support different `CC`s for
    stage0/1/2, so we need a version of `AC_PROG_CC_C99` for which we can
    specify the `CC`/`CFLAGS` variables to operate on. This is what
    `FP_SET_CFLAGS_C99` does.
    
    Note that Clang has been defaulting to C99+ for a long time, while GCC 5
    defaults to C99+ as well. So this has mostly an affect on older GCCs
    versions prior to 5.0 and possibly compilers other than GCC/Clang (which
    are not officially supported for building GHC anyway).
    
    Reviewers: kgardas, erikd, bgamari, austin
    
    Reviewed By: erikd
    
    Differential Revision: https://phabricator.haskell.org/D2045
    afc48f89