Rework CC/CC_STAGE0 handling in `configure.ac`
Rather than using the non-standard/idiomatic `--with-{gcc,clang}=...` scheme use the `CC=...` style scheme. The basic idea is to have Autoconf's CC/CFLAG/CPPFLAG apply to stage{1,2,3}, while having a separate _STAGE0 set of env-vars denote the bootstrap-toolchain flags/programs. This should be simpler, less confusing, and somewhat more in line with Autoconf's idioms (allowing us to reuse more of Autoconf rather than (re)inventing our own confusing non-standard m4 macros to do stuff that Autoconf could almost do already for us) Morever, expose CC_STAGE0 as a so-called "precious" variable. So now we can better control which bootstrapping gcc is used (by default the one used by the stage0 ghc, unless CC_STAGE0 is overriden) ``` Some influential environment variables: CC_STAGE0 C compiler command (bootstrap) CC C compiler command CFLAGS C compiler flags ... Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. ``` Test Plan: I've tested that cross-compiling with `--target=powerpc-linux-gnu` still works, and tried a few variants of settting `CC=` and `CC_STAGE0=`; `./validate` passed as well Reviewers: erikd, austin, bgamari, simonmar Reviewed By: simonmar Subscribers: Phyx, thomie Differential Revision: https://phabricator.haskell.org/D2078
Showing
- aclocal.m4 3 additions, 35 deletionsaclocal.m4
- bindisttest/ghc.mk 1 addition, 1 deletionbindisttest/ghc.mk
- configure.ac 29 additions, 8 deletionsconfigure.ac
- distrib/configure.ac.in 1 addition, 3 deletionsdistrib/configure.ac.in
- includes/ghc.mk 1 addition, 1 deletionincludes/ghc.mk
- mk/config.mk.in 5 additions, 5 deletionsmk/config.mk.in
- rts/ghc.mk 1 addition, 1 deletionrts/ghc.mk
- rules/shell-wrapper.mk 1 addition, 1 deletionrules/shell-wrapper.mk
Loading
Please register or sign in to comment