[GHC] #16368: Boot GHC's libffi installation path leaks into stage1 build
GHC
ghc-devs at haskell.org
Tue Feb 26 17:38:08 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) |
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Description changed by sgraf:
Old description:
> 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.
New description:
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.
For completeness, this is the error I'm eventually seeing:
{{{
FFI.hsc:9:10: fatal error: ffi.h: No such file or directory
compilation terminated.
compiling _build/stage0/libraries/ghci/build/GHCi/FFI_hsc_make.c failed
(exit code 1)
command was: /nix/store/8zfm4i1aw4c3l5n6ay311ds6l8vd9983-gcc-
wrapper-7.4.0/bin/cc -c
_build/stage0/libraries/ghci/build/GHCi/FFI_hsc_make.c -o
_build/stage0/libraries/ghci/build/GHCi/FFI_hsc_make.o
-I/nix/store/891h83mar65k138156v41kzryc9ij0v3-ghc-build-
environment/include -I_build/generated
-I_build/stage0/libraries/ghci/build
-I/nix/store/891h83mar65k138156v41kzryc9ij0v3-ghc-build-
environment/include -I/nix/store/7874h075nf8yikvr47642xqrwqwyv99s-
ghc-8.6.3/lib/ghc-8.6.3/unix-2.7.2.2/include -I/nix/store
/7874h075nf8yikvr47642xqrwqwyv99s-
ghc-8.6.3/lib/ghc-8.6.3/time-1.8.0.2/include -I/nix/store
/7874h075nf8yikvr47642xqrwqwyv99s-
ghc-8.6.3/lib/ghc-8.6.3/bytestring-0.10.8.2/include -I/nix/store
/7874h075nf8yikvr47642xqrwqwyv99s-
ghc-8.6.3/lib/ghc-8.6.3/base-4.12.0.0/include -I/nix/store
/5c9pfgazxid22ik3smh8zi805cp1i03y-gmp-6.1.2-dev/include -I/nix/store
/7874h075nf8yikvr47642xqrwqwyv99s-ghc-8.6.3/lib/ghc-8.6.3/integer-
gmp-1.0.2.0/include -I/nix/store/7874h075nf8yikvr47642xqrwqwyv99s-
ghc-8.6.3/lib/ghc-8.6.3/include
-I/nix/store/karxq4hlfmfj0c3yk4wv5mfaz06p70k8-libffi-3.2.1/include -Wall
-Werror=unused-but-set-variable -Wno-error=inline -include
_build/stage0/libraries/ghci/build/autogen/cabal_macros.h
-Dx86_64_HOST_ARCH=1 -Dlinux_HOST_OS=1 -D__GLASGOW_HASKELL__=806
}}}
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16368#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list