[GHC] #16063: ghc-8.6.3 + Mac OSX + FFI dependency causes 'impossible happened' compiler failure
GHC
ghc-devs at haskell.org
Wed Dec 19 01:46:28 UTC 2018
#16063: ghc-8.6.3 + Mac OSX + FFI dependency causes 'impossible happened' compiler
failure
-------------------------------------+-------------------------------------
Reporter: benselfridge | Owner: (none)
Type: bug | Status: patch
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.3
Resolution: | Keywords:
Operating System: MacOS X | Architecture: x86_64
Type of failure: Compile-time | (amd64)
crash or panic | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D5462
Wiki Page: |
-------------------------------------+-------------------------------------
Changes (by harpocrates):
* status: infoneeded => patch
* differential: => Phab:D5462
Comment:
Here's what I think is happening: starting in
3d17f1f10fc00540ac052f2fd03182906aa47e35, when told to find an archive for
`softfloat`, GHC no longer looks for just `libsoftfloat.a` and
`softfloat.a`, it also looks for `libsoftfloat` and `softfloat`. GHC's
method for "looking" for an archive is to make a bunch of calls to GCC.
Something like
{{{
gcc -fno-stack-protector -DTABLES_NEXT_TO_CODE
-B/Users/atheriault/Code/grift/dist-newstyle/build/x86_64-osx/ghc-8.6.3
/softfloat-hs-0.1.0/build --print-file-name libsoftfloat.a
...
gcc -fno-stack-protector -DTABLES_NEXT_TO_CODE
-B/Users/atheriault/Code/grift/dist-newstyle/build/x86_64-osx/ghc-8.6.3
/softfloat-hs-0.1.0/build --print-file-name softfloat
}}}
We "find" a library when the path that GCC prints out is a full path
(instead of just the path we pass in). And there's the problem: GCC will
print out a full path to a //folder// if an appropriately named folder is
found in the base location. In this case, GHC ends up finding the
`Users/atheriault/Code/grift/dist-newstyle/build/x86_64-osx/ghc-8.6.3
/softfloat-hs-0.1.0/build/SoftFloat` folder and thinking that this is the
`softfloat` library it has been asked to find.
One workaround is to name the `softfloat` library to `softfloat1`. Or
rename the `SoftFloat` directory.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16063#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list