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> 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]
Sent: 01 October 2013 19:05
To: Simon Peyton-Jones
Cc: Edsko de Vries; 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> 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] On Behalf Of Edsko
| de Vries
| Sent: 01 October 2013 16:21
| To: 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
| http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs