
OK, I cannot rebuild ghc-6.8.3 on a ghc-6.8.3 existing enviornment, very
good.
Preprocessing library cgi-3001.1.6.0...
Generating Makefile cgi-3001.1.6.0...
make[2]: Entering directory `/home/shidaw/src/ghc-6.8.3/libraries/cgi'
== make way=p -f GNUmakefile all;
../../compiler/stage1/ghc-inplace -package-name cgi-3001.1.6.0 -hide-all-packages -split-objs -i -idist/build/autogen -idist/build -i. -Idist/build -odir dist/build -hidir dist/build -stubdir dist/build -package base-3.0.2.0 -package old-time-1.0.0.0 -package old-locale-1.0.0.0 -package containers-0.1.0.2 -package base-3.0.2.0 -package bytestring-0.9.0.1.1 -package network-2.2.0.0 -package parsec-2.1.0.1 -package mtl-1.1.0.1 -package xhtml-3000.2.0.0 -O -Wall -XMultiParamTypeClasses -idist/build -prof -hisuf p_hi -hcsuf p_hc -osuf p_o -H16m -O -O -Rghc-timing -fgenerics -c Network/CGI/Protocol.hs -o dist/build/Network/CGI/Protocol.p_o -ohi dist/build/Network/CGI/Protocol.p_hi
Network/CGI/Protocol.hs:41:0:
Failed to load interface for `Network.URI':
Perhaps you haven't installed the profiling libraries for package network-2.2.0.0?
Use -v to see a list of the files searched for.
<
After rebuilt HTTP-3001.1.3, I reinstalled, no luck, same error. I am rebuilding GHC-6.8.3, to see....
Duncan Coutts wrote:
On Tue, 2008-10-14 at 13:51 +0800, Magicloud wrote:
Sigh again, something that always makes me think that cabal is unusable....
~/.cabal/lib/HTTP-3001.1.3/ghc-6.8.3/libHSHTTP-3001.1.3.a(Browser.o)(.text+0x5aa6): In function `rp46_info': : undefined reference to `mtlzm1zi1zi0zi1_ControlziMonadziIdentity_zdf2_closure'
What is almost certainly going on is that mtl has been rebuilt but the other packages that depend on it (like http) have not.
I wonder if we could detect this better in ghc-6.10.2. There are ABI hashes available, so if we could record them in the package registration info then we should be able to detect when a dependent package has changed ABI. The longer term solution is to use a nix-style persistent package store.
The short term solution in this case is probably to rebuild the HTTP package.
Duncan