[GHC] #10032: --with-system-libffi not working on Solaris

GHC ghc-devs at haskell.org
Tue Jan 27 12:45:44 UTC 2015


#10032: --with-system-libffi not working on Solaris
-------------------------------------+-------------------------------------
              Reporter:  kgardas     |             Owner:
                  Type:  bug         |            Status:  new
              Priority:  normal      |         Milestone:
             Component:  Build       |           Version:  7.11
  System                             |  Operating System:  Solaris
              Keywords:              |   Type of failure:  None/Unknown
          Architecture:              |        Blocked By:
  Unknown/Multiple                   |   Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
 Hello,
 an attempt to configure ghc-7.10.1-rc2 with:
 {{{
 $ ./configure --with-gmp-includes=/usr/include/gmp/ --with-gmp-
 libraries=/usr/lib/ --with-system-libffi --with-ffi-
 includes=/usr/lib/libffi-3.0.9/include/ --with-ffi-libraries=/usr/lib/
 }}}

 results in kind of broken distribution, since
 gmake test_bindist fails with:
 {{{
 bindisttest/"install   dir"/bin/runghc bindisttest/HelloWorld >
 bindisttest/output
 diff -U 1 bindisttest/output bindisttest/expected_output
 No differences encountered
 bindisttest/"install   dir"/bin/ghc --make bindisttest/HelloWorld
 [1 of 1] Compiling Main             ( bindisttest/HelloWorld.lhs,
 bindisttest/HelloWorld.o )
 Linking bindisttest/HelloWorld ...
 bindisttest/HelloWorld > bindisttest/output
 diff -U 1 bindisttest/output bindisttest/expected_output
 No differences encountered
 bindisttest/"install   dir"/bin/ghc-pkg check --no-user-package-db
 There are problems in package rts-1.0:
   library-dirs: @FFILibDir@ is a relative path which makes no sense (as
 there is nothing for it to be relative to). You can make paths relative to
 the package database itself by using ${pkgroot}.
   include-dirs: @FFIIncludeDir@ is a relative path which makes no sense
 (as there is nothing for it to be relative to). You can make paths
 relative to the package database itself by using ${pkgroot}.

 The following packages are broken, either because they have a problem
 listed above, or because they depend on a broken package.
 rts-1.0
 ghc-7.10.0.20150123
 haskeline-0.7.2.0
 terminfo-0.4.0.1
 xhtml-3000.2.1
 transformers-0.4.2.0
 hoopl-3.10.0.2
 bin-package-db-0.0.0.0
 Cabal-1.22.1.0
 binary-0.7.3.0
 template-haskell-2.10.0.0
 pretty-1.1.2.0
 hpc-0.6.0.2
 process-1.2.2.0
 directory-1.2.2.0
 unix-2.7.1.0
 time-1.5.0.1
 containers-0.5.6.2
 bytestring-0.10.6.0
 deepseq-1.4.0.0
 array-0.5.0.1
 filepath-1.3.1.0
 base-4.8.0.0
 integer-gmp-1.0.0.0
 ghc-prim-0.3.1.0
 gmake[1]: *** [test_bindist] Error 1
 gmake: *** [test_bindist] Error 2
 }}}

 Honestly speaking I must add that even gmake binary-dist was not without
 issue since this expected ffi headers to be located in rts/dist/build
 directory but they were obviously not there. I've copied them manually and
 then binary-dist was able to run.

 I'm not sure if this is Solaris specific issue or if this also affects
 other Unix(-like) OSes.
 I mark that for 7.11 (HEAD) since I'm not sure I'll have a time to address
 this issue for 7.10.1-rc3/fcs. The workaround is easy, just let ghc use
 its own copy of ffi library and not the system provided one. In the long
 term however, having ghc using system provided one is better.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10032>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list