Automating GHC build for Windows

Gintautas Miliauskas gintautas.miliauskas at gmail.com
Mon Nov 3 21:37:46 UTC 2014


Potentially related issues:

https://github.com/haskell/cabal/issues/1698
https://ghc.haskell.org/trac/ghc/ticket/2924
https://ghc.haskell.org/trac/ghc/ticket/3231
https://ghc.haskell.org/trac/ghc/ticket/2650

On Mon, Nov 3, 2014 at 1:24 AM, Gintautas Miliauskas <
gintautas.miliauskas at gmail.com> wrote:

> Without knowing much about the surrounding code, I would try two things
> here.
>
> 1. Is it possible that the file was opened by for writing and not closed
> because of lazy I/O?
>
> 2. Since the error is completely deterministic, you could try "freezing"
> evaluation right before the crash (either by a breakpoint in ghci or just
> adding a time delay / console read on the code), and then using a utility
> app
> <http://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows> to
> check which process is keeping the file open, whether it's the same process
> or something else.
>
> If any of the involved paths is a directory, this could be #8482
> <https://ghc.haskell.org/trac/ghc/ticket/8482>, although that does not
> seem to be the case.
>
> On Thu, Oct 30, 2014 at 7:13 PM, Páli Gábor János <pali.gabor at gmail.com>
> wrote:
>
>> 2014-10-30 16:24 GMT+01:00 Gintautas Miliauskas <gintautas at miliauskas.lt
>> >:
>> > I wonder what's going on with DeleteFile. What is the step that's
>> failing?
>>
>> Basically it happens at the same point, that is, at the "configure"
>> phase but at the ghc-prim package.  Note that the previously mentioned
>> workaround has a "removeFile" action [1], I guess the failure of that
>> triggers the DeleteFile exception.
>>
>> > Can you post the log?
>>
>> "inplace/bin/ghc-cabal.exe" configure libraries/ghc-prim dist-install
>> "" --with-ghc="C:/msys64/home/ghc-builder/ghc/inplace/bin/ghc-stage1.exe"
>> --with-ghc-pkg="C:/msys64/home/ghc-builder/ghc/inplace/bin/ghc-pkg.exe"
>> --flag=include-ghc-prim --disable-library-for-ghci
>> --enable-library-vanilla --enable-library-for-ghci
>> --enable-library-profiling --disable-shared
>> --configure-option=CFLAGS=" -U__i686 -march=i686 -fno-stack-protector
>>  " --configure-option=LDFLAGS="   " --configure-option=CPPFLAGS="   "
>> --gcc-options=" -U__i686 -march=i686 -fno-stack-protector       "
>> --with-gcc="C:/msys64/home/ghc-builder/ghc/inplace/mingw/bin/gcc.exe"
>> --with-ld="C:/msys64/home/ghc-builder/ghc/inplace/mingw/bin/ld.exe"
>>
>> --configure-option=--with-cc="C:/msys64/home/ghc-builder/ghc/inplace/mingw/bin/gcc.exe"
>> --with-ar="/usr/bin/ar" --with-alex="/usr/local/bin/alex"
>> --with-happy="/usr/local/bin/happy"
>> Configuring ghc-prim-0.3.1.0...
>> ghc-cabal.exe: DeleteFile "dist-install\\setup-config": permission
>> denied (The process cannot access the file because it is being used by
>> another process.)
>> libraries/ghc-prim/ghc.mk:4: recipe for target
>> 'libraries/ghc-prim/dist-install/package-data.mk' failed
>> make[1]: *** [libraries/ghc-prim/dist-install/package-data.mk] Error 1
>> Makefile:71: recipe for target 'all' failed
>>
>> > I also wonder why this issue is not arising on other Windows machines...
>>
>> As the comment in the workaround goes, it has a "Big fat hairy race
>> condition".  Therefore I am inclined to believe that it may be a
>> problem for other systems as well, but I am the most unfortunate one
>> who hits this error with 100% probability :-)
>>
>> [1]
>> https://github.com/ghc/ghc/blob/master/libraries/bin-package-db/GHC/PackageDb.hs#L267
>>
>
>
>
> --
> Gintautas Miliauskas
>



-- 
Gintautas Miliauskas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20141103/e447c434/attachment-0001.html>


More information about the ghc-devs mailing list