
Dimitry Golubovsky wrote:
The Paragraph 4.10.7 of the GHC users guide contains this:
-static Tell the linker to avoid shared Haskell libraries, if possible. This is the default.
-dynamic Tell the linker to use shared Haskell libraries, if available (this option is only supported on Mac OS X at the moment, and also note that your distribution of GHC may not have been supplied with shared libraries).
As I understand, this is related to the GHC own libraries. What about user-supplied libraries (listed in the `extra-libraries' field of a Cabal package description) e. g.:
extra-libraries: gd, jpeg, m
from http://www.cs.chalmers.se/~bringert/darcs/haskell-gd/gd.cabal
There are usually files like libm.a and libm.so together in the same directory where GHC looks for libraries.
Does the -static / -dynamic ghc flag affect the choice which library to link against?Or, to control this, one has to descend to the linker options, and the default would be the linker default?
It seems that in order to get static linking to non-Haskell libraries, you need to, as you suggest, tell the linker about it. I use "-static -optl-static", which seems to work.
...
/Björn