fpco / stackage-cli

MIT License
28 stars 4 forks source link

Build failure on Windows / minghc 7.8.4 #47

Open solatis opened 9 years ago

solatis commented 9 years ago

I'm getting this build error:

main\Main.hs:30:13:
    cannot find normal object file `dist\build\stackage\stackage-tmp\Paths_stackage_cli.o'
    while linking an interpreted expression
cabal.exe: Error: some packages failed to install:
stackage-cli-0.0.0.4 failed during the building phase. The exception was:
ExitFailure 1```

Repeated attempts to reinstall fail. 
snoyberg commented 9 years ago

Are you using 32-bit or 64-bit MinGHC?

solatis commented 9 years ago

64bit

snoyberg commented 9 years ago

I was able to reproduce this by running cabal install stackage-cli with 64-bit MinGHC, but not with 32-bit. More interestingly, if I instead ran cabal unpack stackage-cli and then ran cabal build inside that directory, it compiled without a hitch. Do you get similar behavior?

solatis commented 9 years ago

Nop, here is the full log:

C:\Users\leon\Documents> cabal unpack stackage-cli
Unpacking to stackage-cli-0.0.0.4\
C:\Users\leon\Documents> cd .\stackage-cli-0.0.0.4
C:\Users\leon\Documents\stackage-cli-0.0.0.4> cabal configure
Resolving dependencies...
Configuring stackage-cli-0.0.0.4...
C:\Users\leon\Documents\stackage-cli-0.0.0.4> cabal build
Building stackage-cli-0.0.0.4...
Preprocessing library stackage-cli-0.0.0.4...
[1 of 4] Compiling SimpleOptions    ( src\SimpleOptions.hs, dist\build\SimpleOptions.o )
[2 of 4] Compiling Plugins          ( src\Plugins.hs, dist\build\Plugins.o )
[3 of 4] Compiling Plugins.Commands ( src\Plugins\Commands.hs, dist\build\Plugins\Commands.o )
[4 of 4] Compiling Stackage.CLI     ( src\Stackage\CLI.hs, dist\build\Stackage\CLI.o )
[1 of 4] Compiling SimpleOptions    ( src\SimpleOptions.hs, dist\build\SimpleOptions.p_o )
[2 of 4] Compiling Plugins          ( src\Plugins.hs, dist\build\Plugins.p_o )
[3 of 4] Compiling Plugins.Commands ( src\Plugins\Commands.hs, dist\build\Plugins\Commands.p_o )
[4 of 4] Compiling Stackage.CLI     ( src\Stackage\CLI.hs, dist\build\Stackage\CLI.p_o )
In-place registering stackage-cli-0.0.0.4...
Preprocessing executable 'stackage' for stackage-cli-0.0.0.4...
[1 of 2] Compiling Paths_stackage_cli ( dist\build\autogen\Paths_stackage_cli.hs, dist\build\stackage\stackage-tmp\Paths
_stackage_cli.p_o )
[2 of 2] Compiling Main             ( main\Main.hs, dist\build\stackage\stackage-tmp\Main.p_o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package mtl-2.1.3.1 ... linking ... done.
Loading package array-0.5.0.0 ... linking ... done.
Loading package stm-2.4.4 ... linking ... done.
Loading package transformers-compat-0.4.0.3 ... linking ... done.
Loading package exceptions-0.8.0.2 ... linking ... done.
Loading package transformers-base-0.4.4 ... linking ... done.
Loading package monad-control-1.0.0.4 ... linking ... done.
Loading package lifted-base-0.2.3.6 ... linking ... done.
Loading package mmorph-1.0.4 ... linking ... done.
Loading package deepseq-1.3.0.2 ... linking ... done.
Loading package containers-0.5.5.1 ... linking ... done.
Loading package resourcet-1.1.4.1 ... linking ... done.
Loading package bytestring-0.10.4.0 ... linking ... done.
Loading package text-1.2.0.4 ... linking ... done.
Loading package hashable-1.2.3.2 ... linking ... done.
Loading package nats-1 ... linking ... done.
Loading package unordered-containers-0.2.5.1 ... linking ... done.
Loading package semigroups-0.16.2.2 ... linking ... done.
Loading package void-0.7 ... linking ... done.
Loading package conduit-1.2.4 ... linking ... done.
Loading package Win32-2.3.0.2 ... linking ... done.
Loading package filepath-1.3.0.2 ... linking ... done.
Loading package old-locale-1.0.0.6 ... linking ... done.
Loading package time-1.4.2 ... linking ... done.
Loading package directory-1.2.1.0 ... linking ... done.
Loading package random-1.1 ... linking ... done.
Loading package MonadRandom-0.3.0.2 ... linking ... done.
Loading package StateVar-1.1.0.0 ... linking ... done.
Loading package contravariant-1.3.1 ... linking ... done.
Loading package pretty-1.1.1.1 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package tagged-0.8.0.1 ... linking ... done.
Loading package distributive-0.4.4 ... linking ... done.
Loading package comonad-4.2.5 ... linking ... done.
Loading package semigroupoids-4.3 ... linking ... done.
Loading package bifunctors-4.2.1 ... linking ... done.
Loading package prelude-extras-0.4 ... linking ... done.
Loading package profunctors-4.4.1 ... linking ... done.
Loading package free-4.11 ... linking ... done.
Loading package either-4.3.3.2 ... linking ... done.
Loading package ansi-terminal-0.6.2.1 ... linking ... done.
Loading package ansi-wl-pprint-0.6.7.2 ... linking ... done.
Loading package process-1.2.0.0 ... linking ... done.
Loading package optparse-applicative-0.11.0.2 ... linking ... done.
Loading package gitrev-1.0.0 ... linking ... done.
Loading package optparse-simple-0.0.2 ... linking ... done.
Loading package split-0.2.2 ... linking ... done.
Loading package stackage-cli-0.0.0.4 ... linking ... done.

<no location info>:
    main\Main.hs:30:13:
    cannot find normal object file `dist\build\stackage\stackage-tmp\Paths_stackage_cli.o'
    while linking an interpreted expression
C:\Users\leon\Documents\stackage-cli-0.0.0.4>
snoyberg commented 9 years ago

What's the output of cabal --version?

solatis commented 9 years ago
C:\Users\leon\Documents\stackage-cli-0.0.0.4> cabal --version
cabal-install version 1.20.0.3
using version 1.20.0.1 of the Cabal library
C:\Users\leon\Documents\stackage-cli-0.0.0.4> ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.4
C:\Users\leon\Documents\stackage-cli-0.0.0.4>
duog commented 9 years ago

I've just run into this as well.

I fixed it by disabling library and executable profiling with cabal configure.

I think it was something inconsistent in my build environment, since enabling library and executable profiling also seems to build fine.

solatis commented 9 years ago

I can confirm: cabal install --disable-executable-profiling stackage-cli works! (same goes for the yesod binary, btw)