| 43 | | Furthermore, it's ''very important'' that you specify a |
| 44 | | full MinGW path for {{{gcc}}}, not a Cygwin path, because GHC (which |
| 45 | | uses this path to invoke {{{gcc}}}) is a MinGW program and won't |
| 46 | | understand a Cygwin path. For example, if you |
| 47 | | say {{{--with-gcc=/mingw/bin/gcc}}}, it'll be interpreted as |
| 48 | | {{{/cygdrive/c/mingw/bin/gcc}}}, and GHC will fail the first |
| 49 | | time it tries to invoke it. Worse, the failure comes with |
| 50 | | no error message whatsoever. GHC simply fails silently when first invoked, |
| 51 | | typically leaving you with this: |
| 52 | | {{{ |
| 53 | | make[4]: Leaving directory `/cygdrive/e/ghc-stage1/ghc/rts/gmp' |
| 54 | | ../../ghc/compiler/ghc-inplace -optc-mno-cygwin -optc-O |
| 55 | | -optc-Wall -optc-W -optc-Wstrict-prototypes -optc-Wmissing-prototypes |
| 56 | | -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return |
| 57 | | -optc-Wbad-function-cast -optc-Wcast-align -optc-I../includes |
| 58 | | -optc-I. -optc-Iparallel -optc-DCOMPILING_RTS |
| 59 | | -optc-fomit-frame-pointer -O2 -static |
| 60 | | -package-name rts -O -dcore-lint -c Adjustor.c -o Adjustor.o |
| 61 | | make[2]: *** [Adjustor.o] Error 1 |
| 62 | | make[1]: *** [all] Error 1 |
| 63 | | make[1]: Leaving directory `/cygdrive/e/ghc-stage1/ghc' |
| 64 | | make: *** [all] Error 1 |
| 65 | | }}} |
| 66 | | Be warned! |
| 67 | | [[br]] |
| 68 | | If you want to build GHC-cygwin ([wiki:Building/PlatformsScriptsFileNames#MinGW MinGW]) |
| 69 | | you'll have to do something more like: |
| 70 | | {{{ |
| 71 | | $ ./configure --with-gcc=...the Cygwin gcc... |
| 72 | | --with-ld=...the Cygwin ld.exe... |
| 73 | | }}} |
| 74 | | * If you are paranoid, delete {{{config.cache}}} if it exists. |
| 75 | | This file occasionally remembers out-of-date configuration information, which |
| 76 | | can be really confusing. |
| | 43 | |