Building on windows

Simon Peyton-Jones simonpj at microsoft.com
Fri Aug 23 01:21:58 CEST 2013


I've got a new Windows laptop, and have being having a torrid time getting GHC to build on it.


1.      Build falls over with
checking for gcc... c:/code/HEAD/inplace/mingw/bin/gcc.exe
checking whether the C compiler works... no
configure: error: in `/c/code/HEAD':
configure: error: C compiler cannot create executables
Turns out that an earlier error was
configure: Making in-tree mingw tree
tar (child): ../../ghc-tarballs/mingw/binutils*.tar.lzma: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
./configure: line 4050: inplace/mingw/bin/realgcc.exe: No such file or directory
configure: In-tree mingw tree created
configure: Making in-tree perl tree
BUT this error was not fatal, so the build went on (notwithstanding the red message above), leading to a MUCH more obscure error later.


2.      Why wasn't ghc-tarballs there?  Oh, apparently you have to say
sync-all -windows get
That's really hard for a naïve user to work out.  Can't we either always get it, or work out that we are on windows?


3.      I carefully installed mingw/msys as described on http://www.mingw.org/wiki/Getting_Started
I used mingw-set-inst, which launches a GUI for a package installer.  All seems well.  I update my path.  But then
Can't locate Autom4te/ChannelDefs.pm in @INC (@INC contains: /mingw/share/autoco
nf /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys
/usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_
perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) a
t /c/Programme/MinGW/bin/autoreconf-2.68 line 40.
BEGIN failed--compilation aborted at /c/Programme/MinGW/bin/autoreconf-2.68 line
  40.

After a long struggle I found that I had missed a crucial thing.  With the new autoconf tools, it's essential that c:/mingw be mounted as /mingw, because /mingw is hard-coded into autoconf perl scripts.  http://www.mingw.org/wiki/Getting_Started does say (deep in the middle) to edit c:/mingw/msys/1.0/etc/fstab with a text editor, but that appeared to have no effect for me.  Saying "mount c:/mingw /mingw" did work.  I have no idea why.



What is horrible is how uninformative the error message is.



I guess we should update the Windows build instructions.



I still don't know if I've bottomed out here because I can't find Happy/Alex in the Haskell platform. Sigh.

Simon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130822/d9a2a1df/attachment.htm>


More information about the ghc-devs mailing list