on when to build ghci libs in cabal

Brian Smith brianlsmith at gmail.com
Sun Aug 7 14:17:57 EDT 2005


On 7/30/05, Isaac Jones <ijones at syntaxpolice.org> wrote:
> Henning Günther and Duncan Coutts / the Gentoo team have sent me a
> patch to move creation of ghci libs to the build phase rather than the
> register phase.  It makes more sense there and should be somewhat
> better for debian and gentoo.

I think it is better too. But, the current code assumes that "ld" is
in the system path. On windows, without Cygwin or MinGW, this is
usually not the case. People will add only, e.g. c:\ghc\ghc-6.4.1\bin
to the path. But, GHC's copy of ld.exe is in
"c:\ghc\ghc-6.4.1\gcc-lib." Also, if MinGW or Cygwin is being used,
then the "ld" in the path might be different than the one GHC normally
uses. I recommend invoking "ld" just like ghc-pkg does:

#if defined(darwin_HOST_OS)
  r <- rawSystem "ld" ["-r","-x","-o",ghci_lib_file,"-all_load",batch_lib_file]
#elif defined(mingw32_HOST_OS)
  execDir <- getExecDir "/bin/ghc-pkg.exe"
  r <- rawSystem (maybe "" (++"/gcc-lib/") execDir++"ld")
["-r","-x","-o",ghci_lib_file,"--whole-archive",batch_lib_file]
#else
  r <- rawSystem "ld"
["-r","-x","-o",ghci_lib_file,"--whole-archive",batch_lib_file]
#endif

I agree that "--enable-library-for-ghci" and
"--disable-library-for-ghci" are unnecessary.

- Brian



> 
> Though Duncan points out that maybe some ppl want to build the ghci
> libs during register because it could save room in a binary
> distribution (like debian and rpm).  Any opinions here?
> 
> Also, I noticed the "FIXME" that mentions the -x flag is only
> supported on some platforms; what effect will this have on platforms
> that don't support it?  Will they be broken during build?  What about
> platforms where we know the ghci libs don't work, like MacOS; will
> this patch cause building to break?
> 
> The patch adds a couple extra configure options,
> --enable-library-for-ghci / --disable-library-for-ghci.  I'm sorta
> thinking of just having one option "--disable-interpreter-libs" or
> something to make this seem more generic, though at the moment, it
> still only makes sense for a combo compiler / interpreter build (that
> is, --ghc).  I'll be happy to add this to the manual once we settle on
> a flag.  Do we ever really need to disable it anyway?
> 
> peace,
> 
>   isaac
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>


More information about the Libraries mailing list