
#14444: Linker limit on OS X Sierra breaks builds for big projects -------------------------------------+------------------------------------- Reporter: dredozubov | Owner: angerman Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 (Linking) | Resolution: | Keywords: Operating System: MacOS X | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by chak): * cc: chak (added) Comment:
bgamari: I've been asking people to open tickets with Apple bgamari: As they are really the only ones that can really fix this issue
I am quite sure I know what Apple will respond: "You are holding it wrong." Insider jokes aside, the core problem (as I mentioned before on one of the other tickets) is that GHC tries to use the macOS linker like a Linux linker and it was never meant to be used like that. Hence, Apple will only tell you to use it how it was designed to be used. (This is why I haven't filled a Radar —Apple speak for bug report— against this issue myself.) As @angerman und @shlevy explained, there are alternatives to GHC's current scheme, which are closer to how library paths are usually managed on macOS. In addition, there is a reason why library names on macOS can include directory paths. In combination with @loader_path and @executable_path that always allowed to drastically shorten GHC's load command size. Haskell for Mac has done this for a long time (and I also mentioned this on a previous ticket) — see https://github.com/haskellformac/GHCframework/blob/master/GHCBuild/BuildGHC.... for a messy shell script that is part of how the Haskell for Mac build handles this. (The other parts are in that repo as well.) What I am trying to say here is that Apple will not change this, as they do not consider it a problem caused by macOS, but as a problem caused by GHC's abuse of the MACH-O linker format. Hence, I am afraid, we will have to fix this on our side. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14444#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler