[GHC] #10568: Regression from 7.8.4, loading GLUT into GHCI fails on the Mac
GHC
ghc-devs at haskell.org
Tue Jun 30 00:45:11 UTC 2015
#10568: Regression from 7.8.4, loading GLUT into GHCI fails on the Mac
-------------------------------+-----------------------------------------
Reporter: George | Owner:
Type: bug | Status: infoneeded
Priority: normal | Milestone: 7.10.2
Component: Compiler | Version: 7.10.2-rc1
Resolution: | Keywords:
Operating System: MacOS X | Architecture: x86_64 (amd64)
Type of failure: GHCi crash | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Revisions:
-------------------------------+-----------------------------------------
Comment (by rwbarton):
OK thanks. I made a little progress in understanding what's going on here.
The `-framework` option does work when building an executable. See the
handling of `framework_opts` in `DriverPipeline.linkBinary'`. However
building a shared library is done by `SysTools.linkDynLib`. This function
uses `ldInputs dflags`, which is initially set by ghc's `-lfoo` flag, to
link against ordinary shared libraries, but it does no processing of
framework options. So, that would seem to be a bug in ghc.
I still don't understand why Cabal doesn't actually pass ghc `-framework
GLUT` automatically when `GLUT.cabal` contains `frameworks: GLUT`. There's
code that clearly intends to do so, see https://github.com/ghc/packages-
Cabal/blob/master/Cabal/Distribution/Simple/Program/GHC.hs#L348.
I think the reason this all used to work in 7.8 is that Cabal records the
fact that the GLUT package needs the GLUT framework in the package
registration, and ghci checks this and loads the GLUT framework before
loading the GLUT package. However since #8935 that no longer makes the
framework visible to the package.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10568#comment:28>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list