Summary: progress on Windows builds, but a show-stopper below that I'm sure some ghc-dev can help with. Ah, I've forgotten to mention that the environment variable MSYSTEM must be set to MINGW before starting the shell Oh, this is much better. * The download from msys2 already includes o python o git o perl o make o autoconf o ssh which saves a bunch of secondary installation goop. * Once I set MSYSYSTEM=MINGW, things went much much better. GHC built to completion. * make -j works fine! * A bizarre 10-second delay when starting a shell has gone away So I am very happy. Two things I'm stuck on. In testsuite I get this: testsuite (master)$ make make -C ./tests all make[1]: Entering directory '/cygdrive/c/code/HEAD/testsuite/tests' python2 ../driver/runtests.py -e ghc_compiler_always_flags="'-fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts '" -e ghc_debugged=False -e ghc_with_native_codegen=1 -e ghc_with_vanilla=1 -e ghc_with_dynamic=0 -e ghc_with_profiling=0 -e ghc_with_threaded_rts=1 -e ghc_with_dynamic_rts=0 -e ghc_with_interpreter=1 -e ghc_unregisterised=0 -e ghc_dynamic_by_default=False -e ghc_dynamic=False -e ghc_with_smp=1 -e ghc_with_llvm=0 -e windows=True -e darwin=False -e in_tree_compiler=True -e clean_only=False --rootdir=. --config=../config/ghc -e 'config.confdir="../config"' -e 'config.compiler="C:/code/HEAD/inplace/bin/ghc-stage2.exe"' -e 'config.ghc_pkg="C:/code/HEAD/inplace/bin/ghc-pkg.exe"' -e 'config.hp2ps="C:/code/HEAD/inplace/bin/hp2ps.exe"' -e 'config.hpc="C:/code/HEAD/inplace/bin/hpc.exe"' -e 'config.gs="gs"' -e 'config.platform="i386-unknown-mingw32"' -e 'config.os="mingw32"' -e 'config.arch="i386"' -e 'config.wordsize="32"' -e 'default_testopts.cleanup=""' -e 'config.timeout=int() or config.timeout' -e 'config.timeout_prog="../timeout/install-inplace/bin/timeout.exe"' -e 'config.exeext=".exe"' -e 'config.top="C:/code/HEAD/testsuite"' --rootdir=../../libraries/Win32/tests --rootdir=../../libraries/array/tests --rootdir=../../libraries/base/tests --rootdir=../../libraries/binary/tests --rootdir=../../libraries/bytestring/tests --rootdir=../../libraries/containers/tests --rootdir=../../libraries/directory/tests --rootdir=../../libraries/filepath/tests --rootdir=../../libraries/ghc-prim/tests --rootdir=../../libraries/haskeline/tests --rootdir=../../libraries/hpc/tests --rootdir=../../libraries/old-time/tests --rootdir=../../libraries/pretty/tests --rootdir=../../libraries/process/tests --rootdir=../../libraries/random/tests --rootdir=../../libraries/template-haskell/tests --rootdir=../../libraries/vector/tests Traceback (most recent call last): File "../driver/runtests.py", line 146, in <module> import ctypes File "/usr/lib/python2.7/ctypes/__init__.py", line 451, in <module> pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2]) File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ self._handle = _dlopen(self._name, mode) OSError: No such file or directory ../mk/test.mk:238: recipe for target 'test' failed And indeed there is no "ctypes.py", although there is a directory ctypes in c:/fp/Python27/Lib/ctypes, which contains __init__.py __init__.pyc _endian.py _endian.pyc macholib test util.py wintypes.py But runtests.py says "import ctypes" and that's what is failing. I don't know how it worked before. Can anyone help? I'm so close! Less importantly, but annoyingly, every run of perl, even perl -versoin, gives this: perl --version perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "ENG" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). This is perl 5, version 18, subversion 1 (v5.18.1) built for msys-thread-multi-64int It's non-fatal, but annoying. Thanks Simon From: Kyra Alex [mailto:meurglys3@gmail.com] Sent: 02 October 2013 07:45 To: Simon Peyton-Jones Cc: Edsko de Vries; ghc-devs@haskell.org Subject: Re: Make spins with THREADS>1 on Win 7 Ah, I've forgotten to mention that the environment variable MSYSTEM must be set to MINGW before starting the shell as is in mingw_shell.bat: set MSYSTEM=MINGW. msys2_shell.bat set it to MSYS thus making it answer "msys". On Wed, Oct 2, 2013 at 1:59 AM, Simon Peyton-Jones <simonpj@microsoft.com<mailto:simonpj@microsoft.com>> wrote: http://sourceforge.net/projects/msys2/ is *much* better than stock msys. I've successfully built ghc HEAD quite recently (a month ago or so) using it. Interesting! There appears to be about zero documentation, but I unpacked the tar ball (which has pre-built binaries), put it in c:/msys32, added c:/mys32/bin to my PATH, and tried. Starts well, but two problems. * I get lots of this (non-fatally): perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "ENG" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). * But then I get this error which brings things to a halt: checking for gfind... no checking for find... /usr/bin/find checking for sort... /usr/bin/sort checking for GHC version date... inferred 7.7.20131001 checking for ghc... /cygdrive/c/fp/HP-2013.2.0.0/bin/ghc checking version of ghc... 7.6.3 GHC path canonicalised to: /cygdrive/c/fp/HP-2013.2.0.0/bin/ghc checking build system type... Invalid configuration `i686-pc-msys': system `msys' not recognized configure: error: /bin/sh ./config.sub i686-pc-msys failed Does anyone have ideas for fixing this? Kyra, how did you get past these? Simon From: Kyra Alex [mailto:meurglys3@gmail.com<mailto:meurglys3@gmail.com>] Sent: 01 October 2013 19:05 To: Simon Peyton-Jones Cc: Edsko de Vries; ghc-devs@haskell.org<mailto:ghc-devs@haskell.org> Subject: Re: Make spins with THREADS>1 on Win 7 http://sourceforge.net/projects/msys2/ is *much* better than stock msys. I've successfully built ghc HEAD quite recently (a month ago or so) using it. On Tue, Oct 1, 2013 at 7:24 PM, Simon Peyton-Jones <simonpj@microsoft.com<mailto:simonpj@microsoft.com>> wrote: Yes; it appears that in the current MSYS release, 'make -jn' goes into an infinite loop. This is very depressing. I do not know a fix. If you google around and find a fix, do tell us. Currently I have to use THREADS=1 all the time Simon | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org<mailto:ghc-devs-bounces@haskell.org>] On Behalf Of Edsko | de Vries | Sent: 01 October 2013 16:21 | To: ghc-devs@haskell.org<mailto:ghc-devs@haskell.org> | Subject: Make spins with THREADS>1 on Win 7 | | Hi all, | | Trying to get a build going on Win 7. On both the 32-bit and the | 64-bit version running 'sh validate' stalls at | | "inplace/bin/mkdirhier" utils/touchy/dist/build/tmp//. | | At this point nothing happens, other than that I seem to have 100% CPU | usage; 'ps' only shows two make processes, but no further | subprocesses. Not sure what's going on here. Running 'sh validate | --no-clean' after killing both make processes at this point stalls at | the same point; running it with THREADS=1 seems to resolve the issue. | | Anybody any idea what might be going on? | | Edsko | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org<mailto:ghc-devs@haskell.org> | http://www.haskell.org/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org<mailto:ghc-devs@haskell.org> http://www.haskell.org/mailman/listinfo/ghc-devs