I said that "you have to run './configure && make && make install && make clean' [...] to build the Stage 1 compiler." [1] This is not correct: 1. It seems that mips64el is not supported. So it's necessary to port [2] GHC. 2. './configure && make && make install' build the Stage 2 (final) compiler, not Stage 1. I've tried to port through .hc files (as described here [2]). First I installed the cross-compiler to my profile and ran the following commands: # export CPATH="/root/.guix-profile/include" # export LIBRARY_PATH="/root/.guix-profile/lib" # export C_INCLUDE_PATH=/nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include # ln -s /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/lib/crt1.o /nix/store/x4j44am492nnajlwja1c7gs2ikqkdff4-gcc-cross-mips64el-linux-gnu-4.7.3/lib/gcc/mips64el-linux-gnu/4.7.3/crt1.o # ln -s /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/lib/crti.o /nix/store/x4j44am492nnajlwja1c7gs2ikqkdff4-gcc-cross-mips64el-linux-gnu-4.7.3/lib/gcc/mips64el-linux-gnu/4.7.3/crti.o # ln -s /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/lib/crtn.o /nix/store/x4j44am492nnajlwja1c7gs2ikqkdff4-gcc-cross-mips64el-linux-gnu-4.7.3/lib/gcc/mips64el-linux-gnu/4.7.3/crtn.o These symlinks are needed because CROSS_LIBRARY_PATH doesn't work. I tested the above using a simple C program: #include main() { printf("Hello World"); } 'mips64el-linux-gnu-gcc test.c' didn't return any errors. After that I unpacked 'ghc-7.6.3-src.tar.bz2' to 'T'. And replaced '$GHC_PACKAGE_DB_FLAG' with 'package-db' in 'configure' because it failed otherwise. Then I ran these commands: T# cp /bin/pwd utils/ghc-pwd/ghc-pwd T# perl boot T# ./configure --enable-hc-boot --target=mips64el-linux-gnu 'configure' returned lots of errors: [...] /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/bits/types.h:128:3: error: #error In file included from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/bits/byteswap.h:27:0: 0, from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/endian.h:60, from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/bits/waitstatus.h:64, from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/stdlib.h:42, from /usr/local/lib/ghc-7.6.3/include/Rts.h:190, from /tmp/ghc6782_0/ghc6782_0.c:1: [...] /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/bits/types.h:133:1: error: unknown type name '__STD_TYPE' /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/bits/types.h:133:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__dev_t' [...] /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/stdio.h:678:1: error: unknown type name '__ssize_t' /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/stdio.h:781:12: error: unknown type name '__off64_t' /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gnu-2.17/include/stdio.h:784:1: error: unknown type name '__off64_t' configure: error: Building ghc-pwd failed Is anything wrong with environment variables? [1] https://lists.gnu.org/archive/html/bug-guix/2013-03/msg00048.html [2] http://hackage.haskell.org/trac/ghc/wiki/Building/Porting