[GHC] #11147: GHC 7.10.3 does not compile on NixOS
GHC
ghc-devs at haskell.org
Wed Dec 16 14:39:28 UTC 2015
#11147: GHC 7.10.3 does not compile on NixOS
----------------------------------------+----------------------------------
Reporter: waern | Owner:
Type: bug | Status: infoneeded
Priority: normal | Milestone: 8.0.1
Component: Build System | Version: 7.10.3
Resolution: | Keywords:
Operating System: Linux | Architecture: x86
Type of failure: Building GHC failed | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
----------------------------------------+----------------------------------
Comment (by rwbarton):
It's not librt that isn't being linked, it's libpthread. The eventual
issue is here:
{{{
"inplace/bin/ghc-stage1" -o utils/hsc2hs/dist-install/build/tmp/hsc2hs
-hisuf dyn_hi -osuf dyn_o -hcsuf dyn_hc -fPIC -dynamic -H32m -O
-hide-all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist-install/build
-iutils/hsc2hs/dist-install/build/autogen -Iutils/hsc2hs/dist-
install/build -Iutils/hsc2hs/dist-install/build/autogen -optP-include
-optPutils/hsc2hs/dist-install/build/autogen/cabal_macros.h -package-key
base_HQfYBxpPvuw8OunzQu6JGM -package-key conta_2C3ZI8RgPO2LBMidXKTvIU
-package-key direc_0hFG6ZxK1nk4zsyOqbNHfm -package-key
filep_Ey7a1in9roBAE8bUFJ5R9m -package-key proce_52AgREEfSrnJLlkGV9YZZJ
-XHaskell2010 -no-user-package-db -rtsopts -odir utils/hsc2hs/dist-
install/build -hidir utils/hsc2hs/dist-install/build -stubdir utils/hsc2hs
/dist-install/build -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/libraries/process/dist-install/build'
-optl-L'/tmp/nix-build-ghc-7.10.3.drv-0/ghc-7.10.3/libraries/directory
/dist-install/build' -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/libraries/unix/dist-install/build'
-optl-L'/tmp/nix-build-ghc-7.10.3.drv-0/ghc-7.10.3/libraries/time/dist-
install/build' -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/libraries/filepath/dist-install/build'
-optl-L'/tmp/nix-build-ghc-7.10.3.drv-0/ghc-7.10.3/libraries/containers
/dist-install/build' -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/libraries/bytestring/dist-install/build'
-optl-L'/tmp/nix-build-ghc-7.10.3.drv-0/ghc-7.10.3/libraries/deepseq/dist-
install/build' -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/libraries/array/dist-install/build'
-optl-L'/tmp/nix-build-ghc-7.10.3.drv-0/ghc-7.10.3/libraries/base/dist-
install/build' -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/libraries/integer-gmp2/dist-install/build'
-optl-L'/nix/store/blp0hymd8i8m1v4cjcrkacbh6cw6ia8d-gmp-5.1.3/lib'
-optl-L'/tmp/nix-build-ghc-7.10.3.drv-0/ghc-7.10.3/libraries/ghc-prim
/dist-install/build' -optl-L'/tmp/nix-build-
ghc-7.10.3.drv-0/ghc-7.10.3/rts/dist/build' -optl-lrt -optl-lutil -optl-
ldl -optl-lgmp -optl-lm -optl-lrt -optl-ldl -fPIC -dynamic -H32m -O
-hide-all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist-install/build
-iutils/hsc2hs/dist-install/build/autogen -Iutils/hsc2hs/dist-
install/build -Iutils/hsc2hs/dist-install/build/autogen -optP-include
-optPutils/hsc2hs/dist-install/build/autogen/cabal_macros.h -package-key
base_HQfYBxpPvuw8OunzQu6JGM -package-key conta_2C3ZI8RgPO2LBMidXKTvIU
-package-key direc_0hFG6ZxK1nk4zsyOqbNHfm -package-key
filep_Ey7a1in9roBAE8bUFJ5R9m -package-key proce_52AgREEfSrnJLlkGV9YZZJ
-XHaskell2010 -no-user-package-db -rtsopts -fno-use-rpaths -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../proce_52AgREEfSrnJLlkGV9YZZJ' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../direc_0hFG6ZxK1nk4zsyOqbNHfm' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../unix_KZL8h98IqDM57kQSPo1mKx' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../time_FTheb6LSxyX1UABIbBXRfn' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../filep_Ey7a1in9roBAE8bUFJ5R9m' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../conta_2C3ZI8RgPO2LBMidXKTvIU' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../bytes_6VWy06pWzJq9evDvK2d4w6' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../deeps_6vMKxt5sPFR0XsbRWvvq59' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../array_67iodizgJQIIxYVTp4emlA' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../base_HQfYBxpPvuw8OunzQu6JGM' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../integ_2aU3IZNMF9a7mQ0OzsZ0dS' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../ghcpr_8TmvWUcS1U1IKHT0levwg3' -optl-
Wl,-rpath -optl-Wl,'$ORIGIN/../rts' -optl-Wl,-zorigin utils/hsc2hs/dist-
install/build/Main.dyn_o utils/hsc2hs/dist-install/build/C.dyn_o
utils/hsc2hs/dist-install/build/Common.dyn_o utils/hsc2hs/dist-
install/build/CrossCodegen.dyn_o utils/hsc2hs/dist-
install/build/DirectCodegen.dyn_o utils/hsc2hs/dist-
install/build/Flags.dyn_o utils/hsc2hs/dist-install/build/HSCParser.dyn_o
utils/hsc2hs/dist-install/build/UtilsCodegen.dyn_o utils/hsc2hs/dist-
install/build/Paths_hsc2hs.dyn_o
/nix/store/5kdjp8200hazaydx0dmwn5qghqkyi3py-binutils-2.23.1/bin/ld:
warning: libpthread.so.0, needed by /nix/store
/483br9kb3f5igsgmb6aqsjhl2ipj2bxr-glibc-2.21/lib/librt.so, not found (try
using -rpath or -rpath-link)
}}}
On my working system, `utils/hsc2hs/dist-install/build/tmp/hsc2hs` is
built with the option `-optl-lpthread` also, which is missing from the
above command line.
This flag comes from the `extra-libraries` field of the `unix` package,
which is populated from the configure variable `EXTRA_LIBS` via
`libraries/unix/unix.buildinfo.in`. On my system `pthread` is added to
that variable by this from `configure.ac`:
{{{
AC_SEARCH_LIBS(sem_close, pthread,
[EXTRA_LIBS="$EXTRA_LIBS $ac_lib"],
[AC_MSG_NOTICE([Not found])])
}}}
but in your `libraries/unix` configure output I see
{{{
checking for library containing sem_close... none required
}}}
so that explains why later `-optl-pthread` is not provided when building
`utils/hsc2hs/dist-install/build/tmp/hsc2hs`.
I don't understand why on your Nix system configure apparently detected
that `-lpthread` is not needed for the symbol `sem_close`. Apparently it
was wrong about that. I also have no idea what this has to do with the
commit that apparently broke things for you. (I am building the tip of the
ghc-7.10 branch, so I also have that commit.)
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11147#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list