
To load a static library we use the RTS linker and the RTS linker needs to load dependent C libraries explicitly. Unfortunately we cannot assume that the C library with a specific version is installed. So the RTS
#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: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by trommler): Replying to [comment:11 nomeata]: linker looks for the unversioned library and tries to load that.
BTW, why is that? Is it a valid and supported use case to build against
one version and run against another version of the library? You don't have to recompile for say a security fix in a shared library. The official GHC binaries are build against a certain version of the standard C library (libc) but generally work with a newer libc as long as it is binary compatible. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9498#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler