[GHC] #16368: Boot GHC's libffi installation path leaks into stage1 build

GHC ghc-devs at haskell.org
Tue Feb 26 16:51:02 UTC 2019


#16368: Boot GHC's libffi installation path leaks into stage1 build
-------------------------------------+-------------------------------------
           Reporter:  sgraf          |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  ⊥
          Component:  Build System   |           Version:  8.6.3
  (Hadrian)                          |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Starting yesterday, I'm having problems building GHC from a `nix-shell
 --pure https://github.com/alpmestan/ghc.nix/archive/master.tar.gz`.

 Build comes to a halt after/while configuring the RTS, because it can't
 find libffi.h in a global nix store installation that I can't find
 anywhere in my `env`. That nix-store path certainly exists and has an
 installation of `libffi`, but without an include path (probably since
 recently, haven't had problems before).

 After some debugging, I figured out that this path leaks in through `ghc-
 cabal` crawling through the Package DB of the host GHC. These are the
 libraries it finds out about this way (dumped by inserting `putStrLn
 (unlines (forDeps Installed.includeDirs))` in line 388 of `utils/ghc-
 cabal/Main.hs`:

 {{{
 /nix/store/7874h075nf8yikvr47642xqrwqwyv99s-
 ghc-8.6.3/lib/ghc-8.6.3/base-4.12.0.0/include
 /nix/store/5c9pfgazxid22ik3smh8zi805cp1i03y-gmp-6.1.2-dev/include
 /nix/store/7874h075nf8yikvr47642xqrwqwyv99s-ghc-8.6.3/lib/ghc-8.6.3
 /integer-gmp-1.0.2.0/include
 /nix/store/7874h075nf8yikvr47642xqrwqwyv99s-
 ghc-8.6.3/lib/ghc-8.6.3/include
 /nix/store/karxq4hlfmfj0c3yk4wv5mfaz06p70k8-libffi-3.2.1/include
 }}}

 They are then passed on to `DEP_INCLUDE_DIRS_SINGLE_QUOTED` and wreak
 havoc from there.

 Which of these paths are vital? The `libffi` path at least seems to shadow
 the local tarballs for me. This concerns Hadrian and the Make-based build
 system.

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


More information about the ghc-tickets mailing list