
That means we need to record the fact that `-lcurl` is necessary when
#9498: GHC links against unversioned .so files -------------------------------------+------------------------------------- Reporter: Kritzefitz | Owner: Type: feature request | Status: new Priority: low | Milestone: Component: Compiler (FFI) | Version: 7.6.3 Resolution: | Keywords: Debian Operating System: Linux | Architecture: | Unknown/Multiple Type of failure: Other | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Changes (by trommler): * owner: trommler => Comment: Replying to [comment:9 rwbarton]: linking against the static Haskell library but not when linking against the dynamic Haskell library, right? You are right, the dynamic library is linked against the versioned C library and no extra `-lcurl` is required. At build time we need the development package for libcurl so the link editor (ld) can link the dynamic Haskell library. To use the dynamic Haskell library the unversioned library is not needed anymore. 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 linker looks for the unversioned library and tries to load that. So yes, the unversioned C library is currently necessary to load a static Haskell library but not needed to load a dynamic Haskell library. Perhaps we could make cabal record the version information for C libraries in the package database as suggested in comment:8 and change the RTS linker to use that information? I don't have time to work on this now, so I am disowning the ticket. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9498#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler