I\'m currently developing some web application written in Haskell. All Haskell libraries are statically linked; although this "bloats" the executable, it not so much o
You can use -optl
to pass options directly to the linker, so to link everything statically, you can use:
ghc --make Main.hs -optl-static -optl-pthread
or put these in GHC-Options
if you're using Cabal.
You can probably tweak this futher to have more fine grained control over what to link statically or dynamically. The -v
(verbose) option is helpful here to see the final linker command.
dcoutts posted this as a reddit comment:
You can do exactly the same with ghc.
gcc -c prog.c -o prog.o
gcc prog.o libfoo.a -o prog
and lo, with ghc it's the same...
ghc -c prog.hs -o prog.o
ghc prog.o libfoo.a -o prog