
#10458: GHCi fails to load shared object (the 'impossible' happened) -------------------------------+---------------------------------------- Reporter: rleslie | Owner: Type: bug | Status: new Priority: highest | Milestone: 8.0.1 Component: GHCi | Version: 7.10.1 Resolution: | Keywords: Operating System: Linux | Architecture: Unknown/Multiple Type of failure: GHCi crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1631 Wiki Page: | -------------------------------+---------------------------------------- Changes (by basvandijk): * status: closed => new * owner: trommler => * resolution: fixed => Comment: As also mentioned in #12152 I'm getting the following panic with GHC-8.0.1 which looks very similar to the error discussed in this ticket: {{{ $ git clone https://github.com/LumiGuide/haskell-opencv.git $ cd haskell-opencv $ nix-shell -I nixpkgs=../nixpkgs # a checkout of a recent nixos-16.09 $ rm -rf dist/ $ cabal build -v Package has never been configured. Configuring with default flags. If this fails, please run configure manually. /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc --numeric- version looking for tool ghc-pkg near compiler in /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin found ghc-pkg in /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc-pkg /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc-pkg --version /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc --supported- languages /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc --info Reading available packages... /nix/store/pkymfih8lf7j3ib6bfab7srri4xiyw34-pkg-config-0.29/bin/pkg-config --version /nix/store/pkymfih8lf7j3ib6bfab7srri4xiyw34-pkg-config-0.29/bin/pkg-config --list-all /nix/store/pkymfih8lf7j3ib6bfab7srri4xiyw34-pkg-config-0.29/bin/pkg-config --modversion poppler-cairo Wand-6.Q16 'ImageMagick++-6.Q16' python2 formw 'ncurses++' openssl libkeymap libgvc MagickWand-6.Q16 blkid form libxdot opencv ImageMagick menu smartcols libsystemd-login gimpui-2.0 libcdt libgvpr devmapper com_err libcurl libssl libsystemd-journal polkit- gobject-1 libecpg libsystemd polkit-agent-1 libpathplan nix-main libpci poppler panelw Wand libcap xorg-server e2p ImageMagick-6.Q16 liblzma gimpthumb-2.0 ncurses lvm2app MagickCore sqlite3 python libpq libcgraph xtables libprocps libkmod libip4tc libecpg_compat libpgtypes nix-store libcrypto poppler-splash libudev panel ext2fs libiptc poppler-glib 'Magick++-6.Q16' python-2.7 fdisk uuid libsystemd-daemon nix-expr poppler- cpp libip6tc mount fuse MagickWand gimp-2.0 fontconfig udisks2 ncursesw ss 'ImageMagick++' MagickCore-6.Q16 'Magick++' menuw libsystemd-id128 'ncurses++w' Choosing modular solver. Resolving dependencies... creating dist/setup creating dist creating dist/setup copy ./Setup.hs to ./dist/setup/setup.hs /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc --make -odir ./dist/setup -hidir ./dist/setup -i -i. -package-id Cabal-1.24.0.0 ./dist/setup/setup.hs -o ./dist/setup/setup -threaded [1 of 1] Compiling Main ( dist/setup/setup.hs, dist/setup/Main.o ) Linking ./dist/setup/setup ... ./dist/setup/setup configure --verbose=2 --builddir=dist --ghc --prefix=/home/bas.van.dijk/.cabal --user --extra-prog-path=/home/bas.van.dijk/.cabal/bin --dependency=aeson=aeson-0.11.2.1-11xZO4dSHJ36B3esP34sNx --dependency=base=base-4.9.0.0 --dependency=base64-bytestring=base64-bytestring-1.0.0.1-In9M41tLtcS9QYt3QpGpNY --dependency=bindings-DSL=bindings-DSL-1.0.23-GUrVdpTUVQC2JWoov2sGwA --dependency=bytestring=bytestring-0.10.8.1 --dependency=containers=containers-0.5.7.1 --dependency=deepseq=deepseq-1.4.2.0 --dependency=inline-c=inline-c-0.5.5.7-3JCuNEZtXHO4YTLZSRWOQ2 --dependency=inline-c-cpp=inline-c-cpp-0.1.0.0-2wSjs2z7tfoLnsB36U1XGl --dependency=linear=linear-1.20.5-2Z9jl9x0ElZ4xkEQ6d4gVk --dependency=primitive=primitive-0.6.1.0-Ip44DqhfCp21tTUYbecwa --dependency=repa=repa-3.4.1.1-FdCcjPvmfDZGBwGc0CsqjV --dependency=template-haskell=template-haskell-2.11.0.0 --dependency=text=text-1.2.2.1-JAnD1x1IHr6H3rdrqlXcyH --dependency=transformers=transformers-0.5.2.0 --dependency=vector=vector-0.11.0.0-BEDZb5o2QOhGbIm6ky7rl6 --disable-tests --exact-configuration --disable-benchmarks Configuring opencv-0.0.0... Dependency aeson ==0.11.2.1: using aeson-0.11.2.1 Dependency base ==4.9.0.0: using base-4.9.0.0 Dependency base64-bytestring ==1.0.0.1: using base64-bytestring-1.0.0.1 Dependency bindings-DSL ==1.0.23: using bindings-DSL-1.0.23 Dependency bytestring ==0.10.8.1: using bytestring-0.10.8.1 Dependency containers ==0.5.7.1: using containers-0.5.7.1 Dependency deepseq ==1.4.2.0: using deepseq-1.4.2.0 Dependency inline-c ==0.5.5.7: using inline-c-0.5.5.7 Dependency inline-c-cpp ==0.1.0.0: using inline-c-cpp-0.1.0.0 Dependency linear ==1.20.5: using linear-1.20.5 Dependency primitive ==0.6.1.0: using primitive-0.6.1.0 Dependency repa ==3.4.1.1: using repa-3.4.1.1 Dependency template-haskell ==2.11.0.0: using template-haskell-2.11.0.0 Dependency text ==1.2.2.1: using text-1.2.2.1 Dependency transformers ==0.5.2.0: using transformers-0.5.2.0 Dependency vector ==0.11.0.0: using vector-0.11.0.0 Dependency opencv -any: using version 3.1.0 Using Cabal-1.24.0.0 compiled by ghc-8.0 Using compiler: ghc-8.0.1 Using install prefix: /home/bas.van.dijk/.cabal Binaries installed in: /home/bas.van.dijk/.cabal/bin Libraries installed in: /home/bas.van.dijk/.cabal/lib/x86_64-linux- ghc-8.0.1/opencv-0.0.0-2zTtfFNABNdFAnLU4MNJ6b Private binaries installed in: /home/bas.van.dijk/.cabal/libexec Data files installed in: /home/bas.van.dijk/.cabal/share/x86_64-linux-ghc-8.0.1/opencv-0.0.0 Documentation installed in: /home/bas.van.dijk/.cabal/share/doc/x86_64-linux-ghc-8.0.1/opencv-0.0.0 Configuration files installed in: /home/bas.van.dijk/.cabal/etc No alex found Using ar found on system at: /nix/store/v77miigq2dx55ga1hxfv3k7v9a873472-binutils-2.27/bin/ar No c2hs found Using cpphs version 1.20.2 found on system at: /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/cpphs Using gcc version 5.4.0 given by user at: /nix/store/45qrn064f92kfxnjg99z39zxda671h6f-gcc-wrapper-5.4.0/bin/g++ Using ghc version 8.0.1 found on system at: /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc Using ghc-pkg version 8.0.1 found on system at: /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc-pkg No ghcjs found No ghcjs-pkg found No greencard found Using haddock version 2.17.2 found on system at: /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/haddock No happy found Using haskell-suite found on system at: haskell-suite-dummy-location Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy- location No hmake found Using hpc version 0.67 found on system at: /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/hpc Using hsc2hs version 0.68 found on system at: /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/hsc2hs Using hscolour version 1.24 found on system at: /run/current-system/sw/bin/HsColour No jhc found Using ld given by user at: /nix/store/45qrn064f92kfxnjg99z39zxda671h6f-gcc-wrapper-5.4.0/bin/g++ No lhc found No lhc-pkg found Using pkg-config version 0.29 found on system at: /nix/store/pkymfih8lf7j3ib6bfab7srri4xiyw34-pkg-config-0.29/bin/pkg-config Using strip version 2.27 found on system at: /nix/store/v77miigq2dx55ga1hxfv3k7v9a873472-binutils-2.27/bin/strip Using tar found on system at: /nix/store/blzs121zpxzms8axnblp1pbbzphrsb2r-gnutar-1.29/bin/tar No uhc found creating dist/setup ./dist/setup/setup build --verbose=2 --builddir=dist --jobs=2 Component build order: library creating dist/build creating dist/build/autogen Building opencv-0.0.0... /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc-pkg init dist/package.conf.inplace Preprocessing library opencv-0.0.0... creating dist/build/OpenCV/Core creating dist/build/OpenCV creating dist/build/OpenCV/Core ... ... Lots of calls to hsc2hs ... Building library... creating dist/build /nix/store/91grrinb827jsdr44yd2lqls9i7z2az0-ghc-8.0.1/bin/ghc \ --make \ -fbuilding-cabal-package \ -O \ -j2 \ -static -dynamic-too \ -dynosuf dyn_o -dynhisuf dyn_hi \ -outputdir dist/build -odir dist/build -hidir dist/build -stubdir dist/build \ -i \ -idist/build \ -isrc \ -idist/build/autogen \ -Idist/build/autogen \ -Idist/build \ -Iinclude \ -I/nix/store/gyqgb314gb2jny8xjix3bdrly50p9mrz- opencv-3.1.0/include/opencv \ -I/nix/store/gyqgb314gb2jny8xjix3bdrly50p9mrz-opencv-3.1.0/include \ -optP-include \ -optPdist/build/autogen/cabal_macros.h \ -this-unit-id opencv-0.0.0-2zTtfFNABNdFAnLU4MNJ6b \ -hide-all-packages \ -package-db dist/package.conf.inplace \ -package-id aeson-0.11.2.1-11xZO4dSHJ36B3esP34sNx \ -package-id base-4.9.0.0 \ -package-id base64-bytestring-1.0.0.1-In9M41tLtcS9QYt3QpGpNY \ -package-id bindings-DSL-1.0.23-GUrVdpTUVQC2JWoov2sGwA \ -package-id bytestring-0.10.8.1 -package-id containers-0.5.7.1 \ -package-id deepseq-1.4.2.0 \ -package-id inline-c-0.5.5.7-3JCuNEZtXHO4YTLZSRWOQ2 \ -package-id inline-c-cpp-0.1.0.0-2wSjs2z7tfoLnsB36U1XGl \ -package-id linear-1.20.5-2Z9jl9x0ElZ4xkEQ6d4gVk \ -package-id primitive-0.6.1.0-Ip44DqhfCp21tTUYbecwa \ -package-id repa-3.4.1.1-FdCcjPvmfDZGBwGc0CsqjV \ -package-id template-haskell-2.11.0.0 \ -package-id text-1.2.2.1-JAnD1x1IHr6H3rdrqlXcyH \ -package-id transformers-0.5.2.0 \ -package-id vector-0.11.0.0-BEDZb5o2QOhGbIm6ky7rl6 \ -XHaskell2010 -XBangPatterns -XDataKinds -XFlexibleContexts \ -XFlexibleInstances -XLambdaCase -XOverloadedStrings \ -XPackageImports -XPolyKinds -XScopedTypeVariables \ -XTupleSections -XTypeFamilies -XTypeOperators \ OpenCV OpenCV.Calib3d OpenCV.Core.ArrayOps OpenCV.Core.Types OpenCV.Core.Types.Mat OpenCV.Core.Types.Mat.HMat OpenCV.Core.Types.Mat.Repa OpenCV.Core.Types.Matx OpenCV.Core.Types.Point OpenCV.Core.Types.Rect OpenCV.Core.Types.Size OpenCV.Core.Types.Vec OpenCV.Exception OpenCV.Features2d OpenCV.HighGui OpenCV.ImgCodecs OpenCV.ImgProc.ColorMaps OpenCV.ImgProc.Drawing OpenCV.ImgProc.FeatureDetection OpenCV.ImgProc.GeometricImgTransform OpenCV.ImgProc.ImgFiltering OpenCV.ImgProc.MiscImgTransform OpenCV.ImgProc.MiscImgTransform.ColorCodes OpenCV.ImgProc.ObjectDetection OpenCV.ImgProc.StructuralAnalysis OpenCV.ImgProc.Types OpenCV.JSON OpenCV.Photo OpenCV.TypeLevel OpenCV.Unsafe OpenCV.Video OpenCV.Video.MotionAnalysis OpenCV.VideoIO.VideoCapture OpenCV.Internal OpenCV.Internal.Mutable OpenCV.Internal.C.Inline OpenCV.Internal.C.PlacementNew OpenCV.Internal.C.PlacementNew.TH OpenCV.Internal.C.Types OpenCV.Internal.Calib3d.Constants OpenCV.Internal.Core.ArrayOps OpenCV.Internal.Core.Types OpenCV.Internal.Core.Types.Constants OpenCV.Internal.Core.Types.Mat OpenCV.Internal.Core.Types.Mat.Depth OpenCV.Internal.Core.Types.Mat.Marshal OpenCV.Internal.Core.Types.Mat.ToFrom OpenCV.Internal.Core.Types.Matx OpenCV.Internal.Core.Types.Matx.TH OpenCV.Internal.Core.Types.Point OpenCV.Internal.Core.Types.Point.TH OpenCV.Internal.Core.Types.Rect OpenCV.Internal.Core.Types.Rect.TH OpenCV.Internal.Core.Types.Size OpenCV.Internal.Core.Types.Size.TH OpenCV.Internal.Core.Types.Vec OpenCV.Internal.Core.Types.Vec.TH OpenCV.Internal.Exception OpenCV.Internal.ImgCodecs OpenCV.Internal.ImgProc.MiscImgTransform OpenCV.Internal.ImgProc.MiscImgTransform.TypeLevel OpenCV.Internal.ImgProc.MiscImgTransform.ColorCodes OpenCV.Internal.ImgProc.Types OpenCV.Internal.Photo.Constants \ -Wall \ -fwarn-incomplete-patterns \ -funbox-strict-fields \ -O2 [ 1 of 64] Compiling OpenCV.Internal.Photo.Constants ( dist/build/OpenCV/Internal/Photo/Constants.hs, dist/build/OpenCV/Internal/Photo/Constants.o ) [ 2 of 64] Compiling OpenCV.Internal.ImgProc.MiscImgTransform ( dist/build/OpenCV/Internal/ImgProc/MiscImgTransform.hs, dist/build/OpenCV/Internal/ImgProc/MiscImgTransform.o ) [ 3 of 64] Compiling OpenCV.Internal.ImgCodecs ( dist/build/OpenCV/Internal/ImgCodecs.hs, dist/build/OpenCV/Internal/ImgCodecs.o ) [ 4 of 64] Compiling OpenCV.Internal.Core.Types.Constants ( dist/build/OpenCV/Internal/Core/Types/Constants.hs, dist/build/OpenCV/Internal/Core/Types/Constants.o ) [ 5 of 64] Compiling OpenCV.Internal.C.PlacementNew ( src/OpenCV/Internal/C/PlacementNew.hs, dist/build/OpenCV/Internal/C/PlacementNew.o ) [ 6 of 64] Compiling OpenCV.Internal.C.PlacementNew.TH ( src/OpenCV/Internal/C/PlacementNew/TH.hs, dist/build/OpenCV/Internal/C/PlacementNew/TH.o ) [ 7 of 64] Compiling OpenCV.Internal.Mutable ( src/OpenCV/Internal/Mutable.hs, dist/build/OpenCV/Internal/Mutable.o ) [ 8 of 64] Compiling OpenCV.Internal.Core.ArrayOps ( dist/build/OpenCV/Internal/Core/ArrayOps.hs, dist/build/OpenCV/Internal/Core/ArrayOps.o ) [ 9 of 64] Compiling OpenCV.Internal ( src/OpenCV/Internal.hs, dist/build/OpenCV/Internal.o ) [10 of 64] Compiling OpenCV.Internal.Calib3d.Constants ( dist/build/OpenCV/Internal/Calib3d/Constants.hs, dist/build/OpenCV/Internal/Calib3d/Constants.o ) [11 of 64] Compiling OpenCV.Internal.C.Types ( src/OpenCV/Internal/C/Types.hs, dist/build/OpenCV/Internal/C/Types.o ) [12 of 64] Compiling OpenCV.Internal.Core.Types.Matx ( src/OpenCV/Internal/Core/Types/Matx.hs, dist/build/OpenCV/Internal/Core/Types/Matx.o ) [13 of 64] Compiling OpenCV.Internal.Core.Types.Matx.TH ( src/OpenCV/Internal/Core/Types/Matx/TH.hs, dist/build/OpenCV/Internal/Core/Types/Matx/TH.o ) [14 of 64] Compiling OpenCV.Internal.Core.Types.Point ( src/OpenCV/Internal/Core/Types/Point.hs, dist/build/OpenCV/Internal/Core/Types/Point.o ) [15 of 64] Compiling OpenCV.Internal.Core.Types.Point.TH ( src/OpenCV/Internal/Core/Types/Point/TH.hs, dist/build/OpenCV/Internal/Core/Types/Point/TH.o ) [16 of 64] Compiling OpenCV.Internal.Core.Types.Size ( src/OpenCV/Internal/Core/Types/Size.hs, dist/build/OpenCV/Internal/Core/Types/Size.o ) [17 of 64] Compiling OpenCV.Internal.Core.Types.Size.TH ( src/OpenCV/Internal/Core/Types/Size/TH.hs, dist/build/OpenCV/Internal/Core/Types/Size/TH.o ) [18 of 64] Compiling OpenCV.Internal.Core.Types.Vec ( src/OpenCV/Internal/Core/Types/Vec.hs, dist/build/OpenCV/Internal/Core/Types/Vec.o ) [19 of 64] Compiling OpenCV.Internal.Core.Types.Vec.TH ( src/OpenCV/Internal/Core/Types/Vec/TH.hs, dist/build/OpenCV/Internal/Core/Types/Vec/TH.o ) [20 of 64] Compiling OpenCV.Internal.C.Inline ( src/OpenCV/Internal/C/Inline.hs, dist/build/OpenCV/Internal/C/Inline.o ) [21 of 64] Compiling OpenCV.Core.Types.Size ( src/OpenCV/Core/Types/Size.hs, dist/build/OpenCV/Core/Types/Size.o ) [22 of 64] Compiling OpenCV.Core.Types.Vec ( src/OpenCV/Core/Types/Vec.hs, dist/build/OpenCV/Core/Types/Vec.o ) [23 of 64] Compiling OpenCV.TypeLevel ( src/OpenCV/TypeLevel.hs, dist/build/OpenCV/TypeLevel.o ) [24 of 64] Compiling OpenCV.Internal.ImgProc.MiscImgTransform.TypeLevel ( src/OpenCV/Internal/ImgProc/MiscImgTransform/TypeLevel.hs, dist/build/OpenCV/Internal/ImgProc/MiscImgTransform/TypeLevel.o ) [25 of 64] Compiling OpenCV.Internal.ImgProc.MiscImgTransform.ColorCodes ( src/OpenCV/Internal/ImgProc/MiscImgTransform/ColorCodes.hs, dist/build/OpenCV/Internal/ImgProc/MiscImgTransform/ColorCodes.o ) [26 of 64] Compiling OpenCV.ImgProc.MiscImgTransform.ColorCodes ( src/OpenCV/ImgProc/MiscImgTransform/ColorCodes.hs, dist/build/OpenCV/ImgProc/MiscImgTransform/ColorCodes.o ) [27 of 64] Compiling OpenCV.Internal.Core.Types.Mat.Depth ( src/OpenCV/Internal/Core/Types/Mat/Depth.hs, dist/build/OpenCV/Internal/Core/Types/Mat/Depth.o ) [28 of 64] Compiling OpenCV.Internal.Exception ( src/OpenCV/Internal/Exception.hs, dist/build/OpenCV/Internal/Exception.o ) [29 of 64] Compiling OpenCV.Exception ( src/OpenCV/Exception.hs, dist/build/OpenCV/Exception.o ) [30 of 64] Compiling OpenCV.Internal.Core.Types.Mat.Marshal ( dist/build/OpenCV/Internal/Core/Types/Mat/Marshal.hs, dist/build/OpenCV/Internal/Core/Types/Mat/Marshal.o ) [31 of 64] Compiling OpenCV.Core.Types.Point ( src/OpenCV/Core/Types/Point.hs, dist/build/OpenCV/Core/Types/Point.o ) [32 of 64] Compiling OpenCV.Internal.Core.Types ( src/OpenCV/Internal/Core/Types.hs, dist/build/OpenCV/Internal/Core/Types.o ) [33 of 64] Compiling OpenCV.Internal.Core.Types.Mat ( src/OpenCV/Internal/Core/Types/Mat.hs, dist/build/OpenCV/Internal/Core/Types/Mat.o ) <no location info>: error: ghc: panic! (the 'impossible' happened) (GHC version 8.0.1 for x86_64-unknown-linux): Loading temp shared object failed: /run/user/1001/ghc8697_0/libghc_200.so: undefined symbol: inline_c_OpenCV_Internal_Exception_1_2402dbf3aea4f7f79392b71ed42618962a22e9aa Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug [36 of 64] Compiling OpenCV.Internal.Core.Types.Rect ( src/OpenCV/Internal/Core/Types/Rect.hs, dist/build/OpenCV/Internal/Core/Types/Rect.o ) [37 of 64] Compiling OpenCV.Internal.Core.Types.Rect.TH ( src/OpenCV/Internal/Core/Types/Rect/TH.hs, dist/build/OpenCV/Internal/Core/Types/Rect/TH.o ) [38 of 64] Compiling OpenCV.Core.Types.Rect ( src/OpenCV/Core/Types/Rect.hs, dist/build/OpenCV/Core/Types/Rect.o ) <no location info>: error: ghc: panic! (the 'impossible' happened) (GHC version 8.0.1 for x86_64-unknown-linux): Loading temp shared object failed: /run/user/1001/ghc8697_0/libghc_206.so: undefined symbol: inline_c_OpenCV_Core_Types_Point_19_5c3d561e8841e5271fd465bfb109504b1d56b3f6 Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug [39 of 64] Compiling OpenCV.Core.Types.Matx ( src/OpenCV/Core/Types/Matx.hs, dist/build/OpenCV/Core/Types/Matx.o ) }}} The details are in https://github.com/NixOS/nixpkgs/issues/18558. It's worth repeating here that I've successfully build `haskell-opencv` with GHC-8.0.1 before on an older version of `nixpkgs`. So it has probably something to do with how GHC is packaged in `nixpkgs` or with the used `binutils`. However, a GHC panic should also warrant a ticket on the GHC bug tracker so here it is. Although this ticket is about GHCi and I'm using GHC do note that `haskell-opencv` makes use of template-haskell in lots of places which I believe is using GHCi internally. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10458#comment:45 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler