ghc-6.2.2: unknown package name: Main (again)

Simon Marlow simonmar at microsoft.com
Thu Dec 2 11:36:56 EST 2004


On 02 December 2004 09:06, Axel Simon wrote:

> On Wed, 2004-12-01 at 19:07, Gregory Wright wrote:
>> No, I patched the hsshellscript library distribution to build using
>> 
>> 	-package-name hsshellscript
>> 
>> as you mentioned. I still got the error. (The documentation
>> asserts that -package-name is a no-op on unices anyway.
>> I wonder if that is really still true?)
> 
> The name you provide with -package-name must wind up in the .hi files
> of the *application* and the library you are compiling. I
> inadvertently passed the file name of the package file as package
> name and it gave me back the whole file name.

Right.  .hi files track package dependencies.  -package-name isn't a
no-op on any platform with respect to dependencies, but it is a no-op
with respect to dynamic linking on Unix.  You should still use
-package-name.

As Simon said, the package handling is changing quite a bit for 6.4.  In
particular, .hi files no longer contain the contents of the
-package-name flag when they were built.  However, you still need to
pass a flag when building a package, but now you say '-ignore-package P'
to cause GHC to ignore any installed version of P when building modules
that are contained in P.  To ease migration, we made -package-name be a
synonym for -ignore-package.

So this particular error message should be a thing of the past.
Furthermore, you can build a collection of modules once and then put
them in two or more separate packages, or a package and a binary,
without having to build them multiple times with different -package-name
flags.

Cheers,
	Simon



More information about the Glasgow-haskell-bugs mailing list