[GHC] #14444: Linker limit on OS X Sierra breaks builds for big projects
GHC
ghc-devs at haskell.org
Thu Nov 9 16:45:59 UTC 2017
#14444: Linker limit on OS X Sierra breaks builds for big projects
-------------------------------------+-------------------------------------
Reporter: dredozubov | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
(Linking) |
Keywords: | Operating System: MacOS X
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
I'm opening a fresh ticket as @bgamari suggested in #12479. There are few
more related closed tickets as well: #12198 and #12588. The issue occurs
on projects with a lot of dependencies. There are reports of that
happening across various projects:
[https://github.com/NixOS/nixpkgs/issues/22810]
[https://github.com/commercialhaskell/stack/issues/2577]
I'm still able to reproduce it with 8.2.1 and git HEAD with a work
project:
{{{
ghc: panic! (the 'impossible' happened)
(GHC version 8.2.1 for x86_64-apple-darwin):
Loading temp shared object failed:
dlopen(/var/folders/f8/2_rc4tgd1gj9vbgv7q9gbk4c0000gn/T/ghc94377_0/libghc_325.dylib,
5): no suitable image found. Did find:
/var/folders/f8/2_rc4tgd1gj9vbgv7q9gbk4c0000gn/T/ghc94377_0/libghc_325.dylib:
malformed mach-o: load commands size (34592) > 32768
Please report this as a GHC bug:
http://www.haskell.org/ghc/reportabug
}}}
I can't share the sources, but this is a command(generated by stack) that
results in this error:
`/Users/dr/.stack/setup-exe-cache/x86_64-osx/Cabal-
simple_mPHDZzAJ_2.0.0.2_ghc-8.2.1 --builddir=.stack-
work/dist/x86_64-osx/Cabal-2.0.0.2 build lib:projectname exe:projectname
--ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"`
We're having a chat about this issue with @bgamari and I'll post some of
his input:
{{{
bgamari: dredozubov, unfortunately this is pretty much a limitation of OS
X's linker
bgamari: there's no great solution other than petitioning Apple to lift
their arbitrary size limit
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
dredozubov: bgamari, do you know if someone did this already?
bgamari: dredozubov, No one has said they have
dredozubov: the other issue with it, I don't how to do a repro case
dredozubov: I can reproduce it on a project with a closed sources and
that's it
bgamari: essentially you just need to build a project with enough
dependencies
bgamari: the problem is that Apple's linker sets an artificial cap on the
number of shared libraries that an object file can load
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14444>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list