Opened 7 months ago

Last modified 7 months ago

#8261 new bug

Windows Testsuite stuck at configuring timeout

Reported by: leroux Owned by: leroux
Priority: normal Milestone:
Component: Test Suite Version: 7.6.3
Keywords: Cc:
Operating System: Windows Architecture: x86
Type of failure: None/Unknown Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

When running the testsuite, it gets stuck at Configuring timeout-1.... I tried adding a verbosity flag to the ENV vars, but they didn't make any affect on the ./Setup args.

Relating to my development setup...I've followed the instructions from http://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows (using MinGW). I was rather surprised when I was building GHC, it threw an error saying that "libmpfr-3.dll" was missing, so I fetched that from a cygwin mirror and threw it in msys/bin, but even after doing that, I got errors saying that it could find certain cygwin libraries (cyg*.dll). So I just installed the entirety of cygwin and it started working fine.

The only ticket I found that is related to this is #1599, but I'm not sure.


System details:

# Windows 7 x86 (32-bit)

$ uname -a
MINGW32_NT-6.1 LEROUX-WINBUILD 1.0.18(0.48/3/2) 2012-11-21 22:34 i686 Msys

$ echo $PATH
/c/MinGW/bin:.:/usr/local/bin:/mingw/bin:/bin:/c/Program Files/Haskell/bin:/c/Program Files/Haskell Platform/2013.2.0.0/lib/extralibs/bin:/c/
Program Files/Haskell Platform/2013.2.0.0/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v
1.0/:/c/Program Files/Haskell Platform/2013.2.0.0/mingw/bin:/c/Program Files/Git/cmd:/c/Users/leroux/AppData/Roaming/cabal/bin:/mingw/bin:/us
r/bin:/c/cygwin/bin

Here's the testsuite run:

$ make test WAY=normal
make -C testsuite/tests CLEANUP=1 OUTPUT_SUMMARY=../../testsuite_summary.txt fast
make[1]: Entering directory `/home/leroux/devel/ghc-validate/testsuite/tests'
make fast=YES
make[2]: Entering directory `/home/leroux/devel/ghc-validate/testsuite/tests'
Looks like you don't have timeout, building it first...
make -C ../timeout all
make[3]: Entering directory `/home/leroux/devel/ghc-validate/testsuite/timeout'
rm -rf install-inplace
'C:/MinGW/msys/1.0/home/leroux/devel/ghc-validate/inplace/bin/ghc-stage2.exe' --make Setup
./Setup configure --with-compiler='C:/MinGW/msys/1.0/home/leroux/devel/ghc-validate/inplace/bin/ghc-stage2.exe' \
                          --with-hc-pkg='C:/MinGW/msys/1.0/home/leroux/devel/ghc-validate/inplace/bin/ghc-pkg.exe' \
                          --with-hsc2hs='C:/MinGW/msys/1.0/home/leroux/devel/ghc-validate/inplace/bin/hsc2hs.exe' \
                           \
                          --ghc-option=-threaded --prefix='C:/MinGW/msys/1.0/home/leroux/devel/ghc-validate/testsuite/timeout/install-inplace
'
Configuring timeout-1...

Attachments (3)

setup-configure.txt (8.4 KB) - added by leroux 7 months ago.
./Setup configure --verbose=3
cabal-configure.txt (10.0 KB) - added by leroux 7 months ago.
cabal --configure --verbose=3
0001-timeout-configure-use-cabal-instead-of-Setup-for-Win.patch (972 bytes) - added by leroux 7 months ago.
Patch: Switch from Setup.exe command to cabal.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 7 months ago by leroux

A manual workaround in the meantime:

cd testsuite/timeout
mkdir -p install-inplace/bin
cabal install --prefix=`pwd`/install-inplace

(I actually lost electricity and don't have access to my windows box anymore...so I'll have to update this comment tomorrow with the correct paths and whatnot.)

Last edited 7 months ago by leroux (previous) (diff)

comment:2 Changed 7 months ago by leroux

  • Owner set to leroux
  • Priority changed from normal to high

comment:3 Changed 7 months ago by leroux

Substituting ./Setup.exe with cabal commands somehow fixes this issue.


Makefile (https://github.com/leroux/testsuite/blob/master/timeout/Makefile#L36-L47)

$ diff Makefile Makefile-fixed

< 	'$(TEST_HC)' --make Setup
< 	./Setup configure --with-compiler='$(TEST_HC)' \
< 	                  --with-hc-pkg='$(GHC_PKG)' \
< 	                  --with-hsc2hs='$(HSC2HS)' \
< 	                  $(WITH_GCC) \
< 	                  --ghc-option=-threaded --prefix='$(PREFIX)'
< 	./Setup build
< 	./Setup install
---
> 	cabal install --prefix='$(PREFIX)'

comment:4 Changed 7 months ago by leroux

I noticed that the versions of gcc selected by cabal and manual ./Setup.exe differ.


Cabal uses

Using gcc version 4.5.2 found on system at: c:\Program Files\Haskell Platform\2013.2.0.0\mingw\bin\gcc.exe

./Setup uses

c:\MinGW\bin\gcc.exe is version 4.8.1

The fixes available are

  • Fix your PATH such that Haskell Platform's bin directory is before mingw's/cygwin's.
  • Switch from Setup.exe command to cabal.
  • Pass an explicit --with-gcc flag to make when making timeout.

Changed 7 months ago by leroux

./Setup configure --verbose=3

Changed 7 months ago by leroux

cabal --configure --verbose=3

comment:5 Changed 7 months ago by leroux

Note that attachment:setup-configure.txt is the output until it hangs.

comment:6 Changed 7 months ago by leroux

The downside of switching to cabal is that the Makefile will be assuming that cabal exists.

I'm testing out different versions of gcc now. At the moment it seems that gcc-4.8.1 (mingw) is troublesome.

Last edited 7 months ago by leroux (previous) (diff)

Changed 7 months ago by leroux

Patch: Switch from Setup.exe command to cabal.

comment:7 Changed 7 months ago by leroux

  • Status changed from new to patch

There are a number of ways to get around this, so choose one?

  • Use patch attachment:0001-timeout-configure-use-cabal-instead-of-Setup-for-Win.patch, which substitutes executing 'Setup.exe' to cabal-install.
  • Leave a note either on the windows Preparation wiki or an echo in the Makefile to set the PATH such that something other than gcc-4.8.1-mingw (the version I faced problems with) will be selected.
  • Leave a note to pass an explicit --with-gcc flag.

comment:8 Changed 7 months ago by leroux

  • Priority changed from high to normal

comment:9 Changed 7 months ago by leroux

  • Owner leroux deleted
  • Status changed from patch to new

comment:10 Changed 7 months ago by leroux

  • Owner set to leroux
Note: See TracTickets for help on using tickets.