
Replying to [comment:5 KrzysztofSkrzetnicki]:
It should also be noted that simply building with {{{ghc --make -dynamic program.hs}}} works correctly
Right but that does not give you dynamic linking to your library, I
#600: Cabal should use -dynamic linking for executable when package configured --enable-shared ----------------------------+----------------------------------------------- Reporter: juhp | Owner: Type: defect | Status: new Priority: normal | Milestone: Cabal-1.8 Component: Cabal library | Version: HEAD Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: Linux | ----------------------------+----------------------------------------------- Comment(by KrzysztofSkrzetnicki): Replying to [comment:6 juhp]: think? It does, actually. I've moved executable to a different directory to force GHC to use library installed in the system (instead of picking up modules from directory tree) and command {{{ghc --make -dynamic fake_main.hs}}} went successfully. The resulting executable uses shared libraries: {{{ $ ghc --make -dynamic fake_main [1 of 1] Compiling Main ( fake_main.hs, fake_main.o ) Linking fake_main ... $ ldd fake_main linux-gate.so.1 => (0xb7881000) libHSslayer-0.3.1-ghc6.12.1.so => /home/tener//lib/slayer-0.3.1/ghc-6.12.1/libHSslayer-0.3.1-ghc6.12.1.so (0xb7793000) libHStemplate-0.1.1.1-ghc6.12.1.so => /home/tener//lib/template-0.1.1.1/ghc-6.12.1/libHStemplate-0.1.1.1-ghc6.12.1.so (...) libgmp.so.3 => /usr/lib/libgmp.so.3 (0xb5c16000) libHSghc-prim-0.2.0.0-ghc6.12.1.so => /usr/lib/ghc-6.12.1/ghc- prim-0.2.0.0/libHSghc-prim-0.2.0.0-ghc6.12.1.so (0xb5ba3000) libHSrts-ghc6.12.1.so => /usr/lib/ghc-6.12.1/libHSrts-ghc6.12.1.so (0xb5b5e000) libm.so.6 => /lib/libm.so.6 (0xb5b37000) libHSffi-ghc6.12.1.so => /usr/lib/ghc-6.12.1/libHSffi-ghc6.12.1.so (0xb5b2e000) libc.so.6 => /lib/libc.so.6 (0xb59e7000) libpthread.so.0 => /lib/libpthread.so.0 (0xb59cd000) /lib/ld-linux.so.2 (0xb7882000) }}} There are '''52''' .so libs in total as opposed to '''9''' when linking statically.
and so does {{{cabal install --enable-shared}}} with libraries.
and no dynamic executable in this case.
Have you tried dynamic and shared without profiling?
Here is the output: {{{ $ cabal install --disable-library-profiling --enable-shared (...) $ ldd dist/build/slayer/slayer | wc -l 9 }}} It's definitely statical.
(I guess the Cabal version metadata in trac needs updating I hope this can be fixed in 1.10.)
It's not critical issue but I hope that too. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/600#comment:7 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects