
#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: 10458 | Blocking: 9237 Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by trommler): Replying to [comment:25 simonmar]:
Is the C library going to be a static (archive) or a dynamic (shared object) library?
Usually both, so that you can use `-optl-static` if you want. The `-dev` package of a C library normally includes both the unversioned `.so` and the `.a`.
Remember that GHC links static Haskell packages but dynamic C libraries by default. Static Haskell with dynamic C is the issue that I want to address in comment:16
Did you know the code in `Linker.lhs` is only used for GHCi and not
[...] linking of standalone executables? I have a suspicion that there's some confusion here. There is no "dummy SO" when linking a standalone executable. Sorry, this is indeed confusing. This dummy SO is not the same as the dummy SO in #10458. Let me call the #11458 dummy SO "GHCi dummy SO" and the one in comment:16 "package dummy SO". The package dummy SO belongs to a Haskell package and is installed next to the static (`libHS*.a`) and the dynamic (`libHS*.so`) Haskell library. Then the package dummy SO would be used in the static Haskell dynamic C case in GHCi only. We could do this to help user's that are in the situation described in this ticket. On the other hand we could include the essence of your comment:19 "GHCi works like ld" in the user's guide (Section 2.6.2?). Perhaps we can discuss this in [wiki:LinkingHaskell] When linking a static executable a static executable then all C dev dependencies are required. That is no different from linking a C executable.
Since you have a design in mind, maybe it would be good to flesh it out
in a wiki page so we can discuss with more precision? I created [wiki:LinkingHaskell] -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9498#comment:26 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler