
#9498: GHC links against unversioned .so files -------------------------------------+------------------------------------- Reporter: Kritzefitz | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 (Linking) | Resolution: | Keywords: Debian Operating System: Linux | Architecture: | Unknown/Multiple Type of failure: Other | Test Case: Blocked By: 11238 | Blocking: 9237 Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata): This, or a related problem, came up in Debian: https://bugs.debian.org /cgi-bin/bugreport.cgi?bug=834026#10 The summary is: Currently, if a Haskell library foo depends on bar, and bar uses a C library libbaz, then creating the shared library libHSfoo.so will be built with -lbaz, and hence link to libbaz.so.42, even though that dependency is already encoded in libHSbar.foo. Now, if libbaz is upgraded and bar is rebuilt the new version of libbaz, then baz’s ABI stays the same (so foo is not going to be rebuilt), but now foo is broken, as it cannot find `libbaz.so.42` any more. @trommler writes on LinkingHaskell (Emphasis mine), which should avoid this problem for us.
All Haskell libraries and all '''directly''' dependent C libraries must be passed to the linker.
-- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9498#comment:28 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler