odd GHC 6.8.2 compile failure

Simon Marlow simonmarhaskell at gmail.com
Fri Jan 4 09:14:55 EST 2008


Isaac Dupree wrote:
> Simon Marlow wrote:
>> Isaac Dupree wrote:
>>> Simon Marlow wrote:
>>>> Isaac Dupree wrote:
>>>>> linking the compiled stage2 failed when bootstrapping from 6.6.1, 
>>>>> with --prefix=$HOME .
>>>>>
>>>>> It's odd because I previously had a 6.8.2 (official x86 Linux 
>>>>> bin-dist) installed as root (it's gone now), and I still have a 
>>>>> bunch of cabal/hackage packages installed in $HOME that were 
>>>>> compiled by that 6.8.2 (in addition to a few things installed by 
>>>>> `cabal install` in ~/.cabal/).  Do you think that could be 
>>>>> confusing the build process, and if it is, is that a bug - and a 
>>>>> bug in what?
>>>>
>>>> It looks like at some point you've updated your sources and 
>>>> recompiled without cleaning in stage2, or something similar.  The 
>>>> build system doesn't currently notice when libraries have changed 
>>>> and stage2 needs to be completely recompiled.
>>>
>>> It sure looks that way!  But I didn't do that personally; I think 
>>> these are all of my steps:
>>> [download via Firefox to /Users/me/downloads/ghc-6.8.2-src.tar.bz2]
>>> cd /Users/me/programming/cabalz/NotActuallyCabalButMaybeShouldBe
>>> aunpack /Users/me/downloads/ghc-6.8.2-src.tar.bz2
>>> # this `aunpack` is equivalent to tar -xjf in this case.
>>> cd ghc-6.8.2
>>> ./configure --prefix=$HOME
>>> # ($HOME is /Users/me/HOME , by the way).
>>> make
>>>
>>> Indeed I just reproduced it, newly unpacking that tarball in a new 
>>> location, to make sure, and I got the same error.
>>>
>>>
>>> What if GHC suddenly decided to link with the newer versions of the 
>>> boot-libraries than come with 6.8.2, the ones that could be found in 
>>> $HOME since I installed them there? (or with the _same_ versions that 
>>> happened to be compiled with different flags, perhaps?)
>>
>> And you get different results if you omit the --prefix=$HOME?  (if so, 
>> that's very strange, and I don't have a clue what's wrong, yet)
> 
> tested a couple more times:
> - it still fails without --prefix=$HOME
> - but it succeeds if I `su - east` and have 'east' compile it (without 
> using --prefix here either) ('east' being another user on my machine 
> other than the user 'me' which I usually use)

Ah, I see.  You have packages installed in your home directory for GHC 
6.8.2, and these are being picked up by the stage1 compiler.

We should be using -no-user-package-conf when running the compiler from the 
build tree.  I'll test this fix.

Note however that if you install this compiler, the packages in your home 
directory won't work any more, because they were compiled by another 
instance of 6.8.2 against a different set of packages.

Cheers,
	Simon



More information about the Glasgow-haskell-users mailing list