
#13810: Gold linker fails ---------------------------------+---------------------------------------- Reporter: ksaric | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: linker Operating System: Linux | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari):
Do you mean gold?
Whoops, yes.
I don't quite understand this. Isn't the key problem here that the concept of the "ld program" and the "ld-options" are unhealthily mixed up?
In other words, isn't the problem here that we're linking through the compiler (e.g. `gcc`) instead of the actual linker binary? Because otherwise we'd not even be using the `-fuse-ld` flag.
I've played around with the idea of involing `ld` ourselves and have concluded that it's almost certainly going to hurt more than it helps. Linking tends to be terribly platform specific and rather difficult to get right (see also: `gcc -dumpspecs`). Moreover, linkers on many platforms tend to be, shall we say, quirky. I don't see us being able to robustly implement the logic necessary to drive the linker as well as `gcc`. Keep in mind that GHC is not only responsible for linking Haskell; we are often asked to link against native code, some of which may require peculiar linking behavior (e.g. one of those many rules seen in `gcc -dumpspecs`). This isn't to say that `gcc`'s abstraction over linking is quite perfect; far from it. However, it's IMHO much better than having to dive into the muck ourselves. Moreover, I don't think thinking ourselves would necessarily help the crux of this problem: the user essentially gave us conflicting linking options. Really, the user shouldn't have to give us *any* linker options in this case; `ghc` should just handle linker choice for you. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13810#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler